Mercurial > emacs
view src/puresize.h @ 67894:d742983a2136
(bibtex-entry-type-whitespace)
(bibtex-entry-type-str, bibtex-empty-field-re)
(bibtex-search-backward-string, bibtex-preamble-prefix)
(bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head):
Removed.
(bibtex-any-valid-entry-type): New variable.
(bibtex-parse-field-name): Simplify.
(bibtex-parse-string, bibtex-search-forward-string): New arg
empty-key.
(bibtex-preamble-prefix): Include left delimiter.
(bibtex-search-forward-field, bibtex-search-backward-field): Allow
unbounded search past entry boundaries (required by bibtex-pop).
(bibtex-text-in-field-bounds): Use push.
(bibtex-text-in-field): Do not use bibtex-narrow-to-entry.
(bibtex-parse-preamble, bibtex-valid-entry)
(bibtex-beginning-first-field): New functions.
(bibtex-skip-to-valid-entry): Use bibtex-valid-entry. Fix regexp.
(bibtex-map-entries): Fix docstring.
(bibtex-flash-head): New arg prompt. Simplify.
(bibtex-enclosing-field): Include code of bibtex-inside-field.
(bibtex-insert-kill): Simplify. Always insert text past the
current field or entry.
(bibtex-format-entry): Use bibtex-parse-field.
(bibtex-pop): Use bibtex-beginning-of-entry and
bibtex-end-of-entry to initiate the search. Insert empty field if
we found ourselves.
(bibtex-print-help-message): New args field and comma. Handle
entry keys.
(bibtex-make-field): Use bibtex-beginning-of-entry.
(bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any
invalid entry.
(bibtex-validate): Use bibtex-valid-entry and bibtex-parse-string.
Handle preambles. Simplify code for thorough test.
(bibtex-next-field, bibtex-find-text, bibtex-find-text-internal):
New arg comma. Handle entry heads.
(bibtex-remove-OPT-or-ALT, bibtex-remove-delimiters)
(bibtex-kill-field, bibtex-copy-field-as-kil, bibtex-empty-field):
New arg comma.
(bibtex-kill-entry): Use bibtex-any-entry-maybe-empty-head.
(bibtex-fill-field): Simplify.
(bibtex-fill-entry): Use bibtex-beginning-first-field and
bibtex-parse-field.
(bibtex-convert-alien): Do not wait before calling
bibtex-validate.
(bibtex-complete): Use bibtex-parse-preamble.
author | Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> |
---|---|
date | Thu, 29 Dec 2005 15:23:52 +0000 |
parents | 001a781c565e |
children | 598f2fa3c1cf 7beb78bc1f8e |
line wrap: on
line source
/* How much read-only Lisp storage a dumped Emacs needs. Copyright (C) 1993, 2002, 2003, 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. */ /* Define PURESIZE, the number of bytes of pure Lisp code to leave space for. At one point, this was defined in config.h, meaning that changing PURESIZE would make Make recompile all of Emacs. But only a few files actually use PURESIZE, so we split it out to its own .h file. Make sure to include this file after config.h, since that tells us whether we are running X windows, which tells us how much pure storage to allocate. */ /* First define a measure of the amount of data we have. */ /* A system configuration file may set this to request a certain extra amount of storage. This is a lot more update-robust that defining BASE_PURESIZE or even PURESIZE directly. */ #ifndef SYSTEM_PURESIZE_EXTRA #define SYSTEM_PURESIZE_EXTRA 0 #endif #ifndef SITELOAD_PURESIZE_EXTRA #define SITELOAD_PURESIZE_EXTRA 0 #endif #ifndef BASE_PURESIZE #define BASE_PURESIZE (1180000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) #endif /* Increase BASE_PURESIZE by a ratio depending on the machine's word size. */ #ifndef PURESIZE_RATIO #if BITS_PER_EMACS_INT > 32 #define PURESIZE_RATIO 9/5 /* Don't surround with `()'. */ #else #define PURESIZE_RATIO 1 #endif #endif /* This is the actual size in bytes to allocate. */ #ifndef PURESIZE #define PURESIZE (BASE_PURESIZE * PURESIZE_RATIO) #endif /* Signal an error if OBJ is pure. */ #define CHECK_IMPURE(obj) \ { if (PURE_P (obj)) \ pure_write_error (); } extern void pure_write_error P_ ((void)); /* Define PURE_P. */ #if defined(VIRT_ADDR_VARIES) || defined(CYGWIN) /* For machines like APOLLO where text and data can go anywhere in virtual memory. */ extern EMACS_INT pure[]; #define PURE_P(obj) \ ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) ((char *) pure + PURESIZE) \ && (PNTR_COMPARISON_TYPE) XPNTR (obj) >= (PNTR_COMPARISON_TYPE) pure) #else /* not VIRT_ADDR_VARIES */ #ifdef PNTR_COMPARISON_TYPE /* When PNTR_COMPARISON_TYPE is not the default (unsigned int). */ extern char my_edata[]; #define PURE_P(obj) \ ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) my_edata) #else /* not VIRT_ADDRESS_VARIES, not PNTR_COMPARISON_TYPE */ extern char my_edata[]; #define PURE_P(obj) \ (XPNTR (obj) < (unsigned int) my_edata) #endif /* PNTR_COMPARISON_TYPE */ #endif /* VIRT_ADDRESS_VARIES */ /* arch-tag: fd9b0a91-a70e-4729-a75a-6bb4ca1ce14f (do not change this comment) */