annotate src/puresize.h @ 26059:2a7f35e0072b

(Fminibuffer_complete_and_exit): Supply value for new ESCAPE_FROM_EDGE parameter to Ffield_beginning. (Fminibuffer_complete_word): Use Ffield_beginning to find the prompt end. (Fminibuffer_complete_and_exit): Test for an empty input string by seeing where the field begins, instead of looking at text-properties. (read_minibuf): Don't save minibuffer prompt length on minibuf_save_list. Don't initialize minibuffer prompt length. Wrap prompt text-properties around the entire prompt. Add 'prompt text-property to prompt. Get final value with Ffield_string instead of make_buffer_string. (read_minibuf_unwind): Don't restore minibuffer prompt length from minibuf_save_list. (do_completion): Get minibuffer input with Ffield_string instead of Fbuffer_string. Erase minibuffer input with Ferase_field instead of erase_buffer. (Fminibuffer_complete_and_exit): Likewise. Test whether buffer is empty by looking for the 'prompt text property at the end. Set prompt length by looking for the end of the prompt text property, and save prompt length for later use (since there is no longer a buffer variable to get it from). (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed. (syms_of_minibuf): Remove initializations of Sminibuffer_prompt_width and Sminibuffer_prompt_end.
author Gerd Moellmann <gerd@gnu.org>
date Sun, 17 Oct 1999 12:55:49 +0000
parents c7fe686cca44
children f3461e3610c8
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.
2961
e94a593c3952 Updated copyright years.
Jim Blandy <jimb@redhat.com>
parents: 484
diff changeset
2 Copyright (C) 1993 Free Software Foundation, Inc.
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
12244
ac7375e60931 Update GPL to version 2.
Karl Heuer <kwzh@gnu.org>
parents: 11236
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
14186
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 13778
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 13778
diff changeset
19 Boston, MA 02111-1307, USA. */
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
21 /* 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
22
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 At one point, this was defined in config.h, meaning that changing
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 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
25 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
26
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
27 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
28 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
29 storage to allocate. */
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
31 /* 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
32
9572
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
33 /* 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
34 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
35 BASE_PURESIZE or even PURESIZE directly. */
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
36 #ifndef SYSTEM_PURESIZE_EXTRA
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
37 #define SYSTEM_PURESIZE_EXTRA 0
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
38 #endif
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9514
diff changeset
39
12986
180f04639e71 (SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 12612
diff changeset
40 #ifndef SITELOAD_PURESIZE_EXTRA
180f04639e71 (SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 12612
diff changeset
41 #define SITELOAD_PURESIZE_EXTRA 0
180f04639e71 (SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 12612
diff changeset
42 #endif
180f04639e71 (SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 12612
diff changeset
43
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
44 #ifndef BASE_PURESIZE
25864
c7fe686cca44 (BASE_PURESIZE): Increase to 525000.
Dave Love <fx@gnu.org>
parents: 25007
diff changeset
45 #define BASE_PURESIZE (525000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA)
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
46 #endif
8933
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
47
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
48 /* 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
49 #ifndef PURESIZE_RATIO
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
50 #if VALBITS + GCTYPEBITS + 1 > 32
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
51 #define PURESIZE_RATIO 8/5 /* Don't surround with `()'. */
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
52 #else
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
53 #define PURESIZE_RATIO 1
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 #endif
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
56
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
57 /* 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
58 #ifndef PURESIZE
f060ee7326c5 (PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents: 8832
diff changeset
59 #define PURESIZE (BASE_PURESIZE * PURESIZE_RATIO)
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 355
diff changeset
60 #endif
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
62 /* Signal an error if OBJ is pure. */
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
63 #define CHECK_IMPURE(obj) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
64 { if (PURE_P (obj)) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
65 pure_write_error (); }
21515
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 21060
diff changeset
66
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 21060
diff changeset
67 extern void pure_write_error P_ ((void));
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
68
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
69 /* Define PURE_P. */
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
70
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 #ifdef VIRT_ADDR_VARIES
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 /* For machines like APOLLO where text and data can go anywhere
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 in virtual memory. */
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
74
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
75 extern EMACS_INT pure[];
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(obj) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
78 ((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
79 && (PNTR_COMPARISON_TYPE) XPNTR (obj) >= (PNTR_COMPARISON_TYPE) pure)
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81 #else /* not VIRT_ADDR_VARIES */
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 #ifdef PNTR_COMPARISON_TYPE
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
83 /* When PNTR_COMPARISON_TYPE is not the default (unsigned int). */
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
85 extern char my_edata[];
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
86
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
87 #define PURE_P(obj) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
88 ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) my_edata)
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 #else /* not VIRT_ADDRESS_VARIES, not PNTR_COMPARISON_TYPE */
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91
13778
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
92 extern char my_edata[];
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
93
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
94 #define PURE_P(obj) \
7b2f71009e4c (PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents: 12986
diff changeset
95 (XPNTR (obj) < (unsigned int) my_edata)
355
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 #endif /* PNTR_COMPARISON_TYPE */
ec5e971707d6 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 #endif /* VIRT_ADDRESS_VARIES */