Mercurial > hg > xemacs-beta
annotate etc/Emacs.ad @ 5146:88bd4f3ef8e4
make lrecord UID's have a separate UID space for each object, resurrect debug SOE code in extents.c
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-03-15 Ben Wing <ben@xemacs.org>
* alloc.c:
* alloc.c (c_readonly):
* alloc.c (deadbeef_memory):
* alloc.c (make_compiled_function):
* alloc.c (make_button_data):
* alloc.c (make_motion_data):
* alloc.c (make_process_data):
* alloc.c (make_timeout_data):
* alloc.c (make_magic_data):
* alloc.c (make_magic_eval_data):
* alloc.c (make_eval_data):
* alloc.c (make_misc_user_data):
* alloc.c (noseeum_make_marker):
* alloc.c (ADDITIONAL_FREE_string):
* alloc.c (common_init_alloc_early):
* alloc.c (init_alloc_once_early):
* bytecode.c (print_compiled_function):
* bytecode.c (mark_compiled_function):
* casetab.c:
* casetab.c (print_case_table):
* console.c:
* console.c (print_console):
* database.c (print_database):
* database.c (finalize_database):
* device-msw.c (sync_printer_with_devmode):
* device-msw.c (print_devmode):
* device-msw.c (finalize_devmode):
* device.c:
* device.c (print_device):
* elhash.c:
* elhash.c (print_hash_table):
* eval.c (print_multiple_value):
* eval.c (mark_multiple_value):
* events.c (deinitialize_event):
* events.c (print_event):
* events.c (event_equal):
* extents.c:
* extents.c (soe_dump):
* extents.c (soe_insert):
* extents.c (soe_delete):
* extents.c (soe_move):
* extents.c (extent_fragment_update):
* extents.c (print_extent_1):
* extents.c (print_extent):
* extents.c (vars_of_extents):
* frame.c:
* frame.c (print_frame):
* free-hook.c:
* free-hook.c (check_free):
* glyphs.c:
* glyphs.c (print_image_instance):
* glyphs.c (print_glyph):
* gui.c:
* gui.c (copy_gui_item):
* hash.c:
* hash.c (NULL_ENTRY):
* hash.c (KEYS_DIFFER_P):
* keymap.c (print_keymap):
* keymap.c (MARKED_SLOT):
* lisp.h:
* lrecord.h:
* lrecord.h (LISP_OBJECT_UID):
* lrecord.h (set_lheader_implementation):
* lrecord.h (struct old_lcrecord_header):
* lstream.c (print_lstream):
* lstream.c (finalize_lstream):
* marker.c (print_marker):
* marker.c (marker_equal):
* mc-alloc.c (visit_all_used_page_headers):
* mule-charset.c:
* mule-charset.c (print_charset):
* objects.c (print_color_instance):
* objects.c (print_font_instance):
* objects.c (finalize_font_instance):
* opaque.c (print_opaque):
* opaque.c (print_opaque_ptr):
* opaque.c (equal_opaque_ptr):
* print.c (internal_object_printer):
* print.c (enum printing_badness):
* rangetab.c (print_range_table):
* rangetab.c (range_table_equal):
* specifier.c (print_specifier):
* specifier.c (finalize_specifier):
* symbols.c:
* symbols.c (print_symbol_value_magic):
* tooltalk.c:
* tooltalk.c (print_tooltalk_message):
* tooltalk.c (print_tooltalk_pattern):
* window.c (print_window):
* window.c (debug_print_window):
(1) Make lrecord UID's have a separate UID space for each object.
Otherwise, with 20-bit UID's, we rapidly wrap around, especially
when common objects like conses and strings increment the UID value
for every object created. (Originally I tried making two UID spaces,
one for objects that always print readably and hence don't display
the UID, and one for other objects. But certain objects like markers
for which a UID is displayed are still generated rapidly enough that
UID overflow is a serious issue.) This also has the advantage of
making UID values smaller, hence easier to remember -- their main
purpose is to make it easier to keep track of different objects of
the same type when debugging code. Make sure we dump lrecord UID's
so that we don't have problems with pdumped and non-dumped objects
having the same UID.
(2) Display UID's consistently whenever an object (a) doesn't
consistently print readably (objects like cons and string, which
always print readably, can't display a UID), and (b) doesn't
otherwise have a unique property that makes objects of a
particular type distinguishable. (E.g. buffers didn't and still
don't print an ID, but the buffer name uniquely identifies the
buffer.) Some types, such as event, extent, compiled-function,
didn't always (or didn't ever) display an ID; others (such as
marker, extent, lstream, opaque, opaque-ptr, any object using
internal_object_printer()) used to display the actual machine
pointer instead.
(3) Rename NORMAL_LISP_OBJECT_UID to LISP_OBJECT_UID; make it work
over all Lisp objects and take a Lisp object, not a struct pointer.
(4) Some misc cleanups in alloc.c, elhash.c.
(5) Change code in events.c that "deinitializes" an event so that
it doesn't increment the event UID counter in the process. Also
use deadbeef_memory() to overwrite memory instead of doing the same
with custom code. In the process, make deadbeef_memory() in
alloc.c always available, and delete extraneous copy in mc-alloc.c.
Also capitalize all uses of 0xDEADBEEF. Similarly in elhash.c
call deadbeef_memory().
(6) Resurrect "debug SOE" code in extents.c. Make it conditional
on DEBUG_XEMACS and on a `debug-soe' variable, rather than on
SOE_DEBUG. Make it output to stderr, not stdout.
(7) Delete some custom print methods that were identical to
external_object_printer().
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 15 Mar 2010 16:35:38 -0500 |
parents | ea7a6c12df45 |
children | 388762703a21 |
rev | line source |
---|---|
428 | 1 ! This is the app-defaults file for XEmacs. |
2 ! | |
1389 | 3 ! This used to be identical to sample.Xresources, but the resources |
428 | 4 ! below have been rewritten to be as general as possible to avoid |
5 ! overriding user resources. Other than the form rewriting, both | |
6 ! files should be kept in sync. | |
7 ! | |
8 ! The resources below are loaded into the XEmacs executable at compile-time: | |
9 ! changes to .../etc/Emacs.ad made after XEmacs has been built will have no | |
10 ! effect. | |
11 ! | |
4798
ea7a6c12df45
Change /usr/lib/X11 paths to /usr/share/X11. See xemacs-patches message with
Jerry James <james@xemacs.org>
parents:
1389
diff
changeset
|
12 ! However, you may copy .../etc/Emacs.ad to /usr/share/X11/app-defaults/Emacs |
428 | 13 ! (or whatever the standard app-defaults directory is at your site) to cause |
14 ! it to be consulted at run-time. (Do this only for site-wide customizations: | |
1389 | 15 ! personal customizations should be put into ~/.Xresources instead.) |
428 | 16 ! Note that the file must be named Emacs, not XEmacs. |
17 ! | |
18 ! See the NEWS file (C-h n) or XEmacs manual (C-h i) for a description of | |
19 ! the various resources and the syntax for setting them. | |
20 | |
21 | |
22 ! Colors and backgrounds. | |
23 ! ====================== | |
24 ! The contrasts of these colors will cause them to map to the appropriate | |
25 ! one of "black" or "white" on monochrome systems. | |
26 ! | |
27 ! The valid color names on your system can be found by looking in the file | |
28 ! `rgb.txt', usually found in /usr/lib/X11/ or /usr/openwin/lib/X11/. | |
29 | |
30 ! Set the modeline colors. | |
31 !Emacs.modeline*attributeForeground: Black | |
32 !Emacs.modeline*attributeBackground: Gray75 | |
33 | |
34 ! Set the color of the text cursor. | |
35 !Emacs.text-cursor*attributeBackground: Red3 | |
36 | |
37 ! If you want to set the color of the mouse pointer, do this: | |
38 ! Emacs.pointer*attributeForeground: Black | |
39 ! If you want to set the background of the mouse pointer, do this: | |
40 ! Emacs.pointer*attributeBackground: White | |
41 ! Note that by default, the pointer foreground and background are the same | |
42 ! as the default face. | |
43 | |
44 ! Set the menubar colors. This overrides the default foreground and | |
45 ! background colors specified above. | |
46 *menubar*Foreground: Gray30 | |
47 *menubar*Background: Gray80 | |
48 ! This is for buttons in the menubar. | |
49 ! Yellow would be better, but that would map to white on monochrome. | |
50 *menubar*buttonForeground: Blue | |
51 *XlwMenu*highlightForeground: Red | |
52 *XlwMenu*titleForeground: Maroon | |
53 *XlwMenu*selectColor: ForestGreen | |
54 *XmToggleButton*selectColor: ForestGreen | |
55 | |
56 ! Specify the colors of popup menus. | |
57 *popup*Foreground: Black | |
58 *popup*Background: Gray80 | |
59 | |
60 ! Specify the colors of the various sub-widgets of the dialog boxes. | |
61 *dialog*Foreground: Black | |
62 ! #A5C0C1 is a shade of blue | |
63 *dialog*Background: #A5C0C1 | |
64 ! The following three are for Motif dialog boxes ... | |
65 *dialog*XmTextField*Background: WhiteSmoke | |
66 *dialog*XmText*Background: WhiteSmoke | |
67 *dialog*XmList*Background: WhiteSmoke | |
68 ! While this one is for Athena dialog boxes. | |
69 *dialog*Command*Background: WhiteSmoke | |
70 | |
71 ! Xlw Scrollbar colors | |
72 *XlwScrollBar*Foreground: Gray30 | |
73 *XlwScrollBar*Background: Gray80 | |
74 *XmScrollBar*Foreground: Gray30 | |
75 *XmScrollBar*Background: Gray80 | |
76 | |
77 ! | |
78 ! The Lucid Scrollbar supports two added resources, SliderStyle is either | |
79 ! "plain" (default) or "dimple". Dimple puts a small dimple in the middle | |
80 ! of the slider that depresses when the slider is clicked on. ArrowPosition is | |
81 ! either "opposite" (default) or "same". Opposite puts the arrows at opposite | |
82 ! of the scrollbar, same puts both arrows at the same end, like the Amiga. | |
83 ! | |
84 ! Emacs*XlwScrollBar.SliderStyle: dimple | |
85 ! Emacs*XlwScrollBar.ArrowPosition: opposite | |
86 | |
87 | |
88 ! | |
89 ! If you want to turn off a toolbar, set its height or width to 0. | |
90 ! The correct size value is not really arbitrary. We only control it | |
91 ! this way in order to avoid excess frame resizing when turning the | |
92 ! toolbars on and off. | |
93 ! | |
94 ! To change the heights and widths of the toolbars: | |
95 ! | |
96 ! Emacs.topToolBarHeight: 37 | |
97 ! Emacs.bottomToolBarHeight: 0 | |
98 ! Emacs.leftToolBarWidth: 0 | |
99 ! Emacs.rightToolBarWidth: 0 | |
100 | |
101 !*topToolBarShadowColor: Gray90 | |
102 !*bottomToolBarShadowColor: Gray40 | |
103 !*backgroundToolBarColor: Gray80 | |
104 *toolBarShadowThickness: 2 | |
105 | |
106 | |
107 ! If you want to turn off vertical scrollbars, or change the default | |
108 ! pixel width of the vertical scrollbars, do it like this (0 width | |
109 ! means no vertical scrollbars): | |
110 ! | |
111 ! Emacs.scrollBarWidth: 0 | |
112 ! | |
113 ! To change it for a particular frame, do this: | |
114 ! | |
115 ! Emacs*FRAME-NAME.scrollBarWidth: 0 | |
116 | |
117 | |
118 ! If you want to turn off horizontal scrollbars, or change the default | |
119 ! pixel height of the horizontal scrollbars, do it like this (0 height | |
120 ! means no horizontal scrollbars): | |
121 ! | |
122 ! Emacs.scrollBarHeight: 0 | |
123 ! | |
124 ! To change it for a particular frame, do this: | |
125 ! | |
126 ! Emacs*FRAME-NAME.scrollBarHeight: 0 | |
127 | |
128 | |
129 ! To dynamically change the labels used for menubar buttons... | |
130 ! | |
131 ! Emacs*XlwMenu.resourceLabels: True | |
132 ! Emacs*XlwMenu.newFrame.labelString: Open Another Window | |
133 | |
134 ! To have the Motif scrollbars on the left instead of the right, do this: | |
135 ! | |
136 ! Emacs*scrollBarPlacement: BOTTOM_LEFT | |
137 ! | |
138 ! To have the Athena scrollbars on the right, use `BOTTOM_RIGHT' instead | |
139 | |
140 ! To have Motif scrollbars act more like Xt scrollbars... | |
141 ! | |
142 ! Emacs*XmScrollBar.translations: #override \n\ | |
143 ! <Btn1Down>: PageDownOrRight(0) \n\ | |
144 ! <Btn3Down>: PageUpOrLeft(0) | |
145 | |
146 ! Fonts. | |
147 ! ====== | |
148 ! XEmacs requires the use of XLFD (X Logical Font Description) format font | |
149 ! names, which look like | |
150 ! | |
151 ! *-courier-medium-r-*-*-*-120-*-*-*-*-*-* | |
152 ! | |
153 ! if you use any of the other, less strict font name formats, some of which | |
154 ! look like | |
155 ! lucidasanstypewriter-12 | |
156 ! and fixed | |
157 ! and 9x13 | |
158 ! | |
159 ! then XEmacs won't be able to guess the names of the bold and italic versions. | |
160 ! All X fonts can be referred to via XLFD-style names, so you should use those | |
161 ! forms. See the man pages for X(1), xlsfonts(1), and xfontsel(1). | |
162 | |
163 | |
164 ! The default font for the text area of XEmacs is chosen at run-time | |
165 ! by lisp code which tries a number of different possibilities in order | |
166 ! of preference. If you wish to override it, use this: | |
167 ! | |
168 ! Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* | |
169 | |
170 ! If you choose a font which does not have an italic version, you can specify | |
171 ! some other font to use for it here: | |
172 ! | |
173 ! Emacs.italic.attributeFont: -*-courier-medium-o-*-*-*-120-*-*-*-*-iso8859-* | |
174 ! | |
1099 | 175 ! If you choose a font which does not have a bold-italic version, |
176 ! you can specify some other font to use for it here: | |
177 ! | |
178 ! Emacs.bold-italic.attributeFont: -*-courier-bold-o-*-*-*-120-*-*-*-*-iso8859-* | |
179 ! | |
428 | 180 ! And here is how you would set the background color of the `highlight' face, |
181 ! but only on the screen named `debugger': | |
182 ! | |
183 ! Emacs*debugger.highlight.attributeBackground: PaleTurquoise | |
184 ! | |
185 ! See the NEWS file (C-h n) for a more complete description of the resource | |
186 ! syntax of faces. | |
187 | |
188 | |
189 ! Font of the modeline, menubar and pop-up menus. | |
190 ! Note that the menubar resources do not use the `face' syntax, since they | |
191 ! are X toolkit widgets and thus outside the domain of XEmacs proper. | |
192 ! | |
442 | 193 ! When X Font Sets are enabled with ./configure --with-xfs (eg, for |
194 ! multilingual menubars and XIM), some .font resources (those specific to | |
195 ! the Lucid widget set) are ignored in favor of .fontSet resources. This | |
196 ! example shows how to add fonts for Japanese menubars: | |
197 ! | |
198 ! *menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ | |
199 ! -*-*-*-*-*-*-*-120-*-jisx0208.1983-0 | |
200 ! | |
984 | 201 *menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* |
428 | 202 *popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* |
1042 | 203 *menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ |
204 -*-*-*-*-*-*-*-120-*-iso10646-1, \ | |
205 -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \ | |
206 -*-*-*-*-*-*-*-120-*-jisx0201.1976-0 | |
207 *popup*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ | |
208 -*-*-*-*-*-*-*-120-*-iso10646-1, \ | |
209 -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \ | |
210 -*-*-*-*-*-*-*-120-*-jisx0201.1976-0 | |
428 | 211 |
442 | 212 ! Gui elements share this font |
213 ! | |
214 Emacs.gui-element.attributeFont: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* | |
215 | |
428 | 216 ! Font in the Motif dialog boxes. |
217 ! (Motif uses `fontList' while most other things use `font' - if you don't | |
218 ! know why you probably don't want to.) | |
219 ! | |
220 *XmDialogShell*FontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* | |
221 *XmTextField*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* | |
222 *XmText*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* | |
223 *XmList*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* | |
224 | |
225 ! Font in the Athena dialog boxes. | |
226 ! I think 14-point looks nicer than 12-point. | |
227 ! Some people use 12-point anyway because you get more text, but | |
228 ! there's no purpose at all in doing this for dialog boxes. | |
229 | |
230 *Dialog*Font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-* | |
231 | |
232 ! Dialog box translations. | |
233 ! ======================= | |
234 | |
235 ! This accelerator binds <return> in a dialog box to <activate> on button1 | |
236 *dialog*button1.accelerators:#override\ | |
237 <KeyPress>Return: ArmAndActivate()\n\ | |
238 <KeyPress>KP_Enter: ArmAndActivate()\n\ | |
239 Ctrl<KeyPress>m: ArmAndActivate()\n | |
240 | |
241 ! Translations to make the TextField widget behave more like XEmacs | |
242 *XmTextField*translations: #override\n\ | |
243 !<Key>osfBackSpace: delete-previous-character()\n\ | |
244 !<Key>osfDelete: delete-previous-character()\n\ | |
245 !Ctrl<Key>h: delete-previous-character()\n\ | |
246 !Ctrl<Key>d: delete-next-character()\n\ | |
247 !Meta<Key>osfDelete: delete-previous-word()\n\ | |
248 !Meta<Key>osfBackSpace: delete-previous-word()\n\ | |
249 !Meta<Key>d: delete-next-word()\n\ | |
250 !Ctrl<Key>k: delete-to-end-of-line()\n\ | |
251 !Ctrl<Key>g: process-cancel()\n\ | |
252 !Ctrl<Key>b: backward-character()\n\ | |
253 !<Key>osfLeft: backward-character()\n\ | |
254 !Ctrl<Key>f: forward-character()\n\ | |
255 !<Key>osfRight: forward-character()\n\ | |
256 !Meta<Key>b: backward-word()\n\ | |
257 !Meta<Key>osfLeft: backward-word()\n\ | |
258 !Meta<Key>f: forward-word()\n\ | |
259 !Meta<Key>osfRight: forward-word()\n\ | |
260 !Ctrl<Key>e: end-of-line()\n\ | |
261 !Ctrl<Key>a: beginning-of-line()\n\ | |
262 !Ctrl<Key>w: cut-clipboard()\n\ | |
263 !Meta<Key>w: copy-clipboard()\n\ | |
264 <Btn2Up>: copy-primary()\n | |
265 | |
266 ! With the XEmacs typeahead it's better to not have space be bound to | |
267 ! ArmAndActivate() for buttons that appear in dialog boxes. This is | |
268 ! not 100% Motif compliant but the benefits far outweight the | |
269 ! compliancy problem. | |
270 *dialog*XmPushButton*translations:#override\n\ | |
271 <Btn1Down>: Arm()\n\ | |
272 <Btn1Down>,<Btn1Up>: Activate()\ | |
273 Disarm()\n\ | |
274 <Btn1Down>(2+): MultiArm()\n\ | |
275 <Btn1Up>(2+): MultiActivate()\n\ | |
276 <Btn1Up>: Activate()\ | |
277 Disarm()\n\ | |
278 <Key>osfSelect: ArmAndActivate()\n\ | |
279 <Key>osfActivate: ArmAndActivate()\n\ | |
280 <Key>osfHelp: Help()\n\ | |
281 ~Shift ~Meta ~Alt <Key>Return: ArmAndActivate()\n\ | |
282 <EnterWindow>: Enter()\n\ | |
283 <LeaveWindow>: Leave()\n | |
284 | |
442 | 285 ! Native Widget translations |
286 ! ======================= | |
287 Emacs*Text*translations: #override\n\ | |
288 <Btn1Down>: widget-focus-in() select-start()\n | |
289 | |
428 | 290 ! XIM input method style |
291 ! ======================= | |
292 | |
293 ! ximStyles is a (whitespace or comma-separated) list of XIMStyles in | |
294 ! order of user's preference. | |
295 ! Choose a subset of the following styles or reorder to taste | |
296 *ximStyles: XIMPreeditPosition|XIMStatusArea\ | |
297 XIMPreeditPosition|XIMStatusNothing\ | |
298 XIMPreeditPosition|XIMStatusNone\ | |
299 XIMPreeditNothing|XIMStatusArea\ | |
300 XIMPreeditNothing|XIMStatusNothing\ | |
301 XIMPreeditNothing|XIMStatusNone\ | |
302 XIMPreeditNone|XIMStatusArea\ | |
303 XIMPreeditNone|XIMStatusNothing\ | |
304 XIMPreeditNone|XIMStatusNone | |
305 | |
306 ! XIM Preedit and Status foreground and background | |
307 *EmacsFrame.ximForeground: black | |
308 *EmacsFrame.ximBackground: white | |
309 | |
310 ! XIM fontset (defaults to system fontset default) | |
311 ! *EmacsFrame.FontSet: -dt-interface user-medium-r-normal-s*-*-*-*-*-*-*-*-* |