comparison src/ChangeLog @ 5495:1f0b15040456

Merge.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 01 May 2011 18:44:03 +0100
parents 861f2601a38b 159face738c3
children eb4eeec50f25
comparison
equal deleted inserted replaced
5494:861f2601a38b 5495:1f0b15040456
1 2011-05-01 Aidan Kehoe <kehoea@parhasard.net>
2
3 * lread.c (parse_integer):
4 GMP's mpz_set_string deals with a leading plus badly, make sure it
5 never sees one coming from this function.
6
7 2010-12-31 Mike Kupfer <mike.kupfer@xemacs.org>
8
9 * redisplay.c (pixel_to_glyph_translation):
10 Handle redisplay edge case.
11 With motion events when entering a frame and the minibuffer is
12 active, row and column can be zero, and there aren't any runes.
13
14 2011-04-30 Stephen J. Turnbull <stephen@xemacs.org>
15
16 * specifier.c (Fspecifier_matching_instance):
17 Add comment about backward-incompatibility of MATCHSPEC.
18
19 2011-04-29 Stephen J. Turnbull <stephen@xemacs.org>
20
21 * XEmacs 21.5.31 "ginger" is released.
22
23 2011-04-26 Stephen J. Turnbull <stephen@xemacs.org>
24
25 * XEmacs 21.5.30 "garlic" is released.
26
27 2011-04-23 Aidan Kehoe <kehoea@parhasard.net>
28
29 * editfns.c:
30 * editfns.c (syms_of_editfns):
31 Implement #'char= in cl-extra.el, not here, accepting more than
32 two arguments as Common Lisp specifies.
33
34 2011-04-17 Jeff Sparkes <jsparkes@gmail.com>
35
36 * device-tty.c (tty_device_system_metrics): Fix compile issues for
37 C89 compilers. Use log() instead of log2().
38
39 2011-04-04 Aidan Kehoe <kehoea@parhasard.net>
40
41 * fns.c (count_with_tail):
42 This can be legitimately called from #'delete* with a specified
43 COUNT keyword value, accept this in the assertion.
44 * fns.c (FdeleteX):
45 * fns.c (FremoveX):
46 If COUNT is specified and FROM-END is non-nil, set COUNT to nil in
47 the argument vector, so count_with_tail doesn't see it when
48 calculating the total number of times an item occurs. Fixes
49 problems with the interaction of :count and :from-end.
50
51 2011-04-04 Aidan Kehoe <kehoea@parhasard.net>
52
53 * fns.c (FremoveX):
54 * fns.c (sublis):
55 Correct some nesting of GCPRO and UNGCPRO here, revealed by the
56 the C++ build compiling core Lisp. Thank you Mats' buildbot!
57
58 2011-04-04 Aidan Kehoe <kehoea@parhasard.net>
59
60 * lisp.h (GC_EXTERNAL_LIST_LOOP_3, GC_EXTERNAL_LIST_LOOP_4): New.
61 * fns.c (count_with_tail, list_position_cons_before, FassocX):
62 * fns.c (FrassocX, position, FdeleteX, FremoveX):
63 * fns.c (list_delete_duplicates_from_end):
64 * fns.c (Fdelete_duplicates, Fremove_duplicates, Freduce):
65 * fns.c (Fnsubstitute, Fsubstitute, sublis, nsublis, Fnsublis):
66 * fns.c (venn, nvenn, Funion, Fset_exclusive_or, Fnset_exclusive_or):
67 Use GC_EXTERNAL_LIST_LOOP_* in the sequence functions in fns.c
68 where appropriate, there were some corner cases where my old
69 approach was unsafe (mainly if the circularity checking's tortoise
70 lost GCPRO protection.
71 Add GC_EXTERNAL_LIST_LOOP_{3,4}, analogous to
72 GC_EXTERNAL_LIST_LOOP_2.
73
74 2011-03-28 Jeff Sparkes <jsparkes@gmail.com>
75
76 * console-tty-impl.h (struct tty_console): Add field for number of
77 displayable colors.
78 * device-tty.c (tty_device_system_metrics): Return metrics for
79 num-color-cells and num-bit-planes. Tracker issue 757.
80 * device.c: There are two required args for device-system-metric.
81 * redisplay-tty.c (init_tty_for_redisplay): Retrieve number of
82 colors from terminal description. Default to 2 if none found.
83
84 2011-03-24 Jerry James <james@xemacs.org>
85
86 * alloc.c (listu): Assemble the list in the right order so we don't
87 have to reverse it.
88 (listn): Ditto.
89 * dired.c (Ffile_attributes): Use listn instead of building an array
90 to pass to Flist. GC protect the mode string.
91 * editfns.c (Fdecode_time): Use listn instead of Flist.
92 * faces.c (vars_of_faces): Use listu instead of Flist.
93
94 2011-03-24 Jerry James <james@xemacs.org>
95
96 * README.kkcc: "occured" -> "occurred".
97 * alloc.c (malloced_storage_size): "supress" -> "suppress".
98 * buffer.c: "intial" -> "initial".
99 * elhash.c (Fdefine_hash_table_test): "analagous" -> "analogous".
100 * emacs.c: "targetting" -> "targeting".
101 (shut_down_emacs): "recurrance" -> "reoccurrence".
102 * event-stream.c: "accidentaly" -> "accidentally", and fix grammar.
103 * extents.c: "occuring" -> "occurring".
104 * faces.c (update_face_cachel_data): "appart" -> "apart", "begining"
105 -> "beginning".
106 * file-coding.c (Vkeyboard_coding_system): "interpet" -> "interpret".
107 * fileio.c (Fmake_temp_name): "analagous" -> "analogous".
108 * fontcolor-gtk.c: "sucess" -> "success".
109 * frame-gtk.c (gtk_init_frame_2): "carefull" -> "careful", fix
110 whitespace.
111 * frame.c: "negotation" -> "negotiation".
112 * glyphs-msw.c (mswindows_map_subwindow): "everytime" -> "every time".
113 * glyphs-widget.c: "accomodate" -> "accommodate".
114 (logical_unit_height): Ditto.
115 (Fwidget_logical_to_character_height): Ditto.
116 * gtk-xemacs.c (__nuke_background_items): "noticable" -> "noticeable".
117 * menubar-gtk.c: "inital" -> "initial".
118 * mule-ccl.c: "refered" -> "referred to".
119 * nt.c (mswindows_stat): "noticable" -> "noticeable".
120 * ntheap.c (recreate_heap): "commited" -> "committed".
121 * s/cygwin32.h: "konw" -> "know".
122 * sysdll.c: "dependant" -> "dependent".
123 * syswindows.h: "targetting" -> "targeting".
124 * text.c: "reversable" -> "reversible".
125 * unexcw.c (copy_executable_and_dump_data_section): "addres" ->
126 "address".
127 * unicode.c (Funicode_precedence_list): "occurrance" -> "occurrence".
128 * window.c (struct window_mirror_stats): "Ancilliary" -> "Ancillary".
129
130 2011-03-20 Mats Lidell <matsl@xemacs.org>
131
132 * alloca.c (find_stack_direction):
133 * alloca.c (xemacs_c_alloca):
134 Remove use of auto keyword. It is default and will be illegal in
135 C++0X.
136
137 2011-03-17 Didier Verna <didier@xemacs.org>
138
139 * data.c (init_errors_once_early): Define Qextent_read_only error.
140 * lisp.h: Declare it.
141 * extents.c (verify_extent_mapper): Signal an extent-read-only
142 error instead of a buffer-read-only one.
143
144 2011-03-15 Aidan Kehoe <kehoea@parhasard.net>
145
146 * config.h.in (SUPPORT_CONFOUNDING_FUNCTIONS): New #define,
147 equivalent NEED_TO_HANDLE_21_4_CODE by default, describing whether
148 this XEmacs should support the old-eq, old-equal and related
149 functions and byte codes.
150 * bytecode.c (UNUSED):
151 Only interpret old-eq, old-equal, old-memq if
152 SUPPORT_CONFOUNDING_FUNCTIONS is defined.
153 * data.c:
154 Move Fold_eq to fns.c with the rest of the Fold_* functions.
155 * fns.c:
156 * fns.c (Fmemq):
157 * fns.c (memq_no_quit):
158 * fns.c (assoc_no_quit):
159 * fns.c (Frassq):
160 * fns.c (Fequal):
161 * fns.c (Fold_equal):
162 * fns.c (syms_of_fns):
163 Group old-eq, old-equal, old-memq etc together, surround them with
164 #ifdef SUPPORT_CONFOUNDING_FUNCTIONS.
165
166 2011-03-14 Aidan Kehoe <kehoea@parhasard.net>
167
168 * glyphs-eimage.c (png_instantiate):
169 Update the PNG handling code to work with versions of the library
170 where the png_info structure is no longer visible. Thank you for
171 the report, Robert Delius Royar.
172
173 2011-03-12 Aidan Kehoe <kehoea@parhasard.net>
174
175 * event-stream.c (Fdispatch_event):
176 As documented, allow pre-command-hook to usefully modify
177 this-command even when this-command is nil (that is, we would
178 normally throw an undefined-keystroke-sequence error). Don't throw
179 that error if this-command was modified, instead try to execute
180 the new value.
181 Allow pre-command-hook to modify last-command-event in this
182 specific context. Don't document this, for the moment.
183
184 2011-03-11 Aidan Kehoe <kehoea@parhasard.net>
185
186 * bytecode.c (optimize_byte_code):
187 Only transform assignments to keywords to Bdiscard if
188 NEED_TO_HANDLE_21_4_CODE is turned on. Cf. similar code in
189 reject_constant_symbols().
190
191 2011-02-24 Aidan Kehoe <kehoea@parhasard.net>
192
193 * fns.c (Fsubstring_no_properties):
194 Sigh, get_string_range_char checks the type of its START and END
195 arguments, but doesn't check the type of its STRING
196 argument. Thank you Raymond Toy!
197
198 2011-02-19 Aidan Kehoe <kehoea@parhasard.net>
199
200 * fns.c (Fset_exclusive_or):
201 This function accepts the :stable keyword too, document this in
202 its arglist.
203
204 2011-02-16 Aidan Kehoe <kehoea@parhasard.net>
205
206 * xemacs.def.in.in:
207 No longer export acons(), export Facons() instead, thank you Mats,
208 Jerry and Jeff Sparkes.
209
210 2011-02-10 Aidan Kehoe <kehoea@parhasard.net>
211
212 * fns.c (shortest_length_among_sequences):
213 This was buggy, it always errored if the last argument was
214 circular, even if other arguments were non-circular. Correct that.
215
216 2011-02-09 Aidan Kehoe <kehoea@parhasard.net>
217
218 * alloc.c (Facons):
219 * alloc.c (Fobject_memory_usage):
220 * alloc.c (syms_of_alloc):
221 * faces.c (complex_vars_of_faces):
222 * lisp.h:
223 * mc-alloc.c (Fmc_alloc_memory_usage):
224 Rename acons() to Facons(), make it visible to Lisp. Change uses
225 of the function in C accordingly.
226
227 2011-02-07 Aidan Kehoe <kehoea@parhasard.net>
228
229 * keymap.c (describe_map_sort_predicate): Correct the order of
230 arguments to map_keymap_sort_predicate() here. Thanks again, Mats.
231
232 2011-02-06 Aidan Kehoe <kehoea@parhasard.net>
233
234 * symbols.c (Fapropos_internal):
235 Supply check_string_lessp_nokey explicitly as the CHECK_MERGE
236 argument to list_sort(), NULL no longer works. Thank you Mats
237 Lidell in IRC!
238
239 2011-02-05 Aidan Kehoe <kehoea@parhasard.net>
240
241 * fns.c:
242 * fns.c (check_lss_key, check_lss_key_car): New.
243 * fns.c (check_string_lessp_key check_string_lessp_key_car): New.
244 * fns.c (get_merge_predicate): New.
245 * fns.c (list_merge):
246 * fns.c (array_merge):
247 * fns.c (list_array_merge_into_list):
248 * fns.c (list_list_merge_into_array):
249 * fns.c (list_array_merge_into_array):
250 * fns.c (Fmerge):
251 * fns.c (list_sort):
252 * fns.c (array_sort):
253 * fns.c (FsortX):
254 * fns.c (syms_of_fns):
255 * lisp.h:
256 Move #'sort, #'merge to using the same test approach as is used in
257 the functions that take TEST, TEST-NOT and KEY arguments. This
258 allows us to avoid the Ffuncall() overhead when the most common
259 PREDICATE arguments are supplied, in particular #'< and
260 #'string-lessp.
261
262 * fontcolor-msw.c (sort_font_list_function):
263 * fontcolor-msw.c (mswindows_enumerate_fonts):
264 * dired.c:
265 * dired.c (Fdirectory_files):
266 * fileio.c:
267 * fileio.c (build_annotations):
268 * fileio.c (syms_of_fileio):
269 * keymap.c:
270 * keymap.c (keymap_submaps):
271 * keymap.c (map_keymap_sort_predicate):
272 * keymap.c (describe_map_sort_predicate):
273 * keymap.c (describe_map):
274 Change the various C predicates passed to list_sort () and
275 list_merge () to fit the new calling convention, returning
276 non-zero if the first argument is less than the second, zero
277 otherwise.
278
279 2011-01-30 Michael Sperber <mike@xemacs.org>
280
281 * redisplay.h:
282 * redisplay.c:
283 (redisplay_cancel_ritual_suicide):
284 * eval.c (throw_or_bomb_out_unsafe):
285 * device-x.c (x_IO_error_handler): Don't commit suicide when an X
286 device dies.
287
288 2011-01-23 Aidan Kehoe <kehoea@parhasard.net>
289
290 * file-coding.c (complex_vars_of_file_coding):
291 * intl-win32.c (complex_vars_of_intl_win32):
292 * profile.c (Fget_profiling_info):
293 * unicode.c (complex_vars_of_unicode):
294 Replace various awkward calls to nconc2 () with list6 () with
295 analogous calls to Ben's relatively-recently introduced listu (),
296 constructing a list from an arbitrary number of C arguments.
297
298 2011-01-18 Mike Sperber <mike@xemacs.org>
299
300 * s/freebsd.h: Zap. Not really needed anymore, and it has unclear
301 license status.
302
303 2011-01-15 Aidan Kehoe <kehoea@parhasard.net>
304
305 * s/usg5-4.h (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF):
306 That didn't work; attempt with qxestrcpy_ascii(),
307 qxestrncpy_ascii().
308
309 2011-01-14 Aidan Kehoe <kehoea@parhasard.net>
310
311 * s/hpux11.h (PTY_TTY_NAME_SPRINTF, PTY_NAME_SPRINTF):
312 * s/usg5-4.h (PTY_TTY_NAME_SPRINTF, PTY_NAME_SPRINTF):
313 Replace sprintf() with qxesprintf(), strcpy with qxestrpy(),
314 hopefully fixing some platform-specific C++ builds.
315
316 2011-01-14 Aidan Kehoe <kehoea@parhasard.net>
317
318 * fns.c (Ffind): Use the correct subr information here, pass in
319 the DEFAULT keyword argument value correctly.
320
321 2011-01-11 Aidan Kehoe <kehoea@parhasard.net>
322
323 * device-msw.c (Fmswindows_printer_list): Remove a Fdelete ()
324 call here, remove the necessity for it.
325 * fns.c (Fdelete, Fdelq):
326 * lisp.h:
327 Move #'delete, #'delq to Lisp, implemented in terms of #'delete*
328 * select.c (Fown_selection_internal):
329 * select.c (handle_selection_clear):
330 Use delq_no_quit() in these functions, don't reimplement it or use
331 Fdelq(), which is now gone.
332
333 2011-01-10 Aidan Kehoe <kehoea@parhasard.net>
334
335 * mc-alloc.c (get_used_list_index):
336 Replace some C++ comments with C-style /* comments.
337
338 2011-01-02 Aidan Kehoe <kehoea@parhasard.net>
339
340 * fns.c (FdeleteX, FremoveX, Fnsubstitute, Fsubstitute, syms_of_fns):
341 Don't repeat the declaration and DEFSYMBOL() for Qnintersection in
342 this file; don't assume that bignums are always available. Fixes
343 some of the build problems the buildbot is showing me at the
344 moment.
345 (syms_of_fns): Remove a couple more duplicate symbol declarations.
346
347 2011-01-01 Aidan Kehoe <kehoea@parhasard.net>
348
349 * data.c (print_ephemeron, print_weak_list, print_weak_box):
350 Be more helpful in printing these structures; show their contents,
351 print their UIDs so it's possible to distinguish between them.
352
353 2010-12-30 Aidan Kehoe <kehoea@parhasard.net>
354
355 Move the heavy lifting from cl-seq.el to C, finally making those
356 functions first-class XEmacs citizens, with circularity checking,
357 built-in support for tests other than #'eql, and as much
358 compatibility with current Common Lisp as Paul Dietz' tests require.
359
360 * fns.c (check_eq_nokey, check_eq_key, check_eql_nokey)
361 (check_eql_key, check_equal_nokey, check_equal_key)
362 (check_equalp_nokey, check_equalp_key, check_string_match_nokey)
363 (check_string_match_key, check_other_nokey, check_other_key)
364 (check_if_nokey, check_if_key, check_match_eq_key)
365 (check_match_eql_key, check_match_equal_key)
366 (check_match_equalp_key, check_match_other_key): New. These are
367 basically to provide function pointers to be used by Lisp
368 functions that take TEST, TEST-NOT and KEY arguments.
369
370 (get_check_match_function_1, get_check_test_function)
371 (get_check_match_function): These functions work out which of the
372 previous list of functions to use, given the keywords supplied by
373 the user.
374
375 (count_with_tail): New. This is the bones of #'count.
376 (list_count_from_end, string_count_from_end): Utility functions
377 for #'count.
378 (Fcount): New, moved from cl-seq.el.
379 (list_position_cons_before): New. The implementation of #'member*,
380 and important in implementing various other functions.
381
382 (FmemberX, Fadjoin, FassocX, FrassocX, Fposition, Ffind)
383 (FdeleteX, FremoveX, Fdelete_duplicates, Fremove_duplicates)
384 (Fnsubstitute, Fsubstitute, Fsublis, Fnsublis, Fsubst, Fnsubst)
385 (Ftree_equal, Fmismatch, Fsearch, Fintersection, Fnintersection)
386 (Fsubsetp, Fset_difference, Fnset_difference, Fnunion, Funion)
387 (Fset_exclusive_or, Fnset_exclusive_or): New, moved here from
388 cl-seq.el.
389
390 (position): New. The implementation of #'find and #'position.
391 (list_delete_duplicates_from_end, subst, sublis, nsublis)
392 (tree_equal, mismatch_from_end, mismatch_list_list)
393 (mismatch_list_string, mismatch_list_array)
394 (mismatch_string_array, mismatch_string_string)
395 (mismatch_array_array, get_mismatch_func): Helper C functions for
396 the Lisp-visible functions.
397 (venn, nvenn): New. The implementation of the main Lisp functions that
398 treat lists as sets.
399
400 2010-12-30 Aidan Kehoe <kehoea@parhasard.net>
401
402 * lisp.h (DECLARE_N_KEYWORDS_8, DECLARE_N_KEYWORDS_9)
403 (CHECK_N_KEYWORDS_8, CHECK_N_KEYWORDS_9):
404 Support up to nine keywords in the PARSE_KEYWORDS() macro.
405
406 2010-12-30 Aidan Kehoe <kehoea@parhasard.net>
407
408 * elhash.c (syms_of_elhash):
409 * chartab.c (syms_of_chartab):
410 * abbrev.c (syms_of_abbrev):
411 * general-slots.h:
412 Move Qcount, Q_default, Q_test to general-slots.h, they're about
413 to be used by other files. Rename Q_default to Q_default_, for the
414 sake of the PARSE_KEYWORDS macro (given that default is a reserved
415 identifier in C). Add SYMBOL_KEYWORD_GENERAL(), analogous to
416 SYMBOL_GENERAL() to make this easier.
417
418 2010-12-29 Aidan Kehoe <kehoea@parhasard.net>
419
420 * floatfns.c (Ffloat): If we've been handed a bigfloat here, it's
421 appropriate to give the same bigfloat back.
422
423 2010-11-30 Aidan Kehoe <kehoea@parhasard.net>
424
425 * fns.c (Ffill):
426 Move all declarations before statements, for the sake of the
427 Visual Studio build. Thank you Vin!
428
429 2010-11-24 Aidan Kehoe <kehoea@parhasard.net>
430
431 * font-mgr.c (Ffc_pattern_get): Fix my last change when both
432 --with-union-type and --with-xft are specified, thank you Robert
433 Delius Royar!
434
435 2010-11-20 Aidan Kehoe <kehoea@parhasard.net>
436
437 * abbrev.c (Fexpand_abbrev):
438 * alloc.c:
439 * alloc.c (Fmake_list):
440 * alloc.c (Fmake_vector):
441 * alloc.c (Fmake_bit_vector):
442 * alloc.c (Fmake_byte_code):
443 * alloc.c (Fmake_string):
444 * alloc.c (vars_of_alloc):
445 * bytecode.c (UNUSED):
446 * bytecode.c (Fbyte_code):
447 * chartab.c (decode_char_table_range):
448 * cmds.c (Fself_insert_command):
449 * data.c (check_integer_range):
450 * data.c (Fnatnump):
451 * data.c (Fnonnegativep):
452 * data.c (Fstring_to_number):
453 * elhash.c (hash_table_size_validate):
454 * elhash.c (decode_hash_table_size):
455 * eval.c (Fbacktrace_frame):
456 * event-stream.c (lisp_number_to_milliseconds):
457 * event-stream.c (Faccept_process_output):
458 * event-stream.c (Frecent_keys):
459 * event-stream.c (Fdispatch_event):
460 * events.c (Fmake_event):
461 * events.c (Fevent_timestamp):
462 * events.c (Fevent_timestamp_lessp):
463 * events.h:
464 * events.h (struct command_builder):
465 * file-coding.c (gzip_putprop):
466 * fns.c:
467 * fns.c (check_sequence_range):
468 * fns.c (Frandom):
469 * fns.c (Fnthcdr):
470 * fns.c (Flast):
471 * fns.c (Fnbutlast):
472 * fns.c (Fbutlast):
473 * fns.c (Fmember):
474 * fns.c (Ffill):
475 * fns.c (Freduce):
476 * fns.c (replace_string_range_1):
477 * fns.c (Freplace):
478 * font-mgr.c (Ffc_pattern_get):
479 * frame-msw.c (msprinter_set_frame_properties):
480 * glyphs.c (check_valid_xbm_inline):
481 * indent.c (Fmove_to_column):
482 * intl-win32.c (mswindows_multibyte_to_unicode_putprop):
483 * lisp.h:
484 * lisp.h (ARRAY_DIMENSION_LIMIT):
485 * lread.c (decode_mode_1):
486 * mule-ccl.c (ccl_get_compiled_code):
487 * number.h:
488 * process-unix.c (unix_open_multicast_group):
489 * process.c (Fset_process_window_size):
490 * profile.c (Fstart_profiling):
491 * unicode.c (Funicode_to_char):
492 Change NATNUMP to return 1 for positive bignums; changes uses of
493 it and of CHECK_NATNUM appropriately, usually by checking for an
494 integer in an appropriate range.
495 Add array-dimension-limit and use it in #'make-vector,
496 #'make-string. Add array-total-size-limit, array-rank-limit while
497 we're at it, for the sake of any Common Lisp-oriented code that
498 uses these limits.
499 Rename check_int_range to check_integer_range, have it take
500 Lisp_Objects (and thus bignums) instead.
501 Remove bignum_butlast(), just set int_n to an appropriately large
502 integer if N is a bignum.
503 Accept bignums in check_sequence_range(), change the functions
504 that use check_sequence_range() appropriately.
505 Move the definition of NATNUMP() to number.h; document why it's a
506 reasonable name, contradicting an old comment.
507
508 2010-11-17 Aidan Kehoe <kehoea@parhasard.net>
509
510 * fns.c (bignum_butlast): New.
511 (Fnbutlast, Fbutlast): Use it.
512 In #'butlast and #'nbutlast, if N is a bignum, we should always
513 return nil. Bug revealed by Paul Dietz' test suite, thank you
514 Paul.
515
516 2010-11-15 Aidan Kehoe <kehoea@parhasard.net>
517
518 * .gdbinit.in: Remove lrecord_type_popup_data,
519 lrecord_type_window_configuration from this file, they're not
520 used, and their presence breaks pobj in GDB at runtime for me.
521
522 2010-11-14 Aidan Kehoe <kehoea@parhasard.net>
523
524 * fns.c (Fnreverse):
525 Check that non-list sequences are writable from Lisp before
526 modifying them. (There's an argument that we should do this for
527 list sequences too, but for the moment other code (e.g. #'setcar)
528 doesn't.)
529 (mapcarX): Initialise lisp_vals_staging, lisp_vals_type
530 explicitly, for the sake of compile warnings. Check if
531 lisp_vals_staging is non-NULL when deciding whether to replace a
532 string's range.
533 (Fsome): Cross-reference to #'find-if in the doc string for this
534 function.
535 (Freduce): GCPRO accum in this function, when a key argument is
536 specicified it can be silently garbage-collected. When deciding
537 whether to iterate across a string, check whether the cursor
538 exceeds the byte len; while iterating, increment an integer
539 counter. Don't ABORT() if check_sequence_range() returns when
540 handed a suspicious sequence; it is legal to supply the length of
541 SEQUENCE as the :end keyword value, and this will provoke our
542 suspicions, legitimately enough. (Problems with this function
543 revealed by Paul Dietz' ANSI test suite, thank you Paul Dietz.)
544 (Freplace): Check list sequence lengths using the arguments, not
545 the conses we're currently looking at, thank you Paul Dietz.
546
547 2010-11-14 Aidan Kehoe <kehoea@parhasard.net>
548
549 * fns.c (Frandom): Correct the docstring here, the name of the
550 argument is LIMIT, not N.
551
552 2010-11-06 Aidan Kehoe <kehoea@parhasard.net>
553
554 * bytecode.c (bytecode_nreverse): Call Fnreverse() if SEQUENCE is
555 not a cons in this function.
556 (Fnreverse, Freverse):
557 Accept sequences, not just lists, in these functions.
558
559 2010-11-06 Aidan Kehoe <kehoea@parhasard.net>
560
561 * fns.c (Flist_length): Error if LIST is dotted in this function;
562 document this behaviour.
563
564 2010-10-25 Aidan Kehoe <kehoea@parhasard.net>
565
566 * specifier.c (specifier_instance_from_inst_list):
567 Call call_with_suspended_errors() with ERROR_ME_WARN, explicitly;
568 avoids the problem Giacomo Boffi describes in
569 http://mid.gmane.org/19617.52517.341117.388679@aiuole.stru.polimi.it
570 , but the specifier instantiation bug that makes XEmacs fail for
571 him is still visible.
572
573 2010-10-25 Aidan Kehoe <kehoea@parhasard.net>
574
575 * print.c (ulong_to_bit_string): If printing zero, actually print
576 a zero, don't return the empty string.
577
578 2010-07-06 Stephen J. Turnbull <stephen@xemacs.org>
579
580 * emodules.c (emodules_load):
581 Add one more dereference on f = dll_variable() in three places.
582 We then use EXTERNAL_TO_ITEXT on it, which returns an alloca'd
583 string, so I delete the unneeded alloca copy statements.
584 Fixes error reported by Anders Odberg, confirmed in
585 <rfawrpfhm3l.fsf@fangorn.uio.no>.
586
587 2010-06-14 Stephen J. Turnbull <stephen@xemacs.org>
588
589 * ui-byhand.c:
590 * gtk-glue.c:
591 Add copyright notice based on internal evidence.
592
593 2010-06-14 Stephen J. Turnbull <stephen@xemacs.org>
594
595 * number.h: Another permission consistency fix.
596
597 2010-10-14 Aidan Kehoe <kehoea@parhasard.net>
598
599 * fns.c (Fnbutlast, Fbutlast):
600 Tighten up Common Lisp compatibility for these two functions; they
601 need to operate on dotted lists without erroring.
602
603 2010-10-12 Aidan Kehoe <kehoea@parhasard.net>
604
605 * fns.c (list_merge):
606 Circularity checking here needs to be done independently for each
607 list, they can't share a loop counter. Thank you for the bug
608 report, Robert Pluim!
609
610 2010-09-20 Aidan Kehoe <kehoea@parhasard.net>
611
612 * lisp.h (GET_DEFUN_LISP_OBJECT): Make the NEW_GC version of this
613 work, remove a needless and unhelpful semicolon.
614 (GET_DEFUN_LISP_OBJECT): Remove a needless semicolon from the
615 non-NEW_GC version of this.
616 (PARSE_KEYWORDS): Fix the indentation for the DEBUG_XEMACS
617 version of this macro.
618 (PARSE_KEYWORDS): Use GET_DEFUN_LISP_OBJECT() for both the NEW_GC
619 and non-NEW_GC versions of this macro, when working out the
620 function's min args.
621
622 2010-09-18 Aidan Kehoe <kehoea@parhasard.net>
623
624 * lisp.h (PARSE_KEYWORDS):
625 Turns out #elsif is not valid preprocessor syntax, who knew!
626
627 2010-09-18 Aidan Kehoe <kehoea@parhasard.net>
628
629 * lisp.h (PARSE_KEYWORDS):
630 Correct the NEW_GC non-DEBUG_XEMACS version of this macro; under
631 such builds S##function is a pointer, not a Lisp_Subr structure.
632
633 2010-09-18 Aidan Kehoe <kehoea@parhasard.net>
634
635 Simplify the API of PARSE_KEYWORDS for callers.
636
637 * lisp.h (PARSE_KEYWORDS): Simply the API, while making the
638 implementation a little more complex; work out KEYWORDS_OFFSET
639 from the appropriate Lisp_Subr struct, take the function name as
640 the C name of the DEFUN rather than a symbol visible as a
641 Lisp_Object, on debug builds assert that we're actually in the
642 function so we choke on badly-done copy-and-pasting,
643
644 * lisp.h (PARSE_KEYWORDS_8): New. This is the old PARSE_KEYWORDS.
645
646 * fns.c (Fmerge, FsortX, Ffill, Freduce, Freplace):
647 Change to use the new PARSE_KEYWORDS syntax.
648 * elhash.c (Fmake_hash_table): Chance to the new PARSE_KEYWORDS
649 syntax, rename a define to correspond to what other files use.
650
651 * symbols.c (intern_massaging_name):
652 * buffer.c (ADD_INT):
653 Rename intern_converting_underscores_to_dashes() to
654 intern_massaging_name(), now it does a little more.
655
656 2010-09-18 Aidan Kehoe <kehoea@parhasard.net>
657
658 * termcap.c:
659 Add a couple of missing includes here, which should fix builds
660 that use this file. (I have no access to such builds, but Mats'
661 buildbot shows output that indicates they fail at link time since
662 DEVICE_BAUD_RATE and IS_DIRECTORY_SEP are available.)
663
664 2010-09-18 Aidan Kehoe <kehoea@parhasard.net>
665
666 * fns.c (Freduce):
667 Move statements outside of the braces surrounding the
668 EXTERNAL_LIST_LOOP_3 macro, fixing strict C89 builds. Thank you
669 for the report, Vin!
670
671 2010-09-16 Aidan Kehoe <kehoea@parhasard.net>
672
673 * fns.c (Flist_length): New, moved here from cl-extra.el, needed
674 by the next function.
675 (shortest_length_among_sequences): New.
676 (Fmapconcat, FmapcarX, Fmapvector, Fmapcan, Fmapc, Fmap)
677 (Fmap_into, Fsome, Fevery):
678 Use shortest_length_among_sequences() when working out how many
679 iterations to do, only giving circular list errors if all
680 arguments are circular.
681
682 2010-09-16 Aidan Kehoe <kehoea@parhasard.net>
683
684 * fns.c (Fsubseq):
685 Change the string code to better fit in with the rest of this
686 function (it still uses get_string_range_char(), though, which *may*
687 diverge algorithmically from what we're doing).
688
689 If dealing with a cons, only call #'length if we have reason to
690 believe that the START and END arguments are badly specified, and
691 check for circular lists ourselves when that's appropriate.
692
693 If dealing with a vector, call Fvector() on the appropriate subset
694 of the old vector's data directly, don't initialise the result
695 with nil and then copy.
696
697 (Ffill):
698 Only check the range arguments for a cons SEQUENCE if we have good
699 reason to think they were badly specified.
700
701 (Freduce):
702 Handle multiple values properly. Add bounds checking to this
703 function, as specificied by ANSI Common Lisp.
704
705 2010-09-16 Aidan Kehoe <kehoea@parhasard.net>
706
707 * eval.c (Ffunction, Fquote):
708 Add argument information in the arguments: () format for these two
709 special operators.
710
711 2010-09-07 Aidan Kehoe <kehoea@parhasard.net>
712
713 * fns.c (Freplace):
714 Replace an accidental double semi-colon with a single semi-colon,
715 hopefully fixing Vin's Visual Studio 6 build. (Visual Studio 2005
716 had no problem with it, oddly.)
717
718 2010-09-06 Aidan Kehoe <kehoea@parhasard.net>
719
720 Move #'replace to C; add bounds checking to it and to #'fill.
721
722 * fns.c (Fsubseq, Ffill, mapcarX):
723 Don't #'nreverse in #'subseq, use fill_string_range and check
724 bounds in #'fill, use replace_string_range() in #'map-into
725 avoiding quadratic time when modfiying the string.
726
727 * fns.c (check_sequence_range, fill_string_range)
728 (replace_string_range, replace_string_range_1, Freplace):
729 New functions; check that arguments fit sequence dimensions, fill
730 a string range with a given character, replace a string range from
731 an Ibyte pointer.
732
733 2010-09-05 Aidan Kehoe <kehoea@parhasard.net>
734
735 * chartab.c (char_table_default_for_type,
736 chartab_default_validate): New.
737 (print_char_table, Freset_char_table, chartab_default_validate)
738 (chartab_instantiate, structure_type_create_chartab):
739 Accept keyword :default in the read syntax for char tables, and
740 print the default when it is not what was expected for the
741 time. Makes it a little easier to debug things.
742
743 2010-09-05 Aidan Kehoe <kehoea@parhasard.net>
744
745 * editfns.c (Fformat_time_string):
746 Use two backslashes so that there is at least one present in the
747 output of describe function, when describing the Roman month
748 number syntax in this function's docstring. Thanks for provoking
749 me to look at this, Stephen Turnbull.
750
751 2010-09-03 Aidan Kehoe <kehoea@parhasard.net>
752
753 * symsinit.h: Declare reinit_process_early() here, fixing the C++
754 build; thank you for pointing this out, Adam Sjøgren!
755 * fontcolor-msw.c (mswindows_string_to_color):
756 Cast the result of bsearch() to a colormap_t pointer, fixing the
757 Visual Studio 2005 build.
758
759 2010-09-02 Aidan Kehoe <kehoea@parhasard.net>
760
761 * strftime.c (roman_upper, roman_lower, strftime):
762 Implement Roman month numbers, as used in central and eastern
763 Europe.
764 * editfns.c (Fformat_time_string):
765 Document two new escapes, to allow uppercase and lowercase Roman
766 month numbers. Remove documentation of a bug that we didn't
767 actually have.
768 * text.h (Qtime_function_encoding): We know the text encoding
769 coming from strftime(), because we always use the one in
770 strftime.c. Don't use Qnative.
771
772 2010-09-01 Aidan Kehoe <kehoea@parhasard.net>
773
774 * fns.c (list_merge, list_array_merge_into_list)
775 (list_array_merge_into_array):
776 Avoid algorithmic complexity surprises when checking for
777 circularity in these functions.
778 (Freduce): Fix some formatting, in passing.
779
780 (mapcarX): Drop the SOME_OR_EVERY argument to this function;
781 instead, take CALLER, a symbol reflecting the Lisp-visible
782 function that called mapcarX(). Use CALLER with
783 mapping_interaction_error() when sequences are modified
784 illegally. Don't cons with #'some, #'every, not even a little.
785 (Fmapconcat, FmapcarX, Fmapvector, Fmapcan, Fmapc, Fmap)
786 (Fmap_into, Fsome, Fevery): Call mapcarX() with its new
787 arguments.
788 (Fmapcan): Don't unnecessarily complicate the nconc call.
789
790 (maplist): Take CALLER, a symbol reflecting the Lisp-visible
791 function that called maplist(), rather than having separate
792 arguments to indicate mapl vs. mapcon.
793 Avoid algorithmic complexity surprises when checking for
794 circularity. In #'mapcon, check a given stretch of
795 result for well-formedness once, which was not previously the
796 case, despite what the comments said.
797 (Fmaplist, Fmapl, Fmapcon):
798 Call maplist() with its new arguments.
799
800 2010-09-02 Aidan Kehoe <kehoea@parhasard.net>
801
802 * process.c (process_getprop, process_putprop, process_remprop)
803 (process_plist, process_setplist, reinit_process_early):
804 Add functions to modify a process's property list.
805 * process-slots.h (MARKED_SLOT): Add a plist slot.
806
807 * fns.c (Fobject_setplist): New function, analogous to #'setplist,
808 but more general.
809 Update the documentation in the other plist functions to reflect
810 that processes now have property lists.
811 * emacs.c (main_1): Call reinit_process_early(), now processes have
812 plist methods that need to be initialised.
813 * symbols.c (reinit_symbol_objects_early): Fsetplist is the named
814 setplist method for symbols.
815
816 2010-08-30 Aidan Kehoe <kehoea@parhasard.net>
817
818 * floatfns.c (ceiling_one_mundane_arg, floor_one_mundane_arg)
819 (round_one_mundane_arg, truncate_one_mundane_arg):
820 INTEGERP is always available, no need to wrap calls to it with
821 #ifdef HAVE_BIGNUM.
822 (Fceiling, Ffloor, Fround, Ftruncate, Ffceiling, Fffloor)
823 (Ffround, Fftruncate):
824 Correct some code formatting here.
825 * doprnt.c (emacs_doprnt_1):
826 Remove some needless #ifdef WITH_NUMBER_TYPES, now number.h is
827 always #included.
828
829 2010-08-26 Adam Sjøgren <asjo@koldfront.dk>
830
831 * glyphs-eimage.c (gif_instantiate): Try harder to find an
832 appropriate GIF colormap and then flag an error if one can't be
833 found.
834
835 2010-08-21 Aidan Kehoe <kehoea@parhasard.net>
836
837 * lread.c (read_escape):
838 Make error messages better reflect the text that was encountered,
839 when overlong hex character escapes or non-Latin-1 octal character
840 escapes are encountered.
841
842 2010-08-15 Aidan Kehoe <kehoea@parhasard.net>
843
844 * print.c (print_symbol):
845 Escape any symbols that look like ratios, in the same way we do
846 symbols that look like floats or integers. Prevents confusion in
847 the Lisp reader.
848 * lread.c (isratio_string): Make this available even on builds
849 without HAVE_RATIO, so we can print symbols that look like ratios
850 with the appropriate escapes.
851 * lisp.h:
852 Make isratio_string available even if HAVE_RATIO is not defined.
853
854 2010-07-24 Aidan Kehoe <kehoea@parhasard.net>
855
856 * lisp.h (PARSE_KEYWORDS):
857 Always accept a nil :allow-other-keys keyword argument, as
858 described in the ALLOW-OTHER-KEYS-NIL Common Lisp issue writeup,
859 and as necessary for Paul Dietz' tests for #'reduce.
860
861 * fns.c (mapping_interaction_error): New.
862 (Freduce): Call mapping_interaction_error when KEY or FUNCTION
863 have modified a string SEQUENCE such that the byte length of the
864 string has changed, or such that the current cursor pointer
865 doesn't point to the beginning of a character.
866 Cf. the MAPPING-DESTRUCTIVE-INTERACTION Common Lisp issue
867 writeup.
868 When traversing a list, GCPRO the part of it we still have to
869 traverse, to avoid any crashes if FUNCTION or KEY amputate it
870 behind us and force a garbage collection.
871
872 2010-06-05 Marcus Crestani <crestani@informatik.uni-tuebingen.de>
873
874 * gc.c:
875 * mc-alloc.c:
876 Document the new allocator and the new garbage collector.
877
878 2010-06-13 Stephen J. Turnbull <stephen@xemacs.org>
879
880 * elhash.c:
881 * emacs.c:
882 * glade.c:
883 * gtk-glue.c:
884 * gtk-xemacs.c:
885 * gtk-xemacs.h:
886 * m/alpha.h:
887 * number-gmp.c:
888 * number-gmp.h:
889 * number-mp.c:
890 * number-mp.h:
891 * number.c:
892 * number.h:
893 * s/hpux11-shr.h:
894 * s/mach-bsd4-3.h:
895 * s/sco7.h:
896 * symsinit.h:
897 * ui-byhand.c:
898 * ui-gtk.c:
899 * ui-gtk.h:
900 Correct FSF address in permission notice.
901
902 2010-06-08 Aidan Kehoe <kehoea@parhasard.net>
903
904 * alloc.c (Fpurecopy):
905 Moved to obsolete.el as an alias for #'identity, marked obsolete.
906
907 2010-06-06 Aidan Kehoe <kehoea@parhasard.net>
908
909 * fns.c (Freduce):
910 Move this here from cl-seq.el, avoiding the need to cons. This
911 has been tested using Paul Dietz' test suite, and everything
912 applicable passes, with the exception that the
913 ALLOW-OTHER-KEYS-NIL Common Lisp issue (functions with &key must
914 *always* accept :allow-other-keys nil) hasn't been implemented.
915
916 2010-06-02 Aidan Kehoe <kehoea@parhasard.net>
917
918 * lread.c (vars_of_lread):
919 * emacs.c:
920 (shut_down_emacs, vars_of_emacs, complex_vars_of_emacs):
921 * device-x.c (get_device_from_display)
922 (have_xemacs_resources_in_xrdb):
923 * device-gtk.c (Fgtk_init):
924 * config.h.in:
925 Remove all checks for InfoDock.
926
927 2010-06-01 Aidan Kehoe <kehoea@parhasard.net>
928
929 * fns.c (Fsubstring_no_properties):
930 Add this function, API taken from GNU, though ours drops all
931 extent data, not just properties.
932
933 2010-06-01 Aidan Kehoe <kehoea@parhasard.net>
934
935 * glyphs.c (syms_of_glyphs):
936 Remove the definition of Q_data from this file, now it's in
937 general-slots.h. Problem picked up by a C++ build.
938
939 2010-05-31 Aidan Kehoe <kehoea@parhasard.net>
940
941 * rangetab.c (print_range_table, rangetab_instantiate)
942 (structure_type_create_rangetab):
943 * chartab.c (print_char_table, chartab_instantiate)
944 (structure_type_create_chartab):
945 * faces.c (syms_of_faces, print_face, face_validate):
946
947 Move structure syntax in these files to using keywords by default,
948 as is done in Common Lisp and GNU Emacs, accepting for the moment
949 the older non-keywords syntax too.
950
951 * glyphs.h: No need to have Q_data here.
952 * general-slots.h: Add Q_data, Q_type here.
953
954 * config.h.in (NEED_TO_HANDLE_21_4_CODE):
955 New #define, always 1 for the moment, replacing the previous
956 never-really-used NO_NEED_TO_HANDLE_21_4_CODE, and avoiding
957 confusing syntax.
958
959 * eval.c (Ffuncall): Wrap the hack that allows #'throw to be
960 funcalled in #ifdef NEED_TO_HANDLE_21_4_CODE.
961 * elhash.c (syms_of_elhash): Move Q_type, Q_data to
962 general-slots.h. Change to NEED_TO_HANDLE_21_4_CODE throughout
963 this file.
964
965 2010-05-29 Aidan Kehoe <kehoea@parhasard.net>
966
967 * fontcolor-msw.c (mswindows_X_color_map): Sort this, case
968 insensitively, by the color name.
969 (colormap_t_compare): New function.
970 (mswindows_string_to_color): When using symbolic color names, use
971 binary search, not linear search.
972 (mswindows_color_list): No need to start from the beginning of the
973 array and call #'nreverse to get the colors in an intuitive order,
974 just build the list starting from the end of the array.
975
976 2010-05-28 Marcus Crestani <crestani@informatik.uni-tuebingen.de>
977
978 * window.c (compute_window_usage): Unbreak `show-memory-usage' for
979 NEW_GC.
980
981 2010-05-28 Marcus Crestani <crestani@informatik.uni-tuebingen.de>
982
983 * mc-alloc.c:
984 * mc-alloc.c (visit_all_used_page_headers):
985 * mc-alloc.c (install_page_in_used_list):
986 * mc-alloc.c (mc_alloc_1):
987 * mc-alloc.c (init_mc_allocator):
988 * mc-alloc.c (Fmc_alloc_memory_usage): Allocate lrecord arrays in
989 own size class.
990
991 2010-05-24 Mike Sperber <mike@xemacs.org>
992
993 * lread.c (read1): Accept #B<binary>, #O<octal>, and #X<hex>, just
994 like GNU Emacs.
995
996 2010-05-17 Jeff Sparkes <jsparkes@gmail.com>
997
998 * buffer.c (complex_vars_of_buffer):
999 Add buffer local variables buffer-display-count and
1000 buffer-display-time.
1001 (common_init_complex_vars_of_buffer):
1002 Initialize them here.
1003
1004 * bufslots.h: Add slots for buffer-display-count and buffer-display-time.
1005
1006 * window.c (Fset_window_buffer): Update buffer-display-count and
1007 buffer-display-time whenever a buffer is displayed.
1008
1009 2010-05-16 Aidan Kehoe <kehoea@parhasard.net>
1010
1011 Move `default-file-system-ignore-case' to C; pay attention to it
1012 in creating the directory hash tables for #'locate-file. Fix a bug
1013 where #'eq was specified when creating directory hash tables in
1014 dired.c.
1015
1016 * config.h.in (DEFAULT_FILE_SYSTEM_IGNORE_CASE): This is 1 on
1017 Darwin.
1018 * dired.c (make_directory_hash_table): If
1019 #'file-system-ignore-case-p gives non-nil for a directory, created
1020 the associated hash table with #'equalp as its test. Never use
1021 #'eq as a directory hash table test.
1022 * fileio.c (vars_of_fileio):
1023 Move `default-file-system-ignore-case' here, so it can be a
1024 constant boolean reflecting a compile-time #define.
1025 * lisp.h: Update the declaration of make_directory_hash_table;
1026 remove the declaration of wasteful_word_to_lisp, which was
1027 #ifdef'd out.
1028 * lread.c (Flocate_file): Take out a debugging statement from
1029 this function.
1030 (locate_file_refresh_hashing): Call make_directory_hash_table with
1031 a Lisp string, not an Ibyte pointer.
1032 (vars_of_lread): If DEFAULT_FILE_SYSTEM_IGNORE_CASE is defined,
1033 use #'equalp as the hash table test for locate-file-hash-table,
1034 not #'equal.
1035 * s/win32-common.h (DEFAULT_FILE_SYSTEM_IGNORE_CASE):
1036 Case should normally be ignored in file names on Win32.
1037
1038 2010-04-29 Aidan Kehoe <kehoea@parhasard.net>
1039
1040 * eval.c (Fquote, Ffunction): Error on more than one argument to
1041 these special operators.
1042 * data.c (syms_of_data): Move Qquote to general-slots.h from this
1043 file, now it's used in eval.c
1044
1045 2010-04-17 Aidan Kehoe <kehoea@parhasard.net>
1046
1047 * doc.c (Fdocumentation):
1048 If we have a zero length doc string in DOC, as may happen for
1049 undocumented compiled function objects which nonetheless have file
1050 information stored, return nil.
1051 (Fsnarf_documentation):
1052 DOC info existing for compiled functions without docstrings is
1053 perfectly legitimate, now the file is also used to store file names.
1054 * bytecode.c (set_compiled_function_documentation):
1055 Allow this function to set the documentation successfully for
1056 compiled function objects that don't currently have documentation;
1057 most relevant for functions without docstrings which have file
1058 information stored in DOC.
1059
1060 2010-04-15 Ben Wing <ben@xemacs.org>
1061
1062 * device-x.c (x_init_device):
1063 Don't declare something const if we're going to modify it.
1064 Clean up code to follow GNU coding standards.
1065
1066 2010-04-12 Ben Wing <ben@xemacs.org>
1067
1068 * specifier.c (specifier_memory_usage):
1069 Disable specifier memory-usage stats for now. Sometimes they can
1070 end up with circularities in them and I'm not sure exactly whats
1071 going on to produce them.
1072
1073 2010-04-12 Ben Wing <ben@xemacs.org>
1074
1075 * charset.h:
1076 * lisp.h:
1077 * lisp.h (XREALLOC_ARRAY):
1078 * text.h:
1079 Port charset_codepoint_to_itext(), buffer_itext_to_charset_codepoint(),
1080 EXTBYTE_STRING_TO_ALLOCA(), `enum converr' from ben-unicode-internal,
1081 for use with the mule-wnnfns.c changes.
1082
1083 * mule-wnnfns.c:
1084 * mule-wnnfns.c (Fwnn_open):
1085 * mule-wnnfns.c (Fwnn_dict_add):
1086 * mule-wnnfns.c (Fwnn_dict_list):
1087 * mule-wnnfns.c (Fwnn_get_zenkouho):
1088 * mule-wnnfns.c (Fwnn_inspect):
1089 * mule-wnnfns.c (Fwnn_bunsetu_kanji):
1090 * mule-wnnfns.c (Fwnn_bunsetu_yomi):
1091 * mule-wnnfns.c (Fwnn_word_info):
1092 * mule-wnnfns.c (Fwnn_dict_search):
1093 * mule-wnnfns.c (Fwnn_get_msg):
1094 * mule-wnnfns.c (Fwnn_fuzokugo_set):
1095 * mule-wnnfns.c (Fwnn_fuzokugo_get):
1096 * mule-wnnfns.c (Fwnn_hinsi_list):
1097 * mule-wnnfns.c (Fwnn_fisys_dict_add):
1098 * mule-wnnfns.c (Fwnn_fiusr_dict_add):
1099 * mule-wnnfns.c (Fwnn_notrans_dict_add):
1100 * mule-wnnfns.c (Fwnn_bmodify_dict_add):
1101 * mule-wnnfns.c (reinit_vars_of_mule_wnn):
1102 * mule-wnnfns.c (vars_of_mule_wnn):
1103 * mule-wnnfns.c (w2m):
1104 * mule-wnnfns.c (m2w):
1105 * mule-wnnfns.c (yes_or_no):
1106 * mule-wnnfns.c (puts2):
1107 * mule-wnnfns.c (check_wnn_server_type):
1108 Mule-ize, borrowed from ben-unicode-internal.
1109
1110 2010-04-09 Ben Wing <ben@xemacs.org>
1111
1112 * fileio.c (check_writable):
1113 * fileio.c (Fdo_auto_save):
1114 * redisplay-xlike-inc.c (separate_textual_runs_nomule):
1115 * redisplay-xlike-inc.c (separate_textual_runs_xft_nomule):
1116 * redisplay-xlike-inc.c (separate_textual_runs_xft_mule):
1117 * redisplay-xlike-inc.c (separate_textual_runs_mule):
1118 * redisplay-xlike-inc.c (XLIKE_output_string):
1119 * redisplay-xlike-inc.c (XLIKE_output_vertical_divider):
1120 * redisplay.c (create_text_block):
1121 * redisplay.c (regenerate_window):
1122 * redisplay.c (redisplay_window):
1123 * redisplay.c (redisplay_device):
1124 * redisplay.c (window_line_number):
1125 * redisplay.c (point_would_be_visible):
1126 * redisplay.c (compute_display_line_dynarr_usage):
1127 * specifier.c (prune_specifiers):
1128 * specifier.c (finalize_specifier):
1129 * specifier.c (make_magic_specifier):
1130 * specifier.c (charset_matches_specifier_tag_set_p):
1131 * specifier.c (Fdefine_specifier_tag):
1132 * specifier.c (setup_device_initial_specifier_tags):
1133 * specifier.c (bodily_specifier):
1134 * specifier.c (add_spec_to_ghost_specifier):
1135 * specifier.c (remove_ghost_specifier):
1136 * specifier.c (set_specifier_fallback):
1137 * specifier.c (specifier_instance_from_inst_list):
1138 * specifier.c (set_specifier_caching):
1139 Fix coding style to correspond to GNU standard.
1140
1141 2010-04-09 Didier Verna <didier@xemacs.org>
1142
1143 * fontcolor-xlike-inc.c (DEBUG_FONTS2):
1144 * fontcolor-xlike-inc.c (DEBUG_FONTS3):
1145 * fontcolor-xlike-inc.c (DEBUG_FONTS4):
1146 * fontcolor-xlike-inc.c (DEBUG_FONTS_LISP1):
1147 * fontcolor-xlike-inc.c (DEBUG_FONTS_LISP2):
1148 * fontcolor-xlike-inc.c (DEBUG_FONTS_LISP3):
1149 * fontcolor-xlike-inc.c (DEBUG_FONTS_LISP4): Conditionalize
1150 definitions on DEBUG_XEMACS, provide empty definitions otherwise.
1151
1152 2010-04-06 Ben Wing <ben@xemacs.org>
1153
1154 * elhash.c (Feq_hash):
1155 Cast to EMACS_INT to fix warning.
1156
1157 * elhash.c (internal_hash):
1158 * elhash.c (Feql_hash):
1159 Fix spacing before parens.
1160
1161 * general-slots.h:
1162 * xemacs.def.in.in:
1163 Export Qfixnump to fix eldap.c link error.
1164
1165 2010-04-06 Aidan Kehoe <kehoea@parhasard.net>
1166
1167 * toolbar-msw.c (allocate_toolbar_item_id)
1168 (mswindows_output_toolbar):
1169 * menubar-msw.c (allocate_menu_item_id, checksum_menu_item):
1170 * glyphs-msw.c (mswindows_image_instance_hash):
1171 * fontcolor-msw.c (mswindows_color_instance_equal):
1172 * device-msw.c (hash_devmode):
1173 Call internal_hash() with the correct number of arguments, declare
1174 various hash methods with the correct number of arguments, fixing
1175 the Win32 build. Thank you Vin.
1176
1177 2010-04-06 Aidan Kehoe <kehoea@parhasard.net>
1178
1179 * frame.c (print_frame):
1180 When printing a frame, print its device, making the output of
1181 #'frame-list a lot more helpful if using gnuclient.
1182
1183 2010-04-04 Ben Wing <ben@xemacs.org>
1184
1185 * font-mgr.c:
1186 * font-mgr.c (fc_standard_properties):
1187 * font-mgr.c (Ffc_pattern_p):
1188 * font-mgr.c (Ffc_pattern_create):
1189 * font-mgr.c (Ffc_name_parse):
1190 * font-mgr.c (Ffc_name_unparse):
1191 * font-mgr.c (Ffc_pattern_duplicate):
1192 * font-mgr.c (Ffc_pattern_add):
1193 * font-mgr.c (Ffc_pattern_del):
1194 * font-mgr.c (Ffc_pattern_get):
1195 * font-mgr.c (fc_config_create_using):
1196 * font-mgr.c (fc_strlist_to_lisp_using):
1197 * font-mgr.c (fontset_to_list):
1198 * font-mgr.c (Ffc_config_p):
1199 * font-mgr.c (Ffc_config_create):
1200 * font-mgr.c (Ffc_config_destroy):
1201 * font-mgr.c (Ffc_config_up_to_date):
1202 * font-mgr.c (Ffc_config_build_fonts):
1203 * font-mgr.c (Ffc_config_get_config_dirs):
1204 * font-mgr.c (Ffc_config_get_font_dirs):
1205 * font-mgr.c (Ffc_config_get_config_files):
1206 * font-mgr.c (Ffc_config_get_cache):
1207 * font-mgr.c (Ffc_config_get_fonts):
1208 * font-mgr.c (Ffc_config_set_current):
1209 * font-mgr.c (Ffc_config_get_blanks):
1210 * font-mgr.c (Ffc_config_get_rescan_interval):
1211 * font-mgr.c (Ffc_config_set_rescan_interval):
1212 * font-mgr.c (Ffc_config_app_font_add_file):
1213 * font-mgr.c (Ffc_config_app_font_add_dir):
1214 * font-mgr.c (Ffc_config_app_font_clear):
1215 * font-mgr.c (Ffc_init_load_config):
1216 * font-mgr.c (Ffc_init_load_config_and_fonts):
1217 * font-mgr.c (Ffc_config_get_current):
1218 * font-mgr.c (size):
1219 * font-mgr.c (Ffc_font_render_prepare):
1220 * font-mgr.c (Ffc_font_match):
1221 * font-mgr.c (Ffc_font_sort):
1222 * font-mgr.c (Ffc_init):
1223 * font-mgr.c (Ffc_get_version):
1224 * font-mgr.c (Ffc_init_reinitialize):
1225 * font-mgr.c (Ffc_init_bring_up_to_date):
1226 * font-mgr.c (Fxlfd_font_name_p):
1227 * font-mgr.c (make_xlfd_font_regexp):
1228 * font-mgr.c (syms_of_font_mgr):
1229 * font-mgr.c (vars_of_font_mgr):
1230 * font-mgr.c (complex_vars_of_font_mgr):
1231 Fix the code to conform to GNU style standards.
1232 Rename xft-debug-level to debug-xft.
1233
1234 * fontcolor-x.c:
1235 * fontcolor-x.c (vars_of_fontcolor_x):
1236 Rename debug-x-objects to debug-x-fonts.
1237
1238 * fontcolor-xlike-inc.c:
1239 * fontcolor-xlike-inc.c (DEBUG_FONTS1):
1240 * fontcolor-xlike-inc.c (DEBUG_FONTS2):
1241 * fontcolor-xlike-inc.c (DEBUG_FONTS3):
1242 * fontcolor-xlike-inc.c (DEBUG_FONTS4):
1243 * fontcolor-xlike-inc.c (DEBUG_FONTS_LISP1):
1244 * fontcolor-xlike-inc.c (count_hyphens):
1245 * fontcolor-xlike-inc.c (XFUN):
1246 * fontcolor-xlike-inc.c (xlistfonts_checking_charset):
1247 * fontcolor-xlike-inc.c (xft_find_charset_font):
1248 Misc. code fixes, mostly cosmetic. Get rid of some warnings.
1249 Fix the code to conform to GNU style standards.
1250
1251 * lisp.h:
1252 * print.c:
1253 * print.c (debug_out_lisp):
1254 New function for doing printf-like formatting involving Lisp objects
1255 and outputting to the debug output.
1256
1257 2010-04-03 Aidan Kehoe <kehoea@parhasard.net>
1258
1259 * fns.c (Ffill):
1260 Be much more careful about resizing a string argument, update
1261 pointers to within the string data that may have been relocated
1262 with the string resize. Fixes a test hang reported by Vin Shelton;
1263 thanks, Vin.
1264
1265 2010-04-05 Aidan Kehoe <kehoea@parhasard.net>
1266
1267 * elhash.h:
1268 * elhash.c (struct Hash_Table_Test, lisp_object_eql_equal)
1269 (lisp_object_eql_hash, lisp_object_equal_equal)
1270 (lisp_object_equal_hash, lisp_object_equalp_hash)
1271 (lisp_object_equalp_equal, lisp_object_general_hash)
1272 (lisp_object_general_equal, Feq_hash, Feql_hash, Fequal_hash)
1273 (Fequalp_hash, define_hash_table_test, Fdefine_hash_table_test)
1274 (init_elhash_once_early, mark_hash_table_tests, string_equalp_hash):
1275 * glyphs.c (vars_of_glyphs):
1276 Add a new hash table test in C, #'equalp.
1277 Make it possible to specify new hash table tests with functions
1278 define_hash_table_test, #'define-hash-table-test.
1279 Use define_hash_table_test() in glyphs.c.
1280 Expose the hash functions (besides that used for #'equal) to Lisp,
1281 for people writing functions to be used with #'define-hash-table-test.
1282 Call define_hash_table_test() very early in temacs, to create the
1283 built-in hash table tests.
1284
1285 * ui-gtk.c (emacs_gtk_boxed_hash):
1286 * specifier.h (struct specifier_methods):
1287 * specifier.c (specifier_hash):
1288 * rangetab.c (range_table_entry_hash, range_table_hash):
1289 * number.c (bignum_hash, ratio_hash, bigfloat_hash):
1290 * marker.c (marker_hash):
1291 * lrecord.h (struct lrecord_implementation):
1292 * keymap.c (keymap_hash):
1293 * gui.c (gui_item_id_hash, gui_item_hash):
1294 * glyphs.c (image_instance_hash, glyph_hash):
1295 * glyphs-x.c (x_image_instance_hash):
1296 * glyphs-msw.c (mswindows_image_instance_hash):
1297 * glyphs-gtk.c (gtk_image_instance_hash):
1298 * frame-msw.c (mswindows_set_title_from_ibyte):
1299 * fontcolor.c (color_instance_hash, font_instance_hash):
1300 * fontcolor-x.c (x_color_instance_hash):
1301 * fontcolor-tty.c (tty_color_instance_hash):
1302 * fontcolor-msw.c (mswindows_color_instance_hash):
1303 * fontcolor-gtk.c (gtk_color_instance_hash):
1304 * fns.c (bit_vector_hash):
1305 * floatfns.c (float_hash):
1306 * faces.c (face_hash):
1307 * extents.c (extent_hash):
1308 * events.c (event_hash):
1309 * data.c (weak_list_hash, weak_box_hash):
1310 * chartab.c (char_table_entry_hash, char_table_hash):
1311 * bytecode.c (compiled_function_hash):
1312 * alloc.c (vector_hash):
1313 Change the various object hash methods to take a new EQUALP
1314 parameter, hashing appropriately for #'equalp if it is true.
1315
1316 2010-04-02 Aidan Kehoe <kehoea@parhasard.net>
1317
1318 * fns.c (FsortX, Ffill):
1319 Don't try to be clever with the ascii_begin string header slot in
1320 these functions, just call init_string_ascii_begin().
1321
1322 2010-04-02 Aidan Kehoe <kehoea@parhasard.net>
1323
1324 Avoid build failure, Apple's g++-4.0.1, Mac OS 10.4.
1325 * sysdll.c (search_linked_libs, dll_variable): Correct some casts
1326 for the C++ build.
1327 * regex.h (END_C_DECLS, BEGIN_C_DECLS): Wrap function declarations
1328 in extern "C" { ... } on the C++ build.
1329 * mule-ccl.c (ccl_driver): Initialise i, silencing a warning on
1330 a C++ build.
1331 * keymap.c (key_desc_list_to_event):
1332 Work around a bug in Apple's g++-4.0.1.
1333
1334 2010-03-31 Aidan Kehoe <kehoea@parhasard.net>
1335
1336 * fns.c (STRING_DATA_TO_OBJECT_ARRAY)
1337 (BIT_VECTOR_TO_OBJECT_ARRAY, c_merge_predicate_key)
1338 (c_merge_predicate_nokey, list_merge, array_merge)
1339 (list_array_merge_into_list, list_list_merge_into_array)
1340 (list_array_merge_into_array, CHECK_KEY_ARGUMENT, Fmerge)
1341 (list_sort, array_sort, FsortX):
1342 Move #'sort*, #'fill, #'merge from cl-seq.el to C, extending the
1343 implementations of Fsort, Ffillarray, and merge() to do so.
1344
1345 * keymap.c (keymap_submaps, map_keymap_sort_predicate)
1346 (describe_map_sort_predicate):
1347 Change the calling semantics of the C sort predicates to return a
1348 non-nil Lisp object if the first argument is less than the second,
1349 rather than C integers.
1350
1351 * fontcolor-msw.c (sort_font_list_function):
1352 * fileio.c (build_annotations):
1353 * dired.c (Fdirectory_files):
1354 * abbrev.c (Finsert_abbrev_table_description):
1355 Call list_sort instead of Fsort, list_merge instead of merge() in
1356 these functions.
1357
1358 2010-03-29 Ben Wing <ben@xemacs.org>
1359
1360 * lisp.h (PRIVATE_UNVERIFIED_LIST_LOOP_7):
1361 Need to cast 0 to void (so both parts of conditional expression
1362 have void type) to fix C++ compilation.
1363
1364 2010-03-29 Ben Wing <ben@xemacs.org>
1365
1366 * alloc.c:
1367 * alloc.c (lisp_object_storage_size):
1368 * alloc.c (Fobject_memory_usage):
1369 * alloc.c (lisp_object_memory_usage_full):
1370 Don't crash if passed a non-record object (int or char).
1371
1372 * alloc.c (tree_memory_usage_1):
1373 * lrecord.h:
1374 New function tree_memory_usage() to return the memory usage of
1375 a tree of conses and/or vectors.
1376
1377 * lisp.h:
1378 * lisp.h (PRIVATE_UNVERIFIED_LIST_LOOP_7):
1379 Add SAFE_LIST_LOOP_* functions for looping over a list not known
1380 to be correct or non-circular, but without signalling an error --
1381 instead, just stop enumerating when an error detected.
1382
1383 * emacs.c (main_1):
1384 * specifier.c:
1385 * specifier.c (specifier_memory_usage):
1386 * specifier.c (vars_of_specifier):
1387 * symsinit.h:
1388 Add memory usage info for specifiers.
1389
1390 2010-03-28 Ben Wing <ben@xemacs.org>
1391
1392 * window.c (find_window_mirror_internal):
1393 Stop looking if no window mirror, and return 0.
1394
1395 * window.c (window_display_lines):
1396 * window.c (window_display_buffer):
1397 * window.c (set_window_display_buffer):
1398 Don't need to update window mirror before calling find_window_mirror
1399 because does the updating automatically.
1400
1401 2010-03-25 Ben Wing <ben@xemacs.org>
1402
1403 * alloc.c:
1404 * alloc.c (struct):
1405 * alloc.c (finish_object_memory_usage_stats):
1406 * alloc.c (object_memory_usage_stats):
1407 * alloc.c (Fobject_memory_usage):
1408 * alloc.c (lisp_object_memory_usage_full):
1409 * alloc.c (compute_memusage_stats_length):
1410 * lrecord.h:
1411 * lrecord.h (struct lrecord_implementation):
1412 Add fields to the `lrecord_implementation' structure to list an
1413 offset into the array of extra statistics in a
1414 `struct generic_usage_stats' and a length, listing the first slice
1415 of ancillary Lisp-object memory. Compute automatically in
1416 compute_memusage_stats_length(). Use to add an entry
1417 `FOO-lisp-ancillary-storage' for object type FOO.
1418
1419 Don't crash when an int or char is given to object-memory-usage,
1420 signal an error instead.
1421
1422 Add functions lisp_object_memory_usage_full() and
1423 lisp_object_memory_usage() to compute the total memory usage of an
1424 object (sum of object, non-Lisp attached, and Lisp ancillary
1425 memory).
1426
1427 * array.c:
1428 * array.c (gap_array_memory_usage):
1429 * array.h:
1430 Add function to return memory usage of a gap array.
1431
1432 * buffer.c (struct buffer_stats):
1433 * buffer.c (compute_buffer_usage):
1434 * buffer.c (vars_of_buffer):
1435 * extents.c (compute_buffer_extent_usage):
1436 * marker.c:
1437 * marker.c (compute_buffer_marker_usage):
1438 * extents.h:
1439 * lisp.h:
1440 Remove `struct usage_stats' arg from compute_buffer_marker_usage()
1441 and compute_buffer_extent_usage() -- these are ancillary Lisp
1442 objects and don't get accumulated into `struct usage_stats';
1443 change the value of `memusage_stats_list' so that `markers' and
1444 `extents' memory is in Lisp-ancillary, where it belongs.
1445
1446 In compute_buffer_marker_usage(), use lisp_object_memory_usage()
1447 rather than lisp_object_storage_size().
1448
1449 * casetab.c:
1450 * casetab.c (case_table_memory_usage):
1451 * casetab.c (vars_of_casetab):
1452 * emacs.c (main_1):
1453 Add memory usage stats for case tables.
1454
1455 * lisp.h:
1456 Add comment explaining the `struct generic_usage_stats' more,
1457 as well as the new fields in lrecord_implementation.
1458
1459 * console-impl.h:
1460 * console-impl.h (struct console_methods):
1461 * scrollbar-gtk.c:
1462 * scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage):
1463 * scrollbar-msw.c:
1464 * scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage):
1465 * scrollbar-x.c:
1466 * scrollbar-x.c (x_compute_scrollbar_instance_usage):
1467 * scrollbar.c:
1468 * scrollbar.c (struct scrollbar_instance_stats):
1469 * scrollbar.c (compute_all_scrollbar_instance_usage):
1470 * scrollbar.c (scrollbar_instance_memory_usage):
1471 * scrollbar.c (scrollbar_objects_create):
1472 * scrollbar.c (vars_of_scrollbar):
1473 * scrollbar.h:
1474 * symsinit.h:
1475 * window.c:
1476 * window.c (find_window_mirror_maybe):
1477 * window.c (struct window_mirror_stats):
1478 * window.c (compute_window_mirror_usage):
1479 * window.c (window_mirror_memory_usage):
1480 * window.c (compute_window_usage):
1481 * window.c (window_objects_create):
1482 * window.c (syms_of_window):
1483 * window.c (vars_of_window):
1484 Redo memory-usage associated with windows, window mirrors, and
1485 scrollbar instances. Should fix crash in find_window_mirror,
1486 among other things. Properly assign memo ry to object memory,
1487 non-Lisp extra memory, and Lisp ancillary memory. For example,
1488 redisplay structures are non-Lisp memory hanging off a window
1489 mirror, not a window; make it an ancillary Lisp-object field.
1490 Window mirrors and scrollbar instances have their own statistics,
1491 among other things.
1492
1493 2010-03-24 Ben Wing <ben@xemacs.org>
1494
1495 * array.h:
1496 * array.h (XD_LISP_DYNARR_DESC):
1497 * dumper.c (pdump_register_sub):
1498 * dumper.c (pdump_store_new_pointer_offsets):
1499 * dumper.c (pdump_reloc_one_mc):
1500 * elhash.c:
1501 * gc.c (lispdesc_one_description_line_size):
1502 * gc.c (kkcc_marking):
1503 * lrecord.h:
1504 * lrecord.h (IF_NEW_GC):
1505 * lrecord.h (enum memory_description_type):
1506 * lrecord.h (enum data_description_entry_flags):
1507 * lrecord.h (struct opaque_convert_functions):
1508 Rename XD_LISP_OBJECT_BLOCK_PTR to XD_INLINE_LISP_OBJECT_BLOCK_PTR
1509 and document it in lrecord.h.
1510
1511 * data.c:
1512 * data.c (finish_marking_weak_lists):
1513 * data.c (continue_marking_ephemerons):
1514 * data.c (finish_marking_ephemerons):
1515 * elhash.c (MARK_OBJ):
1516 * gc.c:
1517 * gc.c (lispdesc_indirect_count_1):
1518 * gc.c (struct):
1519 * gc.c (kkcc_bt_push):
1520 * gc.c (kkcc_gc_stack_push):
1521 * gc.c (kkcc_gc_stack_push_lisp_object):
1522 * gc.c (kkcc_gc_stack_repush_dirty_object):
1523 * gc.c (KKCC_DO_CHECK_FREE):
1524 * gc.c (mark_object_maybe_checking_free):
1525 * gc.c (mark_struct_contents):
1526 * gc.c (mark_lisp_object_block_contents):
1527 * gc.c (register_for_finalization):
1528 * gc.c (mark_object):
1529 * gc.h:
1530 * lisp.h:
1531 * profile.c:
1532 * profile.c (mark_profiling_info_maphash):
1533 Clean up KKCC code related to DEBUG_XEMACS. Rename
1534 kkcc_backtrace() to kkcc_backtrace_1() and add two params: a
1535 `size' arg to control how many stack elements to print and a
1536 `detailed' arg to control whether Lisp objects are printed using
1537 `debug_print()'. Create front-ends to kkcc_backtrace_1() --
1538 kkcc_detailed_backtrace(), kkcc_short_backtrace(),
1539 kkcc_detailed_backtrace_full(), kkcc_short_backtrace_full(), as
1540 well as shortened versions kbt(), kbts(), kbtf(), kbtsf() -- to
1541 call it with various parameter values. Add an `is_lisp' field to
1542 the stack and backtrace structures and use it to keep track of
1543 whether an object pushed onto the stack is a Lisp object or a
1544 non-Lisp structure; in kkcc_backtrace_1(), don't try to print a
1545 non-Lisp structure as a Lisp object.
1546
1547 * elhash.c:
1548 * extents.c:
1549 * file-coding.c:
1550 * lrecord.h:
1551 * lrecord.h (IF_NEW_GC):
1552 * marker.c:
1553 * marker.c (Fmarker_buffer):
1554 * mule-coding.c:
1555 * number.c:
1556 * rangetab.c:
1557 * specifier.c:
1558 New macros IF_OLD_GC(), IF_NEW_GC() to simplify declaration of
1559 Lisp objects when a finalizer may exist in one but not the other.
1560 Use them appropriately.
1561
1562 * extents.c (finalize_extent_info):
1563 Don't zero out data->soe and data->extents before trying to free,
1564 else we get memory leaks.
1565
1566 * lrecord.h (enum lrecord_type):
1567 Make the first lrecord type have value 1 not 0 so that 0 remains
1568 without implementation and attempts to interpret zeroed memory
1569 as a Lisp object will be more obvious.
1570
1571 * array.c (Dynarr_free):
1572 * device-msw.c (msprinter_delete_device):
1573 * device-tty.c (free_tty_device_struct):
1574 * device-tty.c (tty_delete_device):
1575 * dialog-msw.c (handle_directory_dialog_box):
1576 * dialog-x.c:
1577 * emacs.c (free_argc_argv):
1578 * emodules.c (attempt_module_delete):
1579 * file-coding.c (chain_finalize_coding_stream_1):
1580 * file-coding.c (chain_finalize_coding_stream):
1581 * glyphs-eimage.c:
1582 * glyphs-eimage.c (jpeg_instantiate_unwind):
1583 * glyphs-eimage.c (gif_instantiate_unwind):
1584 * glyphs-eimage.c (png_instantiate_unwind):
1585 * glyphs-eimage.c (tiff_instantiate_unwind):
1586 * imgproc.c:
1587 * imgproc.c (build_EImage_quantable):
1588 * insdel.c (uninit_buffer_text):
1589 * mule-coding.c (iso2022_finalize_detection_state):
1590 * objects-tty.c (tty_finalize_color_instance):
1591 * objects-tty.c (tty_finalize_font_instance):
1592 * objects-tty.c (tty_font_list):
1593 * process.c:
1594 * process.c (finalize_process):
1595 * redisplay.c (add_propagation_runes):
1596 * scrollbar-gtk.c:
1597 * scrollbar-gtk.c (gtk_free_scrollbar_instance):
1598 * scrollbar-gtk.c (gtk_release_scrollbar_instance):
1599 * scrollbar-msw.c:
1600 * scrollbar-msw.c (mswindows_free_scrollbar_instance):
1601 * scrollbar-msw.c (unshow_that_mofo):
1602 * scrollbar-x.c (x_free_scrollbar_instance):
1603 * scrollbar-x.c (x_release_scrollbar_instance):
1604 * select-x.c:
1605 * select-x.c (x_handle_selection_request):
1606 * syntax.c:
1607 * syntax.c (uninit_buffer_syntax_cache):
1608 * text.h (eifree):
1609 If possible, whenever we call xfree() on a field in a structure,
1610 set the field to 0 afterwards. A lot of code is written so that
1611 it checks the value being freed to see if it is non-zero before
1612 freeing it -- doing this and setting the value to 0 afterwards
1613 ensures (a) we won't try to free twice if the cleanup code is
1614 called twice; (b) if the object itself stays around, KKCC won't
1615 crash when attempting to mark the freed field.
1616
1617 * rangetab.c:
1618 Add a finalization method when not NEW_GC to avoid memory leaks.
1619 (#### We still get memory leaks when NEW_GC; need to convert gap
1620 array to Lisp object).
1621
1622 2010-03-22 Ben Wing <ben@xemacs.org>
1623
1624 * Makefile.in.in (objs):
1625 * array.c:
1626 * array.c (gap_array_adjust_markers):
1627 * array.c (gap_array_move_gap):
1628 * array.c (gap_array_make_gap):
1629 * array.c (gap_array_insert_els):
1630 * array.c (gap_array_delete_els):
1631 * array.c (gap_array_make_marker):
1632 * array.c (gap_array_delete_marker):
1633 * array.c (gap_array_delete_all_markers):
1634 * array.c (gap_array_clone):
1635 * array.h:
1636 * depend:
1637 * emacs.c (main_1):
1638 * extents.c:
1639 * extents.c (EXTENT_GAP_ARRAY_AT):
1640 * extents.c (extent_list_num_els):
1641 * extents.c (extent_list_locate):
1642 * extents.c (extent_list_at):
1643 * extents.c (extent_list_delete_all):
1644 * extents.c (allocate_extent_list):
1645 * extents.c (syms_of_extents):
1646 * extents.h:
1647 * extents.h (XEXTENT_LIST_MARKER):
1648 * lisp.h:
1649 * rangetab.c:
1650 * rangetab.c (mark_range_table):
1651 * rangetab.c (print_range_table):
1652 * rangetab.c (range_table_equal):
1653 * rangetab.c (range_table_hash):
1654 * rangetab.c (verify_range_table):
1655 * rangetab.c (get_range_table_pos):
1656 * rangetab.c (Fmake_range_table):
1657 * rangetab.c (Fcopy_range_table):
1658 * rangetab.c (Fget_range_table):
1659 * rangetab.c (put_range_table):
1660 * rangetab.c (Fclear_range_table):
1661 * rangetab.c (Fmap_range_table):
1662 * rangetab.c (unified_range_table_bytes_needed):
1663 * rangetab.c (unified_range_table_copy_data):
1664 * rangetab.c (unified_range_table_lookup):
1665 * rangetab.h:
1666 * rangetab.h (struct range_table_entry):
1667 * rangetab.h (struct Lisp_Range_Table):
1668 * rangetab.h (rangetab_gap_array_at):
1669 * symsinit.h:
1670 Rename dynarr.c to array.c. Move gap array from extents.c to array.c.
1671 Extract dynarr, gap array and stack-like malloc into new file array.h.
1672 Rename GAP_ARRAY_NUM_ELS -> gap_array_length(). Add gap_array_at(),
1673 gap_array_atp().
1674
1675 Rewrite range table code to use gap arrays. Make put_range_table()
1676 smarter so that its operation is O(log n) for adding a localized
1677 range.
1678
1679 * gc.c (lispdesc_block_size_1):
1680 Don't ABORT() when two elements are located at the same place.
1681 This will happen with a size-0 gap array -- both parts of the array
1682 (before and after gap) are in the same place.
1683
1684 2010-03-21 Ben Wing <ben@xemacs.org>
1685
1686 * alloc.c:
1687 * alloc.c (assert_proper_sizing):
1688 * alloc.c (c_readonly):
1689 * alloc.c (malloced_storage_size):
1690 * alloc.c (fixed_type_block_overhead):
1691 * alloc.c (lisp_object_storage_size):
1692 * alloc.c (inc_lrecord_stats):
1693 * alloc.c (dec_lrecord_stats):
1694 * alloc.c (pluralize_word):
1695 * alloc.c (object_memory_usage_stats):
1696 * alloc.c (Fobject_memory_usage):
1697 * alloc.c (compute_memusage_stats_length):
1698 * alloc.c (disksave_object_finalization_1):
1699 * alloc.c (Fgarbage_collect):
1700 * mc-alloc.c:
1701 * mc-alloc.c (mc_alloced_storage_size):
1702 * mc-alloc.h:
1703 No functionality change here. Collect the allocations-statistics
1704 code that was scattered throughout alloc.c into one place. Add
1705 remaining section headings so that all sections have headings
1706 clearly identifying the start of the section and its purpose.
1707 Expose mc_alloced_storage_size() even when not MEMORY_USAGE_STATS;
1708 this fixes build problems and is related to the export of
1709 lisp_object_storage_size() and malloced_storage_size() when
1710 non-MEMORY_USAGE_STATS in the previous change set.
1711
1712 2010-03-22 Vin Shelton <acs@xemacs.org>
1713
1714 * window.c (vars_of_window): Move HAVE_SCROLLBARS test so the code
1715 can compile under Visual Studio 6.
1716
1717 2010-03-21 Aidan Kehoe <kehoea@parhasard.net>
1718
1719 * alloc.c (tick_lrecord_stats):
1720 Fix the union build after Ben's last change, don't assume that a
1721 Lisp_Object will fit into a Bytecount.
1722
1723 2010-03-20 Ben Wing <ben@xemacs.org>
1724
1725 * alloc.c:
1726 * alloc.c (init_lrecord_stats):
1727 * alloc.c (free_normal_lisp_object):
1728 * alloc.c (struct):
1729 * alloc.c (clear_lrecord_stats):
1730 * alloc.c (tick_lrecord_stats):
1731 * alloc.c (COUNT_FROB_BLOCK_USAGE):
1732 * alloc.c (COPY_INTO_LRECORD_STATS):
1733 * alloc.c (sweep_strings):
1734 * alloc.c (UNMARK_string):
1735 * alloc.c (gc_sweep_1):
1736 * alloc.c (finish_object_memory_usage_stats):
1737 * alloc.c (object_memory_usage_stats):
1738 * alloc.c (object_dead_p):
1739 * alloc.c (fixed_type_block_overhead):
1740 * alloc.c (lisp_object_storage_size):
1741 * emacs.c (main_1):
1742 * lisp.h:
1743 * lrecord.h:
1744 Export lisp_object_storage_size() and malloced_storage_size() even
1745 when not MEMORY_USAGE_STATS, to get the non-MEMORY_USAGE_STATS
1746 build to compile.
1747
1748 Don't export fixed_type_block_overhead() any more.
1749
1750 Some code cleanup, rearrangement, add some section headers.
1751
1752 Clean up various bugs especially involving computation of overhead
1753 and double-counting certain usage in total_gc_usage. Add
1754 statistics computing the overhead used by all types. Don't add a
1755 special entry for string headers in the object-memory-usage-stats
1756 because it's already present as just "string". But do count the
1757 overhead used by long strings. Don't try to call the
1758 memory_usage() methods when NEW_GC because there's nowhere obvious
1759 in the sweep stage to make the calls.
1760
1761 * marker.c (compute_buffer_marker_usage):
1762 Just use lisp_object_storage_size() rather than trying to
1763 reimplement it.
1764
1765 2010-03-19 Ben Wing <ben@xemacs.org>
1766
1767 * alloc.c:
1768 * alloc.c (struct):
1769 * alloc.c (tick_lrecord_stats):
1770 * alloc.c (gc_sweep_1):
1771 * alloc.c (finish_object_memory_usage_stats):
1772 * alloc.c (object_memory_usage_stats):
1773 * alloc.c (compute_memusage_stats_length):
1774 Call new memory-usage mechanism at sweep time to compute extra
1775 memory utilization for all objects. Add up the values element-by-
1776 element to get an aggregrate set of statistics, where each is the
1777 sum of the values of a single statistic across different objects
1778 of the same type. At end of sweep time, call
1779 finish_object_memory_usage_stats() to add up all the aggreggrate
1780 stats that are related to non-Lisp memory storage to compute
1781 a single value, and add it to the list of values returned by
1782 `garbage-collect' and `object-memory-usage-stats'.
1783
1784 * buffer.c (compute_buffer_text_usage):
1785 Don't crash on buffers without text (killed buffers?) and don't
1786 double-count indirect buffers.
1787
1788 * elhash.c:
1789 * elhash.c (hash_table_objects_create):
1790 * elhash.c (vars_of_elhash):
1791 * symsinit.h:
1792 Add memory-usage method to count the size of `hentries'.
1793
1794 * emacs.c (main_1):
1795 Call new functions in elhash.c, frame.c at init.
1796
1797 * frame.c:
1798 * frame.c (compute_frame_usage):
1799 * frame.c (frame_memory_usage):
1800 * frame.c (frame_objects_create):
1801 * symsinit.h:
1802 Add memory-usage method to count gutter display structures,
1803 subwindow exposures.
1804
1805 * gc.c (gc_finish):
1806 * lisp.h:
1807 Declare finish_object_memory_usage_stats(), call it in gc_finish().
1808
1809 * lrecord.h (struct lrecord_implementation):
1810 * lrecord.h (INIT_MEMORY_USAGE_STATS):
1811 New value in implementation struct to track number of non-Lisp-memory
1812 statistics. Computed in alloc.c.
1813
1814
1815 2010-03-18 Ben Wing <ben@xemacs.org>
1816
1817 * alloc.c:
1818 * alloc.c (disksave_object_finalization_1):
1819 * alloc.c (lisp_object_storage_size):
1820 * alloc.c (listu):
1821 * alloc.c (listn):
1822 * alloc.c (Fobject_memory_usage_stats):
1823 * alloc.c (compute_memusage_stats_length):
1824 * alloc.c (Fobject_memory_usage):
1825 * alloc.c (Ftotal_object_memory_usage):
1826 * alloc.c (malloced_storage_size):
1827 * alloc.c (common_init_alloc_early):
1828 * alloc.c (reinit_alloc_objects_early):
1829 * alloc.c (reinit_alloc_early):
1830 * alloc.c (init_alloc_once_early):
1831 * alloc.c (syms_of_alloc):
1832 * alloc.c (reinit_vars_of_alloc):
1833 * buffer.c:
1834 * buffer.c (struct buffer_stats):
1835 * buffer.c (compute_buffer_text_usage):
1836 * buffer.c (compute_buffer_usage):
1837 * buffer.c (buffer_memory_usage):
1838 * buffer.c (buffer_objects_create):
1839 * buffer.c (syms_of_buffer):
1840 * buffer.c (vars_of_buffer):
1841 * console-impl.h (struct console_methods):
1842 * dynarr.c (Dynarr_memory_usage):
1843 * emacs.c (main_1):
1844 * events.c (clear_event_resource):
1845 * extents.c:
1846 * extents.c (compute_buffer_extent_usage):
1847 * extents.c (extent_objects_create):
1848 * extents.h:
1849 * faces.c:
1850 * faces.c (compute_face_cachel_usage):
1851 * faces.c (face_objects_create):
1852 * faces.h:
1853 * general-slots.h:
1854 * glyphs.c:
1855 * glyphs.c (compute_glyph_cachel_usage):
1856 * glyphs.c (glyph_objects_create):
1857 * glyphs.h:
1858 * lisp.h:
1859 * lisp.h (struct usage_stats):
1860 * lrecord.h:
1861 * lrecord.h (enum lrecord_type):
1862 * lrecord.h (struct lrecord_implementation):
1863 * lrecord.h (MC_ALLOC_CALL_FINALIZER_FOR_DISKSAVE):
1864 * lrecord.h (DEFINE_DUMPABLE_LISP_OBJECT):
1865 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_LISP_OBJECT):
1866 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT):
1867 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_SIZABLE_LISP_OBJECT):
1868 * lrecord.h (DEFINE_DUMPABLE_INTERNAL_LISP_OBJECT):
1869 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_INTERNAL_LISP_OBJECT):
1870 * lrecord.h (DEFINE_NODUMP_LISP_OBJECT):
1871 * lrecord.h (DEFINE_NODUMP_SIZABLE_LISP_OBJECT):
1872 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_LISP_OBJECT):
1873 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_SIZABLE_LISP_OBJECT):
1874 * lrecord.h (DEFINE_NODUMP_INTERNAL_LISP_OBJECT):
1875 * lrecord.h (DEFINE_NODUMP_SIZABLE_INTERNAL_LISP_OBJECT):
1876 * lrecord.h (MAKE_LISP_OBJECT):
1877 * lrecord.h (DEFINE_DUMPABLE_MODULE_LISP_OBJECT):
1878 * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_LISP_OBJECT):
1879 * lrecord.h (DEFINE_NODUMP_MODULE_LISP_OBJECT):
1880 * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_LISP_OBJECT):
1881 * lrecord.h (MAKE_MODULE_LISP_OBJECT):
1882 * lrecord.h (INIT_LISP_OBJECT):
1883 * lrecord.h (INIT_MODULE_LISP_OBJECT):
1884 * lrecord.h (UNDEF_LISP_OBJECT):
1885 * lrecord.h (UNDEF_MODULE_LISP_OBJECT):
1886 * lrecord.h (DECLARE_LISP_OBJECT):
1887 * lrecord.h (DECLARE_MODULE_API_LISP_OBJECT):
1888 * lrecord.h (DECLARE_MODULE_LISP_OBJECT):
1889 * lstream.c:
1890 * lstream.c (syms_of_lstream):
1891 * lstream.c (vars_of_lstream):
1892 * marker.c:
1893 * marker.c (compute_buffer_marker_usage):
1894 * mc-alloc.c (mc_alloced_storage_size):
1895 * mc-alloc.h:
1896 * mule-charset.c:
1897 * mule-charset.c (struct charset_stats):
1898 * mule-charset.c (compute_charset_usage):
1899 * mule-charset.c (charset_memory_usage):
1900 * mule-charset.c (mule_charset_objects_create):
1901 * mule-charset.c (syms_of_mule_charset):
1902 * mule-charset.c (vars_of_mule_charset):
1903 * redisplay.c:
1904 * redisplay.c (compute_rune_dynarr_usage):
1905 * redisplay.c (compute_display_block_dynarr_usage):
1906 * redisplay.c (compute_glyph_block_dynarr_usage):
1907 * redisplay.c (compute_display_line_dynarr_usage):
1908 * redisplay.c (compute_line_start_cache_dynarr_usage):
1909 * redisplay.h:
1910 * scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage):
1911 * scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage):
1912 * scrollbar-x.c (x_compute_scrollbar_instance_usage):
1913 * scrollbar.c (compute_scrollbar_instance_usage):
1914 * scrollbar.h:
1915 * symbols.c:
1916 * symbols.c (reinit_symbol_objects_early):
1917 * symbols.c (init_symbols_once_early):
1918 * symbols.c (reinit_symbols_early):
1919 * symbols.c (defsymbol_massage_name_1):
1920 * symsinit.h:
1921 * ui-gtk.c:
1922 * ui-gtk.c (emacs_gtk_object_getprop):
1923 * ui-gtk.c (emacs_gtk_object_putprop):
1924 * ui-gtk.c (ui_gtk_objects_create):
1925 * unicode.c (compute_from_unicode_table_size_1):
1926 * unicode.c (compute_to_unicode_table_size_1):
1927 * unicode.c (compute_from_unicode_table_size):
1928 * unicode.c (compute_to_unicode_table_size):
1929 * window.c:
1930 * window.c (struct window_stats):
1931 * window.c (compute_window_mirror_usage):
1932 * window.c (compute_window_usage):
1933 * window.c (window_memory_usage):
1934 * window.c (window_objects_create):
1935 * window.c (syms_of_window):
1936 * window.c (vars_of_window):
1937 * window.h:
1938 Redo memory-usage mechanism, make it general; add way of dynamically
1939 initializing Lisp object types -- OBJECT_HAS_METHOD(), similar to
1940 CONSOLE_HAS_METHOD().
1941
1942 (1) Create OBJECT_HAS_METHOD(), OBJECT_HAS_PROPERTY() etc. for
1943 specifying that a Lisp object type has a particular method or
1944 property. Call such methods with OBJECT_METH, MAYBE_OBJECT_METH,
1945 OBJECT_METH_OR_GIVEN; retrieve properties with OBJECT_PROPERTY.
1946 Methods that formerly required a DEFINE_*GENERAL_LISP_OBJECT() to
1947 specify them (getprop, putprop, remprop, plist, disksave) now
1948 instead use the dynamic-method mechanism. The main benefit of
1949 this is that new methods or properties can be added without
1950 requiring that the declaration statements of all existing methods
1951 be modified. We have to make the `struct lrecord_implementation'
1952 non-const, but I don't think this should have any effect on speed --
1953 the only possible method that's really speed-critical is the
1954 mark method, and we already extract those out into a separate
1955 (non-const) array for increased cache locality.
1956
1957 Object methods need to be reinitialized after pdump, so we put
1958 them in separate functions such as face_objects_create(),
1959 extent_objects_create() and call them appropriately from emacs.c
1960 The only current object property (`memusage_stats_list') that
1961 objects can specify is a Lisp object and gets staticpro()ed so it
1962 only needs to be set during dump time, but because it references
1963 symbols that might not exist in a syms_of_() function, we
1964 initialize it in vars_of_(). There is also an object property
1965 (`num_extra_memusage_stats') that is automatically initialized based
1966 on `memusage_stats_list'; we do that in reinit_vars_of_alloc(),
1967 which is called after all vars_of_() functions are called.
1968
1969 `disksaver' method was renamed `disksave' to correspond with the
1970 name normally given to the function (e.g. disksave_lstream()).
1971
1972 (2) Generalize the memory-usage mechanism in `buffer-memory-usage',
1973 `window-memory-usage', `charset-memory-usage' into an object-type-
1974 specific mechanism called by a single function
1975 `object-memory-usage'. (Former function `object-memory-usage'
1976 renamed to `total-object-memory-usage'). Generalize the mechanism
1977 of different "slices" so that we can have different "classes" of
1978 memory described and different "slices" onto each class; `t'
1979 separates classes, `nil' separates slices. Currently we have
1980 three classes defined: the memory of an object itself,
1981 non-Lisp-object memory associated with the object (e.g. arrays or
1982 dynarrs stored as fields in the object), and Lisp-object memory
1983 associated with the object (other internal Lisp objects stored in
1984 the object). This isn't completely finished yet and we might need
1985 to further separate the "other internal Lisp objects" class into
1986 two classes.
1987
1988 The memory-usage mechanism uses a `struct usage_stats' (renamed
1989 from `struct overhead_stats') to describe a malloc-view onto a set
1990 of allocated memory (listing how much was requested and various
1991 types of overhead) and a more general `struct generic_usage_stats'
1992 (with a `struct usage_stats' in it) to hold all statistics about
1993 object memory. `struct generic_usage_stats' contains an array of
1994 32 Bytecounts, which are statistics of unspecified semantics. The
1995 intention is that individual types declare a corresponding struct
1996 (e.g. `struct window_stats') with the same structure but with
1997 specific fields in place of the array, corresponding to specific
1998 statistics. The number of such statistics is an object property
1999 computed from the list of tags (Lisp symbols describing the
2000 statistics) stored in `memusage_stats_list'. The idea here is to
2001 allow particular object types to customize the number and
2002 semantics of the statistics where completely avoiding consing.
2003 This doesn't matter so much yet, but the intention is to have the
2004 memory usage of all objects computed at the end of GC, at the same
2005 time as other statistics are currently computed. The values for
2006 all statistics for a single type would be added up to compute
2007 aggregate values for all objects of a specific type. To make this
2008 efficient, we can't allow any memory allocation at all.
2009
2010 (3) Create some additional functions for creating lists that
2011 specify the elements directly as args rather than indirectly through
2012 an array: listn() (number of args given), listu() (list terminated
2013 by Qunbound).
2014
2015 (4) Delete a bit of remaining unused C window_config stuff, also
2016 unused lrecord_type_popup_data.
2017
2018
2019 2010-03-18 Ben Wing <ben@xemacs.org>
2020
2021 * tests.c:
2022 * tests.c (Ftest_data_format_conversion):
2023 Need to GCPRO newly created objects or we'll eventually get
2024 a crash due to occurrence of call2().
2025
2026 2010-03-16 Ben Wing <ben@xemacs.org>
2027
2028 * alloc.c (make_lcrecord_list):
2029 * alloc.c (alloc_managed_lcrecord):
2030 Fix compilation problems identified by Robert Delius Royar.
2031
2032 2010-03-15 Ben Wing <ben@xemacs.org>
2033
2034 * extents.c (Fprevious_single_property_change):
2035 * extents.c (Fnext_single_char_property_change):
2036 * extents.c (Fprevious_single_char_property_change):
2037 Fix see-also portion of documentation string.
2038
2039 2010-03-15 Ben Wing <ben@xemacs.org>
2040
2041 * alloc.c:
2042 * alloc.c (c_readonly):
2043 * alloc.c (deadbeef_memory):
2044 * alloc.c (make_compiled_function):
2045 * alloc.c (make_button_data):
2046 * alloc.c (make_motion_data):
2047 * alloc.c (make_process_data):
2048 * alloc.c (make_timeout_data):
2049 * alloc.c (make_magic_data):
2050 * alloc.c (make_magic_eval_data):
2051 * alloc.c (make_eval_data):
2052 * alloc.c (make_misc_user_data):
2053 * alloc.c (noseeum_make_marker):
2054 * alloc.c (ADDITIONAL_FREE_string):
2055 * alloc.c (common_init_alloc_early):
2056 * alloc.c (init_alloc_once_early):
2057 * bytecode.c (print_compiled_function):
2058 * bytecode.c (mark_compiled_function):
2059 * casetab.c:
2060 * casetab.c (print_case_table):
2061 * console.c:
2062 * console.c (print_console):
2063 * database.c (print_database):
2064 * database.c (finalize_database):
2065 * device-msw.c (sync_printer_with_devmode):
2066 * device-msw.c (print_devmode):
2067 * device-msw.c (finalize_devmode):
2068 * device.c:
2069 * device.c (print_device):
2070 * elhash.c:
2071 * elhash.c (print_hash_table):
2072 * eval.c (print_multiple_value):
2073 * eval.c (mark_multiple_value):
2074 * events.c (deinitialize_event):
2075 * events.c (print_event):
2076 * events.c (event_equal):
2077 * extents.c:
2078 * extents.c (soe_dump):
2079 * extents.c (soe_insert):
2080 * extents.c (soe_delete):
2081 * extents.c (soe_move):
2082 * extents.c (extent_fragment_update):
2083 * extents.c (print_extent_1):
2084 * extents.c (print_extent):
2085 * extents.c (vars_of_extents):
2086 * frame.c:
2087 * frame.c (print_frame):
2088 * free-hook.c:
2089 * free-hook.c (check_free):
2090 * glyphs.c:
2091 * glyphs.c (print_image_instance):
2092 * glyphs.c (print_glyph):
2093 * gui.c:
2094 * gui.c (copy_gui_item):
2095 * hash.c:
2096 * hash.c (NULL_ENTRY):
2097 * hash.c (KEYS_DIFFER_P):
2098 * keymap.c (print_keymap):
2099 * keymap.c (MARKED_SLOT):
2100 * lisp.h:
2101 * lrecord.h:
2102 * lrecord.h (LISP_OBJECT_UID):
2103 * lrecord.h (set_lheader_implementation):
2104 * lrecord.h (struct old_lcrecord_header):
2105 * lstream.c (print_lstream):
2106 * lstream.c (finalize_lstream):
2107 * marker.c (print_marker):
2108 * marker.c (marker_equal):
2109 * mc-alloc.c (visit_all_used_page_headers):
2110 * mule-charset.c:
2111 * mule-charset.c (print_charset):
2112 * objects.c (print_color_instance):
2113 * objects.c (print_font_instance):
2114 * objects.c (finalize_font_instance):
2115 * opaque.c (print_opaque):
2116 * opaque.c (print_opaque_ptr):
2117 * opaque.c (equal_opaque_ptr):
2118 * print.c (internal_object_printer):
2119 * print.c (enum printing_badness):
2120 * rangetab.c (print_range_table):
2121 * rangetab.c (range_table_equal):
2122 * specifier.c (print_specifier):
2123 * specifier.c (finalize_specifier):
2124 * symbols.c:
2125 * symbols.c (print_symbol_value_magic):
2126 * tooltalk.c:
2127 * tooltalk.c (print_tooltalk_message):
2128 * tooltalk.c (print_tooltalk_pattern):
2129 * window.c (print_window):
2130 * window.c (debug_print_window):
2131 (1) Make lrecord UID's have a separate UID space for each object.
2132 Otherwise, with 20-bit UID's, we rapidly wrap around, especially
2133 when common objects like conses and strings increment the UID value
2134 for every object created. (Originally I tried making two UID spaces,
2135 one for objects that always print readably and hence don't display
2136 the UID, and one for other objects. But certain objects like markers
2137 for which a UID is displayed are still generated rapidly enough that
2138 UID overflow is a serious issue.) This also has the advantage of
2139 making UID values smaller, hence easier to remember -- their main
2140 purpose is to make it easier to keep track of different objects of
2141 the same type when debugging code. Make sure we dump lrecord UID's
2142 so that we don't have problems with pdumped and non-dumped objects
2143 having the same UID.
2144
2145 (2) Display UID's consistently whenever an object (a) doesn't
2146 consistently print readably (objects like cons and string, which
2147 always print readably, can't display a UID), and (b) doesn't
2148 otherwise have a unique property that makes objects of a
2149 particular type distinguishable. (E.g. buffers didn't and still
2150 don't print an ID, but the buffer name uniquely identifies the
2151 buffer.) Some types, such as event, extent, compiled-function,
2152 didn't always (or didn't ever) display an ID; others (such as
2153 marker, extent, lstream, opaque, opaque-ptr, any object using
2154 internal_object_printer()) used to display the actual machine
2155 pointer instead.
2156
2157 (3) Rename NORMAL_LISP_OBJECT_UID to LISP_OBJECT_UID; make it work
2158 over all Lisp objects and take a Lisp object, not a struct pointer.
2159
2160 (4) Some misc cleanups in alloc.c, elhash.c.
2161
2162 (5) Change code in events.c that "deinitializes" an event so that
2163 it doesn't increment the event UID counter in the process. Also
2164 use deadbeef_memory() to overwrite memory instead of doing the same
2165 with custom code. In the process, make deadbeef_memory() in
2166 alloc.c always available, and delete extraneous copy in mc-alloc.c.
2167 Also capitalize all uses of 0xDEADBEEF. Similarly in elhash.c
2168 call deadbeef_memory().
2169
2170 (6) Resurrect "debug SOE" code in extents.c. Make it conditional
2171 on DEBUG_XEMACS and on a `debug-soe' variable, rather than on
2172 SOE_DEBUG. Make it output to stderr, not stdout.
2173
2174 (7) Delete some custom print methods that were identical to
2175 external_object_printer().
2176
2177 2010-03-12 Ben Wing <ben@xemacs.org>
2178
2179 * lisp.h:
2180 * lisp.h (redo-symbols): Removed.
2181 Put the Lisp variables and symbols where they belong, with other
2182 stuff related to the file they're in.
2183
2184 * event-Xt.c (THIS_IS_X):
2185 * event-Xt.c (syms_of_event_Xt):
2186 * event-Xt.c (reinit_vars_of_event_Xt):
2187 * event-gtk.c:
2188 * event-gtk.c (syms_of_event_gtk):
2189 * event-gtk.c (reinit_vars_of_event_gtk):
2190 * event-stream.c:
2191 * event-stream.c (syms_of_event_stream):
2192 * event-stream.c (reinit_vars_of_event_stream):
2193 * events.c (reinit_vars_of_events):
2194 * events.c (vars_of_events):
2195 `sans-modifiers' was defsymbol'ed more than once. Move it to
2196 events-stream.c. `self-insert-command' was defsymbol'ed more than once.
2197 Vevent_resource should be staticpro_nodump()ed as it's declared in
2198 a reinit_*() method.
2199
2200 * lread.c (vars_of_lread):
2201 Vfile_domain wasn't staticpro'ed.
2202
2203 * minibuf.c:
2204 * minibuf.c (reinit_complex_vars_of_minibuf):
2205 Vminibuffer_zero and Vecho_area_buffer weren't staticpro'ed.
2206
2207 2010-03-12 Ben Wing <ben@xemacs.org>
2208
2209 * redisplay-msw.c:
2210 * redisplay-msw.c (mswindows_output_dibitmap_region):
2211 * redisplay-msw.c (mswindows_output_pixmap):
2212 * redisplay-msw.c (mswindows_clear_region):
2213 Have a crack at implementing the `absolute' property for
2214 background pixmaps. It seems to work; however, things don't
2215 work quite right in relation to window sizing/moving. In particular,
2216 ideally when you move the window the background should stay in place
2217 but it doesn't; instead it moves, and when you hit C-l it gets
2218 redrawn in the "proper" place. When resizing you get some serious
2219 jitter, apparently as first the image gets moved then redrawn in
2220 the correct offset position. #### Not sure how to fix this.
2221
2222 2010-03-13 Ben Wing <ben@xemacs.org>
2223
2224 * alloc.c (alloc_sized_lrecord_1):
2225 * alloc.c (alloc_sized_lrecord_array):
2226 * alloc.c (old_alloc_sized_lcrecord):
2227 * alloc.c (disksave_object_finalization_1):
2228 * alloc.c (mark_lcrecord_list):
2229 * alloc.c (alloc_managed_lcrecord):
2230 * alloc.c (free_managed_lcrecord):
2231 * alloc.c (tick_lcrecord_stats):
2232 * alloc.c (sweep_lcrecords_1):
2233 * buffer.c (print_buffer):
2234 * buffer.c (DEFVAR_BUFFER_LOCAL_1):
2235 * casetab.c:
2236 * casetab.c (print_case_table):
2237 * console.c (print_console):
2238 * console.c (DEFVAR_CONSOLE_LOCAL_1):
2239 * data.c (print_weak_list):
2240 * data.c (print_weak_box):
2241 * data.c (print_ephemeron):
2242 * data.c (ephemeron_equal):
2243 * database.c (print_database):
2244 * database.c (finalize_database):
2245 * device-msw.c (sync_printer_with_devmode):
2246 * device-msw.c (print_devmode):
2247 * device-msw.c (finalize_devmode):
2248 * device.c:
2249 * device.c (print_device):
2250 * elhash.c:
2251 * elhash.c (print_hash_table):
2252 * eval.c (print_subr):
2253 * eval.c (print_multiple_value):
2254 * event-stream.c (event_stream_resignal_wakeup):
2255 * events.c (clear_event_resource):
2256 * events.c (zero_event):
2257 * events.c (print_event):
2258 * extents.c:
2259 * extents.c (print_extent):
2260 * file-coding.c (print_coding_system):
2261 * font-mgr.c:
2262 * font-mgr.c (Ffc_init):
2263 * frame.c:
2264 * frame.c (print_frame):
2265 * gc.c:
2266 * gc.c (GC_CHECK_NOT_FREE):
2267 * glyphs.c:
2268 * glyphs.c (print_image_instance):
2269 * glyphs.c (print_glyph):
2270 * gui.c (print_gui_item):
2271 * gui.c (copy_gui_item):
2272 * keymap.c (print_keymap):
2273 * keymap.c (MARKED_SLOT):
2274 * lisp.h:
2275 * lisp.h (struct Lisp_String):
2276 * lisp.h (DEFUN):
2277 * lisp.h (DEFUN_NORETURN):
2278 * lrecord.h:
2279 * lrecord.h (NORMAL_LISP_OBJECT_UID):
2280 * lrecord.h (struct lrecord_header):
2281 * lrecord.h (set_lheader_implementation):
2282 * lrecord.h (struct old_lcrecord_header):
2283 * lrecord.h (struct free_lcrecord_header):
2284 * marker.c (print_marker):
2285 * mule-charset.c:
2286 * mule-charset.c (print_charset):
2287 * objects.c (print_color_instance):
2288 * objects.c (print_font_instance):
2289 * objects.c (finalize_font_instance):
2290 * print.c (print_cons):
2291 * print.c (printing_unreadable_object_fmt):
2292 * print.c (printing_unreadable_lisp_object):
2293 * print.c (external_object_printer):
2294 * print.c (internal_object_printer):
2295 * print.c (debug_p4):
2296 * print.c (ext_print_begin):
2297 * process.c (print_process):
2298 * rangetab.c (print_range_table):
2299 * rangetab.c (range_table_equal):
2300 * scrollbar.c (free_scrollbar_instance):
2301 * specifier.c (print_specifier):
2302 * specifier.c (finalize_specifier):
2303 * symbols.c (guts_of_unbound_marker):
2304 * symeval.h:
2305 * symeval.h (DEFVAR_SYMVAL_FWD):
2306 * tooltalk.c:
2307 * tooltalk.c (print_tooltalk_message):
2308 * tooltalk.c (print_tooltalk_pattern):
2309 * ui-gtk.c (ffi_object_printer):
2310 * ui-gtk.c (emacs_gtk_object_printer):
2311 * ui-gtk.c (emacs_gtk_boxed_printer):
2312 * window.c (print_window):
2313 * window.c (free_window_mirror):
2314 * window.c (debug_print_window):
2315 * xemacs.def.in.in:
2316 (1) printing_unreadable_object -> printing_unreadable_object_fmt.
2317 (2) printing_unreadable_lcrecord -> printing_unreadable_lisp_object
2318 and fix up so it no longer requires an lcrecord.
2319
2320 These previous changes eliminate most of the remaining places where
2321 the terms `lcrecord' and `lrecord' occurred outside of specialized
2322 code.
2323
2324 (3) Fairly major change: Reduce the number of words in an lcrecord
2325 from 3 to 2. The third word consisted of a uid that duplicated the
2326 lrecord uid, and a single free bit, which was moved into the lrecord
2327 structure. This reduces the size of the `uid' slot from 21 bits to
2328 20 bits. Arguably this isn't enough -- we could easily have more than
2329 1,000,000 or so objects created in a session. The answer is
2330 (a) It doesn't really matter if we overflow the uid field because
2331 it's only used for debugging, to identify an object uniquely
2332 (or pretty much so).
2333 (b) If we cared about it overflowing and wanted to reduce this,
2334 we could make it so that cons, string, float and certain other
2335 frob-block types that never print out the uid simply don't
2336 store a uid in them and don't increment the lrecord_uid_counter.
2337
2338 (4) In conjunction with (3), create new macro NORMAL_LISP_OBJECT_UID()
2339 and use it to abstract out the differences between NEWGC and old-GC
2340 in accessing the `uid' value from a "normal Lisp Object pointer".
2341
2342 (5) In events.c, use zero_nonsized_lisp_object() in place of custom-
2343 written equivalent. In font-mgr.c use external_object_printer()
2344 in place of custom-written equivalents.
2345 2010-03-07 Ben Wing <ben@xemacs.org>
2346
2347 * number.c (bignum_finalize):
2348 * number.c (ratio_finalize):
2349 * number.c (bigfloat_finalize):
2350 Fix the finalizers to go with the new calling sequence. Done
2351 previously but somehow got lost.
2352
2353 2010-03-06 Ben Wing <ben@xemacs.org>
2354
2355 * frame.c (change_frame_size_1):
2356 Add a comment about where FRAME_PIXWIDTH/FRAME_PIXHEIGHT is set.
2357
2358 2010-03-05 Ben Wing <ben@xemacs.org>
2359
2360 * frame.c:
2361 * frame.c (Fframe_pixel_height):
2362 * frame.c (Fframe_displayable_pixel_height):
2363 * frame.c (Fframe_pixel_width):
2364 * frame.c (Fframe_displayable_pixel_width):
2365 * frame.c (Fset_frame_pixel_height):
2366 * frame.c (Fset_frame_displayable_pixel_height):
2367 * frame.c (Fset_frame_pixel_width):
2368 * frame.c (Fset_frame_displayable_pixel_width):
2369 * frame.c (get_frame_char_size):
2370 * frame.c (change_frame_size_1):
2371 Make it so that `frame-pixel-height', `set-frame-pixel-height', etc.
2372 use updated values for the displayable or total pixel size that
2373 will reflect what will happen as of the next redisplay. This
2374 basically means using the character-cell height and converting
2375 on-the-fly to pixel units. In the process, make sure FRAME_CHARWIDTH/
2376 FRAME_CHARHEIGHT are always correct and change
2377 get_frame_char_size() to simply use them; the old logic in that
2378 function was inlined into change_frame_size_1(), which is the only
2379 place that needs the logic.
2380
2381 2010-03-05 Ben Wing <ben@xemacs.org>
2382
2383 * frame.c:
2384 * frame.c (frame_live_p):
2385 * frame.c (Fframep):
2386 * frame.c (Fdisable_frame):
2387 * frame.c (Fenable_frame):
2388 * frame.c (Fraise_frame):
2389 * frame.c (Fframe_name):
2390 * frame.c (Fset_frame_height):
2391 * frame.c (internal_set_frame_size):
2392 * frame.c (adjust_frame_size):
2393 Add documentation on the different types of units used to measure
2394 frame size.
2395
2396 Add section headers to the various sections.
2397
2398 Rearrange the location of some functions in the file to keep
2399 related functions together. This especially goes for frame-sizing
2400 functions (internal_set_frame_size() and adjust_frame_size()),
2401 which have been moved so that they form a group with
2402 change_frame_size() and change_frame_size_1().
2403
2404 No functionality should change.
2405
2406 2010-03-05 Ben Wing <ben@xemacs.org>
2407
2408 * alloc.c:
2409 * alloc.c (old_alloc_sized_lcrecord):
2410 * alloc.c (very_old_free_lcrecord):
2411 * alloc.c (copy_lisp_object):
2412 * alloc.c (zero_sized_lisp_object):
2413 * alloc.c (zero_nonsized_lisp_object):
2414 * alloc.c (lisp_object_storage_size):
2415 * alloc.c (free_normal_lisp_object):
2416 * alloc.c (FREE_FIXED_TYPE_WHEN_NOT_IN_GC):
2417 * alloc.c (ALLOC_FROB_BLOCK_LISP_OBJECT):
2418 * alloc.c (Fcons):
2419 * alloc.c (noseeum_cons):
2420 * alloc.c (make_float):
2421 * alloc.c (make_bignum):
2422 * alloc.c (make_bignum_bg):
2423 * alloc.c (make_ratio):
2424 * alloc.c (make_ratio_bg):
2425 * alloc.c (make_ratio_rt):
2426 * alloc.c (make_bigfloat):
2427 * alloc.c (make_bigfloat_bf):
2428 * alloc.c (size_vector):
2429 * alloc.c (make_compiled_function):
2430 * alloc.c (Fmake_symbol):
2431 * alloc.c (allocate_extent):
2432 * alloc.c (allocate_event):
2433 * alloc.c (make_key_data):
2434 * alloc.c (make_button_data):
2435 * alloc.c (make_motion_data):
2436 * alloc.c (make_process_data):
2437 * alloc.c (make_timeout_data):
2438 * alloc.c (make_magic_data):
2439 * alloc.c (make_magic_eval_data):
2440 * alloc.c (make_eval_data):
2441 * alloc.c (make_misc_user_data):
2442 * alloc.c (Fmake_marker):
2443 * alloc.c (noseeum_make_marker):
2444 * alloc.c (size_string_direct_data):
2445 * alloc.c (make_uninit_string):
2446 * alloc.c (make_string_nocopy):
2447 * alloc.c (mark_lcrecord_list):
2448 * alloc.c (alloc_managed_lcrecord):
2449 * alloc.c (free_managed_lcrecord):
2450 * alloc.c (sweep_lcrecords_1):
2451 * alloc.c (malloced_storage_size):
2452 * buffer.c (allocate_buffer):
2453 * buffer.c (compute_buffer_usage):
2454 * buffer.c (DEFVAR_BUFFER_LOCAL_1):
2455 * buffer.c (nuke_all_buffer_slots):
2456 * buffer.c (common_init_complex_vars_of_buffer):
2457 * buffer.h (struct buffer_text):
2458 * buffer.h (struct buffer):
2459 * bytecode.c:
2460 * bytecode.c (make_compiled_function_args):
2461 * bytecode.c (size_compiled_function_args):
2462 * bytecode.h (struct compiled_function_args):
2463 * casetab.c (allocate_case_table):
2464 * casetab.h (struct Lisp_Case_Table):
2465 * charset.h (struct Lisp_Charset):
2466 * chartab.c (fill_char_table):
2467 * chartab.c (Fmake_char_table):
2468 * chartab.c (make_char_table_entry):
2469 * chartab.c (copy_char_table_entry):
2470 * chartab.c (Fcopy_char_table):
2471 * chartab.c (put_char_table):
2472 * chartab.h (struct Lisp_Char_Table_Entry):
2473 * chartab.h (struct Lisp_Char_Table):
2474 * console-gtk-impl.h (struct gtk_device):
2475 * console-gtk-impl.h (struct gtk_frame):
2476 * console-impl.h (struct console):
2477 * console-msw-impl.h (struct Lisp_Devmode):
2478 * console-msw-impl.h (struct mswindows_device):
2479 * console-msw-impl.h (struct msprinter_device):
2480 * console-msw-impl.h (struct mswindows_frame):
2481 * console-msw-impl.h (struct mswindows_dialog_id):
2482 * console-stream-impl.h (struct stream_console):
2483 * console-stream.c (stream_init_console):
2484 * console-tty-impl.h (struct tty_console):
2485 * console-tty-impl.h (struct tty_device):
2486 * console-tty.c (allocate_tty_console_struct):
2487 * console-x-impl.h (struct x_device):
2488 * console-x-impl.h (struct x_frame):
2489 * console.c (allocate_console):
2490 * console.c (nuke_all_console_slots):
2491 * console.c (DEFVAR_CONSOLE_LOCAL_1):
2492 * console.c (common_init_complex_vars_of_console):
2493 * data.c (make_weak_list):
2494 * data.c (make_weak_box):
2495 * data.c (make_ephemeron):
2496 * database.c:
2497 * database.c (struct Lisp_Database):
2498 * database.c (allocate_database):
2499 * database.c (finalize_database):
2500 * device-gtk.c (allocate_gtk_device_struct):
2501 * device-impl.h (struct device):
2502 * device-msw.c:
2503 * device-msw.c (mswindows_init_device):
2504 * device-msw.c (msprinter_init_device):
2505 * device-msw.c (finalize_devmode):
2506 * device-msw.c (allocate_devmode):
2507 * device-tty.c (allocate_tty_device_struct):
2508 * device-x.c (allocate_x_device_struct):
2509 * device.c:
2510 * device.c (nuke_all_device_slots):
2511 * device.c (allocate_device):
2512 * dialog-msw.c (handle_question_dialog_box):
2513 * elhash.c:
2514 * elhash.c (struct Lisp_Hash_Table):
2515 * elhash.c (finalize_hash_table):
2516 * elhash.c (make_general_lisp_hash_table):
2517 * elhash.c (Fcopy_hash_table):
2518 * elhash.h (htentry):
2519 * emacs.c (main_1):
2520 * eval.c:
2521 * eval.c (size_multiple_value):
2522 * event-stream.c (finalize_command_builder):
2523 * event-stream.c (allocate_command_builder):
2524 * event-stream.c (free_command_builder):
2525 * event-stream.c (event_stream_generate_wakeup):
2526 * event-stream.c (event_stream_resignal_wakeup):
2527 * event-stream.c (event_stream_disable_wakeup):
2528 * event-stream.c (event_stream_wakeup_pending_p):
2529 * events.h (struct Lisp_Timeout):
2530 * events.h (struct command_builder):
2531 * extents-impl.h:
2532 * extents-impl.h (struct extent_auxiliary):
2533 * extents-impl.h (struct extent_info):
2534 * extents-impl.h (set_extent_no_chase_aux_field):
2535 * extents-impl.h (set_extent_no_chase_normal_field):
2536 * extents.c:
2537 * extents.c (gap_array_marker):
2538 * extents.c (gap_array):
2539 * extents.c (extent_list_marker):
2540 * extents.c (extent_list):
2541 * extents.c (stack_of_extents):
2542 * extents.c (gap_array_make_marker):
2543 * extents.c (extent_list_make_marker):
2544 * extents.c (allocate_extent_list):
2545 * extents.c (SLOT):
2546 * extents.c (mark_extent_auxiliary):
2547 * extents.c (allocate_extent_auxiliary):
2548 * extents.c (attach_extent_auxiliary):
2549 * extents.c (size_gap_array):
2550 * extents.c (finalize_extent_info):
2551 * extents.c (allocate_extent_info):
2552 * extents.c (uninit_buffer_extents):
2553 * extents.c (allocate_soe):
2554 * extents.c (copy_extent):
2555 * extents.c (vars_of_extents):
2556 * extents.h:
2557 * faces.c (allocate_face):
2558 * faces.h (struct Lisp_Face):
2559 * faces.h (struct face_cachel):
2560 * file-coding.c:
2561 * file-coding.c (finalize_coding_system):
2562 * file-coding.c (sizeof_coding_system):
2563 * file-coding.c (Fcopy_coding_system):
2564 * file-coding.h (struct Lisp_Coding_System):
2565 * file-coding.h (MARKED_SLOT):
2566 * fns.c (size_bit_vector):
2567 * font-mgr.c:
2568 * font-mgr.c (finalize_fc_pattern):
2569 * font-mgr.c (print_fc_pattern):
2570 * font-mgr.c (Ffc_pattern_p):
2571 * font-mgr.c (Ffc_pattern_create):
2572 * font-mgr.c (Ffc_name_parse):
2573 * font-mgr.c (Ffc_name_unparse):
2574 * font-mgr.c (Ffc_pattern_duplicate):
2575 * font-mgr.c (Ffc_pattern_add):
2576 * font-mgr.c (Ffc_pattern_del):
2577 * font-mgr.c (Ffc_pattern_get):
2578 * font-mgr.c (fc_config_create_using):
2579 * font-mgr.c (fc_strlist_to_lisp_using):
2580 * font-mgr.c (fontset_to_list):
2581 * font-mgr.c (Ffc_config_p):
2582 * font-mgr.c (Ffc_config_up_to_date):
2583 * font-mgr.c (Ffc_config_build_fonts):
2584 * font-mgr.c (Ffc_config_get_cache):
2585 * font-mgr.c (Ffc_config_get_fonts):
2586 * font-mgr.c (Ffc_config_set_current):
2587 * font-mgr.c (Ffc_config_get_blanks):
2588 * font-mgr.c (Ffc_config_get_rescan_interval):
2589 * font-mgr.c (Ffc_config_set_rescan_interval):
2590 * font-mgr.c (Ffc_config_app_font_add_file):
2591 * font-mgr.c (Ffc_config_app_font_add_dir):
2592 * font-mgr.c (Ffc_config_app_font_clear):
2593 * font-mgr.c (size):
2594 * font-mgr.c (Ffc_config_substitute):
2595 * font-mgr.c (Ffc_font_render_prepare):
2596 * font-mgr.c (Ffc_font_match):
2597 * font-mgr.c (Ffc_font_sort):
2598 * font-mgr.c (finalize_fc_config):
2599 * font-mgr.c (print_fc_config):
2600 * font-mgr.h:
2601 * font-mgr.h (struct fc_pattern):
2602 * font-mgr.h (XFC_PATTERN):
2603 * font-mgr.h (struct fc_config):
2604 * font-mgr.h (XFC_CONFIG):
2605 * frame-gtk.c (allocate_gtk_frame_struct):
2606 * frame-impl.h (struct frame):
2607 * frame-msw.c (mswindows_init_frame_1):
2608 * frame-x.c (allocate_x_frame_struct):
2609 * frame.c (nuke_all_frame_slots):
2610 * frame.c (allocate_frame_core):
2611 * gc.c:
2612 * gc.c (GC_CHECK_NOT_FREE):
2613 * glyphs.c (finalize_image_instance):
2614 * glyphs.c (allocate_image_instance):
2615 * glyphs.c (Fcolorize_image_instance):
2616 * glyphs.c (allocate_glyph):
2617 * glyphs.c (unmap_subwindow_instance_cache_mapper):
2618 * glyphs.c (register_ignored_expose):
2619 * glyphs.h (struct Lisp_Image_Instance):
2620 * glyphs.h (struct Lisp_Glyph):
2621 * glyphs.h (struct glyph_cachel):
2622 * glyphs.h (struct expose_ignore):
2623 * gui.c (allocate_gui_item):
2624 * gui.h (struct Lisp_Gui_Item):
2625 * keymap.c (struct Lisp_Keymap):
2626 * keymap.c (make_keymap):
2627 * lisp.h:
2628 * lisp.h (struct Lisp_String_Direct_Data):
2629 * lisp.h (struct Lisp_String_Indirect_Data):
2630 * lisp.h (struct Lisp_Vector):
2631 * lisp.h (struct Lisp_Bit_Vector):
2632 * lisp.h (DECLARE_INLINE_LISP_BIT_VECTOR):
2633 * lisp.h (struct weak_box):
2634 * lisp.h (struct ephemeron):
2635 * lisp.h (struct weak_list):
2636 * lrecord.h:
2637 * lrecord.h (struct lrecord_implementation):
2638 * lrecord.h (MC_ALLOC_CALL_FINALIZER):
2639 * lrecord.h (struct lcrecord_list):
2640 * lstream.c (finalize_lstream):
2641 * lstream.c (sizeof_lstream):
2642 * lstream.c (Lstream_new):
2643 * lstream.c (Lstream_delete):
2644 * lstream.h (struct lstream):
2645 * marker.c:
2646 * marker.c (finalize_marker):
2647 * marker.c (compute_buffer_marker_usage):
2648 * mule-charset.c:
2649 * mule-charset.c (make_charset):
2650 * mule-charset.c (compute_charset_usage):
2651 * objects-impl.h (struct Lisp_Color_Instance):
2652 * objects-impl.h (struct Lisp_Font_Instance):
2653 * objects-tty-impl.h (struct tty_color_instance_data):
2654 * objects-tty-impl.h (struct tty_font_instance_data):
2655 * objects-tty.c (tty_initialize_color_instance):
2656 * objects-tty.c (tty_initialize_font_instance):
2657 * objects.c (finalize_color_instance):
2658 * objects.c (Fmake_color_instance):
2659 * objects.c (finalize_font_instance):
2660 * objects.c (Fmake_font_instance):
2661 * objects.c (reinit_vars_of_objects):
2662 * opaque.c:
2663 * opaque.c (sizeof_opaque):
2664 * opaque.c (make_opaque_ptr):
2665 * opaque.c (free_opaque_ptr):
2666 * opaque.h:
2667 * opaque.h (Lisp_Opaque):
2668 * opaque.h (Lisp_Opaque_Ptr):
2669 * print.c (printing_unreadable_lcrecord):
2670 * print.c (external_object_printer):
2671 * print.c (debug_p4):
2672 * process.c (finalize_process):
2673 * process.c (make_process_internal):
2674 * procimpl.h (struct Lisp_Process):
2675 * rangetab.c (Fmake_range_table):
2676 * rangetab.c (Fcopy_range_table):
2677 * rangetab.h (struct Lisp_Range_Table):
2678 * scrollbar.c:
2679 * scrollbar.c (create_scrollbar_instance):
2680 * scrollbar.c (compute_scrollbar_instance_usage):
2681 * scrollbar.h (struct scrollbar_instance):
2682 * specifier.c (finalize_specifier):
2683 * specifier.c (sizeof_specifier):
2684 * specifier.c (set_specifier_caching):
2685 * specifier.h (struct Lisp_Specifier):
2686 * specifier.h (struct specifier_caching):
2687 * symeval.h:
2688 * symeval.h (SYMBOL_VALUE_MAGIC_P):
2689 * symeval.h (DEFVAR_SYMVAL_FWD):
2690 * symsinit.h:
2691 * syntax.c (init_buffer_syntax_cache):
2692 * syntax.h (struct syntax_cache):
2693 * toolbar.c:
2694 * toolbar.c (allocate_toolbar_button):
2695 * toolbar.c (update_toolbar_button):
2696 * toolbar.h (struct toolbar_button):
2697 * tooltalk.c (struct Lisp_Tooltalk_Message):
2698 * tooltalk.c (make_tooltalk_message):
2699 * tooltalk.c (struct Lisp_Tooltalk_Pattern):
2700 * tooltalk.c (make_tooltalk_pattern):
2701 * ui-gtk.c:
2702 * ui-gtk.c (allocate_ffi_data):
2703 * ui-gtk.c (emacs_gtk_object_finalizer):
2704 * ui-gtk.c (allocate_emacs_gtk_object_data):
2705 * ui-gtk.c (allocate_emacs_gtk_boxed_data):
2706 * ui-gtk.h:
2707 * window-impl.h (struct window):
2708 * window-impl.h (struct window_mirror):
2709 * window.c (finalize_window):
2710 * window.c (allocate_window):
2711 * window.c (new_window_mirror):
2712 * window.c (mark_window_as_deleted):
2713 * window.c (make_dummy_parent):
2714 * window.c (compute_window_mirror_usage):
2715 * window.c (compute_window_usage):
2716
2717 Overall point of this change and previous ones in this repository:
2718
2719 (1) Introduce new, clearer terminology: everything other than int
2720 or char is a "record" object, which comes in two types: "normal
2721 objects" and "frob-block objects". Fix up all places that
2722 referred to frob-block objects as "simple", "basic", etc.
2723
2724 (2) Provide an advertised interface for doing operations on Lisp
2725 objects, including creating new types, that is clean and
2726 consistent in its naming, uses the above-referenced terms and
2727 avoids referencing "lrecords", "old lcrecords", etc., which should
2728 hide under the surface.
2729
2730 (3) Make the size_in_bytes and finalizer methods take a
2731 Lisp_Object rather than a void * for consistency with other methods.
2732
2733 (4) Separate finalizer method into finalizer and disksaver, so
2734 that normal finalize methods don't have to worry about disksaving.
2735
2736 Other specifics:
2737
2738 (1) Renaming:
2739
2740 LISP_OBJECT_HEADER -> NORMAL_LISP_OBJECT_HEADER
2741 ALLOC_LISP_OBJECT -> ALLOC_NORMAL_LISP_OBJECT
2742 implementation->basic_p -> implementation->frob_block_p
2743 ALLOCATE_FIXED_TYPE_AND_SET_IMPL -> ALLOC_FROB_BLOCK_LISP_OBJECT
2744 *FCCONFIG*, wrap_fcconfig -> *FC_CONFIG*, wrap_fc_config
2745 *FCPATTERN*, wrap_fcpattern -> *FC_PATTERN*, wrap_fc_pattern
2746
2747 (the last two changes make the naming of these macros consistent
2748 with the naming of all other macros, since the objects are named
2749 fc-config and fc-pattern with a hyphen)
2750
2751 (2) Lots of documentation fixes in lrecord.h.
2752
2753 (3) Eliminate macros for copying, freeing, zeroing objects, getting
2754 their storage size. Instead, new functions:
2755
2756 zero_sized_lisp_object()
2757 zero_nonsized_lisp_object()
2758 lisp_object_storage_size()
2759 free_normal_lisp_object()
2760 (copy_lisp_object() already exists)
2761 LISP_OBJECT_FROB_BLOCK_P() (actually a macro)
2762
2763 Eliminated:
2764
2765 free_lrecord()
2766 zero_lrecord()
2767 copy_lrecord()
2768 copy_sized_lrecord()
2769 old_copy_lcrecord()
2770 old_copy_sized_lcrecord()
2771 old_zero_lcrecord()
2772 old_zero_sized_lcrecord()
2773 LISP_OBJECT_STORAGE_SIZE()
2774 COPY_SIZED_LISP_OBJECT()
2775 COPY_SIZED_LCRECORD()
2776 COPY_LISP_OBJECT()
2777 ZERO_LISP_OBJECT()
2778 FREE_LISP_OBJECT()
2779
2780 (4) Catch the remaining places where lrecord stuff was used directly
2781 and use the advertised interface, e.g. alloc_sized_lrecord() ->
2782 ALLOC_SIZED_LISP_OBJECT().
2783
2784 (5) Make certain statically-declared pseudo-objects
2785 (buffer_local_flags, console_local_flags) have their lheader
2786 initialized correctly, so things like copy_lisp_object() can work
2787 on them. Make extent_auxiliary_defaults a proper heap object
2788 Vextent_auxiliary_defaults, and make extent auxiliaries dumpable
2789 so that this object can be dumped. allocate_extent_auxiliary()
2790 now just creates the object, and attach_extent_auxiliary()
2791 creates an extent auxiliary and attaches to an extent, like the
2792 old allocate_extent_auxiliary().
2793
2794 (6) Create EXTENT_AUXILIARY_SLOTS macro, similar to the foo-slots.h
2795 files but in a macro instead of a file. The purpose is to avoid
2796 duplication when iterating over all the slots in an extent auxiliary.
2797 Use it.
2798
2799 (7) In lstream.c, don't zero out object after allocation because
2800 allocation routines take care of this.
2801
2802 (8) In marker.c, fix a mistake in computing marker overhead.
2803
2804 (9) In print.c, clean up printing_unreadable_lcrecord(),
2805 external_object_printer() to avoid lots of ifdef NEW_GC's.
2806
2807 (10) Separate toolbar-button allocation into a separate
2808 allocate_toolbar_button() function for use in the example code
2809 in lrecord.h.
2810
2811 2010-01-20 Ben Wing <ben@xemacs.org>
2812
2813 * alloc.c:
2814 * alloc.c (very_old_free_lcrecord):
2815 * alloc.c (disksave_object_finalization_1):
2816 * alloc.c (make_lcrecord_list):
2817 * alloc.c (alloc_managed_lcrecord):
2818 * alloc.c (free_managed_lcrecord):
2819 * alloc.c (sweep_lcrecords_1):
2820 * buffer.c:
2821 * bytecode.c:
2822 * bytecode.c (Fcompiled_function_p):
2823 * chartab.c:
2824 * console-impl.h:
2825 * console-impl.h (CONSOLE_TYPE_P):
2826 * console.c:
2827 * console.c (set_quit_events):
2828 * data.c:
2829 * data.c (Fmake_ephemeron):
2830 * database.c:
2831 * database.c (finalize_database):
2832 * database.c (Fclose_database):
2833 * device-msw.c:
2834 * device-msw.c (finalize_devmode):
2835 * device-msw.c (allocate_devmode):
2836 * device.c:
2837 * elhash.c:
2838 * elhash.c (finalize_hash_table):
2839 * eval.c:
2840 * eval.c (bind_multiple_value_limits):
2841 * event-stream.c:
2842 * event-stream.c (finalize_command_builder):
2843 * events.c:
2844 * events.c (mark_event):
2845 * extents.c:
2846 * extents.c (finalize_extent_info):
2847 * extents.c (uninit_buffer_extents):
2848 * faces.c:
2849 * file-coding.c:
2850 * file-coding.c (finalize_coding_system):
2851 * file-coding.h:
2852 * file-coding.h (struct coding_system_methods):
2853 * file-coding.h (struct detector):
2854 * floatfns.c:
2855 * floatfns.c (extract_float):
2856 * fns.c:
2857 * fns.c (Fidentity):
2858 * font-mgr.c (finalize_fc_pattern):
2859 * font-mgr.c (finalize_fc_config):
2860 * frame.c:
2861 * glyphs.c:
2862 * glyphs.c (finalize_image_instance):
2863 * glyphs.c (unmap_subwindow_instance_cache_mapper):
2864 * gui.c:
2865 * gui.c (gui_error):
2866 * keymap.c:
2867 * lisp.h (struct Lisp_Symbol):
2868 * lrecord.h:
2869 * lrecord.h (struct lrecord_implementation):
2870 * lrecord.h (MC_ALLOC_CALL_FINALIZER):
2871 * lrecord.h (MC_ALLOC_CALL_FINALIZER_FOR_DISKSAVE):
2872 * lrecord.h (DEFINE_DUMPABLE_LISP_OBJECT):
2873 * lrecord.h (DEFINE_DUMPABLE_GENERAL_LISP_OBJECT):
2874 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_LISP_OBJECT):
2875 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_GENERAL_LISP_OBJECT):
2876 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT):
2877 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_GENERAL_LISP_OBJECT):
2878 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_SIZABLE_LISP_OBJECT):
2879 * lrecord.h (DEFINE_DUMPABLE_INTERNAL_LISP_OBJECT):
2880 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_INTERNAL_LISP_OBJECT):
2881 * lrecord.h (DEFINE_NODUMP_LISP_OBJECT):
2882 * lrecord.h (DEFINE_NODUMP_GENERAL_LISP_OBJECT):
2883 * lrecord.h (DEFINE_NODUMP_SIZABLE_LISP_OBJECT):
2884 * lrecord.h (DEFINE_NODUMP_SIZABLE_GENERAL_LISP_OBJECT):
2885 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_LISP_OBJECT):
2886 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_GENERAL_LISP_OBJECT):
2887 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_SIZABLE_LISP_OBJECT):
2888 * lrecord.h (DEFINE_NODUMP_INTERNAL_LISP_OBJECT):
2889 * lrecord.h (DEFINE_NODUMP_SIZABLE_INTERNAL_LISP_OBJECT):
2890 * lrecord.h (MAKE_LISP_OBJECT):
2891 * lrecord.h (DEFINE_DUMPABLE_MODULE_LISP_OBJECT):
2892 * lrecord.h (DEFINE_DUMPABLE_MODULE_GENERAL_LISP_OBJECT):
2893 * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_LISP_OBJECT):
2894 * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_GENERAL_LISP_OBJECT):
2895 * lrecord.h (DEFINE_NODUMP_MODULE_LISP_OBJECT):
2896 * lrecord.h (DEFINE_NODUMP_MODULE_GENERAL_LISP_OBJECT):
2897 * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_LISP_OBJECT):
2898 * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_GENERAL_LISP_OBJECT):
2899 * lrecord.h (MAKE_MODULE_LISP_OBJECT):
2900 * lstream.c:
2901 * lstream.c (finalize_lstream):
2902 * lstream.c (disksave_lstream):
2903 * marker.c:
2904 * marker.c (finalize_marker):
2905 * mule-charset.c (make_charset):
2906 * number.c:
2907 * objects.c:
2908 * objects.c (finalize_color_instance):
2909 * objects.c (finalize_font_instance):
2910 * opaque.c:
2911 * opaque.c (make_opaque_ptr):
2912 * process-nt.c:
2913 * process-nt.c (nt_finalize_process_data):
2914 * process-nt.c (nt_deactivate_process):
2915 * process.c:
2916 * process.c (finalize_process):
2917 * procimpl.h (struct process_methods):
2918 * scrollbar.c:
2919 * scrollbar.c (free_scrollbar_instance):
2920 * specifier.c (finalize_specifier):
2921 * symbols.c:
2922 * toolbar.c:
2923 * toolbar.c (Ftoolbar_button_p):
2924 * tooltalk.c:
2925 * ui-gtk.c:
2926 * ui-gtk.c (emacs_gtk_object_finalizer):
2927 * ui-gtk.c (allocate_emacs_gtk_boxed_data):
2928 * window.c:
2929 * window.c (finalize_window):
2930 * window.c (mark_window_as_deleted):
2931
2932 Separate out regular and disksave finalization. Instead of a
2933 FOR_DISKSAVE argument to the finalizer, create a separate object
2934 method `disksaver'. Make `finalizer' have only one argument.
2935
2936 Go through and separate out all finalize methods into finalize
2937 and disksave. Delete lots of thereby redundant disksave checking.
2938 Delete places that signal an error if we attempt to disksave --
2939 all of these objects are non-dumpable and we will get an error
2940 from pdump anyway if we attempt to dump them. After this is done,
2941 only one object remains that has a disksave method -- lstream.
2942
2943 Change DEFINE_*_LISP_OBJECT_WITH_PROPS to DEFINE_*_GENERAL_LISP_OBJECT,
2944 which is used for specifying either property methods or disksave
2945 methods (or in the future, any other less-used methods).
2946
2947 Remove the for_disksave argument to finalize_process_data. Don't
2948 provide a disksaver for processes because no one currently needs
2949 it.
2950
2951 Clean up various places where objects didn't provide a print method.
2952 It was made mandatory in previous changes, and all methods now
2953 either provide their own print method or use internal_object_printer
2954 or external_object_printer.
2955
2956 Change the definition of CONSOLE_LIVE_P to use the contype enum
2957 rather than looking into the conmeths structure -- in some weird
2958 situations with dead objects, the conmeths structure is NULL,
2959 and printing such objects from debug_print() will crash if we try
2960 to look into the conmeths structure.
2961
2962
2963 2005-11-22 Ben Wing <ben@xemacs.org>
2964
2965 * alloc.c:
2966 * alloc.c (assert_proper_sizing):
2967 * alloc.c (alloc_sized_lrecord_1):
2968 * alloc.c (alloc_sized_lrecord):
2969 * alloc.c (noseeum_alloc_sized_lrecord):
2970 * alloc.c (alloc_lrecord):
2971 * alloc.c (old_alloc_sized_lcrecord):
2972 * alloc.c (make_vector_internal):
2973 * alloc.c (make_bit_vector_internal):
2974 * alloc.c (alloc_automanaged_sized_lcrecord):
2975 * buffer.c (allocate_buffer):
2976 * buffer.c (DEFVAR_BUFFER_LOCAL_1):
2977 * buffer.c (common_init_complex_vars_of_buffer):
2978 * casetab.c (allocate_case_table):
2979 * chartab.c (Fmake_char_table):
2980 * chartab.c (make_char_table_entry):
2981 * chartab.c (copy_char_table_entry):
2982 * chartab.c (Fcopy_char_table):
2983 * console.c (allocate_console):
2984 * console.c (DEFVAR_CONSOLE_LOCAL_1):
2985 * console.c (common_init_complex_vars_of_console):
2986 * data.c (make_weak_list):
2987 * data.c (make_weak_box):
2988 * data.c (make_ephemeron):
2989 * database.c (allocate_database):
2990 * device-msw.c (allocate_devmode):
2991 * device.c (allocate_device):
2992 * dialog-msw.c (handle_question_dialog_box):
2993 * elhash.c (make_general_lisp_hash_table):
2994 * elhash.c (Fcopy_hash_table):
2995 * emacs.c (main_1):
2996 * event-stream.c:
2997 * event-stream.c (allocate_command_builder):
2998 * event-stream.c (free_command_builder):
2999 * event-stream.c (mark_timeout):
3000 * event-stream.c (event_stream_generate_wakeup):
3001 * event-stream.c (event_stream_resignal_wakeup):
3002 * event-stream.c (event_stream_disable_wakeup):
3003 * event-stream.c (reinit_vars_of_event_stream):
3004 * extents.c (allocate_extent_auxiliary):
3005 * extents.c (allocate_extent_info):
3006 * extents.c (copy_extent):
3007 * faces.c (allocate_face):
3008 * file-coding.c (allocate_coding_system):
3009 * frame.c (allocate_frame_core):
3010 * glyphs.c (allocate_image_instance):
3011 * glyphs.c (allocate_glyph):
3012 * gui.c (allocate_gui_item):
3013 * keymap.c (make_keymap):
3014 * lrecord.h:
3015 * lrecord.h (ALLOC_LCRECORD):
3016 * lrecord.h (ALLOC_SIZED_LCRECORD):
3017 * lrecord.h (struct old_lcrecord_header):
3018 * lrecord.h (old_alloc_lcrecord_type):
3019 * lrecord.h (alloc_lrecord_type):
3020 * lrecord.h (noseeum_alloc_lrecord_type):
3021 * lstream.c (Lstream_new):
3022 * mule-charset.c (make_charset):
3023 * objects.c (Fmake_color_instance):
3024 * objects.c (Fmake_font_instance):
3025 * objects.c (reinit_vars_of_objects):
3026 * opaque.c (make_opaque):
3027 * opaque.c (make_opaque_ptr):
3028 * process.c (make_process_internal):
3029 * rangetab.c (Fmake_range_table):
3030 * rangetab.c (Fcopy_range_table):
3031 * scrollbar.c (create_scrollbar_instance):
3032 * specifier.c (make_specifier_internal):
3033 * symbols.c (Fdefvaralias):
3034 * toolbar.c (update_toolbar_button):
3035 * tooltalk.c (make_tooltalk_message):
3036 * tooltalk.c (make_tooltalk_pattern):
3037 * ui-gtk.c (allocate_ffi_data):
3038 * ui-gtk.c (allocate_emacs_gtk_object_data):
3039 * ui-gtk.c (allocate_emacs_gtk_boxed_data):
3040 * window.c (allocate_window):
3041 * window.c (new_window_mirror):
3042 * window.c (make_dummy_parent):
3043 Create a simpler interface for allocating/declaring Lisp objects;
3044 documented in lrecord.h.
3045
3046 ALLOC_LCRECORD_TYPE -> ALLOC_LISP_OBJECT (returns a Lisp object
3047 rather than a pointer),
3048 BASIC_ALLOC_LCRECORD -> ALLOC_SIZED_LISP_OBJECT
3049 DEFINE_LRECORD_IMPLEMENTATION -> DEFINE_*_LISP_OBJECT
3050 DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION -> DEFINE_*SIZABLE_*LISP_OBJECT
3051 DEFINE_LRECORD_*IMPLEMENTATION_WITH_PROPS -> DEFINE_*GENERAL_LISP_OBJECT
3052 DEFINE_BASIC_LRECORD_IMPLEMENTATION -> DEFINE_*FROB_BLOCK_LISP_OBJECT
3053 DEFINE_DUMPABLE_*/DEFINE_NODUMP_* instead of a 0 or 1 dumpable flag
3054 DEFINE_*INTERNAL_* for "internal" Lisp objects (shouldn't escape
3055 to Lisp)
3056 DEFINE_EXTERNAL_* -> DEFINE_MODULE_*
3057 MAKE_LRECORD_IMPLEMENTATION -> MAKE_LISP_OBJECT
3058 MAKE_EXTERNAL_LRECORD_IMPLEMENTATION -> MAKE_MODULE_LISP_OBJECT
3059 DECLARE_LRECORD -> DECLARE_LISP_OBJECT
3060 INIT_LRECORD_IMPLEMENTATION -> INIT_LISP_OBJECT
3061 alloc_lrecord -> alloc_sized_lrecord (since it takes a size)
3062
3063 Dynarr_newf, Dynarr_lisp_newf: takes a Bytecount instead of an int
3064
3065 2010-03-05 Ben Wing <ben@xemacs.org>
3066
3067 * mule-coding.c:
3068 * mule-coding.c (iso2022_encode):
3069 Horrible bug: `escape-quoted' was failing to escape-quote special
3070 characters in the 0x80 - 0x9F range. Who knows what breakage ensued?
3071 SAME BUG IN XEMACS 21.4; MUST BE FIXED THERE TOO.
3072
3073 2010-03-03 Ben Wing <ben@xemacs.org>
3074
3075 * lrecord.h: Fix outdated comment.
3076
3077 2010-03-03 Ben Wing <ben@xemacs.org>
3078
3079 * emacs.c:
3080 * emacs.c (assert_equal_failed):
3081 * lisp.h:
3082 * lisp.h (assert_equal):
3083 New fun assert_equal, asserting that two values == each other, and
3084 printing out both values upon failure.
3085
3086 * frame-gtk.c (gtk_initialize_frame_size):
3087 * frame-impl.h:
3088 * frame-impl.h (FRAME_TOP_INTERNAL_BORDER_START):
3089 * frame-impl.h (FRAME_BOTTOM_INTERNAL_BORDER_START):
3090 * frame-impl.h (FRAME_LEFT_INTERNAL_BORDER_START):
3091 * frame-impl.h (FRAME_PANED_TOP_EDGE):
3092 * frame-impl.h (FRAME_NONPANED_SIZE):
3093 * frame-x.c (x_initialize_frame_size):
3094 * frame.c:
3095 * gutter.c (get_gutter_coords):
3096 * gutter.c (calculate_gutter_size):
3097 * gutter.h:
3098 * gutter.h (WINDOW_REAL_TOP_GUTTER_BOUNDS):
3099 * gutter.h (FRAME_TOP_GUTTER_BOUNDS):
3100 * input-method-xlib.c:
3101 * input-method-xlib.c (XIM_SetGeometry):
3102 * redisplay-output.c (clear_left_border):
3103 * redisplay-output.c (clear_right_border):
3104 * redisplay-output.c (redisplay_output_pixmap):
3105 * redisplay-output.c (redisplay_clear_region):
3106 * redisplay-output.c (redisplay_clear_top_of_window):
3107 * redisplay-output.c (redisplay_clear_to_window_end):
3108 * redisplay-xlike-inc.c (XLIKE_clear_frame):
3109 * redisplay.c:
3110 * redisplay.c (UPDATE_CACHE_RETURN):
3111 * redisplay.c (pixel_to_glyph_translation):
3112 * toolbar.c (update_frame_toolbars_geometry):
3113 * window.c (Fwindow_pixel_edges):
3114 Get rid of some redundant macros. Consistently use the
3115 FRAME_TOP_*_START, FRAME_RIGHT_*_END, etc. format. Rename
3116 FRAME_*_BORDER_* to FRAME_*_INTERNAL_BORDER_*. Comment out
3117 FRAME_BOTTOM_* for gutters and the paned area due to the
3118 uncertainty over where the paned area actually begins. (Eventually
3119 we should probably move the gutters outside the minibuffer so that
3120 the paned area is contiguous.) Use FRAME_PANED_* more often in the
3121 code to make things clearer.
3122
3123 Update the diagram to show that the bottom gutter is inside the
3124 minibuffer (!) and that there are "junk boxes" when you have left
3125 and/or right gutters (dead boxes that are mistakenly left uncleared,
3126 unlike the corresponding scrollbar dead boxes). Update the text
3127 appropriately to cover the bottom gutter position, etc.
3128
3129 Rewrite gutter-geometry code to use the FRAME_*_GUTTER_* in place of
3130 equivalent expressions referencing other frame elements, to make the
3131 code more portable in case we move around the gutter location.
3132
3133 Cleanup FRAME_*_GUTTER_BOUNDS() in gutter.h.
3134
3135 Add some #### GEOM! comments where I think code is incorrect --
3136 typically, it wasn't fixed up properly when the gutter was added.
3137
3138 Some cosmetic changes.
3139
3140 2010-03-02 Ben Wing <ben@xemacs.org>
3141
3142 * lisp.h:
3143 * text.h:
3144 Move inclusion point of text.h earlier in lisp.h -- just before
3145 the definition of characters, which needs some of the stuff in
3146 text.h. With text.h later, some basic character properties had to
3147 be defined in lisp.h -- put them back into text.h where they belong.
3148 Move some text in lisp.h at the point of text.h inclusion into
3149 text.h -- it serves as a mini-introduction.
3150
3151 2010-03-02 Ben Wing <ben@xemacs.org>
3152
3153 * Makefile.in.in:
3154 * Makefile.in.in (objs):
3155 glyphs-shared.o, glyphs-eimage.o only needed when HAVE_WINDOW_SYSTEM.
3156 glyphs-widget.o should be too, but we need a bit of work ifdeffing
3157 out the subwindow stuff from redisplay.c et al.
3158
3159 * bytecode.c (init_opcode_table_multi_op):
3160 Change var name to avoid shadowing with `basename'.
3161
3162 * emacs.c (main_1):
3163 Don't call init/etc. routines for glyphs-shared, glyphs-eimage unless
3164 HAVE_WINDOW_SYSTEM is defined.
3165
3166 * linuxplay.c:
3167 * linuxplay.c (sighandler):
3168 * vdb-posix.c (vdb_fault_handler):
3169 Use const for variables holding string constants to avoid C++
3170 warnings.
3171
3172 2010-03-02 Jerry James <james@xemacs.org>
3173
3174 * lread.c (read_atom): Signal a read error upon encountering a
3175 ratio constant with a zero denominator.
3176
3177 2010-03-03 Aidan Kehoe <kehoea@parhasard.net>
3178
3179 * fns.c (Fsubstring): Removed.
3180 * search.c (Freplace_match):
3181 * minibuf.c (Ftry_completion):
3182 * lisp.h:
3183 * keymap.c (ensure_meta_prefix_char_keymapp):
3184 * dired.c (user_name_completion, file_name_completion):
3185 * console-x.c (x_canonicalize_console_connection):
3186 * bytecode.c (Bsubseq):
3187 * bytecode-ops.h (subseq):
3188 Move #'substring to Lisp, as an alias for #'subseq; change all
3189 C Fsubstring() calls to Fsubseq(), change the Bsubstring bytecode
3190 to Bsubseq.
3191
3192 Motivation; not accepting vectors in #'substring is incompatible
3193 with GNU, and Common Lisp prefers #'subseq, it has no #'substring.
3194
3195 2010-03-02 Aidan Kehoe <kehoea@parhasard.net>
3196
3197 * eval.c (print_multiple_value):
3198 Say #<INTERNAL OBJECT (XEmacs bug?) ...> when printing these, for
3199 consistency with the rest of the print code.
3200
3201 2010-03-01 Aidan Kehoe <kehoea@parhasard.net>
3202
3203 * lisp.h (PARSE_KEYWORDS): New macro, for parsing keyword
3204 arguments from C subrs.
3205 * elhash.c (Fmake_hash_table): Use it.
3206 * general-slots.h (Q_allow_other_keys): Add this symbol.
3207 * eval.c (non_nil_allow_other_keys_p):
3208 (invalid_keyword_argument):
3209 New functions, called from the keyword argument parsing code.
3210 * data.c (init_errors_once_early):
3211 Add the new invalid-keyword-argument error here.
3212
3213 2010-02-26 Aidan Kehoe <kehoea@parhasard.net>
3214
3215 * file-coding.c (Fmake_coding_system_internal):
3216 Be somewhat clearer in this docstring, especially for the sake of
3217 people running non-Mule builds who will see this docstring when
3218 they do F1 f make-coding-system RET.
3219
3220 2010-02-25 Didier Verna <didier@xemacs.org>
3221
3222 The background-placement face property.
3223 * console-x-impl.h (struct x_frame): Add new slots x and y.
3224 * console-x-impl.h (FRAME_X_X, FRAME_X_Y): New slot accessors.
3225 * console-gtk-impl.h: Fake something similar for potential port.
3226 * frame-x.c (x_get_frame_text_position): New function.
3227 * frame-x.c (x_init_frame_3): Use it.
3228 * event-Xt.c (emacs_Xt_handle_magic_event): Eat spurious
3229 ConfigureNotify events, get the frame position and mark frame
3230 faces changed.
3231 * objects-impl.h: The face_background_placement_specifier
3232 structure and its accessors.
3233 * objects.c: New symbols Qabsolute and Qrelative.
3234 * objects.c (face_background_placement_create):
3235 * objects.c (face_background_placement_mark):
3236 * objects.c (face_background_placement_instantiate):
3237 * objects.c (face_background_placement_validate):
3238 * objects.c (face_background_placement_after_change):
3239 * objects.c (set_face_background_placement_attached_to): New.
3240 * objects.h (set_face_background_palcement_attached_to): Declare
3241 the one above.
3242 * objects.c (syms_of_objects):
3243 * objects.c (specifier_type_create_objects):
3244 * objects.c (reinit_specifier_type_create_objects):
3245 * objects.c (reinit_vars_of_objects): Update for the modifications
3246 above.
3247 * console-xlike-inc.h (XLIKE_GC_TS_X_ORIGIN, XLIKE_GC_TS_X_ORIGIN):
3248 New X11/Gtk compatibility macros.
3249 * redisplay-xlike-inc.c (XLIKE_get_gc): Add a background placement
3250 argument and handle it.
3251 * gtk-glue.c (face_to_gc):
3252 * redisplay-xlike-inc.c (XLIKE_output_string):
3253 * redisplay-xlike-inc.c (XLIKE_output_pixmap):
3254 * redisplay-xlike-inc.c (XLIKE_output_blank):
3255 * redisplay-xlike-inc.c (XLIKE_output_horizontal_line):
3256 * redisplay-xlike-inc.c (XLIKE_output_eol_cursor): Update
3257 accordingly.
3258 * console-impl.h (struct console_methods): Add a background
3259 placement (Lisp_Object) argument to the clear_region method.
3260 * console-stream.c (stream_clear_region):
3261 * redisplay-tty.c (tty_clear_region):
3262 * redisplay-msw.c (mswindows_clear_region):
3263 * redisplay-xlike-inc.c (XLIKE_clear_region): Update accordingly.
3264 * redisplay-output.c (redisplay_clear_region): Handle the
3265 background placement property and update the call to the
3266 clear_region method.
3267 * faces.h (struct Lisp_Face):
3268 * faces.h (struct face_cachel): Add a background placement slot.
3269 * faces.h (WINDOW_FACE_CACHEL_BACKGROUND_PLACEMENT): New accessor.
3270 * faces.c (mark_face):
3271 * faces.c (face_equal):
3272 * faces.c (face_getprop):
3273 * faces.c (face_putprop):
3274 * faces.c (face_remprop):
3275 * faces.c (face_plist):
3276 * faces.c (reset_face):
3277 * faces.c (mark_face_cachels):
3278 * faces.c (update_face_cachel_data):
3279 * faces.c (merge_face_cachel_data):
3280 * faces.c (reset_face_cachel):
3281 * faces.c (Fmake_face):
3282 * faces.c (Fcopy_face): Handle the background placement property.
3283 * faces.c (syms_of_faces):
3284 * faces.c (vars_of_faces):
3285 * faces.c (complex_vars_of_faces): Update accordingly.
3286
3287 2010-02-25 Ben Wing <ben@xemacs.org>
3288
3289 * frame-impl.h:
3290 Create some new macros for more clearly getting the size/edges
3291 of various rectangles surrounding the paned area.
3292 * frame.c (change_frame_size_1):
3293 Use the new macros. Clean up change_frame_size_1 and make sure
3294 the internal border width gets taken into account -- that was what
3295 was causing the clipped bottom and right.
3296
3297 2010-02-25 Ben Wing <ben@xemacs.org>
3298
3299 * EmacsFrame.c (EmacsFrameSetValues):
3300 * frame-impl.h:
3301 * frame-impl.h (struct frame):
3302 * frame-impl.h (FRAME_THEORETICAL_TOP_TOOLBAR_HEIGHT):
3303 * frame-impl.h (FRAME_THEORETICAL_TOP_TOOLBAR_BORDER_WIDTH):
3304 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_HEIGHT):
3305 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH):
3306 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_VISIBLE):
3307 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_BOUNDS):
3308 * frame.h:
3309 * frame.h (enum edge_pos):
3310 * gutter.c:
3311 * gutter.c (get_gutter_coords):
3312 * gutter.c (display_boxes_in_gutter_p):
3313 * gutter.c (construct_window_gutter_spec):
3314 * gutter.c (calculate_gutter_size_from_display_lines):
3315 * gutter.c (calculate_gutter_size):
3316 * gutter.c (output_gutter):
3317 * gutter.c (clear_gutter):
3318 * gutter.c (mark_gutters):
3319 * gutter.c (gutter_extent_signal_changed_region_maybe):
3320 * gutter.c (update_gutter_geometry):
3321 * gutter.c (update_frame_gutter_geometry):
3322 * gutter.c (update_frame_gutters):
3323 * gutter.c (reset_gutter_display_lines):
3324 * gutter.c (redraw_exposed_gutter):
3325 * gutter.c (redraw_exposed_gutters):
3326 * gutter.c (free_frame_gutters):
3327 * gutter.c (decode_gutter_position):
3328 * gutter.c (Fset_default_gutter_position):
3329 * gutter.c (Fgutter_pixel_width):
3330 * gutter.c (Fgutter_pixel_height):
3331 * gutter.c (recompute_overlaying_specifier):
3332 * gutter.c (gutter_specs_changed_1):
3333 * gutter.c (gutter_specs_changed):
3334 * gutter.c (top_gutter_specs_changed):
3335 * gutter.c (bottom_gutter_specs_changed):
3336 * gutter.c (left_gutter_specs_changed):
3337 * gutter.c (right_gutter_specs_changed):
3338 * gutter.c (gutter_geometry_changed_in_window):
3339 * gutter.c (init_frame_gutters):
3340 * gutter.c (specifier_vars_of_gutter):
3341 * gutter.h:
3342 * gutter.h (WINDOW_REAL_TOP_GUTTER_BOUNDS):
3343 * gutter.h (FRAME_TOP_GUTTER_BOUNDS):
3344 * lisp.h (enum edge_style):
3345 * native-gtk-toolbar.c:
3346 * native-gtk-toolbar.c (gtk_output_toolbar):
3347 * native-gtk-toolbar.c (gtk_clear_toolbar):
3348 * native-gtk-toolbar.c (gtk_output_frame_toolbars):
3349 * native-gtk-toolbar.c (gtk_initialize_frame_toolbars):
3350 * toolbar-msw.c:
3351 * toolbar-msw.c (TOOLBAR_HANDLE):
3352 * toolbar-msw.c (allocate_toolbar_item_id):
3353 * toolbar-msw.c (mswindows_clear_toolbar):
3354 * toolbar-msw.c (mswindows_output_toolbar):
3355 * toolbar-msw.c (mswindows_move_toolbar):
3356 * toolbar-msw.c (mswindows_redraw_exposed_toolbars):
3357 * toolbar-msw.c (mswindows_initialize_frame_toolbars):
3358 * toolbar-msw.c (mswindows_output_frame_toolbars):
3359 * toolbar-msw.c (mswindows_clear_frame_toolbars):
3360 * toolbar-msw.c (DELETE_TOOLBAR):
3361 * toolbar-msw.c (mswindows_free_frame_toolbars):
3362 * toolbar-msw.c (mswindows_get_toolbar_button_text):
3363 * toolbar-xlike.c:
3364 * toolbar-xlike.c (__prepare_button_area):
3365 * toolbar-xlike.c (XLIKE_OUTPUT_BUTTONS_LOOP):
3366 * toolbar-xlike.c (xlike_output_toolbar):
3367 * toolbar-xlike.c (xlike_clear_toolbar):
3368 * toolbar-xlike.c (xlike_output_frame_toolbars):
3369 * toolbar-xlike.c (xlike_clear_frame_toolbars):
3370 * toolbar-xlike.c (xlike_redraw_exposed_toolbar):
3371 * toolbar-xlike.c (xlike_redraw_exposed_toolbars):
3372 * toolbar-xlike.c (xlike_redraw_frame_toolbars):
3373 * toolbar.c:
3374 * toolbar.c (decode_toolbar_position):
3375 * toolbar.c (Fset_default_toolbar_position):
3376 * toolbar.c (mark_frame_toolbar_buttons_dirty):
3377 * toolbar.c (compute_frame_toolbar_buttons):
3378 * toolbar.c (set_frame_toolbar):
3379 * toolbar.c (compute_frame_toolbars_data):
3380 * toolbar.c (update_frame_toolbars_geometry):
3381 * toolbar.c (init_frame_toolbars):
3382 * toolbar.c (get_toolbar_coords):
3383 * toolbar.c (CHECK_TOOLBAR):
3384 * toolbar.c (toolbar_buttons_at_pixpos):
3385 * toolbar.c (CTB_ERROR):
3386 * toolbar.c (recompute_overlaying_specifier):
3387 * toolbar.c (specifier_vars_of_toolbar):
3388 * toolbar.h:
3389 * toolbar.h (SET_TOOLBAR_WAS_VISIBLE_FLAG):
3390 Create new enum edge_pos with TOP_EDGE, BOTTOM_EDGE, LEFT_EDGE,
3391 RIGHT_EDGE; subsume TOP_BORDER, TOP_GUTTER, enum toolbar_pos,
3392 enum gutter_pos, etc.
3393
3394 Create EDGE_POS_LOOP, subsuming GUTTER_POS_LOOP.
3395
3396 Create NUM_EDGES, use in many places instead of hardcoded '4'.
3397
3398 Instead of top_toolbar_was_visible, bottom_toolbar_was_visible,
3399 etc. make an array toolbar_was_visible[NUM_EDGES]. This increases
3400 the frame size by 15 bytes or so (could be 3 if we use Boolbytes)
3401 but hardly seems w to matter -- frames are heavy weight objects
3402 anyway. Same with top_gutter_was_visible, etc.
3403
3404 Remove duplicated SET_TOOLBAR_WAS_VISIBLE_FLAG and put defn in
3405 one place (toolbar.h).
3406
3407 2010-02-24 Didier Verna <didier@xemacs.org>
3408
3409 Modify XLIKE_get_gc's prototype.
3410 * redisplay-xlike-inc.c (XLIKE_get_gc): Take a frame instead of a
3411 device as first argument.
3412 * redisplay-xlike-inc.c (XLIKE_output_string): Update caller.
3413 * redisplay-xlike-inc.c (XLIKE_output_pixmap): Ditto.
3414 * redisplay-xlike-inc.c (XLIKE_output_blank): Ditto.
3415 * redisplay-xlike-inc.c (XLIKE_output_horizontal_line): Ditto.
3416 * redisplay-xlike-inc.c (XLIKE_clear_region): Ditto.
3417 * redisplay-xlike-inc.c (XLIKE_output_eol_cursor): Ditto.
3418 * console-gtk.h (gtk_get_gc): Take a frame instead of a device as
3419 first argument.
3420 * gtk-glue.c (face_to_gc): Update caller.
3421
3422 2010-02-24 Didier Verna <didier@xemacs.org>
3423
3424 * glyphs.c: Clarify comment about potential_pixmap_file_instantiator.
3425 * glyphs.c (xbm_mask_file_munging): Clarify comment, remove
3426 unreachable condition and provide a cuple of assertions.
3427 * glyphs.c (xbm_normalize): Clarify comments, error on mask file
3428 not found.
3429 * glyphs.c (xface_normalize): Ditto, and handle inline data properly.
3430
3431 2010-02-22 Ben Wing <ben@xemacs.org>
3432
3433 * EmacsFrame.c:
3434 * Makefile.in.in (x_objs):
3435 * Makefile.in.in (mswindows_objs):
3436 * Makefile.in.in (tty_objs):
3437 * Makefile.in.in (gtk_objs):
3438 * Makefile.in.in (objs):
3439 * console-tty.h:
3440 * console-x-impl.h:
3441 * console-x-impl.h (struct x_device):
3442 * console-x.h:
3443 * console-xlike-inc.h:
3444 * depend:
3445 * device-gtk.c:
3446 * device-msw.c:
3447 * device-x.c:
3448 * device-x.c (x_init_device):
3449 * device-x.c (x_finish_init_device):
3450 * device.c:
3451 * devslots.h (MARKED_SLOT):
3452 * emacs.c (main_1):
3453 * event-Xt.c:
3454 * event-gtk.c:
3455 * event-msw.c:
3456 * faces.c:
3457 * font-mgr.c:
3458 * fontcolor-gtk-impl.h:
3459 * fontcolor-gtk.c:
3460 * fontcolor-gtk.c (syms_of_fontcolor_gtk):
3461 * fontcolor-gtk.c (console_type_create_fontcolor_gtk):
3462 * fontcolor-gtk.c (vars_of_fontcolor_gtk):
3463 * fontcolor-gtk.h:
3464 * fontcolor-impl.h:
3465 * fontcolor-msw-impl.h:
3466 * fontcolor-msw.c:
3467 * fontcolor-msw.c (syms_of_fontcolor_mswindows):
3468 * fontcolor-msw.c (console_type_create_fontcolor_mswindows):
3469 * fontcolor-msw.c (reinit_vars_of_fontcolor_mswindows):
3470 * fontcolor-msw.c (vars_of_fontcolor_mswindows):
3471 * fontcolor-msw.h:
3472 * fontcolor-msw.h (mswindows_color_to_string):
3473 * fontcolor-tty-impl.h:
3474 * fontcolor-tty.c:
3475 * fontcolor-tty.c (syms_of_fontcolor_tty):
3476 * fontcolor-tty.c (console_type_create_fontcolor_tty):
3477 * fontcolor-tty.c (vars_of_fontcolor_tty):
3478 * fontcolor-tty.h:
3479 * fontcolor-x-impl.h:
3480 * fontcolor-x.c:
3481 * fontcolor-x.c (syms_of_fontcolor_x):
3482 * fontcolor-x.c (console_type_create_fontcolor_x):
3483 * fontcolor-x.c (vars_of_fontcolor_x):
3484 * fontcolor-x.c (Xatoms_of_fontcolor_x):
3485 * fontcolor-x.h:
3486 * fontcolor.c:
3487 * fontcolor.c (syms_of_fontcolor):
3488 * fontcolor.c (specifier_type_create_fontcolor):
3489 * fontcolor.c (reinit_specifier_type_create_fontcolor):
3490 * fontcolor.c (reinit_vars_of_fontcolor):
3491 * fontcolor.c (vars_of_fontcolor):
3492 * fontcolor.h:
3493 * fontcolor.h (set_face_boolean_attached_to):
3494 * frame-gtk.c:
3495 * frame-x.c:
3496 * glyphs-eimage.c:
3497 * glyphs-gtk.c:
3498 * glyphs-msw.c:
3499 * glyphs-widget.c:
3500 * glyphs-x.c:
3501 * glyphs.c:
3502 * gtk-glue.c:
3503 * gtk-glue.c (xemacs_type_register):
3504 * gtk-xemacs.c:
3505 * inline.c:
3506 * intl-win32.c:
3507 * lisp.h:
3508 * lrecord.h:
3509 * mule-charset.c:
3510 * native-gtk-toolbar.c:
3511 * redisplay-msw.c:
3512 * redisplay-tty.c:
3513 * redisplay.c:
3514 * select-x.c:
3515 * select.c:
3516 * symsinit.h:
3517 * toolbar-msw.c:
3518 * toolbar-msw.c (TOOLBAR_ITEM_ID_BITS):
3519 * toolbar-x.c:
3520 * ui-gtk.c:
3521 * window.c:
3522 Rename objects*.[ch] -> fontcolor*.[ch]. Fix up all references to
3523 the old files (e.g. in #include statements, Makefiles,
3524 functions like syms_of_objects_x(), etc.).
3525
3526 2010-02-22 Ben Wing <ben@xemacs.org>
3527
3528 * .gdbinit.in.in:
3529 * Makefile.in.in (batch_test_emacs):
3530 test-harness.el is in lisp directory now so change how we call it.
3531
3532 2010-02-22 Ben Wing <ben@xemacs.org>
3533
3534 * alloc.c (object_memory_usage_stats):
3535 Remove unused var.
3536
3537 2010-02-21 Ben Wing <ben@xemacs.org>
3538
3539 * alloc.c:
3540 * alloc.c (FREE_FIXED_TYPE_WHEN_NOT_IN_GC):
3541 * alloc.c (struct):
3542 * alloc.c (tick_lrecord_stats):
3543 * alloc.c (tick_lcrecord_stats):
3544 * alloc.c (sweep_lcrecords_1):
3545 * alloc.c (COUNT_FROB_BLOCK_USAGE):
3546 * alloc.c (SWEEP_FIXED_TYPE_BLOCK_1):
3547 * alloc.c (free_cons):
3548 * alloc.c (free_key_data):
3549 * alloc.c (free_button_data):
3550 * alloc.c (free_motion_data):
3551 * alloc.c (free_process_data):
3552 * alloc.c (free_timeout_data):
3553 * alloc.c (free_magic_data):
3554 * alloc.c (free_magic_eval_data):
3555 * alloc.c (free_eval_data):
3556 * alloc.c (free_misc_user_data):
3557 * alloc.c (free_marker):
3558 * alloc.c (gc_sweep_1):
3559 * alloc.c (HACK_O_MATIC):
3560 * alloc.c (FROB):
3561 * alloc.c (object_memory_usage_stats):
3562 * alloc.c (Fgarbage_collect):
3563 * dumper.c:
3564 * dumper.c (pdump_objects_unmark):
3565 * lrecord.h:
3566 * lrecord.h (enum lrecord_alloc_status):
3567 Fixes to memory-usage-tracking code, etc.
3568
3569 (1) Incorporate NEW_GC stuff into FREE_FIXED_TYPE_WHEN_NOT_IN_GC
3570 to avoid duplication.
3571
3572 (2) Rewrite tick_lcrecord_stats() to include separate
3573 tick_lrecord_stats(); use in dumper.c to note pdumped objects.
3574
3575 (3) Instead of handling frob-block objects specially in
3576 object_memory_usage_stats(), have SWEEP_FIXED_TYPE_BLOCK_1
3577 increment the stats in lrecord_stats[] so that they get handled
3578 like other objects.
3579
3580 (4) Pluralize entry as entries, etc.
3581
3582 2010-02-21 Ben Wing <ben@xemacs.org>
3583
3584 * alloc.c:
3585 * alloc.c (pluralize_word):
3586 New function to pluralize a word.
3587 * alloc.c (pluralize_and_append): New function.
3588 * alloc.c (object_memory_usage_stats):
3589 Clean up duplication.
3590
3591 2010-02-21 Vin Shelton <acs@xemacs.org>
3592
3593 * events.c (event_pixel_translation): Simplify assertion for
3594 Visual C 6.
3595
3596 2010-02-21 Ben Wing <ben@xemacs.org>
3597
3598 * gc.c (kkcc_marking): Fix compile error.
3599 * mc-alloc.c:
3600 #if 0 out some unused functions.
3601
3602 2010-02-21 Ben Wing <ben@xemacs.org>
3603
3604 * extents.c (process_extents_for_insertion_mapper):
3605 Assertion wasn't quite set up correctly in previous patch.
3606
3607 2010-02-20 Ben Wing <ben@xemacs.org>
3608
3609 * EmacsFrame.c:
3610 * EmacsFrame.c (EmacsFrameRecomputeCellSize):
3611 * alloca.c (i00afunc):
3612 * buffer.c:
3613 * buffer.c (MARKED_SLOT):
3614 * buffer.c (complex_vars_of_buffer):
3615 * cm.c:
3616 * cm.c (cmcheckmagic):
3617 * console.c:
3618 * console.c (MARKED_SLOT):
3619 * device-x.c:
3620 * device-x.c (x_get_visual_depth):
3621 * emacs.c (sort_args):
3622 * eval.c (throw_or_bomb_out):
3623 * event-stream.c:
3624 * event-stream.c (Fadd_timeout):
3625 * event-stream.c (Fadd_async_timeout):
3626 * event-stream.c (Frecent_keys):
3627 * events.c:
3628 * events.c (Fdeallocate_event):
3629 * events.c (event_pixel_translation):
3630 * extents.c:
3631 * extents.c (process_extents_for_insertion_mapper):
3632 * fns.c (Fbase64_encode_region):
3633 * fns.c (Fbase64_encode_string):
3634 * fns.c (Fbase64_decode_region):
3635 * fns.c (Fbase64_decode_string):
3636 * font-lock.c:
3637 * font-lock.c (find_context):
3638 * frame-x.c:
3639 * frame-x.c (x_wm_mark_shell_size_user_specified):
3640 * frame-x.c (x_wm_mark_shell_position_user_specified):
3641 * frame-x.c (x_wm_set_shell_iconic_p):
3642 * frame-x.c (x_wm_set_cell_size):
3643 * frame-x.c (x_wm_set_variable_size):
3644 * frame-x.c (x_wm_store_class_hints):
3645 * frame-x.c (x_wm_maybe_store_wm_command):
3646 * frame-x.c (x_initialize_frame_size):
3647 * frame.c (delete_frame_internal):
3648 * frame.c (change_frame_size_1):
3649 * free-hook.c (check_free):
3650 * free-hook.c (note_block_input):
3651 * free-hook.c (log_gcpro):
3652 * gccache-gtk.c (gc_cache_lookup):
3653 * gccache-x.c:
3654 * gccache-x.c (gc_cache_lookup):
3655 * glyphs-gtk.c:
3656 * glyphs-gtk.c (init_image_instance_from_gdk_pixmap):
3657 * glyphs-x.c:
3658 * glyphs-x.c (extract_xpm_color_names):
3659 * insdel.c:
3660 * insdel.c (move_gap):
3661 * keymap.c:
3662 * keymap.c (keymap_lookup_directly):
3663 * keymap.c (keymap_delete_inverse_internal):
3664 * keymap.c (accessible_keymaps_mapper_1):
3665 * keymap.c (where_is_recursive_mapper):
3666 * lisp.h:
3667 * lstream.c (make_lisp_buffer_stream_1):
3668 * macros.c:
3669 * macros.c (pop_kbd_macro_event):
3670 * mc-alloc.c (remove_page_from_used_list):
3671 * menubar-x.c:
3672 * menubar-x.c (set_frame_menubar):
3673 * ralloc.c:
3674 * ralloc.c (obtain):
3675 * ralloc.c (relinquish):
3676 * ralloc.c (relocate_blocs):
3677 * ralloc.c (resize_bloc):
3678 * ralloc.c (r_alloc_free):
3679 * ralloc.c (r_re_alloc):
3680 * ralloc.c (r_alloc_thaw):
3681 * ralloc.c (init_ralloc):
3682 * ralloc.c (Free_Addr_Block):
3683 * scrollbar-x.c:
3684 * scrollbar-x.c (x_update_scrollbar_instance_status):
3685 * sunplay.c (init_device):
3686 * unexnt.c:
3687 * unexnt.c (read_in_bss):
3688 * unexnt.c (map_in_heap):
3689 * window.c:
3690 * window.c (real_window):
3691 * window.c (window_display_lines):
3692 * window.c (window_display_buffer):
3693 * window.c (set_window_display_buffer):
3694 * window.c (unshow_buffer):
3695 * window.c (Fget_lru_window):
3696 if (...) ABORT(); ---> assert();
3697
3698 More specifically:
3699
3700 if (x == y) ABORT (); --> assert (x != y);
3701 if (x != y) ABORT (); --> assert (x == y);
3702 if (x > y) ABORT (); --> assert (x <= y);
3703 etc.
3704 if (!x) ABORT (); --> assert (x);
3705 if (x) ABORT (); --> assert (!x);
3706
3707 DeMorgan's Law's applied and manually simplified:
3708 if (x && !y) ABORT (); --> assert (!x || y);
3709 if (!x || y >= z) ABORT (); --> assert (x && y < z);
3710
3711 Checked to make sure that assert() of an expression with side
3712 effects ensures that the side effects get executed even when
3713 asserts are disabled, and add a comment about this being a
3714 requirement of any "disabled assert" expression.
3715
3716 * depend:
3717 * make-src-depend:
3718 * make-src-depend (PrintDeps):
3719 Fix broken code in make-src-depend so it does what it was always
3720 supposed to do, which was separate out config.h and lisp.h and
3721 all the files they include into separate variables in the
3722 depend part of Makefile so that quick-build can turn off the
3723 lisp.h/config.h/text.h/etc. dependencies of the source files, to
3724 speed up recompilation.
3725
3726
3727 2010-02-20 Ben Wing <ben@xemacs.org>
3728
3729 * EmacsFrame.c (EmacsFrameRecomputeCellSize):
3730 * faces.c (default_face_font_info):
3731 * faces.c (default_face_width_and_height):
3732 * faces.c (Fface_list):
3733 * faces.h:
3734 * frame-gtk.c (gtk_set_initial_frame_size):
3735 * frame-gtk.c (gtk_set_frame_size):
3736 * frame-gtk.c (gtk_recompute_cell_sizes):
3737 * frame.c:
3738 * frame.c (frame_conversion_internal_1):
3739 * frame.c (change_frame_size_1):
3740 * frame.c (change_frame_size):
3741 * glyphs-msw.c (mswindows_combo_box_instantiate):
3742 * glyphs-widget.c (widget_instantiate):
3743 * glyphs-widget.c (tree_view_query_geometry):
3744 * glyphs-widget.c (Fwidget_logical_to_character_width):
3745 * glyphs-widget.c (Fwidget_logical_to_character_height):
3746 * indent.c (vmotion_pixels):
3747 * redisplay-output.c (get_cursor_size_and_location):
3748 * redisplay-xlike-inc.c (XLIKE_output_eol_cursor):
3749 * redisplay-xlike-inc.c (XLIKE_flash):
3750 * redisplay.c (calculate_baseline):
3751 * redisplay.c (start_with_point_on_display_line):
3752 * redisplay.c (glyph_to_pixel_translation):
3753 * redisplay.c (pixel_to_glyph_translation):
3754 * window.c (margin_width_internal):
3755 * window.c (frame_size_valid_p):
3756 * window.c (frame_pixsize_valid_p):
3757 * window.c (check_frame_size):
3758 * window.c (set_window_pixsize):
3759 * window.c (window_pixel_height_to_char_height):
3760 * window.c (window_char_height_to_pixel_height):
3761 * window.c (window_displayed_height):
3762 * window.c (window_pixel_width_to_char_width):
3763 * window.c (window_char_width_to_pixel_width):
3764 * window.c (change_window_height):
3765 * window.c (window_scroll):
3766 * window.h:
3767 IMPORTANT: Aidan and Carbon Repo, please pay attention and fix
3768 appropriately!
3769
3770 Rename: default_face_height_and_width -> default_face_width_and_height
3771 and reverse width/height arguments.
3772
3773 Reverse width/height arguments to the following functions:
3774 -- default_face_font_info
3775 -- default_face_height_and_width (see above)
3776 -- check_frame_size
3777 -- frame_size_valid_p (made into a static function)
3778
3779 Fix a redisplay bug where args to default_face_height_and_width
3780 were in the wrong order.
3781
3782
3783 2010-02-20 Ben Wing <ben@xemacs.org>
3784
3785 * syswindows.h:
3786 Add table about GNU Emacs -> XEmacs Windows constants from
3787 the internals manual.
3788
3789 * frame.c:
3790 Shrink size of diagram consistent with internals manual.
3791
3792 * alloc.c:
3793 * compiler.h:
3794 * console.c:
3795 * events.c:
3796 * gc.c (gc_stat_start_new_gc):
3797 * gc.c (gc_stat_resume_gc):
3798 * gc.c (kkcc_marking):
3799 * gc.c (gc_1):
3800 * gc.c (gc):
3801 * objects-tty.c:
3802 * redisplay-msw.c:
3803 * redisplay-msw.c (mswindows_clear_region):
3804 * syntax.c:
3805 * syntax.c (ST_COMMENT_STYLE):
3806 * sysdep.c:
3807 Fix various compiler warnings.
3808
3809 2010-02-16 Ben Wing <ben@xemacs.org>
3810
3811 * frame-impl.h:
3812 * frame-impl.h (FRAME_INTERNAL_BORDER_WIDTH):
3813 * frame-impl.h (FRAME_REAL_TOOLBAR_BOUNDS):
3814 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_BOUNDS):
3815 * frame-impl.h (FRAME_BOTTOM_BORDER_START):
3816 * frame-impl.h (FRAME_LEFT_BORDER_START):
3817 * frame-impl.h (FRAME_RIGHT_BORDER_START):
3818 * frame.c (frame_conversion_internal_1):
3819 * frame.c (change_frame_size_1):
3820 * redisplay-output.c (clear_left_border):
3821 * redisplay-output.c (clear_right_border):
3822 * redisplay-output.c (redisplay_clear_top_of_window):
3823 * redisplay-output.c (redisplay_clear_to_window_end):
3824 * redisplay-output.c (redisplay_clear_bottom_of_window):
3825 Rename FRAME_BORDER_* to FRAME_INTERNAL_BORDER_*. Add
3826 general FRAME_INTERNAL_BORDER_SIZE(). Add FRAME_REAL_TOOLBAR_BOUNDS()
3827 to encompass the entire size of the toolbar including its border.
3828 Add specific top/left/bottom/right versions of this macro.
3829 Rewrite FRAME_*_BORDER_START and FRAME_*_BORDER_END to take into use
3830 FRAME_REAL_*_TOOLBAR_BOUNDS(). Add some comments about existing
3831 problems in frame sizing and how they might be fixed. Simplify
3832 change_frame_size_1() using the macros just created.
3833
3834 2010-02-15 Ben Wing <ben@xemacs.org>
3835
3836 * frame.c (change_frame_size_1):
3837 Simplify the logic in this function.
3838
3839 (1) Don't allow 0 as the value of height or width. The old code
3840 that tried to allow this was totally broken, anyway, so obviously
3841 this never happens any more.
3842
3843 (2) Don't duplicate the code in frame_conversion_internal() that
3844 converts displayable pixel size to total pixel size -- just call
3845 that function.
3846
3847 2010-02-15 Ben Wing <ben@xemacs.org>
3848
3849 * EmacsFrame.c:
3850 * EmacsFrame.c (EmacsFrameResize):
3851 * console-msw-impl.h:
3852 * console-msw-impl.h (struct mswindows_frame):
3853 * console-msw-impl.h (FRAME_MSWINDOWS_TARGET_RECT):
3854 * device-tty.c:
3855 * device-tty.c (tty_asynch_device_change):
3856 * event-msw.c:
3857 * event-msw.c (mswindows_wnd_proc):
3858 * faces.c (Fface_list):
3859 * faces.h:
3860 * frame-gtk.c:
3861 * frame-gtk.c (gtk_set_initial_frame_size):
3862 * frame-gtk.c (gtk_set_frame_size):
3863 * frame-msw.c:
3864 * frame-msw.c (mswindows_init_frame_1):
3865 * frame-msw.c (mswindows_set_frame_size):
3866 * frame-msw.c (mswindows_size_frame_internal):
3867 * frame-msw.c (msprinter_init_frame_3):
3868 * frame.c:
3869 * frame.c (enum):
3870 * frame.c (Fmake_frame):
3871 * frame.c (adjust_frame_size):
3872 * frame.c (store_minibuf_frame_prop):
3873 * frame.c (Fframe_property):
3874 * frame.c (Fframe_properties):
3875 * frame.c (Fframe_displayable_pixel_height):
3876 * frame.c (Fframe_displayable_pixel_width):
3877 * frame.c (internal_set_frame_size):
3878 * frame.c (Fset_frame_height):
3879 * frame.c (Fset_frame_pixel_height):
3880 * frame.c (Fset_frame_displayable_pixel_height):
3881 * frame.c (Fset_frame_width):
3882 * frame.c (Fset_frame_pixel_width):
3883 * frame.c (Fset_frame_displayable_pixel_width):
3884 * frame.c (Fset_frame_size):
3885 * frame.c (Fset_frame_pixel_size):
3886 * frame.c (Fset_frame_displayable_pixel_size):
3887 * frame.c (frame_conversion_internal_1):
3888 * frame.c (get_frame_displayable_pixel_size):
3889 * frame.c (change_frame_size_1):
3890 * frame.c (change_frame_size):
3891 * frame.c (generate_title_string):
3892 * frame.h:
3893 * gtk-xemacs.c:
3894 * gtk-xemacs.c (gtk_xemacs_size_request):
3895 * gtk-xemacs.c (gtk_xemacs_size_allocate):
3896 * gtk-xemacs.c (gtk_xemacs_paint):
3897 * gutter.c:
3898 * gutter.c (update_gutter_geometry):
3899 * redisplay.c (end_hold_frame_size_changes):
3900 * redisplay.c (redisplay_frame):
3901 * toolbar.c:
3902 * toolbar.c (update_frame_toolbars_geometry):
3903 * window.c:
3904 * window.c (frame_pixsize_valid_p):
3905 * window.c (check_frame_size):
3906 Various fixes to frame geometry to make it a bit easier to understand
3907 and fix some bugs.
3908
3909 1. IMPORTANT: Some renamings. Will need to be applied carefully to
3910 the carbon repository, in the following order:
3911
3912 -- pixel_to_char_size -> pixel_to_frame_unit_size
3913 -- char_to_pixel_size -> frame_unit_to_pixel_size
3914 -- pixel_to_real_char_size -> pixel_to_char_size
3915 -- char_to_real_pixel_size -> char_to_pixel_size
3916 -- Reverse second and third arguments of change_frame_size() and
3917 change_frame_size_1() to try to make functions consistent in
3918 putting width before height.
3919 -- Eliminate old round_size_to_char, because it didn't really
3920 do anything differently from round_size_to_real_char()
3921 -- round_size_to_real_char -> round_size_to_char; any places that
3922 called the old round_size_to_char should just call the new one.
3923
3924 2. IMPORTANT FOR CARBON: The set_frame_size() method is now passed
3925 sizes in "frame units", like all other frame-sizing functions,
3926 rather than some hacked-up combination of char-cell units and
3927 total pixel size. This only affects window systems that use
3928 "pixelated geometry", and I'm not sure if Carbon is one of them.
3929 MS Windows is pixelated, X and GTK are not. For pixelated-geometry
3930 systems, the size in set_frame_size() is in displayable pixels
3931 rather than total pixels and needs to be converted appropriately;
3932 take a look at the changes made to mswindows_set_frame_size()
3933 method if necessary.
3934
3935 3. Add a big long comment in frame.c describing how frame geometry
3936 works.
3937
3938 4. Remove MS Windows-specific character height and width fields,
3939 duplicative and unused.
3940
3941 5. frame-displayable-pixel-* and set-frame-displayable-pixel-*
3942 didn't use to work on MS Windows, but they do now.
3943
3944 6. In general, clean up the handling of "pixelated geometry" so
3945 that fewer functions have to worry about this. This is really
3946 an abomination that should be removed entirely but that will
3947 have to happen later. Fix some buggy code in
3948 frame_conversion_internal() that happened to "work" because it
3949 was countered by oppositely buggy code in change_frame_size().
3950
3951 7. Clean up some frame-size code in toolbar.c and use functions
3952 already provided in frame.c instead of rolling its own.
3953
3954 8. Fix check_frame_size() in window.c, which formerly didn't take
3955 pixelated geometry into account.
3956
3957
3958 2010-02-15 Ben Wing <ben@xemacs.org>
3959
3960 * mc-alloc.c:
3961 * mc-alloc.c (mc_realloc_1):
3962 * mc-alloc.c (set_dirty_bit):
3963 * mc-alloc.c (set_dirty_bit_for_address):
3964 * mc-alloc.c (get_dirty_bit):
3965 * mc-alloc.c (get_dirty_bit_for_address):
3966 * mc-alloc.c (set_protection_bit):
3967 * mc-alloc.c (set_protection_bit_for_address):
3968 * mc-alloc.c (get_protection_bit):
3969 * mc-alloc.c (get_protection_bit_for_address):
3970 * mc-alloc.c (get_page_start):
3971 * vdb-win32.c (win32_fault_handler):
3972 * vdb.c:
3973 Fix some compile warnings, make vdb test code conditional on
3974 DEBUG_XEMACS.
3975
3976 2010-02-15 Ben Wing <ben@xemacs.org>
3977
3978 * regex.c:
3979 * regex.c (DEBUG_FAIL_PRINT1):
3980 * regex.c (PUSH_FAILURE_POINT):
3981 * regex.c (POP_FAILURE_POINT):
3982 * regex.c (regex_compile):
3983 * regex.c (re_match_2_internal):
3984 * regex.h:
3985 * search.c:
3986 * search.c (search_buffer):
3987 * search.c (debug_regexps_changed):
3988 * search.c (vars_of_search):
3989 Add an internal variable debug_regexps and a corresponding Lisp
3990 variable `debug-regexps' that takes a list of areas in which to
3991 display debugging info about regex compilation and matching
3992 (currently three areas exist). Use existing debugging code
3993 already in regex.c and modify it so that it recognizes the
3994 debug_regexps variable and the flags in it.
3995
3996 Rename variable `debug-xemacs-searches' to just `debug-searches',
3997 consistent with other debug vars.
3998
3999 2010-02-20 Ben Wing <ben@xemacs.org>
4000
4001 * device-x.c (Fx_get_resource):
4002 * dynarr.c:
4003 * dynarr.c (Dynarr_realloc):
4004 * dynarr.c (Dynarr_newf):
4005 * dynarr.c (Dynarr_lisp_realloc):
4006 * dynarr.c (Dynarr_lisp_newf):
4007 * dynarr.c (Dynarr_resize):
4008 * dynarr.c (Dynarr_insert_many):
4009 * dynarr.c (Dynarr_delete_many):
4010 * dynarr.c (Dynarr_memory_usage):
4011 * dynarr.c (stack_like_free):
4012 * file-coding.c (coding_reader):
4013 * file-coding.c (gzip_convert):
4014 * gutter.c (output_gutter):
4015 * lisp.h:
4016 * lisp.h (Dynarr_declare):
4017 * lisp.h (DYNARR_SET_LISP_IMP):
4018 * lisp.h (CHECK_NATNUM):
4019 * profile.c (create_timing_profile_table):
4020 * redisplay-output.c (sync_rune_structs):
4021 * redisplay-output.c (sync_display_line_structs):
4022 * redisplay-output.c (redisplay_output_window):
4023 * redisplay.c:
4024 * redisplay.c (get_display_block_from_line):
4025 * redisplay.c (add_ichar_rune_1):
4026 * redisplay.c (ensure_modeline_generated):
4027 * redisplay.c (generate_displayable_area):
4028 * redisplay.c (regenerate_window):
4029 * redisplay.c (update_line_start_cache):
4030 * signal.c:
4031 * signal.c (check_quit):
4032
4033 Lots of rewriting of dynarr code.
4034
4035 (1) Lots of documentation added. Also fix places that
4036 referenced a now-bogus internals node concerning redisplay
4037 critical sections.
4038
4039 (2) Rename:
4040
4041 Dynarr_add_lisp_string -> Dynarr_add_ext_lisp_string
4042 Dynarr_set_length -> Dynarr_set_lengthr ("restricted")
4043 Dynarr_increment -> Dynarr_incrementr
4044 Dynarr_resize_if -> Dynarr_resize_to_add
4045
4046 (3) New functions:
4047
4048 Dynarr_elsize = dy->elsize_
4049 Dynarr_set_length(): Set length, resizing as necessary
4050 Dynarr_set_length_and_zero(): Set length, resizing as necessary,
4051 zeroing out new elements
4052 Dynarr_increase_length(), Dynarr_increase_length_and_zero():
4053 Optimization of Dynarr_set_length(), Dynarr_set_length_and_zero()
4054 when size is known to increase
4055 Dynarr_resize_to_fit(): Resize as necessary to fit a given length.
4056 Dynarr_set(): Set element at a given position, increasing length
4057 as necessary and setting any newly created positions to 0
4058
4059 (4) Use Elemcount, Bytecount.
4060
4061 (5) Rewrite many macros as inline functions.
4062
4063 2010-02-20 Ben Wing <ben@xemacs.org>
4064
4065 * tests.c:
4066 Fix operation of c-tests.
4067
4068 2010-02-19 Aidan Kehoe <kehoea@parhasard.net>
4069
4070 * fns.c (split_string_by_ichar_1):
4071 Use better types (e.g., not an Ichar for a buffer size) in this
4072 function when dealing with ESCAPECHAR.
4073
4074 2010-02-19 Aidan Kehoe <kehoea@parhasard.net>
4075
4076 * fns.c (mapcarX):
4077 Correct this function, discarding multiple values when one
4078 SEQUENCE is supplied, choosing a better label name. Correct the
4079 comment describing the SOME_OR_EVERY argument.
4080
4081 2010-02-12 Aidan Kehoe <kehoea@parhasard.net>
4082
4083 * syswindows.h:
4084 Remove the PDWORD_PTR typedef; it's not used in
4085 intl-auto-encap-win32.h , and it breaks the build with Visual C++
4086 2005 Express Edition and a 2005 copy of the SDK.
4087
1 2010-02-20 Ben Wing <ben@xemacs.org> 4088 2010-02-20 Ben Wing <ben@xemacs.org>
2 4089
3 * sysdep.c: 4090 * sysdep.c:
4 * sysdep.c (qxe_reliable_signal): 4091 * sysdep.c (qxe_reliable_signal):
5 * sysdep.c (retry_open_1): 4092 * sysdep.c (retry_open_1):
3538 New function complex_vars_of_unicode(). In it, create the utf-8 7625 New function complex_vars_of_unicode(). In it, create the utf-8
3539 coding system. Call it appropriately in emacs.c. Sort the 7626 coding system. Call it appropriately in emacs.c. Sort the
3540 prototypes of complex_vars_of_*() in symsinit.h, for cosmetic 7627 prototypes of complex_vars_of_*() in symsinit.h, for cosmetic
3541 reasons. 7628 reasons.
3542 7629
7630
7631 2010-02-07 Aidan Kehoe <kehoea@parhasard.net>
7632
7633 * fns.c (split_string_by_ichar_1): Extend this to take UNESCAPE
7634 and ESCAPECHAR arguments.
7635 (split_external_path, split_env_path, Fsplit_string_by_char)
7636 (Fsplit_path):
7637 Pass the new arguments to split_string_by_ichar_1(); take a new
7638 optional argument, ESCAPE-CHAR, in #'split-string-by-char,
7639 allowing SEPCHAR to be escaped.
3543 7640
3544 2010-01-09 Didier Verna <didier@xemacs.org> 7641 2010-01-09 Didier Verna <didier@xemacs.org>
3545 7642
3546 * glyphs.c (query_string_font): Use proper domain for cachel 7643 * glyphs.c (query_string_font): Use proper domain for cachel
3547 updating. 7644 updating.
54809 * s/hpux10-shr.h: Renamed from hpux10shr.h. 58906 * s/hpux10-shr.h: Renamed from hpux10shr.h.
54810 58907
54811 Wed Dec 4 23:38:03 1996 Steven L Baur <steve@altair.xemacs.org> 58908 Wed Dec 4 23:38:03 1996 Steven L Baur <steve@altair.xemacs.org>
54812 58909
54813 * redisplay.c: Allow column numbers in modeline to start from 1. 58910 * redisplay.c: Allow column numbers in modeline to start from 1.
58911
58912
58913 ChangeLog entries synched from GNU Emacs are the property of the FSF.
58914 Other ChangeLog entries are usually the property of the author of the
58915 change.
58916
58917 This file is part of XEmacs.
58918
58919 XEmacs is free software: you can redistribute it and/or modify it
58920 under the terms of the GNU General Public License as published by the
58921 Free Software Foundation, either version 3 of the License, or (at your
58922 option) any later version.
58923
58924 XEmacs is distributed in the hope that it will be useful, but WITHOUT
58925 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
58926 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
58927 for more details.
58928
58929 You should have received a copy of the GNU General Public License
58930 along with XEmacs. If not, see <http://www.gnu.org/licenses/>.