annotate src/puresize.h @ 99492:ee792794d888

(isearch-search-fun): Compare the length of the current search string with the length of the string from the previous search state to detect the situation when the user adds or removes characters in the search string. Use word-search-forward-lax and word-search-backward-lax in this case, and otherwise word-search-forward and word-search-backward.
author Juri Linkov <juri@jurta.org>
date Tue, 11 Nov 2008 19:43:09 +0000
parents 4e53ad6f16b6
children aa3735d1a6b8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* How much read-only Lisp storage a dumped Emacs needs.
75227
e90d04cd455a Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 72306
diff changeset
2 Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005,
79759
fc2bcd2a8aad Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 79371
diff changeset
3 2006, 2007, 2008 Free Software Foundation, Inc.
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 This file is part of GNU Emacs.
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94524
diff changeset
7 GNU Emacs is free software: you can redistribute it and/or modify
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94524
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94524
diff changeset
10 (at your option) any later version.
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 GNU General Public License for more details.
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94524
diff changeset
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
20 /* Define PURESIZE, the number of bytes of pure Lisp code to leave space for.
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 At one point, this was defined in config.h, meaning that changing
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 PURESIZE would make Make recompile all of Emacs. But only a few
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
24 files actually use PURESIZE, so we split it out to its own .h file.
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
25
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
26 Make sure to include this file after config.h, since that tells us
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
27 whether we are running X windows, which tells us how much pure
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
28 storage to allocate. */
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
30 /* First define a measure of the amount of data we have. */
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
31
9572
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
32 /* A system configuration file may set this to request a certain extra
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
33 amount of storage. This is a lot more update-robust that defining
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
34 BASE_PURESIZE or even PURESIZE directly. */
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
35 #ifndef SYSTEM_PURESIZE_EXTRA
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
36 #define SYSTEM_PURESIZE_EXTRA 0
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
37 #endif
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
38
12986
180f04639e71 (SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 12612
diff changeset
39 #ifndef SITELOAD_PURESIZE_EXTRA
180f04639e71 (SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 12612
diff changeset
40 #define SITELOAD_PURESIZE_EXTRA 0
180f04639e71 (SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 12612
diff changeset
41 #endif
180f04639e71 (SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 12612
diff changeset
42
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
43 #ifndef BASE_PURESIZE
97598
4e53ad6f16b6 (BASE_PURESIZE): Increase to 1250000.
Chong Yidong <cyd@stupidchicken.com>
parents: 96987
diff changeset
44 #define BASE_PURESIZE (1250000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA)
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
45 #endif
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
46
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
47 /* Increase BASE_PURESIZE by a ratio depending on the machine's word size. */
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
48 #ifndef PURESIZE_RATIO
57111
722f614e880a (PURESIZE_RATIO): Define based on BITS_PER_EMACS_INT.
Kim F. Storm <storm@cua.dk>
parents: 54822
diff changeset
49 #if BITS_PER_EMACS_INT > 32
70035
479ddf150263 (PURESIZE_RATIO): Reduce to 10/6.
Andreas Schwab <schwab@suse.de>
parents: 70031
diff changeset
50 #define PURESIZE_RATIO 10/6 /* Don't surround with `()'. */
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
51 #else
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
52 #define PURESIZE_RATIO 1
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
53 #endif
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
54 #endif
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
55
96987
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
56 #ifdef ENABLE_CHECKING
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
57 /* ENABLE_CHECKING somehow increases the purespace used, probably because
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
58 it tends to cause some macro arguments to be evaluated twice. This is
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
59 a bug, but it's difficult to track it down. */
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
60 #define PURESIZE_CHECKING_RATIO 12/10 /* Don't surround with `()'. */
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
61 #else
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
62 #define PURESIZE_CHECKING_RATIO 1
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
63 #endif
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
64
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
65 /* This is the actual size in bytes to allocate. */
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
66 #ifndef PURESIZE
96987
359d8fb73538 (PURESIZE_CHECKING_RATIO): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96780
diff changeset
67 #define PURESIZE (BASE_PURESIZE * PURESIZE_RATIO * PURESIZE_CHECKING_RATIO)
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
68 #endif
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
70 /* Signal an error if OBJ is pure. */
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
71 #define CHECK_IMPURE(obj) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
72 { if (PURE_P (obj)) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
73 pure_write_error (); }
21515
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 21060
diff changeset
74
69883
a21d00510558 * puresize.h (pure_write_error): Mark as NO_RETURN.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68976
diff changeset
75 extern void pure_write_error P_ ((void)) NO_RETURN;
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
76
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
77 /* Define PURE_P. */
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
78
91393
c7c66cfcda43 Don't include CYGWIN in condition.
Jason Rumney <jasonr@gnu.org>
parents: 87730
diff changeset
79 #ifdef VIRT_ADDR_VARIES
87730
91da483b3fa5 * movemail.c:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87649
diff changeset
80 /* For machines where text and data can go anywhere
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81 in virtual memory. */
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
82
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
83 extern EMACS_INT pure[];
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
84
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
85 #define PURE_P(obj) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
86 ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) ((char *) pure + PURESIZE) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
87 && (PNTR_COMPARISON_TYPE) XPNTR (obj) >= (PNTR_COMPARISON_TYPE) pure)
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 #else /* not VIRT_ADDR_VARIES */
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 #ifdef PNTR_COMPARISON_TYPE
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
91 /* When PNTR_COMPARISON_TYPE is not the default (unsigned int). */
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
93 extern char my_edata[];
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
94
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
95 #define PURE_P(obj) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
96 ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) my_edata)
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 #else /* not VIRT_ADDRESS_VARIES, not PNTR_COMPARISON_TYPE */
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
100 extern char my_edata[];
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46842
diff changeset
101
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
102 #define PURE_P(obj) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
103 (XPNTR (obj) < (unsigned int) my_edata)
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 #endif /* PNTR_COMPARISON_TYPE */
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106 #endif /* VIRT_ADDRESS_VARIES */
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52255
diff changeset
107
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52255
diff changeset
108 /* arch-tag: fd9b0a91-a70e-4729-a75a-6bb4ca1ce14f
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52255
diff changeset
109 (do not change this comment) */