Mercurial > emacs
view src/sheap.c @ 65719:5265a4059126
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-564
Merge from gnus--rel--5.10
Patches applied:
* gnus--rel--5.10 (patch 125-127)
- Merge from emacs--cvs-trunk--0
- Update from CVS
2005-09-27 Reiner Steib <Reiner.Steib@gmx.de>
* lisp/gnus/mm-uu.el (mm-uu-emacs-sources-regexp): Make variable
customizable. Change default value.
(mm-uu-diff-groups-regexp): Change default value.
(mm-uu-type-alist): Added doc string.
(mm-uu-configure): Added doc string. Make it interactive.
(mm-uu-diff-groups-regexp): Fix missing quotes from previous
commit.
2005-09-27 Simon Josefsson <jas@extundo.com>
* lisp/gnus/message.el (message-idna-to-ascii-rhs-1): Reformat.
2005-09-27 Arne J,Ax(Brgensen <arne@arnested.dk>
* lisp/gnus/message.el (message-remove-duplicates): New function.
Implementation borrowed from `gnus-remove-duplicates'.
(message-idna-to-ascii-rhs): Also encode idna addresses in
Reply-To:, Mail-Reply-To: and Mail-Followup-To:.
(message-idna-to-ascii-rhs-1): When `message-use-idna' is 'ask
only ask about the same idna domain once per header and also tell
in what header to replace the idna domain.
* lisp/gnus/gnus-art.el (article-decode-idna-rhs): Also decode idna
addresses in Reply-To:, Mail-Reply-To: and Mail-Followup-To:.
(article-decode-idna-rhs): Fix regexp so that all idna-address in
a header is decoded and not just the last one.
2005-09-27 Katsumi Yamaoka <yamaoka@jpl.org>
* lisp/gnus/gnus-art.el (gnus-mime-display-single): Don't modify text if it
has been decoded.
* lisp/gnus/mm-decode.el (mm-insert-part): Don't modify text if it has been
decoded.
* lisp/gnus/mm-view.el (mm-inline-text): Don't strip text props unless
decoding enriched or richtext parts.
2005-09-26 Katsumi Yamaoka <yamaoka@jpl.org>
* man/gnus.texi (Server Buffer Format): Document the %a format spec.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 28 Sep 2005 05:26:02 +0000 |
parents | a0d1312ede66 |
children | d74deb025f5a 2d92f5c9d6ae |
line wrap: on
line source
/* simulate sbrk() with an array in .bss, for unexec() support for Cygwin; complete rewrite of xemacs Cygwin unexec() code Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <config.h> #include <stdio.h> #include "lisp.h" #include <unistd.h> #ifdef HAVE_X_WINDOWS #define STATIC_HEAP_SIZE (7 * 1024 * 1024) #else #define STATIC_HEAP_SIZE (7 * 1024 * 1024) #endif int debug_sheap = 0; #define BLOCKSIZE 4096 char bss_sbrk_buffer[STATIC_HEAP_SIZE]; char *bss_sbrk_ptr; int bss_sbrk_did_unexec; void * bss_sbrk (ptrdiff_t request_size) { if (!bss_sbrk_ptr) { bss_sbrk_ptr = bss_sbrk_buffer; #ifdef CYGWIN sbrk (BLOCKSIZE); /* force space for fork to work */ #endif } if (!(int) request_size) { return (bss_sbrk_ptr); } else if (bss_sbrk_ptr + (int) request_size < bss_sbrk_buffer) { printf ("attempt to free too much: avail %d used %d failed request %d\n", STATIC_HEAP_SIZE, bss_sbrk_ptr - bss_sbrk_buffer, (int) request_size); exit (-1); return 0; } else if (bss_sbrk_ptr + (int) request_size > bss_sbrk_buffer + STATIC_HEAP_SIZE) { printf ("static heap exhausted: avail %d used %d failed request %d\n", STATIC_HEAP_SIZE, bss_sbrk_ptr - bss_sbrk_buffer, (int) request_size); exit (-1); return 0; } else if ((int) request_size < 0) { bss_sbrk_ptr += (int) request_size; if (debug_sheap) printf ("freed size %d\n", request_size); return bss_sbrk_ptr; } else { char *ret = bss_sbrk_ptr; if (debug_sheap) printf ("allocated 0x%08x size %d\n", ret, request_size); bss_sbrk_ptr += (int) request_size; return ret; } } void report_sheap_usage (int die_if_pure_storage_exceeded) { char buf[200]; sprintf (buf, "Static heap usage: %d of %d bytes", bss_sbrk_ptr - bss_sbrk_buffer, STATIC_HEAP_SIZE); message ("%s", buf); } /* arch-tag: 1bc386e8-71c2-4da4-b8b5-c1674a9cf926 (do not change this comment) */