Mercurial > hg > xemacs-beta
annotate src/bufslots.h @ 5366:f00192e1cd49
Examining the result of #'length: `eql', not `=', it's better style & cheaper
2011-03-08 Aidan Kehoe <kehoea@parhasard.net>
* buff-menu.el (list-buffers-noselect):
* byte-optimize.el (byte-optimize-identity):
* byte-optimize.el (byte-optimize-if):
* byte-optimize.el (byte-optimize-nth):
* byte-optimize.el (byte-optimize-nthcdr):
* bytecomp.el (byte-compile-warn-wrong-args):
* bytecomp.el (byte-compile-two-args-19->20):
* bytecomp.el (byte-compile-list):
* bytecomp.el (byte-compile-beginning-of-line):
* bytecomp.el (byte-compile-set):
* bytecomp.el (byte-compile-set-default):
* bytecomp.el (byte-compile-values):
* bytecomp.el (byte-compile-values-list):
* bytecomp.el (byte-compile-integerp):
* bytecomp.el (byte-compile-multiple-value-list-internal):
* bytecomp.el (byte-compile-throw):
* cl-macs.el (cl-do-arglist):
* cl-macs.el (cl-parse-loop-clause):
* cl-macs.el (multiple-value-bind):
* cl-macs.el (multiple-value-setq):
* cl-macs.el (get-setf-method):
* cmdloop.el (command-error):
* cmdloop.el (y-or-n-p-minibuf):
* cmdloop.el (yes-or-no-p-minibuf):
* coding.el (unencodable-char-position):
* cus-edit.el (custom-face-prompt):
* cus-edit.el (custom-buffer-create-internal):
* cus-edit.el (widget-face-action):
* cus-edit.el (custom-group-value-create):
* descr-text.el (describe-char-unicode-data):
* dialog-gtk.el (popup-builtin-question-dialog):
* dragdrop.el (experimental-dragdrop-drop-log-function):
* dragdrop.el (experimental-dragdrop-drop-mime-default):
* easymenu.el (easy-menu-add):
* easymenu.el (easy-menu-remove):
* faces.el (read-face-name):
* faces.el (set-face-stipple):
* files.el (file-name-non-special):
* font.el (font-combine-fonts):
* font.el (font-set-face-font):
* font.el (font-parse-rgb-components):
* font.el (font-rgb-color-p):
* font.el (font-color-rgb-components):
* gnuserv.el (gnuserv-edit-files):
* help.el (key-or-menu-binding):
* help.el (function-documentation-1):
* help.el (function-documentation):
* info.el (info):
* isearch-mode.el (isearch-exit):
* isearch-mode.el (isearch-edit-string):
* isearch-mode.el (isearch-*-char):
* isearch-mode.el (isearch-complete1):
* ldap.el (ldap-encode-country-string):
* ldap.el (ldap-decode-string):
* minibuf.el (read-file-name-internal-1):
* minibuf.el (read-non-nil-coding-system):
* minibuf.el (get-user-response):
* mouse.el (drag-window-divider):
* mule/ccl.el:
* mule/ccl.el (ccl-compile-if):
* mule/ccl.el (ccl-compile-break):
* mule/ccl.el (ccl-compile-repeat):
* mule/ccl.el (ccl-compile-write-repeat):
* mule/ccl.el (ccl-compile-call):
* mule/ccl.el (ccl-compile-end):
* mule/ccl.el (ccl-compile-read-multibyte-character):
* mule/ccl.el (ccl-compile-write-multibyte-character):
* mule/ccl.el (ccl-compile-translate-character):
* mule/ccl.el (ccl-compile-mule-to-unicode):
* mule/ccl.el (ccl-compile-unicode-to-mule):
* mule/ccl.el (ccl-compile-lookup-integer):
* mule/ccl.el (ccl-compile-lookup-character):
* mule/ccl.el (ccl-compile-map-multiple):
* mule/ccl.el (ccl-compile-map-single):
* mule/devan-util.el (devanagari-compose-to-one-glyph):
* mule/devan-util.el (devanagari-composition-component):
* mule/mule-cmds.el (finish-set-language-environment):
* mule/viet-util.el:
* mule/viet-util.el (viet-encode-viscii-char):
* multicast.el (open-multicast-group):
* newcomment.el (comment-quote-nested):
* newcomment.el (comment-region):
* newcomment.el (comment-dwim):
* regexp-opt.el (regexp-opt-group):
* replace.el (map-query-replace-regexp):
* specifier.el (derive-device-type-from-tag-set):
* subr.el (skip-chars-quote):
* test-harness.el (test-harness-from-buffer):
* test-harness.el (batch-test-emacs):
* wid-edit.el (widget-choice-action):
* wid-edit.el (widget-symbol-prompt-internal):
* wid-edit.el (widget-color-action):
* window-xemacs.el (push-window-configuration):
* window-xemacs.el (pop-window-configuration):
* window.el (quit-window):
* x-compose.el (electric-diacritic):
It's better style, and cheaper (often one assembler instruction
vs. a C funcall in the byte code), to use `eql' instead of `='
when it's clear what numerical type a given result will be. Change
much of our code to do this, with the help of a byte-compiler
change (not comitted) that looked for calls to #'length (which
always returns an integer) in its args.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Tue, 08 Mar 2011 23:41:52 +0000 |
parents | 0b4d355771bd |
children | 308d34e9f07d |
rev | line source |
---|---|
428 | 1 /* Definitions of marked slots in buffers |
2 Copyright (C) 1990, 1992, 1993 Free Software Foundation, Inc. | |
1204 | 3 Copyright (C) 2001, 2002 Ben Wing. |
428 | 4 |
5 This file is part of XEmacs. | |
6 | |
7 XEmacs is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
9 Free Software Foundation; either version 2, or (at your option) any | |
10 later version. | |
11 | |
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with XEmacs; see the file COPYING. If not, write to | |
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
20 Boston, MA 02111-1307, USA. */ | |
21 | |
22 /* Synched up with: Mule 2.0, FSF 19.30. Split out of buffer.h. */ | |
23 | |
24 /* Authorship: | |
25 | |
26 FSF: long ago (part of buffer.h). | |
27 JWZ: separated out from buffer.h, early in Lemacs. | |
28 XEmacs: a few other changes. | |
29 */ | |
30 | |
617 | 31 /* We define the Lisp_Objects in the buffer structure in a separate file |
32 because there are numerous places we want to iterate over them, such | |
33 as when defining them in the structure, initializing them, or marking | |
34 them. | |
35 | |
36 To use, define MARKED_SLOT before including this file. No need to | |
37 undefine; that happens automatically. */ | |
428 | 38 |
39 #ifndef BUFFER_SLOTS_FIRST_NAME | |
40 #define BUFFER_SLOTS_FIRST_NAME name | |
41 #endif | |
42 | |
43 /* The name of this buffer. */ | |
1204 | 44 MARKED_SLOT (name) |
428 | 45 |
46 /* The name of the file visited in this buffer, or nil. */ | |
1204 | 47 MARKED_SLOT (filename) |
428 | 48 |
49 /* Dir for expanding relative file names. */ | |
1204 | 50 MARKED_SLOT (directory) |
428 | 51 |
52 /* True iff this buffer has been backed up (if you write to the | |
53 visited file and it hasn't been backed up, then a backup will | |
54 be made). */ | |
55 /* #### This isn't really used by the C code, so could be deleted. */ | |
1204 | 56 MARKED_SLOT (backed_up) |
428 | 57 |
58 /* Length of file when last read or saved. | |
59 This is not in the struct buffer_text | |
60 because it's not used in indirect buffers at all. */ | |
1204 | 61 MARKED_SLOT (saved_size) |
428 | 62 |
63 /* File name used for auto-saving this buffer. | |
64 This is not in the struct buffer_text | |
65 because it's not used in indirect buffers at all. */ | |
1204 | 66 MARKED_SLOT (auto_save_file_name) |
428 | 67 |
68 /* Non-nil if buffer read-only. */ | |
1204 | 69 MARKED_SLOT (read_only) |
428 | 70 |
71 /* "The mark". This is a marker which may | |
72 point into this buffer or may point nowhere. */ | |
1204 | 73 MARKED_SLOT (mark) |
428 | 74 |
75 /* Alist of elements (SYMBOL . VALUE-IN-THIS-BUFFER) | |
76 for all per-buffer variables of this buffer. | |
77 Specifically, this lists those variables that have | |
78 a buffer-local value in this buffer: i.e. those | |
79 whose value does not shadow the default value. | |
80 (Remember that for any particular variable created | |
81 with `make-local-variable' or `make-variable-buffer-local', | |
82 it will have a per-buffer value in some buffers and a | |
83 default value in others.) | |
84 | |
85 Variables declared in C with DEFVAR_BUFFER_LOCAL() (i.e. | |
86 those stored in the struct buffer) are not listed here. */ | |
1204 | 87 MARKED_SLOT (local_var_alist) |
428 | 88 |
89 /* Symbol naming major mode (eg, lisp-mode). */ | |
1204 | 90 MARKED_SLOT (major_mode) |
428 | 91 |
92 /* Pretty name of major mode (eg, "Lisp"). */ | |
1204 | 93 MARKED_SLOT (mode_name) |
428 | 94 |
95 /* Modeline element that controls format of modeline. */ | |
1204 | 96 MARKED_SLOT (modeline_format) |
428 | 97 |
98 /* Keys that are bound local to this buffer. */ | |
1204 | 99 MARKED_SLOT (keymap) |
428 | 100 |
101 /* This buffer's local abbrev table. */ | |
1204 | 102 MARKED_SLOT (abbrev_table) |
428 | 103 /* This buffer's syntax table. */ |
1204 | 104 MARKED_SLOT (syntax_table) |
428 | 105 /* Massaged values from the syntax table, for faster lookup. */ |
1204 | 106 MARKED_SLOT (mirror_syntax_table) |
428 | 107 |
108 #ifdef MULE | |
109 /* This buffer's category table. */ | |
1204 | 110 MARKED_SLOT (category_table) |
428 | 111 #endif /* MULE */ |
112 /* This buffer's coding system. */ | |
1204 | 113 MARKED_SLOT (buffer_file_coding_system) |
428 | 114 /* Values of several buffer-local variables. |
115 | |
116 tab-width is buffer-local so that redisplay can find it | |
117 in buffers that are not current */ | |
1204 | 118 MARKED_SLOT (case_fold_search) |
119 MARKED_SLOT (tab_width) | |
120 MARKED_SLOT (fill_column) | |
121 MARKED_SLOT (left_margin) | |
428 | 122 |
123 /* Function to call when insert space past fill column. */ | |
1204 | 124 MARKED_SLOT (auto_fill_function) |
428 | 125 |
446 | 126 /* Case table for case-conversion in this buffer. */ |
1204 | 127 MARKED_SLOT (case_table) |
128 /* It contanis following char-tables: */ | |
446 | 129 /* Char-table maps each char into its lower-case version. */ |
428 | 130 /* Char-table mapping each char to its upper-case version. */ |
131 /* Char-table for conversion for case-folding search. */ | |
132 /* Char-table of equivalences for case-folding search. */ | |
133 | |
134 /* #### This ought to be a specifier: */ | |
135 /* Non-nil means do not display continuation lines. */ | |
1204 | 136 MARKED_SLOT (truncate_lines) |
428 | 137 /* #### This ought to be a specifier: */ |
138 /* #### Better yet, it ought to be junked. It really sucks. */ | |
139 /* Non-nil means display ctl chars with uparrow. */ | |
1204 | 140 MARKED_SLOT (ctl_arrow) |
428 | 141 /* #### This ought to be a specifier: */ |
142 /* #### Better yet, it ought to be junked. It really sucks. */ | |
143 /* Non-nil means do selective display; | |
144 see doc string in syms_of_buffer (buffer.c) for details. */ | |
1204 | 145 MARKED_SLOT (selective_display) |
428 | 146 /* #### This ought to be a specifier: */ |
147 /* #### Better yet, it ought to be junked. It really sucks. */ | |
148 /* Non-nil means show ... at end of line followed by invisible lines. */ | |
1204 | 149 MARKED_SLOT (selective_display_ellipses) |
428 | 150 /* Alist of (FUNCTION . STRING) for each minor mode enabled in buffer. */ |
1204 | 151 /* Unused: MARKED_SLOT (minor_modes) */ |
428 | 152 /* t if "self-insertion" should overwrite */ |
1204 | 153 MARKED_SLOT (overwrite_mode) |
428 | 154 /* non-nil means abbrev mode is on. Expand abbrevs automatically. */ |
1204 | 155 MARKED_SLOT (abbrev_mode) |
428 | 156 |
157 /* No display table here. It's a specifier. */ | |
158 #if 0 /* FSFmacs */ | |
159 /* t means the mark and region are currently active. */ | |
1204 | 160 MARKED_SLOT (mark_active) |
428 | 161 #endif |
162 | |
163 /* Changes in the buffer are recorded here for undo. | |
164 t means don't record anything. | |
165 This information belongs to the base buffer of an indirect buffer, | |
166 But we can't store it in the struct buffer_text | |
167 because local variables have to be right in the struct buffer. | |
168 So we copy it around in set_buffer_internal. */ | |
1204 | 169 MARKED_SLOT (undo_list) |
428 | 170 |
171 /* FSFmacs has overlay stuff here. We have extent info elsewhere in the | |
172 struct buffer. */ | |
173 | |
442 | 174 /* dedicated_frame in lisp */ |
428 | 175 |
176 /* Lisp of symbols naming the file format used for visited file. */ | |
1204 | 177 MARKED_SLOT (file_format) |
428 | 178 |
179 #ifdef REGION_CACHE_NEEDS_WORK | |
180 /* True if the newline position cache and width run cache are | |
181 enabled. See search.c and indent.c. */ | |
1204 | 182 MARKED_SLOT (cache_long_line_scans) |
428 | 183 |
184 /* If the width run cache is enabled, this table contains the | |
185 character widths width_run_cache (see above) assumes. When we | |
186 do a thorough redisplay, we compare this against the buffer's | |
187 current display table to see whether the display table has | |
188 affected the widths of any characters. If it has, we | |
189 invalidate the width run cache, and re-initialize width_table. */ | |
1204 | 190 MARKED_SLOT (width_table) |
428 | 191 #endif /* REGION_CACHE_NEEDS_WORK */ |
192 | |
193 /* A redundant copy of text.pt, in the form of a marker. Every time one | |
194 is updated, so is the other. | |
195 */ | |
1204 | 196 MARKED_SLOT (point_marker) |
428 | 197 |
198 /* FSFmacs has pt_marker, begv_marker, zv_marker here, used for | |
199 indirect buffers. We don't need them because we handle these | |
200 values directly instead of playing games with markers. */ | |
201 | |
202 /* This holds the point value before the last scroll operation. | |
203 Explicitly setting point sets this to nil. */ | |
1204 | 204 MARKED_SLOT (point_before_scroll) |
428 | 205 |
771 | 206 /* Truename of the visited file (via qxe_realpath()), |
428 | 207 or nil. */ |
1204 | 208 MARKED_SLOT (file_truename) |
428 | 209 |
210 /* Invisibility spec of this buffer. | |
211 t => any non-nil `invisible' property means invisible. | |
212 A list => `invisible' property means invisible | |
213 if it is memq in that list. */ | |
1204 | 214 MARKED_SLOT (invisibility_spec) |
428 | 215 |
216 /* The string generated by formatting the modeline in this buffer. */ | |
1204 | 217 MARKED_SLOT (generated_modeline_string) |
428 | 218 |
5214
0b4d355771bd
Import buffer-display-count, buffer-display-time; thank you, Jeff Sparkes.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1204
diff
changeset
|
219 /* Incremented each time a buffer is displayed using set-window-buffer. */ |
0b4d355771bd
Import buffer-display-count, buffer-display-time; thank you, Jeff Sparkes.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1204
diff
changeset
|
220 MARKED_SLOT (display_count) |
0b4d355771bd
Import buffer-display-count, buffer-display-time; thank you, Jeff Sparkes.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1204
diff
changeset
|
221 |
0b4d355771bd
Import buffer-display-count, buffer-display-time; thank you, Jeff Sparkes.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1204
diff
changeset
|
222 /* Last time this buffer was displayed using set-window-buffer. */ |
0b4d355771bd
Import buffer-display-count, buffer-display-time; thank you, Jeff Sparkes.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1204
diff
changeset
|
223 MARKED_SLOT (display_time) |
0b4d355771bd
Import buffer-display-count, buffer-display-time; thank you, Jeff Sparkes.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1204
diff
changeset
|
224 |
428 | 225 /* A hash table that maps from a "generic extent" (an extent in |
226 `modeline-format') into a buffer-specific extent. */ | |
1204 | 227 MARKED_SLOT (modeline_extent_table) |
428 | 228 |
229 #ifndef BUFFER_SLOTS_LAST_NAME | |
230 #define BUFFER_SLOTS_LAST_NAME modeline_extent_table | |
231 #endif | |
232 | |
617 | 233 #undef MARKED_SLOT |