*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
1 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2
3 * abbrev.c: Put doc strings in comments.
4
5 2001-10-15 Gerd Moellmann <gerd@gnu.org>
6
7 * window.c (window_loop): Don't check for Fother_buffer returning
8 nil.
9
10 * window.c (select_window_1): Unfreeze window start. Remove a
11 doubled test for WINDOW being live.
12
13 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
14
15 * fns.c (Fmapconcat): Fix typo in a doc string.
16
17 * dispnew.c (Fsleep_for): Fix typo in a doc string.
18
19 2001-10-15 Gerd Moellmann <gerd@gnu.org>
20
21 * xterm.c (x_draw_glyph_string): Restore clipping after
22 drawing box.
23
24 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
25
26 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc
27 string.
28
29 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
30
31 * indent.c (skip_invisible): Use new retval of
32 TEXT_PROP_MEANS_INVISIBLE.
33
34 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
35 If a parent is reached and noinherit is set, exit immediately.
36 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
37
38 * s/ms-w32.h (EXEC_SUFFIXES):
39 * s/msdos.h (EXEC_SUFFIXES):
40 * process.h (EXEC_SUFFIXES): Remove.
41
42 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
43 (decode_suffixes): Remove.
44
45 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
46 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
47 (invisible_ellipsis_p): Remove.
48
49 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
50 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
51 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
52 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
53 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
54
55 2001-10-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
56
57 * lisp.h (Ftop_level): Add prototype.
58
59 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
60 (XTread_socket): Improve style of comments to follow other
61 comments.
62
63 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
64 is already prototyped in included lisp.h).
65
66 * frame.c (Fset_mouse_position): Improve style of comment to
67 follow other comments.
68 (Fset_mouse_pixel_position): Improve style of comment to follow
69 other comments.
70 (Fmake_frame_visible): Doc fix and typo in comment.
71 (Fmake_frame_invisible): Doc fix and typo in comment.
72 (Ficonify_frame): Fix typo in comment.
73
74 2001-10-14 Gerd Moellmann <gerd@gnu.org>
75
76 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
77 * term.c, alloc.c: Put doc strings in comments.
78
79 2001-10-13 Gerd Moellmann <gerd@gnu.org>
80
81 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
82 Provide definitions for doc strings in comments.
83
84 * fns.c: Put doc strings in comments.
85
86 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
87
88 * dired.c (file_name_completion): Ignore a candidate directory if
89 it matches an element in completion-ignored-extensions that ends
90 in a slash.
91 (syms_of_dired) <completion-ignored-extensions>: Mention the above
92 feature in the doc string.
93 (Ffile_name_completion): Ditto.
94
95 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
96
97 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
98
99 * xfns.c (syms_of_xfns): Update calls to Fprovide.
100
101 * lisp.h (Fprovide): Update prototype.
102 (Ffeaturep, invisible_p): Remove.
103
104 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
105 (DOLIST, LOOP_PROPVAL): New macros.
106 (invisible_p, invisible_ellipsis_p): Use them.
107 (invisible_noellipsis_p): New function.
108 (syms_of_xdisp): Use empty_string.
109
110 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
111
112 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
113 (syms_of_lread) <Vafter_load_alist>: Update docstring.
114
115 * print.c (Fwith_output_to_temp_buffer): Align with
116 internal_with_output_to_temp_buffer.
117 (print_preprocess): Use traverse_intervals_noorder.
118 (print_object): Update call to traverse_intervals.
119
120 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
121 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
122
123 * intervals.c (traverse_intervals_noorder): New function.
124 (search_for_interval, count_intervals): Use it.
125 (traverse_intervals): Use less stack space and drop `depth' arg.
126
127 * fns.c (Ffeaturep): Add new `subfeature' arg.
128 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
129 (Qsubfeatures): New var.
130 (syms_of_fns): Initialize it.
131
132 * keymap.c (Fkey_description): Use empty_string.
133 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
134 (syms_of_keymap): Setup inheritance between maps.
135 Don't export Sdescribe_bindings_internal any more.
136
137 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
138
139 2001-10-12 Gerd Moellmann <gerd@gnu.org>
140
141 * xterm.c (notice_overwritten_cursor): Renamed from
142 note_overwritten_text_cursor. Rewritten to take glyph widths into
143 account.
144
145 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
146
147 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
148 multi-line strings without a trailing "\n\".
149
150 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
151
152 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
153 defined.
154
155 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
156
157 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
158
159 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
160 * w32proc.c (sys_spawnve):
161 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
162 * w32.c (check_windows_init_file):
163 * sound.c (Fplay_sound):
164 * emacs.c (init_cmdargs):
165 * process.c (Fstart_process): Update calls to openp.
166
167 * callproc.c (Vexec_suffixes): New var.
168 (Fcall_process): Update call to openp.
169 (decode_suffixes): New function.
170 (syms_of_callproc): Init exec-suffixes.
171
172 * lread.c (Vload_suffixes, default_suffixes): New vars.
173 (openp): Take a lisp list of suffixes.
174 Check for file-name-handlers even if the file was absolute already.
175 (syms_of_lread): Declare load-suffixes.
176 (Fload): Fix up call to openp.
177 Don't bother checking for file-name-handler at the very beginning.
178
179 * keymap.h (Fcopy_keymap): Don't export.
180
181 * lisp.h (empty_string): Declare.
182 (Vload_suffixes, Vexec_suffixes): Declare.
183 (openp): Update prototype.
184
185 * emacs.c (empty_string): New var.
186 (syms_of_emacs): Initialize it.
187
188 * search.c (wordify): Use it.
189
190 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
191 selected window if it's not displayed there. Handle the case
192 when the window is dedicated.
193 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
194
195 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
196
197 * syntax.h (struct gl_state_s): Change the meaning of b_property.
198 Remove left_ok and right_ok.
199 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
200 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
201 new meaning of b_property.
202
203 * syntax.c (update_syntax_table): Simplify.
204 (Fforward_comment): Don't skip quoted chars when going backward.
205
206 2001-10-11 Gerd Moellmann <gerd@gnu.org>
207
208 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
209 in case I is of some unsigned type, in which case
210 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
211 comparison becomes bogus.
212
213 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
214 (Fuser_full_name): Fix bug treating a float as a fixnum.
215
216 * data.c (Fstring_to_number): Use make_fixnum_or_float.
217
218 * lisp.h (make_fixnum_or_float): New macro.
219
220 * lisp.h (circular_list_error): Add prototype.
221
222 * data.c (Qcircular_list): New variable.
223 (circular_list_error): New function.
224 (syms_of_data): Initialize it Qcircular_list.
225
226 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
227
228 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
229 casefiddle.c, buffer.c: Include keymap.h.
230
231 2001-10-10 Gerd Moellmann <gerd@gnu.org>
232
233 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
234 options. From Dave Love <d.love@dl.ac.uk>.
235
236 2001-10-09 Gerd Moellmann <gerd@gnu.org>
237
238 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
239 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
240
241 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
242 unsigned char.
243 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
244
245 2001-10-08 Andrew Innes <andrewi@gnu.org>
246
247 * lisp.h [max]: Undef min and max before redefining them.
248
249 * w32gui.h: Do not undef min and max.
250
251 * w32heap.h: Do not undef min and max.
252
253 * s/ms-w32.h: Do not undef min and max.
254
255 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
256
257 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
258
259 2001-10-08 Sam Steingold <sds@gnu.org>
260
261 * keymap.c (current-active-maps): Quote newlines (compilation error).
262
263 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
264
265 * Makefile.in (lisp, shortlisp): Replace bindings.el with
266 bindings.elc, since otherwise doc strings in bindings.el get wrong
267 offsets in etc/DOC.
268
269 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
270
271 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
272
273 * keyboard.h (map_prompt): Remove.
274
275 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
276 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
277
278 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
279
280 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
281
282 * keyboard.c (map_prompt): Remove.
283 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
284 Use Fkeymap_prompt.
285
286 * keymap.h: New file. Extracted from lisp.h.
287
288 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
289 (accessible_keymaps_1): New function.
290 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
291 (Fwhere_is_internal): Use Fcurrent_active_maps.
292 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
293 Insert in current buffer rather than standard-output.
294 Don't call `help-mode'. Export to elisp.
295 (describe_buffer_bindings): New wrapper.
296 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
297 and Sdescribe_buffer_bindings.
298
299 2001-10-08 Gerd Moellmann <gerd@gnu.org>
300
301 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
302 Remove code setting signal handler.
303
304 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
305 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
306
307 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
308
309 * keyboard.c: Don't define min/max.
310
311 2001-10-08 Gerd Moellmann <gerd@gnu.org>
312
313 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
314 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
315 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
316 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
317 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
318 Don't define min/max.
319
320 * lisp.h (min, max): New macros.
321
322 * puresize.h (BASE_PURESIZE): Increase to 725000.
323
324 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
325
326 * xfaces.c (free_frame_menubar): Add prototype.
327
328 * lisp.h (init_window): Add prototype.
329
330 * editfns.c: Include ctype.h.
331
332 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
333 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
334 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
335 variable `sb'.
336
337 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
338 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
339 `popup_activated_flag' and `title'.
340
341 * doc.c (Fdocumentation_property): Fix typo in a doc string.
342
343 * emacs.c (main): Remove extra `;'.
344
345 * atimer.h (struct atimer): Fix typos in a comment.
346
347 * atimer.c: Fix typo.
348
349 * Makefile.in: Fix typo.
350
351 * README: Remove obsolete part mentioning removed VMS file.
352
353 2001-10-07 Miles Bader <miles@gnu.org>
354
355 * Makefile.in (lisp, shortlisp): Add `button.elc'.
356
357 2001-10-07 Ken Raeburn <raeburn@gnu.org>
358
359 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
360 Lisp_Object.
361
362 * lisp.h (Ffield_end): Declare.
363
364 2001-10-07 Gerd Moellmann <gerd@gnu.org>
365
366 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
367
368 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
369
370 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
371
372 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
373
374 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
375 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
376
377 * alloc.c (inhibit_garbage_collection): Simplify.
378 (Fmemory_use_counts): Ditto.
379
380 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
381 (syms_of_data): DEFVAR_INT most-positive-fixnum and
382 most-negative-fixnum.
383
384 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
385 (FIXNUM_OVERFLOW_P): New macros.
386
387 2001-10-06 Miles Bader <miles@gnu.org>
388
389 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
390 scroll_bar_bottom_shadow_pixel fields.
391 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
392 for the shadows, and tell the toolkit about them if we succeed.
393 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
394 Free scroll-bar shadow colors.
395 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
396 Free scroll-bar shadow colors when the background color changes.
397 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
398 Initialize scroll-bar shadow-color fields.
399
400 2001-10-05 Gerd Moellmann <gerd@gnu.org>
401
402 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
403
404 2001-10-05 Miles Bader <miles@gnu.org>
405
406 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
407 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
408 New functions (were in simple.el).
409 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
410 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
411 (syms_of_minibuf): Initialize them.
412
413 2001-10-05 Gerd Moellmann <gerd@gnu.org>
414
415 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
416 (tiff_load): Install them as error and warning handler.
417
418 2001-10-04 Andrew Innes <andrewi@gnu.org>
419
420 * w32fns.c (x_to_w32_color): Fix argument to alloca.
421 (w32_load_system_font): Don't believe what GetLanguageFontInfo
422 says; query codepage info directly to determine if font is double byte.
423 (x_to_w32_charset): Handle private format for unknown charsets.
424 Handle wildcards in charset spec, by ignoring them.
425 (w32_codepage_for_font): Fix argument to alloca. Don't remove
426 "*-" prefix from charset.
427 (x_to_w32_font): Enlarge remainder array for safety. Specifically
428 handle the truncated font spec form constructed by font_list_1, so
429 that we correctly identify the charset fields. Don't remove "*-"
430 prefix from charset.
431 (w32_list_synthesized_fonts): Fix argument to alloca.
432
433 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
434
435 * window.h (MINI_WINDOW_P): Use NILP.
436
437 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
438
439 * termhooks.h (struct input_event): Use proper type for `kind'.
440
441 2001-10-04 Gerd Moellmann <gerd@gnu.org>
442
443 This handles unknown keysyms better than before. For example,
444 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
445 Emacs formerly completely ignored F5. With the change, it derives
446 a key symbol from the name of the X keysym, `ccaron' in this case.
447 Reported by Martin Buchholz.
448
449 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
450 unknown keysyms.
451
452 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
453 that EVENT->code isn't a function key, use the keysym's name.
454
455 2001-10-04 Gerd Moellmann <gerd@gnu.org>
456
457 FOREACH is a macro that should make it easier to loop over Lisp
458 lists with checks for cycles and proper lists.
459
460 * lisp.h (LIST_END_P, FOREACH): New macros.
461
462 2001-10-04 Gerd Moellmann <gerd@gnu.org>
463
464 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
465 called for a lost connection. Prevent dumping core in this case.
466 Instead print the X error, and exit. On user request.
467
468 * xterm.c (error_msg): New variable.
469 (x_fatal_error_signal): New function.
470 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
471 as fatal_error_signal_hook around the call to XtCloseDisplay.
472
473 * emacs.c (fatal_error_signal_hook): New variable.
474 (fatal_error_signal): Call that function.
475
476 2001-10-04 Gerd Moellmann <gerd@gnu.org>
477
478 With this, Emacs prints how much pure storage it will
479 approximately need in case pure storage overflows while dumping.
480
481 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
482 New variables.
483 (init_alloc_once): Initialize new variables.
484 (PURE_POINTER_P): Use new variables.
485 (pure_alloc): If pure storage overflows, allocate from the heap.
486 (check_pure_size): New function.
487 (Fgarbage_collect): Don't GC if pure storage has overflowed.
488
489 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
490 (check_pure_size): Add prototype.
491
492 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
493
494 2001-10-04 Gerd Moellmann <gerd@gnu.org>
495
496 This adds a post-gc-hook that's run with GC inhibited.
497 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
498
499 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
500 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
501 (Fgarbage_collect): Run post-gc-hook.
502
503 2001-10-04 Gerd Moellmann <gerd@gnu.org>
504
505 This adds `defvaralias' and `indirect-variable'. Changes not
506 directly related to this feature are there to gain the same
507 performance again as before variable aliases.
508
509 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
510 code to get and set symbol values, to take defvaralias into account.
511
512 (Note: the new `constant' bit-flag in symbols would make it
513 possible to define arbitrary read-only variables, e.g. with
514 `defconst'.)
515
516 Documentation is in lispref/variables.texi. Added to NEWS.
517
518 * lisp.h (enum symbol_interned): New enumeration.
519 (struct Lisp_Symbol): Remove member `obarray', add
520 `indirect_variable', `constant', and `interned'.
521 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
522 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
523 (indirect_variable): Add prototype.
524
525 * print.c (print_preprocess, print_object): Test internedness of
526 symbols differently.
527
528 * lread.c (Fintern, Funintern): Set symbol's interned and constant
529 bit-fields.
530 (init_obarray): Likewise for t and nil.
531
532 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
533 (Fdefvaralias): New function.
534 (specbind): Simplify the test if symbol is a constant.
535 (syms_of_eval): Defsubr Fdefvaralias.
536
537 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
538 (Qcyclic_variable_indirection): New variable.
539 (Fkeywordp): Check for internedness differently.
540 (Fmakunbound): Simplify the test if symbol is a constant.
541 (indirect_variable, Findirect_variable): New functions.
542 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
543 aliased symbol.
544 (let_shadows_buffer_binding_p): Check for variable aliases.
545 (set_internal): Simplify the test if SYMBOL is a constant.
546 If SYMBOL has a buffer-local value and is an alias, use the aliased
547 symbol instead.
548 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
549 Sindirect_variable.
550
551 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
552 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
553 set directly.
554
555 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
556
557 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
558 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
559 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
560
561 2001-10-04 Gerd Moellmann <gerd@gnu.org>
562
563 * Branch for 21.1.
564
565 2001-10-03 Miles Bader <miles@gnu.org>
566
567 * callproc.c (syms_of_callproc): Explicitly state in the
568 documentation for `process-environment' that earlier entries take
569 precedence over later ones.
570
571 2001-10-02 Miles Bader <miles@gnu.org>
572
573 * textprop.c (Fnext_char_property_change)
574 (Fprevious_char_property_change): Remove reference to non-existant
575 argument OBJECT from doc-string.
576
577 2001-10-01 Gerd Moellmann <gerd@gnu.org>
578
579 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
580 (try_window_id): Skip back over lines ending in a newline from a
581 string.
582
583 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
584 New bit flag
585
586 2001-10-01 Richard M. Stallman <rms@gnu.org>
587
588 * search.c (Freplace_match): Doc fix.
589
590 2001-09-28 Andrew Innes <andrewi@gnu.org>
591
592 * w32menu.c (set_frame_menubar): Take into account that
593 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
594 <raeburn@gnu.org>.
595
596 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
597
598 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
599
600 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
601
602 * s/gnu-linux.h: Fix a typo in comment.
603
604 2001-09-28 Andreas Schwab <schwab@suse.de>
605
606 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
607 nocombreloc, in case -z combreloc is the default.
608
609 2001-09-28 Gerd Moellmann <gerd@gnu.org>
610
611 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
612 really going on here.
613
614 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
615
616 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
617
618 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
619
620 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
621 utf-8, menu-bar, and latin-N.
622 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
623 unconditionally now.
624 (lisp): Add latin-N, since they are preloaded.
625
626 2001-09-27 Gerd Moellmann <gerd@gnu.org>
627
628 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
629 to the left. Some cleanup.
630
631 * xdisp.c (display_mode_element): One more case where a string's
632 multibyteness should be used for display.
633
634 2001-09-26 Gerd Moellmann <gerd@gnu.org>
635
636 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
637 reading at EOF.
638
639 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
640 of the only temporarily set echoing flag for deciding when
641 the cancel echoing.
642
643 * keyboard.c (echo_kboard): Make externally visible.
644
645 * lisp.h (echo_kboard): Declare extern.
646
647 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
648 fonts_changed_p if we need larger matrices due to vscrolling.
649 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
650 this round of redisplay if make_cursor_line_fully_visible fails.
651 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
652 (try_cursor_movement, try_scrolling): Use them instead of integers.
653
654 * dispextern.h (required_matrix_width, required_matrix_height):
655 Add prototypes.
656
657 * dispnew.c (required_matrix_width, required_matrix_height):
658 New functions.
659 (allocate_matrices_for_window_redisplay)
660 (allocate_matrices_for_frame_redisplay: Use them.
661 Remove parameters CH_DIM.
662
663 * xdisp.c (display_mode_lines): Temporarily set selected_frame
664 and selected_window to the frame of the window whose mode-lines
665 are displayed, and to the window itself.
666 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
667 here.
668
669 2001-09-25 Gerd Moellmann <gerd@gnu.org>
670
671 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
672 the image cache under us.
673
674 * xdisp.c (display_mode_element): If the mode element is a symbol
675 with a string value, use that string's multibyteness for displaying.
676
677 * keyboard.c (read_char): Don't clear a message for a switch-frame
678 event. From Stefan Monnier <monnier@cs.yale.edu>.
679
680 * xterm.c (fast_find_position) [0]: Add a presumably more correct
681 version for after 21.1.
682
683 * xdisp.c (row_containing_pos): Make externally visible.
684
685 * dispextern.h (row_containing_pos): Add prototype.
686
687 * process.c (send_process): Disable composition if from_byte < 0.
688 From Kenichi Handa <handa@etl.go.jp>.
689
690 2001-09-24 Gerd Moellmann <gerd@gnu.org>
691
692 * xterm.c (refreshicon): Function removed.
693
694 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
695
696 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
697
698 * xterm.c (toplevel): Remove includes in #if 0.
699
700 * process.c (sigchld_handler) [LINUX]: Don't return from
701 the signal handler at the end of the loop.
702
703 2001-09-21 Gerd Moellmann <gerd@gnu.org>
704
705 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
706 Terminate only if kill returns -1, and errno is ESRCH.
707
708 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
709
710 * Makefile.in (shortlisp): Add ../lisp/env.elc.
711
712 2001-09-20 Gerd Moellmann <gerd@gnu.org>
713
714 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
715 since this function can be called during GC.
716
717 * callproc.c (Fcall_process): Handle errors from pipe(2).
718 (child_setup): Delete code in #ifdef vipc.
719
720 2001-09-19 Gerd Moellmann <gerd@gnu.org>
721
722 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
723 (display_mode_element): Display the string from decode_mode_spec
724 depending on its multibyteness.
725
726 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
727
728 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
729
730 2001-09-18 Gerd Moellmann <gerd@gnu.org>
731
732 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
733 recursive_edit_unwind.
734 (recursive_edit_unwind): Set kboard state according to
735 SINGLE-KBOARD.
736
737 * buffer.c (modify_overlay): Don't do nothing if START == END;
738 This can still be a modification, for example when an overlay has
739 a before-string or after-string.
740 (Fdelete_overlay): Prevent redisplay optimizations when deleting
741 an overlay with before-string or after-string.
742
743 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
744 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
745
746 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
747 first_unchanged_at_end_row is in front of
748 last_unchanged_at_beg_row. This code should be removed after the
749 release of 21.1.
750
751 2001-09-17 Gerd Moellmann <gerd@gnu.org>
752
753 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
754 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
755
756 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
757 versions >= 2.95.
758
759 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
760
761 * dired.c (Ffile_attributes): Doc fix.
762
763 2001-09-14 Gerd Moellmann <gerd@gnu.org>
764
765 * fileio.c (Ffile_symlink_p): Fix last change.
766
767 * filelock.c (current_lock_owner): Fix last change.
768
769 2001-09-13 Gerd Moellmann <gerd@gnu.org>
770
771 * filelock.c (current_lock_owner): If readlink returns ERANGE,
772 take that to mean that the buffer is too small.
773
774 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
775 that to mean that the buffer is too small.
776
777 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
778 current buffer's multibyteness when discarding the iterator's
779 stack.
780
781 * xfns.c (Fx_window_property): Handle case that property gets
782 deleted between the two calls to XGetWindowProperty.
783
784 2001-09-11 Gerd Moellmann <gerd@gnu.org>
785
786 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
787
788 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
789 in addition to read-only.
790
791 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
792 to t in addition to read-only.
793
794 * lisp.h (Qinhibit_modification_hooks): Declare.
795
796 * insdel.c (Qinhibit_modification_hooks): New variable.
797 (syms_of_insdel): Initialize and staticpro it.
798
799 * textprop.c (verify_interval_modification): Don't run
800 modification-hooks if inhibit_modification_hooks.
801
802 * dispnew.c (set_window_cursor_after_update): Fix code
803 finding glyph row containing cursor when cursor_in_echo_area
804 is >= 0.
805
806 * xdisp.c (init_from_display_pos): Put some code in #if 0.
807 (add_to_log): Use bcopy instead of strcpy.
808 (init_from_display_pos): Use an explicit loop over bytes in
809 overlay strings instead of calling index.
810
811 2001-09-10 Gerd Moellmann <gerd@gnu.org>
812
813 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
814
815 * dispnew.c (direct_output_for_insert): Don't change IT's
816 stop_charpos to something in front of its current position.
817
818 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
819 `format'.
820
821 2001-09-10 Richard M. Stallman <rms@gnu.org>
822
823 * frame.c (Fmouse_position): Doc fix.
824
825 2001-09-07 Gerd Moellmann <gerd@gnu.org>
826
827 * xdisp.c (init_from_display_pos): Don't compare the result
828 of calling index with NULL.
829
830 2001-09-06 Gerd Moellmann <gerd@gnu.org>
831
832 * xfns.c (x_set_background_color): Don't change the colors
833 of the X window of scroll bar widgets.
834
835 2001-09-05 Andrew Innes <andrewi@gnu.org>
836
837 * w32fns.c (w32_createwindow): Undo last change.
838
839 2001-09-05 Gerd Moellmann <gerd@gnu.org>
840
841 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
842
843 * xdisp.c (string_buffer_position): Use *single_char_property*
844 functions instead of the *single_property* functions.
845
846 2001-09-04 Andrew Innes <andrewi@gnu.org>
847
848 * w32term.c (w32_read_socket): Add more information to debugging
849 output.
850
851 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
852 from Emacs frames, so that calls to GetClipBox in w32term.c
853 correctly report when part of a frame is visible (including
854 scrollbars, etc). This prevents repeated redrawing of frames when
855 only a scrollbar is visible.
856 (w32_wnd_proc): Add more frame information to debugging output.
857
858 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
859
860 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
861
862 2001-09-03 Gerd Moellmann <gerd@gnu.org>
863
864 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
865 help-echo for a string which doesn't have help-echo itself, use
866 get-char-property to obtain the help-echo from the string's buffer
867 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
868 have mouse-face, look ``under'' the string for mouse-face from an
869 overlay.
870 (fast_find_position): Add parameter STOP. In the final row, stop
871 before glyphs having STOP as object. Don't consider glyphs that
872 are not from a buffer.
873
874 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
875
876 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
877
878 * fns.c (Fmd5): Doc fix.
879
880 2001-08-31 Gerd Moellmann <gerd@gnu.org>
881
882 * composite.c (update_compositions): Do nothing if
883 inhibit-modification-hooks is set.
884
885 2001-08-30 Gerd Moellmann <gerd@gnu.org>
886
887 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
888 and check_message_stack if terminating abnormally. We want
889 glyph matrices etc. in a core dump.
890
891 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
892 (syms_of_xdisp): Initialize them.
893 (handle_single_display_prop): Don't change point, bind `object',
894 `position', and `buffer-position' instead to the object having the
895 `display' property, position in the object and position in the buffer.
896
897 * fileio.c (Finsert_file_contents): Don't change the multibyteness
898 of the buffer if REPLACE is non-nil.
899
900 2001-08-29 Gerd Moellmann <gerd@gnu.org>
901
902 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
903
904 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
905
906 * w32term.c (x_set_glyph_string_background_width)
907 (show_mouse_face): Track the last changes in xterm.c.
908
909 2001-08-28 Gerd Moellmann <gerd@gnu.org>
910
911 * xterm.c (x_set_glyph_string_background_width): Set the glyph
912 string's background width so that multi-line mouse-face is drawn
913 to the right edge of the window.
914 (show_mouse_face): Set the row's mouse_face_p flag after drawing
915 glyphs.
916
917 * dispnew.c (direct_output_for_insert): Set updated_area
918 before inserting/writing glyphs.
919
920 * xdisp.c (display_mode_element): Use string_byte_to_char to
921 determine character positions in strings, use chars_in_text
922 instead of strwidth.
923 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
924 a matrix as parameter; this is easier to use from GDB.
925
926 2001-08-28 Miles Bader <miles@gnu.org>
927
928 * textprop.c (Fprevious_single_char_property_change)
929 (Fnext_single_char_property_change): Doc fixes.
930
931 2001-08-27 Gerd Moellmann <gerd@gnu.org>
932
933 * fileio.c (Finsert_file_contents): Allocate, restore, and
934 free composition data in the case of REPLACE not being nil.
935
936 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
937 there exist overlay strings with newlines at POS.
938 (text_outside_line_unchanged_p): Return 0 if changes start at
939 START and overlays exist at START. Likewise for END.
940 (try_window_id): Give up if init_to_row_end returns 0.
941
942 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
943 unconditionally.
944
945 2001-08-24 Gerd Moellmann <gerd@gnu.org>
946
947 * keymap.c (access_keymap): Return the cdr of the binding of
948 a generic character instead of its definition (KEY . BINDING).
949
950 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
951 to 0 also in the REPLACE case.
952
953 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
954
955 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
956 open to determine whether file is readable (as for DOS_NT).
957
958 2001-08-23 Gerd Moellmann <gerd@gnu.org>
959
960 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
961 coding.type is coding_type_no_conversion or coding_type_raw_text,
962 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
963 non-nil instead of just setting enable_multibyte_characters in the
964 buffer to nil.
965
966 2001-08-22 Gerd Moellmann <gerd@gnu.org>
967
968 * dispextern.h (struct face_cache): Add member
969 menu_face_changed_p.
970
971 * xfaces.c (menu_face_changed_default): New variable.
972 (menu_face_changed_count): Variable removed.
973 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
974 the menu_face_changed_default flag, otherwise set the FRAME's
975 menu_face_changed_p flag if the `menu' face has been changed.
976 Prevent calling set_font_frame_param if FRAME is t.
977 (make_face_cache): Initialize cache's menu_face_changed_p
978 from menu_face_changed_default.
979 (realize_basic_faces): Look into the frame's face cache to
980 determine if the menu appearance needs updating.
981
982 * keymap.c (access_keymap): Fix last change to not consider
983 IDX when it has modifiers.
984
985 2001-08-21 Gerd Moellmann <gerd@gnu.org>
986
987 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
988 . BINDING) exists, where GENERIC-CHAR is the generic character of
989 the charset of IDX, return BINDING unless there exists a binding
990 for IDX itself.
991
992 2001-08-16 Gerd Moellmann <gerd@gnu.org>
993
994 * xrdb.c (SYSV): Don't define on Solaris 2.
995 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
996
997 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
998 of the screen line, not text line, containing IT's current position.
999
1000 2001-08-15 Gerd Moellmann <gerd@gnu.org>
1001
1002 * window.c (window_scroll_pixel_based): Don't recenter if
1003 PT is partially visible in the window.
1004
1005 * xterm.c (expose_window_tree, expose_window, expose_line):
1006 Return 1 when overwriting mouse-face.
1007 (expose_frame): If mouse-face was overwritten, redo it.
1008
1009 * xfaces.c (x_update_menu_appearance): Don't call
1010 set_frame_menubar, let the next redisplay do it.
1011
1012 2001-08-14 Andrew Innes <andrewi@gnu.org>
1013
1014 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
1015 drawing glyph string.
1016
1017 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
1018
1019 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
1020 running HI-UX/MPP.
1021
1022 2001-08-14 Gerd Moellmann <gerd@gnu.org>
1023
1024 * xfaces.c (x_update_menu_appearance): Save and restore value of
1025 interrupt_input_blocked.
1026
1027 2001-08-13 Gerd Moellmann <gerd@gnu.org>
1028
1029 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
1030 a line start, move back to the line start.
1031
1032 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
1033 exactly when a mini-buffer is active.
1034
1035 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
1036 in units of 1/8 character on non window-system frames.
1037 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
1038
1039 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
1040
1041 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
1042 a doc string.
1043
1044 2001-08-09 Gerd Moellmann <gerd@gnu.org>
1045
1046 * keyboard.c (Vpre_help_message): New variable.
1047 (syms_of_keyboard): Initialize and staticpro it.
1048 (show_help_echo): Record current message before displaying a
1049 help-echo, and restore that message when clearing the help.
1050
1051 * xfns.c (x_create_im): Remove prototype.
1052
1053 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
1054
1055 * dispnew.c (adjust_glyph_matrix): Undo last change.
1056
1057 2001-08-08 Gerd Moellmann <gerd@gnu.org>
1058
1059 * dispnew.c (adjust_glyph_matrix): In the optimization for
1060 windows whose height has changed, disable partially visible lines.
1061
1062 2001-08-07 Gerd Moellmann <gerd@gnu.org>
1063
1064 * window.c (Frecenter): If ARG < 0, and on a window system
1065 frame, count in some empty lines when we can't move -ARG lines down.
1066
1067 * xdisp.c (start_display): Don't try to determine the continuation
1068 lines width if lines are truncated. It's superfluous and leads to
1069 incorrect results if POS is not visible in the window after
1070 reseating the iterator at the previous line start.
1071
1072 2001-08-06 Gerd Moellmann <gerd@gnu.org>
1073
1074 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
1075
1076 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1077
1078 * alloc.c (init_stack): Remove declaration.
1079
1080 2001-08-03 Gerd Moellmann <gerd@gnu.org>
1081
1082 * keyboard.c (read_key_sequence): Check that key is an integer
1083 before comparing it with quit_char.
1084 (add_command_key): Use larger_vector.
1085 (read_char_x_menu_prompt): Instead of converting symbol and
1086 integer events into conses (EVENT . nil), use (EVENT . disabled)
1087 which cannot be confused with valid events.
1088 (read_char): When reading from Vunread_command_events, check for
1089 events of the form (EVENT . disabled) instead of
1090 (EVENT . nil).
1091
1092 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
1093 a float, determine the max height from the frame's height.
1094
1095 2001-08-02 Gerd Moellmann <gerd@gnu.org>
1096
1097 * xdisp.c (redisplay_internal): Take message_cleared_p into
1098 account only if minibuf_level == 0.
1099
1100 2001-08-01 Gerd Moellmann <gerd@gnu.org>
1101
1102 * xdisp.c (redisplay_internal): Add a check for the last
1103 displayed message.
1104
1105 * xdisp.c (message_cleared_p): New variable.
1106 (clear_message): Set message_cleared_p when clearing the current
1107 message.
1108 (redisplay_internal): Look at message_cleared_p to capture
1109 the case that the echo area should be cleared.
1110
1111 * keyboard.c (command_loop_1): Fix spelling of
1112 resize_echo_area_exactly.
1113
1114 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
1115
1116 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
1117
1118 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
1119 current matrix when the window gets smaller.
1120
1121 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
1122
1123 * print.c (strout): Cast the character passed to insert_char to
1124 unsigned char, to avoid sign extension when it is promoted to int.
1125
1126 2001-07-31 Gerd Moellmann <gerd@gnu.org>
1127
1128 * fileio.c (Finsert_file_contents): Don't treat a return value
1129 of 0 from emacs_read as an IO error.
1130
1131 2001-07-30 Gerd Moellmann <gerd@gnu.org>
1132
1133 * keyboard.c (abs): New macro.
1134 (double_click_fuzz): New variable.
1135 (make_lispy_event): Use it to determine what makes a double-click.
1136 (syms_of_keyboard): DEFVAR_INT it.
1137
1138 * xmenu.c (set_frame_menubar): Take into account that
1139 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
1140 <raeburn@gnu.org>.
1141
1142 2001-07-27 Gerd Moellmann <gerd@gnu.org>
1143
1144 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
1145
1146 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
1147 of row's visible height.
1148
1149 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
1150 deal with the first overlay string having an image `display' property.
1151 (try_window_reusing_current_matrix, compute_line_metrics):
1152 Fix computation of row's visible height for the case that part of the
1153 row is invisible above and part of the row is at the same time
1154 invisible below the window.
1155
1156 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1157
1158 * xfns.c (x-show-tip): Doc fix.
1159
1160 * xfns.c (Vx_max_tooltip_size): New variable.
1161 (syms_of_xfns): DEFVAR_LISP it.
1162 (Fx_show_tip): Set frame's window_width to the width of the
1163 window. Use a maximum tooltip size specified by
1164 Vx_max_tooltip_size, if that has valid contents.
1165 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
1166
1167 2001-07-26 Andrew Innes <andrewi@gnu.org>
1168
1169 * w32term.c (x_display_list): New variable.
1170 (w32_term_init): Set it.
1171
1172 * w32term.h (x_display_list): New extern.
1173
1174 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1175
1176 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
1177 is non-nil, instead of when redisplaying_p is non-zero.
1178 See comment there.
1179 (mark_window_display_accurate_1): Add an assertion.
1180
1181 2001-07-25 Gerd Moellmann <gerd@gnu.org>
1182
1183 * dispextern.h (struct it): Increase size of ctl_chars to 16.
1184
1185 * xfns.c (Fx_file_dialog): Block/unblock input while processing
1186 events so that we get a chance of processing expose events.
1187
1188 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
1189
1190 2001-07-24 Gerd Moellmann <gerd@gnu.org>
1191
1192 * xfns.c (valid_image_p): Protect better against invalid image
1193 specifications. Previous code could signal an error.
1194
1195 2001-07-23 Gerd Moellmann <gerd@gnu.org>
1196
1197 * indent.c (current_column): Fix column computation in the
1198 presence of display table entries.
1199 (current_column_1, Fmove_to_column, compute_motion): Likewise.
1200
1201 * dispnew.c (adjust_glyph_matrix): In the optimization for
1202 windows whose height has changed, use the new window height
1203 to compute which rows to invalidate.
1204
1205 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
1206 (MAX_10_EXP): New macro.
1207 (Fformat): Use it.
1208
1209 * coding.c (code_convert_region): Handle the multibyte case if
1210 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
1211
1212 2001-07-20 Gerd Moellmann <gerd@gnu.org>
1213
1214 * dispextern.h (struct face): Change type of `stipple' to
1215 int; it's an ID.
1216
1217 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
1218
1219 2001-07-19 Gerd Moellmann <gerd@gnu.org>
1220
1221 * dispnew.c (update_window): Don't set the cursor at the end
1222 of the update if display update has been paused.
1223
1224 * composite.h (syms_of_composite): Renamed from syms_of_composition.
1225
1226 2001-07-18 Ken Raeburn <raeburn@gnu.org>
1227
1228 * fns.c (Fset_char_table_default): Check that a charset is defined
1229 before checking its dimension.
1230
1231 2001-07-17 Ken Raeburn <raeburn@gnu.org>
1232
1233 * coding.c (setup_coding_system): Don't do any designation based
1234 on reg_bits if charset is not yet defined.
1235
1236 * lisp.h (XVECTOR): Verify correct object type before returning a
1237 pointer, using eassert.
1238
1239 2001-07-17 Gerd Moellmann <gerd@gnu.org>
1240
1241 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
1242 Increase to 4096 because of paste problems reported on GNU/Linux.
1243
1244 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
1245
1246 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
1247
1248 2001-07-16 Gerd Moellmann <gerd@gnu.org>
1249
1250 * fileio.c (unwind_read): Function removed.
1251 (read_non_regular, read_non_regular_quit): New functions.
1252 (Finsert_file_contents): When reading from non-regular files,
1253 arrange to catch a `quit' and terminate the loop. Rearrange
1254 code so that a `quit' when reading from a regular file doesn't
1255 insert text in the buffer.
1256
1257 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
1258 Clear faces afterwards.
1259 (clear_font_table): Take a x_display_info parameter. Don't free
1260 fonts being the default font of any frame on the given display.
1261
1262 2001-07-13 Gerd Moellmann <gerd@gnu.org>
1263
1264 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
1265 instead of CHAR_STRING which can signal an error.
1266
1267 * charset.c (char_to_string_1): Extracted from char_to_string.
1268 Return -1 instead of signaling an error.
1269 (char_to_string): Use it.
1270
1271 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
1272
1273 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
1274
1275 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
1276 is t, don't try to append anything to it.
1277
1278 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
1279
1280 * dired.c (file_name_completion): Pass dp->d_name to
1281 Fstring_match, not elt, which is always nil here.
1282
1283 2001-07-12 Gerd Moellmann <gerd@gnu.org>
1284
1285 * xselect.c (x_decline_selection_request): Handle errors
1286 caused by receivers that have vanished.
1287
1288 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
1289 ignoring events on foreign windows in #if 0. Always dispatch
1290 the event after checking it with x_handle_property_notify.
1291
1292 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
1293 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
1294 TRACE macros to facilitate debugging. Add additional trace statements.
1295 (toplevel): Add prototypes for file-local functions.
1296 (x_atom_to_symbol): Remove DPYINFO parameter.
1297
1298 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
1299
1300 * w32menu.c (menubar_selection_callback, w32_menu_show):
1301 Initialize `entry' to nil.
1302 (w32_dialog_show): Remove unused `save_wv' variable.
1303 (name_is_separator): Recognize "--:foo" and "--foo-bar".
1304
1305 2001-07-11 Gerd Moellmann <gerd@gnu.org>
1306
1307 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
1308
1309 * fileio.c (unwind_read): Print a message when discarding inserted
1310 text or switching the buffer to unibyte. Change parameter.
1311 (Finsert_file_contents): Don't pass VISIT to unwind_read.
1312
1313 * fileio.c (unwind_read): New function.
1314 (Finsert_file_contents): Record it as unwind-function for
1315 the case that reading is interrupted by C-g.
1316
1317 2001-07-10 Gerd Moellmann <gerd@gnu.org>
1318
1319 * dispnew.c (update_window): Don't skip the header-line
1320 update when scrolling_window returns 0.
1321
1322 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
1323
1324 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
1325 for the case that x_decode_color signals an error.
1326
1327 * xdisp.c (add_to_log): Do nothing if called asynchronously.
1328
1329 2001-07-09 Gerd Moellmann <gerd@gnu.org>
1330
1331 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
1332 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
1333 around ioctls.
1334
1335 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
1336
1337 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
1338 doc string line for dos-timezone-offset.
1339
1340 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
1341 inline assembly, to avoid compiler warnings.
1342 (syms_of_msdos): Add \n\ at the end of a line in the doc string
1343 line for dos-unsupported-char-glyph.
1344
1345 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
1346
1347 2001-07-05 Gerd Moellmann <gerd@gnu.org>
1348
1349 * sound.c: Include Emacs' header files with #include "...".
1350
1351 * eval.c (specbind): Additionally record the buffer that was
1352 current when a buffer-local or frame-local variable was bound.
1353
1354 2001-07-04 Gerd Moellmann <gerd@gnu.org>
1355
1356 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
1357 to unibyte characters in unibyte buffers.
1358
1359 2001-07-03 Gerd Moellmann <gerd@gnu.org>
1360
1361 * eval.c (specbind): If SYMBOL has a frame-local binding, record
1362 the frame on the binding stack. Change format of entries for
1363 local bindings on the binding stack to '(SYMBOL . WHERE)'.
1364 (unbind_to): Handle unbinding a frame-local variable.
1365
1366 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
1367 glyphs and truncation glyphs at the end of a row from its pixel width.
1368 (dump_glyph_row): Print row's continuation_lines_width.
1369 (try_window_id): Take the shortcut if ZV is visible in the
1370 window, but there are actually no changes at ZV.
1371
1372 2001-07-02 Gerd Moellmann <gerd@gnu.org>
1373
1374 * xterm.h (x_free_dpy_colors): Add prototype.
1375
1376 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
1377 right number of arguments.
1378
1379 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
1380 ($(lwlibdir)TAGS): New target.
1381 (TAGS): Fix dependency list.
1382
1383 * xterm.c (x_list_fonts): Make sure XFreeFont is called
1384 with input blocked.
1385
1386 2001-06-30 Gerd Moellmann <gerd@gnu.org>
1387
1388 * emacs.c (main): Remove extern declaration for sys_nerr, which
1389 isn't used and causes a compilation error with GCC 3.0 on
1390 FreeBSD 4.3.
1391
1392 2001-06-27 Gerd Moellmann <gerd@gnu.org>
1393
1394 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
1395 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
1396 (toplevel): Include <signal.h> and syssignal.h.
1397
1398 * sound.c (vox_configure, vox_close): Turn off atimers
1399 around ioctls.
1400
1401 2001-06-26 Gerd Moellmann <gerd@gnu.org>
1402
1403 * keyboard.c (read_char) <non_reread>: Record the previous idle
1404 start time before calling timer_stop_idle.
1405 (read_char) <reread_first>: After processing a help-echo event,
1406 restore the previous idle start time.
1407
1408 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
1409 the start of invisible text.
1410 (setup_for_ellipsis): New function.
1411 (next_overlay_string): After all overlay strings have been
1412 processed, display an ellipsis if necessary.
1413 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
1414 (push_it): Initialize display_ellipsis_p on the iterator's stack.
1415
1416 * dispextern.h (struct iterator_stack_entry): Add member
1417 display_ellipsis_p.
1418
1419 2001-06-25 Gerd Moellmann <gerd@gnu.org>
1420
1421 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
1422 on the value of the wait-for-wm frame parameter.
1423
1424 * xterm.h (struct x_output): Add member wait_for_wm.
1425
1426 * xfns.c (Qwait_for_wm): New variable.
1427 (x_frame_parms): Add entry for `wait-for-wm".
1428 (x_set_wait_for_wm): New function.
1429 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
1430 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
1431
1432 * xdisp.c (try_window_id) <all changes below window end>: Don't
1433 take this shortcut if ZV is visible in the window.
1434 (try_window_id): When checking for window start being in changed
1435 text, don't check that the buffer's size has changed.
1436
1437 2001-06-23 Richard M. Stallman <rms@gnu.org>
1438
1439 * minibuf.c (Fcompleting_read): Doc fix.
1440
1441 2001-06-19 Gerd Moellmann <gerd@gnu.org>
1442
1443 * composite.c (Ffind_composition_internal): Accept ZV
1444 and a string's end position as POS.
1445
1446 2001-06-18 Gerd Moellmann <gerd@gnu.org>
1447
1448 * composite.c (Ffind_composition_internal): Check POS
1449 for validity.
1450
1451 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1452
1453 * editfns.c (Fmessage_box): If the frame is not under a window
1454 system, output the message in the echo area.
1455
1456 2001-06-14 Richard M. Stallman <rms@gnu.org>
1457
1458 * xdisp.c (try_window_id): When EOB is visible, don't treat
1459 insertion at EOB as if it were "off the bottom of the screen."
1460
1461 2001-06-11 Andrew Innes <andrewi@gnu.org>
1462
1463 * w32proc.c (create_child): Add new parameter is_gui_app.
1464 (w32_executable_type): Add new parameter is_gui_app.
1465 (sys_spawnve): Use it.
1466 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
1467 SIGQUIT. This matches better how the signals are interpreted by
1468 MSVC compiled programs.
1469 (syms_of_ntproc): Update docstring.
1470
1471 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
1472
1473 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
1474 well otherwise note_mouse_highlight might optimize away highlighting
1475 if we pass over that same overlay again.
1476
1477 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
1478
1479 * lread.c (Fload): Document that the argument is run via
1480 substitute-in-file-name.
1481
1482 2001-05-31 Gerd Moellmann <gerd@gnu.org>
1483
1484 * Makefile.in (bootstrap-doc): New target.
1485 (bootstrap-emacs): Depend on it.
1486
1487 * fileio.c (Fdo_auto_save): Don't try to create the directory of
1488 auto-save-list-file-name when shutting down Emacs, because
1489 creating the directory might signal an error, and leaves
1490 Emacs in a strange state.
1491
1492 * term.c: (tty_cursor_hidden): New variable.
1493 (update_begin): Don't call tty_hide_cursor. Clean up.
1494 (update_end, set_terminal_window, set_scroll_region): Clean up.
1495 (ring_bell, reset_terminal_modes): Clean up.
1496 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
1497 on tty_cursor_hidden.
1498 (write_glyphs): Call tty_hide_cursor.
1499
1500 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
1501
1502 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
1503
1504 2001-05-30 Gerd Moellmann <gerd@gnu.org>
1505
1506 * xfns.c (enum image_value_type): New enumerator
1507 IMAGE_STRING_OR_NIL_VALUE.
1508 (parse_image_spec): Handle it.
1509 (xbm_format, pbm_format): Use it for :foreground and :background.
1510 (xbm_load, pbm_load): Check for nil color names.
1511
1512 * xterm.c (note_mouse_highlight): If an overlapping overlay
1513 exists, but we find that we highlight the same overlay as before,
1514 don't do the highlighting again.
1515
1516 2001-05-29 Gerd Moellmann <gerd@gnu.org>
1517
1518 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
1519 Protect unibyte strings created by replacing their multibyte
1520 equivalents in menu_items.
1521
1522 * keymap.c (Fsingle_key_description): NUL-terminate the string
1523 buffer before calling build_string.
1524
1525 * callproc.c (Fcall_process): Deal with decode_coding returning
1526 CODING_FINISH_INCONSISTENT_EOL.
1527
1528 2001-05-28 Gerd Moellmann <gerd@gnu.org>
1529
1530 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
1531 an item's name with its key description in case the description
1532 is a multibyte string.
1533
1534 * keymap.c (Fsingle_key_description): Create a multibyte string
1535 only if necessary.
1536
1537 * macros.c (Fstart_kbd_macro): Doc fix.
1538
1539 * xterm.c (cursor_in_mouse_face_p): New function.
1540 (x_draw_stretch_glyph_string): Use it to choose a different GC
1541 when drawing a cursor within highlighted text.
1542
1543 * editfns.c (char_property_eq): Put in #if 0.
1544
1545 * indent.c (string_display_width): Put in #if 0.
1546
1547 * lread.c (Fload): Remove unused label.
1548
1549 * termcap.c (speeds): Put in #if 0.
1550
1551 2001-05-18 Gerd Moellmann <gerd@gnu.org>
1552
1553 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
1554
1555 * xfaces.c (xlfd_point_size): Don't divide pixel size from
1556 transformation matrix by 10.
1557
1558 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1559
1560 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
1561 only if it's equal to the former foreground pixel color.
1562 (x_set_foreground_color, x_set_background_color)
1563 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
1564
1565 2001-05-16 Dave Love <fx@gnu.org>
1566
1567 * insdel.c (signal_before_change, signal_after_change): Consider a
1568 local change hook which changes the buffer.
1569
1570 * process.c (read_process_output): Don't call signal_after_change
1571 and update_compositions after insert_from_string_before_markers.
1572
1573 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1574
1575 * xfaces.c (split_font_name): Use the right field when
1576 checking for `[...]' syntax.
1577
1578 * buffer.c (copy_overlays): New function.
1579 (clone_per_buffer_values): Use it.
1580
1581 * buffer.h (OVERLAY_PLIST): New macro.
1582
1583 * keymap.c (Fsingle_key_description): Replace a build_string with
1584 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
1585
1586 * fontset.c (Ffontset_info): Check that face is non-null
1587 before accessing its fields.
1588
1589 2001-05-15 Gerd Moellmann <gerd@gnu.org>
1590
1591 * keyboard.c (read_key_sequence): Prevent generating a fake
1592 prefix key twice.
1593
1594 * xfaces.c (split_font_name): Handle `[...]' for the right
1595 font name fields.
1596
1597 * ccl.c (ccl_driver): Don't copy remaining bytes in case
1598 of CCL_STAT_INVALID_CMD.
1599
1600 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
1601
1602 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
1603 in <var> has no default value yet.
1604
1605 * xfaces.c (try_alternative_families): First try the FAMILY.
1606 And if nothing is found in the end, try again with scalable fonts.
1607 (try_font_list): Let try_alternative_families do a bit more of
1608 the work. Only use FAMILY if it is not nil.
1609 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
1610
1611 2001-05-14 Gerd Moellmann <gerd@gnu.org>
1612
1613 * xterm.c (note_mouse_highlight): Avoid changing the mouse
1614 pointer shape when show_mouse_face has already done it.
1615
1616 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
1617 full-width rows.
1618
1619 * xfaces.c (split_font_name): Make sure to leave the loop
1620 with the right value of `i'.
1621
1622 * xfaces.c (split_font_name): Handle matrix transformations
1623 in the pixel and point size fields of XLFD font names.
1624 (xlfd_point_size): Likewise.
1625
1626 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
1627
1628 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
1629 (x_to_w32_font): Add prototype.
1630
1631 * regex.c (malloc, realloc, free) [emacs]: Undefine before
1632 redefining, to avoid compiler warnings.
1633
1634 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
1635
1636 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
1637 (w32_get_bdf_glyph): Cast between unsigned char and char when
1638 passing arguments to subroutines, to shut up compiler warnings.
1639 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
1640 GET_HEX_VAL.
1641
1642 * xfaces.c: Include keyboard.h before frame.h, not after it.
1643
1644 * widget.c: Include keyboard.h before frame.h.
1645
1646 * w32term.h (struct image, struct face): Forward declaration, to
1647 avoid compiler warnings.
1648
1649 2001-05-11 Gerd Moellmann <gerd@gnu.org>
1650
1651 * keyboard.c (read_key_sequence): Don't modify events when
1652 generating fake prefix keys (mode-line, scroll-bar, ...) since
1653 this prevents proper processing of such events when pushed back
1654 into unread-command-events.
1655
1656 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
1657 actually redrawn. Make the function static.
1658 (note_mouse_highlight): Fix a case where the mouse cursor
1659 was changed back to the text cursor.
1660
1661 * xterm.h (clear_mouse_face): Remove prototype.
1662
1663 * xdisp.c (try_window_id): Fix the fix and set the right
1664 window_end_vpos.
1665
1666 * xdisp.c (try_window_id): Fix computation of window end in the
1667 case that lines were deleted at the end of the window. Add some
1668 more debug_method_adds.
1669
1670 * xfaces.c (try_alternative_families): New function.
1671 (try_font_list): Use it. If ATTRS specifies a family, check
1672 fonts from that family first.
1673 (choose_face_font): Remove code setting the family part of
1674 the pattern to nil.
1675
1676 2001-05-10 Gerd Moellmann <gerd@gnu.org>
1677
1678 * xdisp.c (try_window_id): Fix case of all changes before
1679 the window start.
1680
1681 * xdisp.c (try_window_id): Add some xasserts.
1682
1683 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1684
1685 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
1686
1687 2001-05-09 Dave Love <fx@gnu.org>
1688
1689 * xdisp.c (GIVE_UP): Fix for K&R C.
1690
1691 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1692
1693 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
1694
1695 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
1696 back to the text cursor shape without need.
1697
1698 2001-05-07 Gerd Moellmann <gerd@gnu.org>
1699
1700 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
1701
1702 * dispextern.h (inverse_video): Declare extern.
1703
1704 * keyboard.c (delete_kboard): Handle the case that selected_frame
1705 has been deleted in the course of x_connection_closed.
1706
1707 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
1708
1709 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
1710 Fix the change from 2001-04-30.
1711
1712 2001-05-03 Gerd Moellmann <gerd@gnu.org>
1713
1714 * xfns.c (file_dialog_unmap_cb): New function.
1715 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
1716 where a dialog is closed via the window manager.
1717
1718 * xdisp.c (try_window_id): Cases of changes all in front of
1719 the window start or all below the window end mostly rewritten.
1720 (redisplay_window): Move the tests if try_window_id is
1721 applicable to try_window_id.
1722 (GIVE_UP): New macro.
1723
1724 2001-05-02 Gerd Moellmann <gerd@gnu.org>
1725
1726 * xterm.c (expose_window): Return int. If W is the window
1727 currently being updated, mark the frame garbaged.
1728 Fix computation of rows intersecting the exposed rectangle.
1729 (expose_window_tree): Stop when expose_window returns 0.
1730
1731 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
1732 again if it has already been drawn.
1733
1734 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
1735
1736 * syntax.c (update_syntax_table): Check that oldi has the same
1737 properties as old_prop before deciding not to invalidate.
1738
1739 2001-04-30 Gerd Moellmann <gerd@gnu.org>
1740
1741 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
1742 read-only text that is so because of text properties.
1743
1744 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
1745 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
1746 windows that are components of a Lucid menu bar.
1747
1748 2001-04-27 Gerd Moellmann <gerd@gnu.org>
1749
1750 * term.c (turn_on_face): Fix reverse video handling on terminals
1751 that don't support colors.
1752
1753 2001-04-26 Gerd Moellmann <gerd@gnu.org>
1754
1755 * editfns.c (save_excursion_restore): Don't use XBUFFER on
1756 a non-buffer.
1757
1758 2001-04-25 Gerd Moellmann <gerd@gnu.org>
1759
1760 * term.c (toggle_highlight): New function.
1761 (turn_on_face): Change handling of reverse video.
1762
1763 * process.c (wait_reading_process_input):
1764 Call record_asynch_buffer_change only if a timer really changed buffers.
1765
1766 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
1767 of the number of overlays to check.
1768
1769 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
1770
1771 * xdisp.c (try_window_id): Fix a case where window_end_pos
1772 and window_end_bytepos were not adjusted.
1773
1774 2001-04-23 Gerd Moellmann <gerd@gnu.org>
1775
1776 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
1777 zero instead of -1.
1778
1779 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
1780
1781 * process.c (wait_reading_process_input) [!subprocesses]:
1782 Don't reference waiting_for_user_input_p, it's not defined in the
1783 branch without async subprocesses support.
1784
1785 2001-04-19 Gerd Moellmann <gerd@gnu.org>
1786
1787 * keyboard.c (delete_kboard): Prevent a dangling reference
1788 from current_kboard to KB, which is freed.
1789
1790 * process.c (wait_reading_process_input):
1791 Call record_asynch_buffer_change after running timers, to make
1792 read_key_sequence aware of buffer changes from under it.
1793
1794 2001-04-18 Gerd Moellmann <gerd@gnu.org>
1795
1796 * xfaces.c (Qscalable_fonts_allowed): New variable.
1797 (realizing_basic_faces_p): Removed.
1798 (x_face_list_fonts): Special handling for realizing_basic_faces_p
1799 removed.
1800 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
1801 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
1802 for scalable-fonts-allowed to t.
1803
1804 * fileio.c (Finsert_file_contents): If the file size returned from
1805 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
1806 read from files on a procfs whose contents are generated dynamically.
1807
1808 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
1809
1810 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
1811 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
1812 (__memalign_hook): Make the two prototypes consistent.
1813
1814 2001-04-17 Gerd Moellmann <gerd@gnu.org>
1815
1816 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
1817 matrix of mini-windows.
1818
1819 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
1820
1821 * intervals.c (find_interval): Don't rebalance during signal handling.
1822
1823 2001-04-11 Gerd Moellmann <gerd@gnu.org>
1824
1825 * fns.c: Include blockinput.h.
1826
1827 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
1828
1829 2001-04-10 Gerd Moellmann <gerd@gnu.org>
1830
1831 * fns.c (Fcompare_strings): Fix return values.
1832
1833 * window.c (window_scroll): Change the meaning of N to mean
1834 N screen-fulls or N lines.
1835 (window_scroll_pixel_based, window_scroll_line_based)
1836 (scroll_command, Fscroll_other_window): Change accordingly.
1837
1838 * window.c (window_scroll_pixel_based, Frecenter):
1839 Call window_box_height instead of using it.last_visible_y for the
1840 height of the window.
1841
1842 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
1843 instead of using it.last_visible_y for the height of the window.
1844
1845 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
1846 From Dan Holmsand <dan@eyebee.com>.
1847
1848 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
1849 able to write to hidden and system files. From Dan Holmsand
1850 <dan@eyebee.com>.
1851
1852 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
1853 Holmsand <dan@eyebee.com>.
1854
1855 2001-04-09 Gerd Moellmann <gerd@gnu.org>
1856
1857 * fns.c (Fplist_get, Fplist_put): Add QUITs.
1858
1859 * window.c (window_internal_height): Return 1 less if the
1860 window has a header line.
1861
1862 * xdisp.c (try_window_id): When scrolling on a terminal, take
1863 the change of window_internal_height into account.
1864
1865 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
1866
1867 * gmalloc.c (align): If the argument SIZE would overflow
1868 __malloc_ptrdiff_t, fail right away.
1869
1870 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1871
1872 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
1873 Make sure the tooltip is completely visible.
1874 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
1875
1876 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
1877
1878 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
1879
1880 2001-04-06 Dave Love <fx@gnu.org>
1881
1882 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
1883 Fix test of `from'.
1884
1885 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1886
1887 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
1888
1889 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
1890
1891 2001-04-05 Gerd Moellmann <gerd@gnu.org>
1892
1893 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
1894
1895 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
1896
1897 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
1898 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
1899
1900 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
1901 shell widget's position only if it is non-null.
1902
1903 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
1904 Set f->output_data.x->widget to null after destroying it.
1905
1906 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
1907 FILENAME to bring it in synch with the documentation.
1908
1909 * xfaces.c (realizing_basic_faces_p): Renamed from
1910 realize_default_face_p.
1911 (realize_basic_faces): Set/clear realizing_basic_faces_p.
1912 (realize_default_face): Don't set the flag.
1913
1914 2001-04-04 Gerd Moellmann <gerd@gnu.org>
1915
1916 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
1917
1918 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
1919
1920 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
1921 the buffer that was used for echoing.
1922
1923 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
1924 (first_font_matching): Removed unused function.
1925 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
1926 (may_use_scalable_font_p): Remove parameter FONT; rename
1927 parameter NAME to FONT.
1928 (x_face_list_fonts): Fix missing bounds check.
1929 (realizing_default_face_p): New variable.
1930 (realize_default_face): Set and clear that flag.
1931 (x_face_list_fonts): When called during the realization of the
1932 default face, and no matching fonts are found when ignoring
1933 scalable fonts and fonts matching a regexp from
1934 face-ignored-fonts, try without ignoring fonts.
1935
1936 2001-04-03 Gerd Moellmann <gerd@gnu.org>
1937
1938 * xfns.c (postprocess_image): New function.
1939 (lookup_image): Call it for all image types except PostScript.
1940 (x_kill_gs_process): Call postprocess_image.
1941
1942 * xterm.c (x_use_underline_position_properties): New variable.
1943 (x_draw_glyph_string): Use it.
1944 (syms_of_xterm): DEFVAR_BOOL it.
1945
1946 2001-04-02 Gerd Moellmann <gerd@gnu.org>
1947
1948 * xterm.c (x_alloc_nearest_color_1): New function.
1949 (x_alloc_nearest_color): Use it.
1950 (x_color_cells): Take a Display as argument, instead of a frame.
1951 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
1952 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
1953 (x_initialize): Register cvt_string_to_pixel as resource converter
1954 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
1955
1956 2001-03-30 Gerd Moellmann <gerd@gnu.org>
1957
1958 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
1959 (set_iterator_to_next): If a string from a display property ends,
1960 consider the case that this might also be the end of an
1961 overlay string having the display property.
1962
1963 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
1964
1965 * xdisp.c (reseat_to_string): Undo last change.
1966
1967 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
1968 matrix of a window when the header line changes, when
1969 new rows are allocated, or when the width changes.
1970
1971 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
1972
1973 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
1974
1975 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
1976
1977 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
1978 deprecated.
1979
1980 2001-03-29 Gerd Moellmann <gerd@gnu.org>
1981
1982 * data.c (Fsubr_interactive_form): New function.
1983 (syms_of_data): Defsubr it.
1984
1985 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
1986 (live_float_p, live_misc_p): Return 1 only if the offset of the
1987 pointer in its block is >= 0.
1988
1989 2001-03-28 Paul Eggert <eggert@twinsun.com>
1990
1991 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
1992 microseconds calcuation. Avoid double-rounding problem.
1993 In doc string, warn that the result is approximate.
1994
1995 2001-03-28 Gerd Moellmann <gerd@gnu.org>
1996
1997 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
1998 bind `inhibit-eval-during-redisplay' to t.
1999
2000 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
2001
2002 * xdisp.c (inhibit_eval_during_redisplay)
2003 (Qinhibit_eval_during_redisplay): New variables.
2004 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
2005 don't eval, return nil instead.
2006 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
2007 Initialize Qinhibit_eval_during_redisplay.
2008
2009 * xdisp.c (reseat_to_string): If STRING is multibyte, set
2010 the iterator's multibyte_p flag.
2011
2012 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
2013 instead of setting it to zero; it's incremented for each frame
2014 where the menu face is changed.
2015
2016 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
2017 change bottom shadow accordingly.
2018
2019 * xterm.c (expose_window_tree, expose_frame): Don't compute
2020 intersections here.
2021 (expose_window): Do it here instead.
2022 (x_draw_glyph_string): Fix a computation of the underline position.
2023
2024 * bytecode.c (BYTE_CODE_QUIT): New macro.
2025 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
2026
2027 2001-03-27 Gerd Moellmann <gerd@gnu.org>
2028
2029 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
2030 Give up if matrix starts in an ellipsis.
2031 (init_from_display_pos): Do nothing if POS doesn't specify
2032 a dpvec_index but the iterator has such a position.
2033
2034 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
2035
2036 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
2037 x/y position is (0, 0) after destroying the menu bar, restore
2038 its original position.
2039
2040 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
2041 (init_from_display_pos): Use it.
2042 (try_window_reusing_current_matrix): Don't use cursor_row_p.
2043
2044 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2045
2046 * xdisp.c (try_window_id): Undo last change.
2047
2048 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
2049
2050 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
2051
2052 * buffer.c (syms_of_buffer): Doc fix.
2053
2054 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2055
2056 * xfaces.c (x_update_menu_appearance): Use local variable
2057 popup_path for setting font resources.
2058
2059 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
2060
2061 * frame.c (Fframe_list): Don't reference tip_frame if
2062 HAVE_WINDOW_SYSTEM is not defined.
2063
2064 * emacs.c (main): Update the copyright year. From Werner LEMBERG
2065 <wl@gnu.org>.
2066
2067 2001-03-25 Gerd Moellmann <gerd@gnu.org>
2068
2069 * xdisp.c (init_from_display_pos): Test invisible property
2070 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
2071
2072 * xdisp.c (redisplay_internal) <update one window>: Make sure
2073 last_arrow_position and last_arrow_string are set.
2074
2075 * frame.c (Fframe_list): Don't return a tooltip frame.
2076
2077 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2078
2079 * xdisp.c (mark_window_display_accurate_1): New function,
2080 extracted from mark_window_display_accurate.
2081 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
2082 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
2083 (mark_window_display_accurate): Use it.
2084 (redisplay_internal): Use it for the selected window.
2085 (redisplay_internal): Avoid duplicate mark_window_display_accurate
2086 for the selected frame.
2087
2088 * xdisp.c Use make_number, for readability.
2089 (try_window_id): Disable rows below the window end.
2090 (try_window_reusing_current_matrix): Use cursor_row_p.
2091 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
2092 of rows.
2093 (init_from_display_pos): If POS specifies a position in a display
2094 vector, maybe get the iterator set up for that ellipsis.
2095
2096 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
2097
2098 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
2099
2100 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
2101
2102 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2103
2104 * xfaces.c (x_update_menu_appearance): Use a different path
2105 for Lucid popup menus.
2106
2107 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
2108
2109 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
2110
2111 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
2112 (string_buffer_position): Use `make_number'.
2113
2114 2001-03-22 Gerd Moellmann <gerd@gnu.org>
2115
2116 * xfaces.c (x_update_menu_appearance): Renamed from
2117 x_set_menu_face_resources. Use different resources for popups.
2118
2119 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
2120 (GC_CHECK_STRING_BYTES): Don't define.
2121
2122 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
2123 Removed, together with subroutines.
2124 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
2125 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
2126
2127 * dispextern.h (x_set_menu_resources_from_menu_face):
2128 Remove prototype.
2129
2130 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
2131 Remove calls to x_set_menu_resources_from_menu_face.
2132
2133 * xfaces.c (xm_set_menu_resources_from_menu_face):
2134 Remove #ifndef LESSTIF_VERSION.
2135
2136 * xmenu.c: Include widget.h.
2137 (single_submenu): Return int. Some cleanup.
2138 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
2139
2140 2001-03-21 Gerd Moellmann <gerd@gnu.org>
2141
2142 * xterm.c (x_update_window_end): Handle overwritten mouse face
2143 also for tool bar windows.
2144 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
2145 DRAW is DRAW_IMAGE_RAISED.
2146
2147 2001-03-20 Gerd Moellmann <gerd@gnu.org>
2148
2149 * print.c (syms_of_print): Doc fixes.
2150
2151 * fns.c (Fmd5): Doc fix.
2152
2153 2001-03-19 Gerd Moellmann <gerd@gnu.org>
2154
2155 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2156 Clear area of the frame not occupied by the scroll bar.
2157
2158 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
2159 tip frame's root window buffer to *tip* right after creating
2160 the frame.
2161
2162 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
2163 is an integer don't have to be for space characters.
2164
2165 2001-03-16 Gerd Moellmann <gerd@gnu.org>
2166
2167 * indent.c (current_column, current_column_1, Fmove_to_column)
2168 (compute_motion): Handle characters from display vectors differently.
2169
2170 2001-03-15 Kenichi Handa <handa@etl.go.jp>
2171
2172 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
2173 drawing glyph string.
2174
2175 2001-03-15 Gerd Moellmann <gerd@gnu.org>
2176
2177 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
2178 (command_loop_1): Undo last change.
2179
2180 * xterm.c (fast_find_position): Return the correct vpos.
2181
2182 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
2183 non-null, set a per-buffer value in BUF instead of the current buffer.
2184 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
2185 Call store_symval_forwarding with BUF null.
2186 (set_internal): Call store_symval_forwarding with the BUF
2187 parameter passed to set_internal. Formerly, the value was always
2188 set in the current buffer; the buffer recorded in specbind for
2189 this case wasn't used.
2190 (arith_driver): Reindent.
2191
2192 * buffer.c (swap_out_buffer_local_variables):
2193 Call store_symval_forwarding with BUF null.
2194
2195 * lisp.h (store_symval_forwarding): Change prototype.
2196
2197 * eval.c (specbind): Call store_symval_forwarding with BUF null.
2198
2199 2001-03-14 Gerd Moellmann <gerd@gnu.org>
2200
2201 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
2202 FOR_DELETION. Avoid resizing the mini-window of the selected
2203 frame if FOR_DELETION is set.
2204 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
2205 (Fmake_frame_invisible): Change calls to do_switch_frame for new
2206 signature.
2207
2208 * window.c (Fset_window_configuration): Change call to
2209 do_switch_frame to new format.
2210
2211 * keyboard.c (quit_throw_to_read_char): Change call to
2212 do_switch_frame to new format.
2213
2214 * lisp.h (do_switch_frame): Change prototype.
2215
2216 * frame.c (Fframe_parameters): In the `buffer-list' frame
2217 parameter, store the buffer list of FRAME, not the list of the
2218 selected frame.
2219
2220 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
2221 box just because the glyph row's full_width_p flag is set.
2222
2223 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
2224
2225 * xdisp.c (highlight_trailing_whitespace): On character terminals,
2226 skip the padding blanks inserted in extend_face_to_end_of_line,
2227 before checking for trailing whitespace.
2228
2229 2001-03-13 Gerd Moellmann <gerd@gnu.org>
2230
2231 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
2232 Remove special handling for LessTif/Motif.
2233 (toplevel): Don't include Xm/Xm.h.
2234
2235 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
2236 Remove workaround code for LessTif; it doesn't work anymore.
2237
2238 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
2239 Xm/ScrollBarP.h.
2240
2241 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
2242 Don't access private scroll bar data; it's no longer necessary with
2243 contemporary LessTif.
2244
2245 * xfaces.c (xm_set_menu_resources_from_menu_face):
2246 Change #if 0 to #ifndef LESSTIF_VERSION.
2247
2248 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
2249 removing button grabs.
2250
2251 2001-03-13 Kenichi Handa <handa@etl.go.jp>
2252
2253 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
2254 and clip-large-size-font as obsolete.
2255
2256 * lread.c (read_multibyte): Check the validity of multibyte
2257 sequence. If invalid, return the first byte.
2258
2259 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2260
2261 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
2262 before running the command; timer functions or process
2263 filters may have set it.
2264
2265 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2266
2267 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
2268 Doc fix.
2269
2270 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2271
2272 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
2273 to sprintf.
2274
2275 2001-03-09 Gerd Moellmann <gerd@gnu.org>
2276
2277 * dispextern.h (string_buffer_position): Add prototype.
2278
2279 * xdisp.c (string_buffer_position, display_prop_string_p)
2280 (single_display_prop_string_p): New functions.
2281
2282 * xterm.c (note_mouse_highlight): If there's no help-echo on
2283 a string, look at the buffer text ``under'' it.
2284
2285 * keyboard.c (make_lispy_event): Add string info to the event,
2286 analogous to what's done on mode lines.
2287 (read_key_sequence): For a click on a string, consider `local-map'
2288 and `keymap' of that string.
2289
2290 * keyboard.c (make_lispy_event, make_lispy_movement):
2291 Adjust calls to buffer_posn_from_coords to new format.
2292
2293 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
2294
2295 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
2296 POS; return void.
2297
2298 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
2299 flags argument to emacs_open; it seems to conflict with O_EXCL.
2300
2301 2001-03-09 Kenichi Handa <handa@etl.go.jp>
2302
2303 * composite.h (struct composition): Change types of members;
2304 glyph_len to unsigned, width to unsigned short.
2305
2306 2001-03-08 Andrew Innes <andrewi@gnu.org>
2307
2308 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
2309 menu titles.
2310
2311 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2312
2313 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
2314 instead of nil.
2315
2316 * xterm.c (note_mouse_highlight): Handle mouse-face and
2317 help-echo in strings.
2318 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
2319 (fast_find_string_pos): New function.
2320
2321 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
2322 (display_string): Call face_at_string_position with new parameter.
2323
2324 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
2325 Handle `mouse-face'.
2326
2327 * dispextern.h (face_at_string_position): Change prototype.
2328
2329 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
2330
2331 * keyboard.c (make_lispy_event): Avoid generating drag events
2332 if the mouse hasn't actually moved to another buffer position.
2333
2334 2001-03-08 Dave Love <fx@gnu.org>
2335
2336 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
2337
2338 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2339
2340 * process.c (Fset_process_window_size): Fix a typo.
2341
2342 2001-03-08 Kenichi Handa <handa@etl.go.jp>
2343
2344 * coding.c (detect_coding_sjis): Do more rigid check.
2345 (detect_coding_big5): Likewise.
2346 (decode_coding_sjis_big5): Likewise.
2347 (Fdetect_coding_region): Call detect_coding_system with tailing
2348 anchor byte `\0' for more rigid detection.
2349 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
2350 (Fdetect_coding_string): Likewise.
2351
2352 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
2353
2354 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
2355 a string before extracting its data.
2356
2357 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2358
2359 * window.c (Frecenter): Rewrite code handling negative values
2360 of ARG on graphical frames.
2361
2362 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
2363
2364 * window.c (displayed_window_lines): If W->start is outside the
2365 accessible portion of the buffer, call start_display with BEGV or
2366 ZV instead of W->start.
2367
2368 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2369
2370 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
2371
2372 * process.c (Fset_process_filter): Don't crash if the input
2373 file descriptor of PROCESS is closed.
2374 (Fset_process_window_size): Likewise.
2375
2376 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2377
2378 * xterm.c (XTflash): Make the timeout of select shorter, and call
2379 select repeatedly until the desired time expires.
2380
2381 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2382
2383 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
2384
2385 * xfns.c (Fx_create_frame): Clear Vwindow_list.
2386
2387 * lisp.h (Vwindow_list): Declare extern.
2388
2389 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2390
2391 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
2392
2393 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2394
2395 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
2396 to detect a case where we have to highlight a different region
2397 despite not having left the currently highlighted region.
2398 Set mouse_face_overlay in the x_display_info.
2399 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
2400
2401 * xterm.h (struct x_display_info): Add mouse_face_overlay.
2402
2403 * buffer.c (mouse_face_overlay_overlaps): New function.
2404
2405 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
2406 (Qmouse_face): Declare extern.
2407
2408 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
2409 if face_change_count is non-zero.
2410
2411 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2412
2413 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
2414 that the source is unibyte.
2415
2416 2001-03-05 Dave Love <fx@gnu.org>
2417
2418 * xterm.c (XTmouse_position): Fix typo.
2419
2420 2001-03-05 Gerd Moellmann <gerd@gnu.org>
2421
2422 * minibuf.c (read_minibuf): Clean up the binding stack if
2423 called noninteractively.
2424
2425 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2426
2427 * coding.c (syms_of_coding): Docstring modified.
2428
2429 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2430
2431 * charset.c (char_to_string): If a single byte char has modifier
2432 bits that can't be reflected to the character code, ignore them
2433 instead of signaling an error.
2434
2435 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
2436
2437 * s/msdos.h: Update copyright notice.
2438
2439 * dosfns.h: Update copyright notice.
2440
2441 * dosfns.c: Update copyright notice.
2442
2443 * msdos.c: Update copyright notice.
2444
2445 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2446
2447 * xterm.c (glyph_rect): New function.
2448 (XTmouse_position): Use it to raise the threshold for mouse
2449 movement event generation.
2450
2451 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2452
2453 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
2454 specifies (reverse . t), reverse the initial screen colors.
2455 (IT_set_frame_parameters): If the property is foreground-color,
2456 but we are reversing the colors, set bg_set, not fg_set.
2457 Likewise for setting background-color and reversing: set fg_set.
2458 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
2459 in effect.
2460
2461 * xfaces.c (Finternal_set_lisp_face_attribute)
2462 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
2463 parameters alist.
2464
2465 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2466
2467 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
2468 to a single slash in the middle of file names.
2469
2470 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
2471 Accept only alphanumeric time zone names.
2472
2473 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
2474 or width area.
2475 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
2476 a widget to zero height.
2477
2478 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2479
2480 * window.c (Fwindow_end): Call move_it_past_eol only if
2481 ending up on a partially visible line.
2482
2483 2001-03-01 Dave Love <fx@gnu.org>
2484
2485 * ccl.c (Fccl_execute): Doc fix.
2486
2487 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2488
2489 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
2490 of the tool bar before calling x_figure_window_size.
2491
2492 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
2493 NULL after destroying it, otherwise XTread_socket can access a
2494 destroyed widget when input is unblocked.
2495
2496 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
2497
2498 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
2499 same name as before, although there was a change in fontsets.
2500
2501 2001-02-28 Ken Raeburn <raeburn@gnu.org>
2502
2503 * lisp.h (Fframe_parameter): Declare.
2504
2505 * window.c (set_window_buffer): Field vscroll is an int, not a
2506 Lisp_Object.
2507
2508 2001-02-28 Gerd Moellmann <gerd@gnu.org>
2509
2510 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
2511 NULL instead.
2512
2513 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
2514 NULL instead.
2515
2516 * alloc.c (toplevel): Include process.h.
2517 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
2518 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
2519 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
2520 (allocate_vector, allocate_hash_table, allocate_window)
2521 (allocate_frame, allocate_process, allocate_other_vector):
2522 New functions.
2523 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
2524 (mark_maybe_pointer): New function.
2525 (mark_memory): Also mark Lisp data to which only pointers
2526 remain and not Lisp_Objects.
2527 (min_heap_address, max_heap_address): New variables.
2528 (mem_find): Return MEM_NIL if START is below min_heap_address or
2529 above max_heap_address.
2530 (mem_insert): Compute min_heap_address and max_heap_address.
2531
2532 * process.c (make_process): Use allocate_process.
2533
2534 * frame.c (make_frame): Use allocate_frame.
2535
2536 * window.c (make_window, make_dummy_parent): Use allocate_window.
2537 (Fcurrent_window_configuration): Use allocate_other_vector.
2538
2539 * lisp.h (allocate_vectorlike): Remove prototype.
2540 (allocate_vector, allocate_other_vector, allocate_frame)
2541 (allocate_window, allocate_process, allocate_hash_table):
2542 Add prototypes.
2543
2544 * fns.c (Fdelete, larger_vector): Use allocate_vector.
2545 (make_hash_table, copy_hash_table): Use allocate_hash_table.
2546
2547 2001-02-27 Kenichi Handa <handa@etl.go.jp>
2548
2549 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
2550 treat the produced bytes as a valid multibyte sequence.
2551
2552 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
2553 (ccl_driver) <CCL_WriteMultibyteChar2>:
2554 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
2555 <ccl_finish>: Set ccl->eight_bit_control properly.
2556
2557 * ccl.h (struct ccl_program): New member eight_bit_control.
2558
2559 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
2560
2561 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
2562 accessible_keymaps_char_table.
2563 (accessible_keymaps_char_table): Obey `is_metized'.
2564 (where_is_internal, Fwhere_is_internal): Don't confuse int and
2565 Lisp_Object.
2566
2567 2001-02-26 Gerd Moellmann <gerd@gnu.org>
2568
2569 * dispnew.c: Check HAVE_TERM_H before including term.h.
2570
2571 2001-02-24 Andrew Innes <andrewi@gnu.org>
2572
2573 * makefile.w32-in: Update copyright notice.
2574
2575 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
2576
2577 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
2578
2579 2001-02-24 Kenichi Handa <handa@etl.go.jp>
2580
2581 * Makefile.in (lisp): Add international/utf-8.elc.
2582
2583 * fontset.c (Fnew_fontset): Fix handling of the case that an
2584 element of FONTLIST is a cons of family and registry.
2585
2586 2001-02-23 Jason Rumney <jasonr@gnu.org>
2587
2588 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
2589 to height unconditionally.
2590
2591 * w32term.c (x_set_glyph_string_background_width): Extend the
2592 background face to the end of the drawing area in the text area, only.
2593 (x_insert_glyphs): Call window_box_left to obtain the left
2594 x-coordinate of the area to shift.
2595
2596 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
2597 safe_run_hooks.
2598
2599 2001-02-22 Andrew Innes <andrewi@gnu.org>
2600
2601 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
2602 ($(BLD)\dispnew.obj):
2603 ($(BLD)\editfns.obj):
2604 ($(BLD)\fileio.obj):
2605 ($(BLD)\filelock.obj):
2606 ($(BLD)\keyboard.obj):
2607 ($(BLD)\w32proc.obj):
2608 ($(BLD)\process.obj):
2609 ($(BLD)\sysdep.obj): Ditto.
2610
2611 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
2612 header files.
2613 ($(BLD)/dispnew.$(O)):
2614 ($(BLD)/editfns.$(O)):
2615 ($(BLD)/fileio.$(O)):
2616 ($(BLD)/filelock.$(O)):
2617 ($(BLD)/keyboard.$(O)):
2618 ($(BLD)/w32proc.$(O)):
2619 ($(BLD)/process.$(O)):
2620 ($(BLD)/sysdep.$(O)): Ditto.
2621
2622 2001-02-22 Gerd Moellmann <gerd@gnu.org>
2623
2624 * xdisp.c (forward_to_next_line_start): When taking the shortcut
2625 at the start of the function, check that the \n in it->c is
2626 from the iterator's current position.
2627
2628 * xdisp.c (handle_single_display_prop): Add parameter
2629 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
2630 properties which replace the display of text with something else.
2631 (handle_display_prop): Call handle_single_display_prop with
2632 additional argument saying if we already replaced text display
2633 with something else. Use AREF.
2634 (with_echo_area_buffer_unwind_data, display_menu_bar)
2635 (decode_mode_spec_coding): Use AREF and ASIZE.
2636
2637 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
2638 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
2639 * vmstime.h: Files removed.
2640
2641 * unexencap.c, unexfx2800.c: Files removed.
2642
2643 * dispnew.c (direct_output_for_insert): Give up if we are showing
2644 a message or just cleared the message because we might need to
2645 resize the echo area window or display an empty echo area.
2646
2647 2001-02-21 Gerd Moellmann <gerd@gnu.org>
2648
2649 * xdisp.c (redisplay_internal): Do the
2650 mark_window_display_accurate after all windows have been
2651 redisplayed because this call resets flags in buffers which are
2652 needed for proper redisplay.
2653
2654 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
2655 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
2656 the old names.
2657
2658 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2659 busy_window to hourglass_window, busy_p to hourglass_p.
2660
2661 * msdos.h (struct x_output): Rename busy_window to
2662 hourglass_window, busy_p to hourglass_p.
2663
2664 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2665 busy_window to hourglass_window, busy_p to hourglass_p.
2666
2667 * xfns.c: Rename everything containing *busy_cursor* and similar
2668 to *hourglass*.
2669 (syms_of_w32fns): Rename x-busy-pointer-shape to
2670 x-hourglass-pointer-shape, display-busy-cursor to
2671 display-hourglass, busy-cursor-delay to hourglass-delay.
2672
2673 * w32fns.c: Rename everything containing *busy_cursor* and similar
2674 to *hourglass*.
2675 (syms_of_w32fns): Rename x-busy-pointer-shape to
2676 x-hourglass-pointer-shape, display-busy-cursor to
2677 display-hourglass, busy-cursor-delay to hourglass-delay.
2678
2679 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
2680 of its busy_p flag.
2681
2682 * dispextern.h (start_hourglass, cancel_hourglass)
2683 (display_hourglass_p): Renamed from *busy_cursor*.
2684
2685 2001-02-20 Gerd Moellmann <gerd@gnu.org>
2686
2687 * keyboard.c (read_char): When an event from unread-command-events
2688 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
2689
2690 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
2691 equal to the current buffer.
2692
2693 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
2694 nil, otherwise we're left with truncate_lines t when a message
2695 is printed with message-truncate-lines bound to t.
2696
2697 2001-02-19 Gerd Moellmann <gerd@gnu.org>
2698
2699 * window.c (Fmove_to_window_line): Undo last change.
2700 (displayed_window_lines): Call line_bottom_y to determine
2701 the line's bottom position.
2702
2703 * dispextern.h (line_bottom_y): Add prototype.
2704
2705 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
2706 (pos_visible_p): Use it.
2707
2708 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
2709 set redisplaying_p to 0 here instead of in Frecursive_edit.
2710 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
2711 set redisplaying_p.
2712
2713 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
2714 New variables.
2715 (syms_of_xdisp): Initialize new variables.
2716 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
2717 Specbind `inhibit-menubar-update' when updating the menu bar.
2718
2719 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
2720 safe_run_hooks.
2721
2722 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
2723 safe_run_hooks.
2724
2725 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
2726 is null.
2727
2728 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
2729 to the start of the file.
2730
2731 2001-02-16 Gerd Moellmann <gerd@gnu.org>
2732
2733 * window.c (set_window_buffer): Fix last change.
2734
2735 * window.c (set_window_buffer): Set window's vscroll to 0.
2736
2737 * window.c (coordinates_in_window): Increase width of area
2738 where the vertical line can be dragged.
2739
2740 * xterm.c (x_set_glyph_string_background_width): Extend the
2741 background face to the end of the drawing area in the text
2742 area, only.
2743
2744 * xdisp.c (handle_single_display_prop): Set iterator's position
2745 to where the `display' property starts, like for images.
2746 (dump_glyph): New function.
2747 (dump_glyph_row): Use it. Dump info about marginal areas.
2748
2749 * dispnew.c (direct_output_for_insert): Recognize more cases where
2750 glyphs can be written instead of being inserted.
2751
2752 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
2753 the left x-coordinate of the area to shift.
2754
2755 * dired.c (directory_files_internal): Set result list to nil
2756 before retrying.
2757
2758 2001-02-15 Kenichi Handa <handa@etl.go.jp>
2759
2760 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
2761 invalid multibyte sequence, treat *SRC as a character of
2762 eight-bit-graphic.
2763
2764 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
2765
2766 * textprop.c (Fset_text_properties): Doc fix.
2767
2768 2001-02-15 Gerd Moellmann <gerd@gnu.org>
2769
2770 * dispnew.c (update_text_area): Undo change of 2001-01-12.
2771
2772 2001-02-14 Dave Love <fx@gnu.org>
2773
2774 * coding.c: Doc and message fixes.
2775
2776 2001-02-14 Andrew Innes <andrewi@gnu.org>
2777
2778 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
2779 Emacs frame above the screen size.
2780
2781 2001-02-14 Gerd Moellmann <gerd@gnu.org>
2782
2783 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
2784
2785 2001-02-13 Gerd Moellmann <gerd@gnu.org>
2786
2787 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
2788 case that TO ends up beyond ZV after running before-change-functions.
2789
2790 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
2791 the selected window if it is showing the buffer in question.
2792
2793 * dired.c (directory_files_internal): Initialize errno.
2794 (toplevel): Include errno.h.
2795
2796 2001-02-13 Kenichi Handa <handa@etl.go.jp>
2797
2798 * xfaces.c (best_matching_font): New parameter width_ratio.
2799 Multiply avgwidth by width_ratio.
2800 (choose_face_font): Call best_matching_font with width_ratio
2801 calculated from the column width of C.
2802
2803 2001-02-12 Andrew Innes <andrewi@gnu.org>
2804
2805 The following changes are to draw box lines inside characters area
2806 if line-width is negative.
2807
2808 * w32term.c (x_produce_image_glyph): Pay attention to the case that
2809 face->box_line_width is negative.
2810 (x_produce_stretch_glyph): Likewise.
2811 (x_produce_glyphs): Likewise.
2812 (x_estimate_mode_line_height): Likewise.
2813 (x_draw_glyph_string_background): Likewise.
2814 (x_draw_glyph_string_foreground): Likewise.
2815 (x_draw_composite_glyph_string_foreground): Likewise.
2816 (x_draw_glyph_string_box): Likewise.
2817 (x_draw_image_foreground): Likewise.
2818 (x_draw_image_relief): Likewise.
2819 (x_draw_image_foreground_1): Likewise.
2820 (x_draw_image_glyph_string): Likewise.
2821
2822 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2823
2824 The following changes are to draw box lines inside characters area
2825 if line-width is negative.
2826
2827 * xterm.c (x_produce_image_glyph): Pay attention to the case that
2828 face->box_line_width is negative.
2829 (x_produce_stretch_glyph): Likewise.
2830 (x_produce_glyphs): Likewise.
2831 (x_estimate_mode_line_height): Likewise.
2832 (x_draw_glyph_string_background): Likewise.
2833 (x_draw_glyph_string_foreground): Likewise.
2834 (x_draw_composite_glyph_string_foreground): Likewise.
2835 (x_draw_glyph_string_box): Likewise.
2836 (x_draw_image_foreground): Likewise.
2837 (x_draw_image_relief): Likewise.
2838 (x_draw_image_foreground_1): Likewise.
2839 (x_draw_image_glyph_string): Likewise.
2840
2841 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
2842 and :line-width can be negative.
2843 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
2844
2845 2001-02-09 Jason Rumney <jasonr@gnu.org>
2846
2847 * w32term.c (w32_encode_char): Treat eight bit graphic and control
2848 characters the same as ASCII and latin-1.
2849 (x_display_and_set_cursor): Check for the focus frame's selected
2850 window instead of selected_window.
2851 (x_after_update_window_line): Don't clear if frame's internal
2852 border width is zero.
2853 (x_new_font): Don't change a tooltip's size.
2854 (w32_initialize): Set char_ins_del_ok to 1.
2855
2856 * w32fns.c (Fx_show_tip): Fix calls to make_number.
2857 (x_set_font): If font hasn't changed, avoid recomputing
2858 faces and other things.
2859 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
2860 (Fx_create_frame): Add the tool bar height to the frame height.
2861 (x_create_tip_frame): Prevent changing the tooltip's
2862 background color by specifying a color for the default font
2863 in .Xdefaults.
2864 (Qcancel_timer): New variable.
2865 (syms_of_w32fns): Initialize and staticpro it.
2866 (Fx_hide_tip, Fx_show_tip): Use it.
2867 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
2868 the timer.
2869 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
2870
2871 * w32.c (init_environment): Duplicate local string before putenv.
2872
2873 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
2874
2875 * charset.c (Fstring): A typo.
2876
2877 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2878
2879 * charset.c (Fstring): If all arguments are less than 256, return
2880 a unibyte string.
2881
2882 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
2883 return a unibyte string.
2884
2885 * coding.c (code_convert_region): After detecting a coding, if
2886 nothing found, set coding->composing to COMPOSITION_NO.
2887 (decode_coding_string): Likewise.
2888
2889 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
2890
2891 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
2892 to avoid overflow.
2893
2894 2001-02-07 Kenichi Handa <handa@etl.go.jp>
2895
2896 * charset.c (parse_str_to_multibyte): New function.
2897
2898 * charset.h (parse_str_to_multibyte): Extern it.
2899
2900 * print.c (print_string): If we are going to print a unibyte
2901 string into a multibyte buffer, convert the string to multibyte by
2902 str_to_multibyte.
2903
2904 2001-02-06 Andrew Innes <andrewi@gnu.org>
2905
2906 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
2907 been created. It seems we can get sent window messages such as
2908 WM_ERASEBKGND before we properly update a frame.
2909
2910 2001-02-06 Gerd Moellmann <gerd@gnu.org>
2911
2912 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
2913 Avoid some unnecessary cursor positioning.
2914
2915 2001-02-05 Gerd Moellmann <gerd@gnu.org>
2916
2917 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
2918 (LFACE_AVGWIDTH): New macro.
2919 (LFACEP): Use AREF.
2920 (check_lface_attrs): Check LFACE_AVGWIDTH.
2921 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
2922 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
2923 (merge_face_vectors): Check LFACE_AVGWIDTH.
2924 (Finternal_make_lisp_face): Use AREF.
2925 (xm_set_menu_resources_from_menu_face)
2926 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
2927 (Finternal_lisp_face_empty_p): Use AREF.
2928 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
2929 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
2930 Compare average widths..
2931 (best_matching_font): Arrange for comparing average widths.
2932
2933 * dispextern.h (enum lface_attribute_index):
2934 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
2935
2936 2001-02-05 Dave Love <fx@gnu.org>
2937
2938 * puresize.h: Revert last change following loadup.el change.
2939
2940 2001-02-05 Andrew Innes <andrewi@gnu.org>
2941
2942 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
2943 invocation of temacs, to work with Windows 2000.
2944 (bootstrap-emacs): Ditto.
2945
2946 2001-02-05 Gerd Moellmann <gerd@gnu.org>
2947
2948 * xterm.c (x_display_and_set_cursor): Check for the focus
2949 frame's selected window instead of selected_window.
2950
2951 * xdisp.c (try_scrolling): If point is in the line below the
2952 window, make sure to move the iterator at least a canonical
2953 char height down.
2954
2955 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
2956
2957 2001-02-05 Kenichi Handa <handa@etl.go.jp>
2958
2959 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
2960 If invalid, execute CCL_INVALID_CMD.
2961 (ccl_driver): If the CCL program is terminated because of
2962 CCL_STAT_INVALID_CMD, copy the remaining source data to the
2963 destination instead of throwing them away.
2964
2965 2001-02-02 Gerd Moellmann <gerd@gnu.org>
2966
2967 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
2968 faces and other things.
2969
2970 * xdisp.c (get_next_display_element): Fix case of empty
2971 display table entry.
2972
2973 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
2974
2975 * editfns.c (Fconstrain_to_field): Doc fix.
2976
2977 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
2978 into `thoroughly', to make it consistent with the doc string.
2979
2980 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
2981
2982 2001-02-01 Gerd Moellmann <gerd@gnu.org>
2983
2984 * search.c (search_buffer): Call set_search_regs with a byte
2985 position, not a character position.
2986
2987 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
2988 minibuffer-only,
2989
2990 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
2991
2992 * frame.c (Fmodify_frame_parameters): Doc fix.
2993
2994 2001-01-31 Gerd Moellmann <gerd@gnu.org>
2995
2996 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
2997 identifier which is not reserved by Standard C.
2998
2999 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
3000
3001 * window.c (enum window_part): New enumeration.
3002 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
3003 Qright_bitmap_area.
3004 (coordinates_in_window): Return an enumerator from enum
3005 window_part. Fix handling of right scroll bar.
3006 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
3007 `right-fringe' instead of `left-bitmap-area' and
3008 `right-bitmap-area'. Use enumerators from enum window_part
3009 instead of hard-coded integers.
3010 (check_window_containing, window_from_coordinates):
3011 Use enumerators from enum window_part instead of hard-coded integers.
3012 (syms_of_window): Replace Qleft_bitmap_area and
3013 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
3014
3015 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
3016
3017 * editfns.c (Fformat_time_string): Doc fix.
3018
3019 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
3020
3021 * keymap.c (Fwhere_is_internal): Use the first valid binding
3022 if no ascii binding is found (when firstonly is t).
3023
3024 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3025
3026 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
3027 instead of Finteractive_p.
3028
3029 * lisp.h (interactive_p): Add prototype.
3030
3031 * eval.c (interactive_p): New function.
3032 (Finteractive_p): Use it.
3033
3034 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
3035
3036 2001-01-31 Dave Love <fx@gnu.org>
3037
3038 * .gdbinit (hook-run): Define to run xreload.
3039
3040 * textprop.c (Fset_text_properties): Fix newline in doc string.
3041
3042 2001-01-30 Gerd Moellmann <gerd@gnu.org>
3043
3044 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
3045 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
3046
3047 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
3048 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
3049 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
3050
3051 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
3052 height.
3053
3054 2001-01-30 Dave Love <fx@gnu.org>
3055
3056 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
3057 AFTER_POTENTIAL_GC.
3058
3059 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3060
3061 * bytecode.c (Fbyte_code) <Bcurrent_column>:
3062 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
3063
3064 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
3065
3066 * textprop.c (Fset_text_properties): Doc fix.
3067
3068 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3069
3070 * xdisp.c (forward_to_next_line_start): Remove xassert.
3071
3072 2001-01-29 Jason Rumney <jasonr@gnu.org>
3073
3074 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
3075 returning without releasing it.
3076
3077 2001-01-29 Kenichi Handa <handa@etl.go.jp>
3078
3079 * w32fns.c (w32_font_match): Allocate three more bytes to regex
3080 for '^', '$', and '\0'.
3081
3082 2001-01-28 Andrew Choi <akochoi@i-cable.com>
3083
3084 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
3085 regex for '^', '$', and '\0'.
3086
3087 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
3088 only if current_sblock has been initialized.
3089
3090 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
3091 terminal frame even if it is the only visible frame.
3092
3093 2001-01-28 Kenichi Handa <handa@etl.go.jp>
3094
3095 * fontset.c (font_family_registry): Even if FONTNAME conform to
3096 XLFD, if it specifies other fields than family and registry,
3097 return FONTANME. New argument FORCE if nonzero cancel that feature.
3098 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
3099 a signle byte character. Don't set FAMILY part to nil here.
3100 It is handled by the caller choose_face_font.
3101 (Fnew_fontset): Call font_family_registry with FORCE 0.
3102 (Fset_fontset_font): Likewise.
3103
3104 2001-01-27 Gerd Moellmann <gerd@gnu.org>
3105
3106 * xdisp.c (display_line): Don't treat a newline as fitting
3107 on the line.
3108
3109 2001-01-26 Gerd Moellmann <gerd@gnu.org>
3110
3111 * window.c (size_window): Set the window's orig_top to nil when
3112 changing heights, so that a future shrink_mini_window won't
3113 restore a bogus height.
3114
3115 * frame.c (do_switch_frame): If selected frame has a mini-window,
3116 resize that to exact size.
3117
3118 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
3119
3120 * xdisp.c (display_line): Simplify check for glyphs fitting
3121 entirely in the line.
3122
3123 * xfns.c (xic_style): New variable.
3124 (create_frame_xic): Move static variable to global scope for
3125 the case that `static' gets defined away.
3126
3127 2001-01-26 Kenichi Handa <handa@etl.go.jp>
3128
3129 * coding.c (decode_coding): Set a flag for inhibiting
3130 inconsistent eol.
3131 (code_convert_region): Always set saved_coding_symbol.
3132 (decode_coding_string): Likewise. Update coding->symbol when we
3133 encounter a inconsistent eol by the same way as code_convert_region.
3134
3135 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3136
3137 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
3138 XClearArea.
3139
3140 * xterm.c (x_after_update_window_line): Don't clear if frame's
3141 internal border width is zero.
3142 (x_clear_area): New function.
3143 (x_after_update_window_line, x_clear_end_of_line)
3144 (x_scroll_bar_create, x_scroll_bar_set_handle)
3145 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
3146 instead of XClearArea.
3147
3148 * xterm.h (x_clear_area): Add prototype.
3149
3150 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
3151 which doesn't seem necessary anymore with Lesstif 0.92.
3152
3153 2001-01-25 Dave Love <fx@gnu.org>
3154
3155 * puresize.h (BASE_PURESIZE): Up to 720000.
3156
3157 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
3158
3159 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3160
3161 * xdisp.c (echo_area_display): Don't call redisplay_internal
3162 when Emacs is shutting down. We can't run hooks etc. that
3163 would be necessary to do a redisplay.
3164
3165 * lread.c (read_integer): Use type EMACS_INT instead of int.
3166
3167 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
3168
3169 * ccl.c (ccl_driver): Fix last change.
3170
3171 2001-01-25 Kenichi Handa <handa@etl.go.jp>
3172
3173 * ccl.h (sturct ccl_program): New member suppress_error.
3174
3175 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
3176 insert error message to the output.
3177 (setup_ccl_program): Initialize ccl->suppress_error to 0.
3178
3179 * coding.h (struct coding_system): New member suppress_error.
3180
3181 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
3182 (Fset_terminal_coding_system_internal): Set the member
3183 suppress_error to 1.
3184 (Fset_safe_terminal_coding_system_internal): Likewise.
3185
3186 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
3187
3188 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
3189 as if it was a `charset'.
3190
3191 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3192
3193 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
3194 value in where_is_cache; the next lookup in the cache returns
3195 something bogus if we do.
3196
3197 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3198
3199 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
3200 if HAVE_WINDOW_SYSTEM isn't defined.
3201
3202 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3203
3204 * fns.c (sweep_weak_table): Fix code taking items out of
3205 the hash collision chain. Some cleanup.
3206
3207 * xterm.c (x_new_font): Don't change a tooltip's size.
3208
3209 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
3210 background color by specifying a color for the default font
3211 in .Xdefaults.
3212
3213 2001-01-24 Kenichi Handa <handa@etl.go.jp>
3214
3215 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
3216 a workaround for SunOS 4's cc.
3217 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
3218 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
3219 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
3220 statement.
3221
3222 2001-01-23 Gerd Moellmann <gerd@gnu.org>
3223
3224 * xterm.c (x_set_window_size_1): New function extracted from
3225 x_set_window_size.
3226 (x_set_window_size): Use it.
3227 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
3228 doesn't have a widget, like tooltips.
3229
3230 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
3231
3232 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
3233
3234 2001-01-23 Kenichi Handa <handa@etl.go.jp>
3235
3236 * fns.c (Fset_char_table_default): Fix to make sub char-table
3237 correctly.
3238
3239 2001-01-22 Gerd Moellmann <gerd@gnu.org>
3240
3241 * xdisp.c (build_desired_tool_bar_string): Make sure we have
3242 a desired tool bar string, even if there are no tool bar items.
3243
3244 * xdisp.c (Ftool_bar_lines_needed): New function.
3245 (syms_of_xdisp): Defsubr it.
3246
3247 * editfns.c (Fformat): Don't extend text properties from arguments
3248 to padding chars in the result.
3249
3250 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
3251
3252 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
3253
3254 2001-01-20 Andrew Innes <andrewi@gnu.org>
3255
3256 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
3257 (w32_initialize): Don't set term hooks that aren't actually needed
3258 in windowed mode.
3259
3260 * xfaces.c (realize_default_face):
3261 (realize_face):
3262 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
3263
3264 * xdisp.c (handle_single_display_prop): Remove references to
3265 FRAME_W32_CONSOLE_P.
3266
3267 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
3268
3269 * frame.h (output_method): Remove output_w32_console method.
3270 (FRAME_W32_CONSOLE_P): Remove macro.
3271
3272 * frame.c (Qw32_console): Remove variable.
3273 (Fframep): Remove references to it.
3274 (syms_of_frame): Ditto.
3275 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
3276
3277 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
3278 redefinition.
3279
3280 2001-01-20 Kenichi Handa <handa@etl.go.jp>
3281
3282 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
3283
3284 2001-01-19 Andrew Innes <andrewi@gnu.org>
3285
3286 * w32.c (init_environment): Add a version-independent site-lisp
3287 directory to EMACSLOADPATH, after the version dependent one.
3288
3289 2001-01-19 Gerd Moellmann <gerd@gnu.org>
3290
3291 * editfns.c (Fbuffer_substring): Doc fix.
3292
3293 * xdisp.c (message_dolog, message2, message2_nolog):
3294 Rename parameter LEN to NBYTES.
3295
3296 2001-01-19 Kenichi Handa <handa@etl.go.jp>
3297
3298 * charset.c (strwidth): Use c_string_width.
3299 (c_string_width): New function.
3300 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
3301 Caller changed.
3302
3303 * charset.h (c_string_width, lisp_string_width): Extern them.
3304
3305 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
3306
3307 * indent.c (check_composition): Check validity of composition.
3308
3309 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
3310 characters by calling c_string_width.
3311 (x_consider_frame_title): Get byte length of frame tile string
3312 correctly.
3313 (display_mode_element): Pay attention to width of non-ASCII
3314 characters by calling strwidth.
3315
3316 2001-01-18 Gerd Moellmann <gerd@gnu.org>
3317
3318 * xfns.c (Qcancel_timer): New variable.
3319 (syms_of_xfns): Initialize and staticpro it.
3320 (Fx_hide_tip, Fx_show_tip): Use it.
3321 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3322 the timer.
3323 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
3324
3325 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
3326
3327 * window.h (WINDOW_LIVE_P): New macro.
3328
3329 * window.c (window_size_fixed): New variable.
3330 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
3331 the doc string.
3332
3333 * eval.c (specbind): If binding a per-buffer variable which
3334 doesn't have a buffer-local value in the current buffer, change
3335 the global value by changing the value of the symbol bound in all
3336 buffers not having their own value, to make it consistent with
3337 what happens with other buffer-local variables.
3338
3339 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
3340
3341 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
3342 when searching for a newline.
3343
3344 2001-01-18 Kenichi Handa <handa@etl.go.jp>
3345
3346 * xdisp.c (display_string): Fix previous change.
3347
3348 2001-01-18 Jason Rumney <jasonr@gnu.org>
3349
3350 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
3351 GLYPH_DEBUG is defined.
3352 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
3353 true for images with `:ascent 100'.
3354 (x_set_mouse_face_gc): If the last used mouse face has gone in the
3355 meantime, use face MOUSE_FACE_ID.
3356 If first glyph isn't a character glyph, use the ASCII NUL
3357 character to determine the face.
3358 (expose_area): Do not treat left margin specially.
3359 (note_mode_line_highlight): If no local_map, check global keymap.
3360 (note_mouse_highlight): Initialize overlay.
3361 (clear_mouse_face): Don't return if tip_frame is non-nil.
3362 (show_scroll_bars): Remove unused function.
3363 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
3364 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
3365 Clip to row.
3366 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
3367 (x_free_frame_resources): Unload relief colors.
3368
3369 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3370
3371 * xdisp.c (forward_to_next_line_start): Avoid calling
3372 get_next_display_element when the newline is already found.
3373 This may change the iterator's position, when its current position is
3374 equal to the iterator's stop_charpos.
3375
3376 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
3377 zero, use this method only at the end of a line.
3378
3379 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
3380 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
3381 if SCALABLE_FONTS_P is set.
3382
3383 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
3384 so that scalable fonts are included.
3385
3386 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
3387 In the cache, use a key containing the information if scalable
3388 fonts are included.
3389 (x_load_font): Adapt to change of keys in the font cache.
3390
3391 2001-01-17 Kim F. Storm <storm@filanet.dk>
3392
3393 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
3394 XListFonts to take advantage of font caching.
3395
3396 * xterm.c (x_list_fonts): Ensure caching font information when
3397 called for a null frame, which is the case frequently when Emacs
3398 starts.
3399
3400 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3401
3402 * xfns.c (QCconversion): Replaces QCalgorithm.
3403
3404 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
3405
3406 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
3407 of :algorithm.
3408
3409 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
3410 not everything could be displayed.
3411
3412 * line.h, x-list-font.c: Files removed because unused.
3413
3414 2001-01-17 Andrew Innes <andrewi@gnu.org>
3415
3416 * dired.c (directory_files_internal): Convert result from readdir
3417 to a unibyte string initially, to avoid possible misinterpretation
3418 of some bytes as the internal form of Emacs characters.
3419
3420 2001-01-17 Kenichi Handa <handa@etl.go.jp>
3421
3422 * fns.c (concat): Be sure to avoid putting the same `composition'
3423 property on the adjacent regions.
3424
3425 2001-01-16 Gerd Moellmann <gerd@gnu.org>
3426
3427 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
3428 (Fscroll_right, Fscroll_left): Set it here instead, if called
3429 interactively.
3430
3431 * buffer.c (Fset_buffer_modified_p): Set buffer's
3432 prevent_redisplay_optimizations_p flag.
3433
3434 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
3435 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
3436 with additional arg.
3437
3438 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
3439 Change prototype.
3440
3441 * xdisp.c (redisplay_preserve_echo_area): Add parameter
3442 FROM_WHERE, for debugging.
3443
3444 2001-01-16 Kenichi Handa <handa@etl.go.jp>
3445
3446 * ccl.c (Fregister_ccl_program): Handle the return value of
3447 resolve_symbol_ccl_program correctly.
3448 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
3449
3450 2001-01-15 Gerd Moellmann <gerd@gnu.org>
3451
3452 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
3453 has gone in the meantime, use face MOUSE_FACE_ID.
3454
3455 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
3456 If x_display_info_for_display returns null, don't try to close
3457 the display; we didn't open it.
3458
3459 * dispnew.c (save_or_restore_current_matrices): Function removed.
3460 (save_current_matrix, restore_current_matrix): New functions.
3461 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
3462 restore the frame's current matrix. Due to the glyph pointer
3463 setup done in adjust_glyph_matrix, there is no easy way to make
3464 saving the current matrix in the desired matrix generally correct,
3465 so don't try it.
3466
3467 2001-01-15 Kenichi Handa <handa@etl.go.jp>
3468
3469 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
3470 truncation glyphs.
3471 (display_line): Optimize for wide characters.
3472 (display_string): Don't try to display a multi-column character
3473 partially. On ttys, produce more than one truncation glyph for
3474 multi-column characters that don't fit on the line.
3475
3476 2001-01-13 Kenichi Handa <handa@etl.go.jp>
3477
3478 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
3479 Define it instead of WORDS_BIGENDIAN. Caller changed.
3480
3481 2001-01-13 Jason Rumney <jasonr@gnu.org>
3482
3483 * w32fns.c (Fimage_size, image_ascent, lookup_image)
3484 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
3485 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3486 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
3487
3488 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
3489 (x_draw_image_relief, x_draw_image_foreground_1)
3490 (x_draw_image_glyph_string): Adapt to change of image margins.
3491
3492 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
3493 variables.
3494
3495 * w32bdf.c (search_file_line, get_cached_font_char)
3496 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
3497
3498 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
3499
3500 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
3501 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
3502 (Fw32_send_sys_command): Remove unused variables.
3503 (w32_msg_pump): Add parentheses.
3504
3505 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
3506 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
3507 Add parentheses.
3508
3509 2001-01-12 Gerd Moellmann <gerd@gnu.org>
3510
3511 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
3512 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
3513 being a pair of margins.
3514 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
3515 to DEFVAR_LISP. Extend doc.
3516
3517 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
3518 margins.
3519 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
3520 pair of integers `(X . Y)', use X for the horizontal and Y for the
3521 vertical margin.
3522 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
3523 (parse_image_spec): Check it.
3524 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3525 (tiff_format, gif_format, gs_format):
3526 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
3527
3528 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
3529 (x_draw_image_relief, x_draw_image_foreground_1)
3530 (x_draw_image_glyph_string): Adapt to the change of image margins.
3531
3532 * dispextern.h (struct image): Replace member `margin' with
3533 `hmargin' and `vmargin'.
3534
3535 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
3536 and GLYPHS.
3537
3538 * dispnew.c (update_text_area): Put code which decrements the
3539 stop position when the row's face extends to the end of the
3540 line in #if 0.
3541
3542 * xfns.c (x_set_mouse_color): Fix color allocation.
3543
3544 * keyboard.c: Call get_local_map with new argument list.
3545
3546 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
3547
3548 * intervals.h (enum map_property): Removed.
3549 (get_local_map): Change prototype.
3550
3551 * keymap.c: Call get_local_map with new argument list.
3552 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
3553
3554 2001-01-11 Gerd Moellmann <gerd@gnu.org>
3555
3556 * xdisp.c (build_desired_tool_bar_string): Correct the computation
3557 of the size needed for the tool bar string. For the last image,
3558 use a `display' property that reaches to the end of the string.
3559
3560 * xselect.c (selection_request_dpyinfo): New variable.
3561 (x_handle_selection_request): Set it.
3562 (x_selection_request_lisp_error): Don't call
3563 x_decline_selection_request if selection request's display has
3564 been closed.
3565
3566 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
3567 Do the unregister_colors before calling XFreeColors.
3568
3569 2001-01-10 Dave Love <fx@gnu.org>
3570
3571 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
3572 ${SOME_MACHINE_LISP}, not ${lisp}.
3573
3574 2001-01-10 Gerd Moellmann <gerd@gnu.org>
3575
3576 * xdisp.c (display_line): On ttys, produce more than one truncation
3577 glyph for multi-column characters that don't fit on the line.
3578
3579 * xselect.c (x_reply_selection_request): Add a comment.
3580
3581 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
3582 XkbGetNames instead of XkbGetKeyboard.
3583
3584 2001-01-10 Dave Love <fx@gnu.org>
3585
3586 * sysdep.c (random): Revert the declaration.
3587
3588 2001-01-09 Gerd Moellmann <gerd@gnu.org>
3589
3590 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
3591 Call function string_bytes.
3592 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
3593
3594 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
3595 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
3596 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
3597 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
3598 the current sblock.
3599 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
3600 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
3601 after sweeping strings, and at the end.
3602 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
3603
3604 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
3605 ensure that pop_message is called.
3606
3607 * keyboard.c (Fexecute_extended_command): Use a
3608 record_unwind_protect to ensure that pop_message is called.
3609
3610 * lisp.h (push_message_unwind): Add prototype.
3611
3612 * xdisp.c (push_message_unwind): New function.
3613
3614 * fileio.c (do_auto_save_unwind): Do the pop_message here
3615 instead of in Fdo_auto_save.
3616 (Fdo_auto_save): Don't call pop_message.
3617
3618 2001-01-08 Ken Raeburn <raeburn@gnu.org>
3619
3620 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
3621 in inner block.
3622
3623 2001-01-08 Gerd Moellmann <gerd@gnu.org>
3624
3625 * window.c (window_scroll_pixel_based): Adjust glyph matrices
3626 when increasing window's vscroll.
3627
3628 * macros.c (Qkbd_macro_termination_hook): New variable.
3629 (syms_of_macros): Initialize and staticpro it.
3630 (pop_kbd_macro): Run kbd-macro-termination-hook.
3631
3632 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
3633
3634 2001-01-07 Dave Love <fx@gnu.org>
3635
3636 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
3637 arglist, for documentation's sake.
3638
3639 2001-01-06 Andrew Innes <andrewi@gnu.org>
3640
3641 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
3642 of *.pdb.
3643
3644 2001-01-05 Andrew Innes <andrewi@gnu.org>
3645
3646 * term.c (update_end): Don't check updating_frame; for some reason
3647 this can be 0 sometimes, such as after dismissing a popup menu,
3648 and isn't necessary given the explicit frame argument.
3649
3650 2001-01-05 Gerd Moellmann <gerd@gnu.org>
3651
3652 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
3653 on some systems, and an unsigned long on others, like FreeBSD 4.1.
3654
3655 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3656
3657 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
3658
3659 * xfns.c (x_create_tip_frame): Preserve the value of
3660 face_change_count around the creation of the tip frame.
3661
3662 * xfns.c (last_show_tip_args): New variable.
3663 (compute_tip_xy): New function.
3664 (Fx_show_tip): Reuse an existing tip frame, if possible.
3665 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
3666
3667 2001-01-04 Dave Love <fx@gnu.org>
3668
3669 * editfns.c (Fformat): Doc fix.
3670
3671 * systime.h (set_file_times): Prototype.
3672
3673 * widget.h (EmacsFrameSetCharSize_): Prototype.
3674
3675 * sysdep.c (random, srandom): Declare explicitly.
3676
3677 * dispextern.h (move_it_vertically_backward): Declare.
3678
3679 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3680
3681 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
3682 like in Fx_create_frame.
3683
3684 * xfaces.c (set_font_frame_param): Don't do anything for
3685 non-graphical frames.
3686
3687 * window.c (Fdelete_other_windows): Set window's window_end_valid
3688 to nil when changing the window's start. Don't change the
3689 window's start when its top position hasn't changed. If we do,
3690 this will set the window's optional_new_start, which act's like a
3691 force_start during redisplay with C-x 1 M-> under particular
3692 circumstances (see report from Per Starback to emacs-pretest-bug
3693 from 2000-12-13.).
3694
3695 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3696
3697 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
3698 short cut at the start of the function. Add an assertion.
3699 (reseat_at_next_visible_line_start): Add an assertion.
3700
3701 * window.c (Frecenter): When changing the window start, set the
3702 window's window_end_valid to nil.
3703 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
3704
3705 * dispextern.h (move_it_past_eol): Add prototype.
3706
3707 * xdisp.c (move_it_past_eol): New function.
3708
3709 * window.c (Fwindow_end): Doc fix.
3710
3711 2001-01-03 Dave Love <fx@gnu.org>
3712
3713 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
3714
3715 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3716
3717 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
3718 the enabled_p flag of the glyph row at window_end_vpos to 0.
3719 (handle_single_display_prop): Fix last change.
3720
3721 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3722
3723 * window.c (Frecenter): Doc fix.
3724
3725 2001-01-02 Andrew Innes <andrewi@gnu.org>
3726
3727 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
3728
3729 * frame.h (output_method): Add output_w32_console method.
3730 (FRAME_W32_CONSOLE_P): New macro.
3731
3732 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
3733 use output_w32_console method.
3734 (Qw32_console): New Lisp_Object.
3735 (Fframep): Return it.
3736 (syms_of_frame): Init it.
3737 (Fframe_parameters): Report w32console as font for w32_console frames.
3738
3739 * xfaces.c (realize_default_face): Set face foreground and
3740 background to unspecified for w32_console frames.
3741 (realize_face): Realize face cache for w32_console frames.
3742 (realize_tty_face): Accept w32_console frames.
3743
3744 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
3745 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
3746 necessary, even if running interactively.
3747
3748 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
3749 w32_console frames.
3750
3751 * w32term.c (x_update_begin):
3752 (x_update_end):
3753 (x_clear_frame):
3754 (x_ins_del_lines):
3755 (x_change_line_highlight):
3756 (x_delete_glyphs):
3757 (w32_ring_bell):
3758 (x_update_begin):
3759 (x_update_end):
3760 (w32_reassert_line_highlight):
3761 (w32_frame_rehighlight):
3762 (w32_frame_raise_lower): Do nothing if not w32 frame.
3763
3764 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
3765
3766 * w32fns.c (Fx_display_color_cells): Determine correct value, when
3767 system doesn't tell us directly.
3768 (Fx_display_visual_class): Implement properly.
3769
3770 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3771
3772 * window.c (Frecenter): Handle centering in graphical frames
3773 specially. Centering on the basis of line counts doesn't work
3774 reliably with variable-height lines.
3775
3776 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3777
3778 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
3779 and al[].
3780
3781 * composite.c (run_composition_function): Remove unused var `val'.
3782 (update_compositions): Remove unused variable `hook'.
3783
3784 * intervals.c (get_local_map): Remove unused variable `tem'.
3785
3786 * doprnt.c (doprnt1): Remove unused variable `size'.
3787
3788 * fns.c (Flength): Remove unused variable `tail'.
3789 (Fdelete): Remove unused variable `size'.
3790
3791 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
3792 and `gcpro2'.
3793
3794 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
3795
3796 * data.c (find_symbol_value): Remove extra 3rd argument in the
3797 call to swap_in_symval_forwarding.
3798
3799 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
3800
3801 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
3802 (trivial_regexp_p): Remove unused variable `c'.
3803 (boyer_moore): Remove unused variable `k'.
3804
3805 * indent.c (current_column): Remove unused variable `stopchar'.
3806 (Fcompute_motion): Remove unused variable `contin'.
3807
3808 * casefiddle.c (casify_object): Remove unused variable `tolen'.
3809
3810 * dired.c (directory_files_internal): Fix a typo in a comment.
3811 Remove an unused variable `handler'.
3812 (file_name_completion): Remove unused function-scope variable `dp'.
3813 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
3814 on BSD4_2.
3815
3816 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
3817
3818 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
3819 and `buf'.
3820 (Fmarker_insertion_type): Remove unused variable `buf'.
3821
3822 * insdel.c (make_gap): Remove unused variable `result'.
3823
3824 * keyboard.c (record_char): Remove unused function-scope var `help'.
3825 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
3826 (menu_bar_items): Remove unused function-scope variable `tem'.
3827
3828 * fontset.c (fontset_ref): Remove unused variable `i'.
3829 (fontset_set): Remove unused variables `j' and `tmp'.
3830 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
3831 (make_fontset_for_ascii_face): Remove unused variable `name'.
3832 (fs_load_font): Remove unused variable `font_idx'.
3833 (fs_query_fontset): Remove unused function-local variable `fontset'.
3834 (list_fontsets): Remove unused variable `tail'.
3835 (Fnew_fontset): Remove unused variables `family' and `registry'.
3836 (accumulate_font_info): Remove unused variable `tmp'.
3837 (Ffontset_font): Remove unused variable `id'.
3838 (syms_of_fontset): Remove unused variable `i'.
3839
3840 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
3841 to x_term_init.
3842 (lookup_image): Remove unused variable `file'.
3843 (xbm_load): Remove unused variables `bitmap_data', `height', and
3844 `width'. Remove function-local variable `i', leave the
3845 block-local one.
3846 (gif_load): Remove unused variable `inc'.
3847
3848 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
3849 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
3850 leave only the one in the inner block.
3851
3852 * xfaces.c (face_fontset, realize_default_face): Remove unused
3853 variable `fontset'.
3854 (face_at_buffer_position): Remove unused variable `multibyte_p'.
3855
3856 * term.c (encode_terminal_code): Remove unused variable `c'.
3857
3858 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
3859 char *' instead of `char *'.
3860
3861 * category.c (Fcategory_docstring): Remove unused variable `doc'.
3862 (Fget_unused_category): Remove unused variable `docstring_vector'.
3863 (Fchar_category_set): Remove unused variables `val', `charset',
3864 `c1' and `c2'.
3865
3866 * coding.c (detect_coding_iso2022, setup_coding_system):
3867 Remove unused variable `i'.
3868 (detect_coding_mask): Remove unused variable `idx'.
3869 (detect_coding): Remove unused variable `i'.
3870 (ccl_coding_driver): Remove unused variable `result'.
3871 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
3872 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
3873 (encode_coding_string): Remove unused variables `gcpro1' and
3874 `saved_coding_symbol'.
3875 (Ffind_coding_systems_region_internal): Remove function-local
3876 variable args[], leave only the block-local one.
3877 (code_convert_region1): Remove unused variable `len'.
3878
3879 * charset.c (char_printable_p): Remove unused variable `chars'.
3880 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
3881 (str_to_multibyte): Remove unused variable `c'.
3882
3883 * window.c (size_window): Remove block-local variable `min_size'.
3884
3885 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
3886 `header_line_height'.
3887 (append_space, extend_face_to_end_of_line): Declare `saved_what'
3888 enum display_element_type.
3889
3890 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3891
3892 * xterm.c (x_connection_closed): Catch X errors around all
3893 statements that call X. Save away the error message in a local copy.
3894
3895 * xterm.c (x_connection_closed): Set handling_signal to 0 at
3896 the start.
3897
3898 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
3899 in or at the start of invisible text.
3900
3901 * dispnew.c (update_window): Don't check_current_matrix_flags.
3902
3903 2001-01-01 Jason Rumney <jasonr@gnu.org>
3904
3905 * w32fns.c (x_figure_window_size): Do not allow new_height and
3906 new_width of frame to override specified values.
3907
3908 2000-12-30 Kenichi Handa <handa@etl.go.jp>
3909
3910 * composite.c (find_composition): Fix a code for searching backward.
3911
3912 2000-12-29 Gerd Moellmann <gerd@gnu.org>
3913
3914 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
3915 (update_window) [GLYPH_DEBUG]: Call it.
3916 (scrolling_window): Prevent including current rows which are below
3917 what's displayed in the window.
3918
3919 * xdisp.c (try_window_reusing_current_matrix)
3920 <new start <= old start>: Disable rows in the current matrix
3921 which are below the window after scrolling.
3922
3923 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
3924 is zero. It's not worth the complexity.
3925 (invisible_text_between_p): Put in #if 0 because unused.
3926
3927 2000-12-28 Gerd Moellmann <gerd@gnu.org>
3928
3929 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
3930 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
3931
3932 * keyboard.c (echo_char): If C is an integer, always call
3933 push_key_description. Former code could signal an invalid
3934 character error.
3935
3936 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
3937 If set, print multibyte text.
3938 (Fsingle_key_description): Call push_key_description with
3939 FORCE_MULTIBYTE set.
3940 (describe_buffer_bindings): Likewise.
3941
3942 * lisp.h (push_key_description): Add prototype.
3943
3944 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
3945 around the call to redisplay_internal.
3946
3947 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
3948
3949 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
3950
3951 2000-12-28 Kenichi Handa <handa@etl.go.jp>
3952
3953 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
3954 (ccl_driver): New local variable `extra_bytes'.
3955
3956 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
3957
3958 * coding.c (setup_coding_system):
3959 Initialize coding->spec.ccl.eight_bit_carryover.
3960 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
3961
3962 2000-12-28 Kenichi Handa <handa@etl.go.jp>
3963
3964 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
3965 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
3966 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
3967 (decode_composition_emacs_mule): New function.
3968 (decode_coding_emacs_mule): Decode composition sequence by calling
3969 decode_composition_emacs_mule.
3970 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
3971 (encode_coding_emacs_mule): Changed from macro to function.
3972 If a text contains compositions, encode them correctly.
3973 (setup_coding_system): Set coding->commong_flags for emacs-mule so
3974 that decoding and encoding are required.
3975
3976 2000-12-27 Gerd Moellmann <gerd@gnu.org>
3977
3978 * xfaces.c (PT_PER_INCH): New macro.
3979 (xlfd_point_size): Compute real point size from font's pixel size.
3980 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
3981 instead of 72.
3982
3983 * .gdbinit: Comment out the line pointing to the Lesstif source
3984 directory.
3985
3986 * window.c (Frecenter): Use displayed_window_lines instead
3987 of window_internal_height.
3988
3989 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
3990 instead of x-toolkit-scroll-bars-p.
3991 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
3992
3993 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
3994 instead of x-toolkit-scroll-bars-p.
3995 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
3996
3997 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
3998 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
3999 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
4000 New variables.
4001 (add_window_display_history, add_frame_display_history)
4002 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
4003 (build_frame_matrix_from_leaf_window): Remove unused code.
4004 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
4005 redisplay history.
4006 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
4007 (update_window) [GLYPH_DEBUG]: Likewise.
4008 (syms_of_display): Defsubr dump-redisplay-history.
4009
4010 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4011
4012 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
4013 the end of the prompt. Set echo_after_prompt to the offset
4014 of echoptr in echobuf.
4015
4016 * xdisp.c (init_from_display_pos): Pop until the iterator's
4017 stack is empty; there may be frames for stretch or images
4018 on the stack.
4019
4020 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
4021 (save_or_restore_current_matrix): New function for the same
4022 purpose, but more efficient.
4023 (adjust_frame_glyphs_for_frame_redisplay): Use it.
4024
4025 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
4026
4027 * xdisp.c (syms_of_xdisp): Fix last change.
4028
4029 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4030
4031 * xdisp.c (syms_of_xdisp): Doc fix.
4032
4033 * xdisp.c (redisplay_window): Remove label restore_buffers;
4034 use finish_scroll_bars instead to make sure that scroll bars
4035 are redeemed. If we don't do this, flickering can result from
4036 scroll bars being destroyed and recreated.
4037
4038 2000-12-22 Jason Rumney <jasonr@gnu.org>
4039
4040 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
4041 in the wrong colors when the foreground is not black.
4042 (expose_window): Don't redraw the window that's currently being
4043 updated.
4044
4045 2000-12-22 Gerd Moellmann <gerd@gnu.org>
4046
4047 * window.c (size_window): When setting the window's too_small_ok
4048 flag, compare old size with minimum size depending on WIDTH_P,
4049 don't compare with window_min_width.
4050
4051 * window.c (delete_window): Simplify somewhat.
4052 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
4053 freeing window matrices. The flag windows_or_buffers_changed is
4054 set, so the next redisplay will consider all windows; this should
4055 suffice.
4056
4057 2000-12-22 Kenichi Handa <handa@etl.go.jp>
4058
4059 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
4060
4061 * ccl.h (struct ccl_program): New member cr_consumed.
4062
4063 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
4064 (CCL_READ_CHAR): Handle EOL conversion here.
4065 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
4066
4067 2000-12-21 Gerd Moellmann <gerd@gnu.org>
4068
4069 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
4070
4071 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
4072 otherwise tabs of different size compare equal.
4073
4074 * callint.c (Fcall_interactively): Prevent a compiler warning.
4075
4076 * print.c (print_unwind): Return nil.
4077 (PRINTDECLARE): Initialize all local variables.
4078 (print_preprocess): Add a default case.
4079
4080 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
4081
4082 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
4083
4084 * window.c (delete_window, Fsplit_window)
4085 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
4086
4087 * dispextern.h (ensure_frame_matrix): Function declaration removed.
4088
4089 * dispnew.c (ensure_frame_matrix): Removed.
4090 (save_frame_matrix, restore_frame_matrix): New functions.
4091 (adjust_frame_glyphs_for_frame_redisplay): Use them.
4092
4093 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
4094 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
4095
4096 2000-12-21 Andrew Innes <andrewi@gnu.org>
4097
4098 * w32term.c (x_update_begin): Regenerate the palette here, rather
4099 than for each window.
4100
4101 * w32xfns.c (select_palette): Avoid calling SelectPalette if
4102 palette is NULL, since this corrupts memory! Also get
4103 display_info reference from frame.
4104
4105 2000-12-21 Jason Rumney <jasonr@gnu.org>
4106
4107 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
4108
4109 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
4110 to avoid returning without releasing it.
4111
4112 2000-12-21 Kenichi Handa <handa@etl.go.jp>
4113
4114 * keymap.c (push_key_description): Don't convert eight-bit-control
4115 and eight-bit-graphic to multibyte character.
4116
4117 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
4118 generic character and CODE1 is nil, return the smallest character
4119 in CHARSET.
4120
4121 2000-12-20 Dave Love <fx@gnu.org>
4122
4123 * s/osf5-0.h (NSIG): Don't redefine.
4124
4125 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
4126
4127 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
4128 excluding menu-bar and tool-bar.
4129 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
4130 (menu_item_p): Remove.
4131 (where_is_internal_1): Don't ignore menu-items.
4132
4133 2000-12-20 Gerd Moellmann <gerd@gnu.org>
4134
4135 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
4136 into account.
4137
4138 * window.c (make_window): Initialize window's min_hscroll.
4139 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
4140 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
4141 to zero.
4142 (struct saved_window): New member min_hscroll.
4143 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
4144 (Fset_window_configuration): Set window's min_hscroll.
4145 (save_window_save): Save window's min_hscroll.
4146 (compare_window_configurations): Compare min_hscroll values.
4147
4148 * window.h (struct window): New member min_hscroll.
4149
4150 * keyboard.c (echo_prompt): Prevent a compiler warning.
4151
4152 * xdisp.c (try_cursor_movement): Fix last change. The real
4153 condition is that PT is at the end of the row, and should
4154 be displayed at the start of the next row.
4155
4156 * xdisp.c (try_cursor_movement): If we end on a partially
4157 visible line, end we already decided to scroll, return -1.
4158
4159 * dispextern.h (ensure_frame_matrix): Add prototype.
4160
4161 * window.c (delete_window, Fsplit_window)
4162 (Fset_window_configuration): Call ensure_frame_matrix.
4163
4164 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
4165 New functions.
4166 (adjust_frame_glyphs_for_frame_redisplay): If display has been
4167 completed, call fake_current_matrices instead of marking frame
4168 garbaged.
4169
4170 2000-12-20 Jason Rumney <jasonr@gnu.org>
4171
4172 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
4173
4174 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4175
4176 * fns.c (Frequire): Doc fix.
4177
4178 2000-12-19 Gerd Moellmann <gerd@gnu.org>
4179
4180 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
4181
4182 * dispnew.c (direct_output_for_insert): Fix check for mini-window
4183 currently displaying a message.
4184
4185 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
4186 xterm.h.
4187 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
4188
4189 2000-12-18 Andrew Innes <andrewi@gnu.org>
4190
4191 * w32.c (w32_strerror): New function.
4192
4193 * w32.h (w32_strerror): New extern.
4194
4195 * w32fns.c (Fw32_shell_execute): Use it.
4196
4197 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4198
4199 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
4200
4201 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4202
4203 * msdos.c (IT_set_face): Obey inverse_video.
4204
4205 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4206
4207 * dired.c (directory_files_internal): Always return decoded filenames.
4208
4209 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4210
4211 * xterm.c (x_connection_closed): Prevent being called recursively
4212 because of an error condition in XtCloseDisplay.
4213
4214 * xdisp.c (init_iterator): If noninteractive, and the frame's
4215 face cache is null, make one.
4216
4217 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
4218
4219 * process.c (wait_reading_process_input): Check for pending
4220 input when running timers.
4221
4222 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4223
4224 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
4225
4226 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4227
4228 * process.c (read_process_output): Don't run a filter if the code
4229 decoder produces nothing but carryover.
4230
4231 2000-12-17 Andrew Innes <andrewi@gnu.org>
4232
4233 * w32.c (sys_rename): Only check errno against EEXIST, and not
4234 EACCES, when determining whether rename failed because the target
4235 exists. This was resulting in indefinite looping on Windows 9x if
4236 the source file was locked by another process.
4237
4238 * w32fns.c (Ffile_system_info): New function.
4239 (syms_of_w32fns): Defsubr it.
4240
4241 2000-12-17 Gerd Moellmann <gerd@gnu.org>
4242
4243 * window.c (coordinates_in_window): Fix computation for
4244 position on vertical line between mode lines.
4245
4246 * xfns.c (unwind_create_frame): Return t if frame was deleted.
4247 Don't alter tip_frame or tip_window.
4248 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4249 was deleted.
4250
4251 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
4252 Don't alter tip_frame or tip_window.
4253 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4254 was deleted.
4255
4256 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4257
4258 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
4259 be consistent with the doc string. Reported by NAKAJIMA Mikio
4260 <minakaji@osaka.email.ne.jp>.
4261
4262 2000-12-16 Kenichi Handa <handa@etl.go.jp>
4263
4264 * xfaces.c (Vface_ignored_fonts): New variable.
4265 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
4266 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
4267
4268 2000-12-15 Gerd Moellmann <gerd@gnu.org>
4269
4270 * dispnew.c (update_window): Detect pending input every nth line
4271 updated, i.e. do it depending on real work done, and not on the
4272 vpos of the line.
4273
4274 * xterm.c (expose_window): Don't redraw the window that's
4275 currently being updated.
4276
4277 * window.c (Fset_window_point): Remove test for
4278 cursor_in_non_selected_windows.
4279
4280 * lread.c (read1): Recognize end of file after `\\'.
4281
4282 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
4283 not unwind_create_frame.
4284
4285 2000-12-15 Dave Love <fx@gnu.org>
4286
4287 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
4288 bcopy & al.
4289
4290 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
4291
4292 2000-12-15 Kenichi Handa <handa@etl.go.jp>
4293
4294 * coding.c (setup_coding_system): Clear all members of the struct
4295 coding_system at first.
4296 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
4297 argument.
4298 (code_convert_region): Don't override coding->src_multibyte and
4299 coding->dst_multibyte.
4300
4301 * fns.c (Fmd5): Docstring improved.
4302
4303 2000-12-15 Miles Bader <miles@gnu.org>
4304
4305 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
4306 are actually marked as mode-lines; otherwise use
4307 estimate_mode_line_height.
4308
4309 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4310
4311 * editfns.c (Fformat): Prevent a buffer overrun when the format
4312 specifies a precision.
4313
4314 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
4315
4316 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
4317 argument is outside the range [2..3].
4318
4319 2000-12-14 Andrew Innes <andrewi@gnu.org>
4320
4321 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
4322 nothing to do. Bind inhibit-quit.
4323 (tip_frame): Make it a Lisp_Object.
4324 (x_create_tip_frame): Set tip_frame after it has been added to
4325 Vframe_list.
4326 (Fx_show_tip): Don't set tip_frame here.
4327 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
4328 (unwind_create_frame, unwind_create_tip_frame): New functions.
4329 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4330 while a frame is only partially constructed.
4331
4332 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4333 (x_free_frame_resources): New function.
4334 (x_destroy_window): Use it.
4335
4336 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4337
4338 * xfns.c (Fx_backspace_delete_keys_p): New function.
4339 (syms_of_xfns): Defsubr it.
4340
4341 * config.in (HAVE_XKBGETKEYBOARD): Add.
4342
4343 2000-12-14 Kenichi Handa <handa@etl.go.jp>
4344
4345 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
4346 Always store string in multibyte representation in echobuf.
4347 (echo_char): Always store string in multibyte representation in
4348 echobuf.
4349 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
4350 (read_key_sequence): Adjusted for the change of echo_prompt.
4351
4352 * fns.c (Fmd5): Docstring improved.
4353
4354 * lisp.h (detect_coding_system): Prototype adjusted.
4355
4356 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
4357 (detect_coding_emacs_mule, detect_coding_iso2022,)
4358 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
4359 (detect_coding_utf_16, detect_coding_ccl): Make them static.
4360 New argument MULTIBYTEP. Callers changed.
4361 (detect_coding_mask, detect_coding_system): New argument
4362 MULTIBYTEP. Callers changed.
4363 (decode_coding_string): Set coding->src_multibyte and
4364 coding->dst_multibyte before calling detect_coding and detect_eol.
4365 Update them after some coding system is detected.
4366
4367 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
4368
4369 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
4370
4371 * keyboard.c (menu_bar_items, tool_bar_items):
4372 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
4373
4374 2000-12-13 Gerd Moellmann <gerd@gnu.org>
4375
4376 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
4377 New variables.
4378 (unwind_create_frame, unwind_create_tip_frame): New functions.
4379 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4380 while a frame is only partially constructed.
4381
4382 * xterm.h (x_free_frame_resources): Declare.
4383
4384 * xterm.c (x_free_frame_resources): New function.
4385 (x_destroy_window): Use it.
4386
4387 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
4388 don't interrupt the update for pending input initially, i.e.
4389 update at least some lines.
4390
4391 * keyboard.c (do_mouse_tracking): Make externally visible.
4392
4393 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
4394
4395 * xfns.c (gray_bitmap_bits): Declare `char *'.
4396
4397 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4398
4399 * xdisp.c (display_tool_bar_line): Make sure that tool bar
4400 lines start with a relief line.
4401
4402 2000-12-12 Dave Love <fx@gnu.org>
4403
4404 * window.c (Fdisplay_buffer): Doc fix.
4405 (Fwindow_list): Remove unused var.
4406
4407 * buffer.h (mmap_set_vars): Declare.
4408
4409 * window.h (Fset_window_point): Declare.
4410
4411 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
4412
4413 * msdos.c (fast_find_position): Don't overstep the last window row.
4414 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
4415 variable `area'. When looking for a row under (X,Y), give up if some
4416 of the previous rows is not enabled.
4417
4418 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4419
4420 * window.c (Fset_window_point): If displaying cursors in windows
4421 other than the selected window, make sure redisplay updates
4422 other windows to show the new value of point in the window.
4423
4424 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
4425
4426 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
4427 the buffer is the sole visible buffer when in the mini-buffer.
4428
4429 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
4430 Bind `inhibit-read-only' to t.
4431 (unwind_with_echo_area_buffer): Use AREF.
4432
4433 * xfns.c (Fx_hide_tip): Simplified.
4434
4435 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
4436 instead of `1'.
4437
4438 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
4439
4440 2000-12-11 Gerd Moellmann <gerd@gnu.org>
4441
4442 * xfns.c (Fx_hide_tip): Fix last change.
4443
4444 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
4445 nothing to do. Bind inhibit-quit.
4446 (tip_frame): Make it a Lisp_Object.
4447 (x_create_tip_frame): Set tip_frame after it has been added to
4448 Vframe_list.
4449 (Fx_show_tip): Don't set tip_frame here.
4450
4451 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4452
4453 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
4454 Lisp_Object.
4455
4456 * dispextern.h: Change external declaration of tip_frame.
4457
4458 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
4459 return an empty string.
4460
4461 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
4462 of the window's update_mode_line flag, since the former is set by
4463 force-mode-line-update, not the latter. This makes
4464 column-number-mode slightly faster.
4465
4466 * xdisp.c (try_window_id) <all changes above window start>:
4467 Set the cursor.
4468
4469 2000-12-11 Paul Eggert <eggert@twinsun.com>
4470
4471 * config.in (HAVE_FTELLO): Remove.
4472 (HAVE_FSEEKO): Add.
4473 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
4474 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
4475 HAVE_FTELLO.
4476 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
4477 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
4478
4479 2000-12-11 Miles Bader <miles@gnu.org>
4480
4481 * window.c (displayed_window_lines): Don't round up when
4482 converting empty space at bottom to lines.
4483 Handle non-newline-terminated final lines properly.
4484 (Fwindow_text_height): New function (used to be in lisp).
4485 (syms_of_window): Initialize it.
4486
4487 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
4488
4489 * syntax.c (scan_lists): Check that the right quote char has the
4490 right Sstring syntax when jumping over strings.
4491 (init_syntax_once): Use Smax rather than 13.
4492
4493 2000-12-09 Miles Bader <miles@gnu.org>
4494
4495 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
4496 with PARTIALLY, inverting the sense.
4497 (window_scroll_pixel_based): Scroll partially visible lines into
4498 place if we hit the beginning or end of the buffer.
4499 (displayed_window_lines): Don't include partially visible lines.
4500 (Fmove_to_window_line): Skip past any partially visible first line.
4501
4502 2000-12-08 Gerd Moellmann <gerd@gnu.org>
4503
4504 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
4505
4506 * tparam.c (tparam1): Change the way buffers are reallocated to be
4507 portable and less obfuscated.
4508
4509 * termcap.c (tgetent): Change the way buffers are reallocated to
4510 be portable and less obfuscated.
4511
4512 * macros.c (store_kbd_macro_char): Change the way buffers are
4513 reallocated to be portable and less obfuscated.
4514
4515 * lread.c (read1): Change the way buffers are reallocated to be
4516 portable and less obfuscated.
4517
4518 * doc.c (Fsubstitute_command_keys): Change the way buffers
4519 are reallocated so that it is portable.
4520
4521 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
4522
4523 * dosfns.c (Ffile_system_info): New function.
4524 (syms_of_dosfns): Defsubr it.
4525
4526 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
4527
4528 * alloc.c (gc_sweep): Add comment.
4529
4530 2000-12-07 Gerd Moellmann <gerd@gnu.org>
4531
4532 * sound.c (vox_configure): Change order of ioctls.
4533 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
4534 Ignore errors when changing volume.
4535 (vox_close): Don't reset the device.
4536
4537 * process.c (read_process_output): Make sure the process marker's
4538 position is valid when the process buffer is changed in
4539 after-change functions. W3 does that.
4540
4541 * xfns.c (x_free_gcs): New function.
4542
4543 * xterm.h (x_free_gcs): Add prototype.
4544
4545 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
4546 freeing GCs here.
4547
4548 * xterm.c (x_destroy_window): Call x_free_gcs so that
4549 resources of non-toolkit X windows will be freed.
4550
4551 2000-12-07 Andrew Innes <andrewi@gnu.org>
4552
4553 * w32fns.c (xlfd_charset_of_font): Fix last change.
4554
4555 2000-12-06 Dave Love <fx@gnu.org>
4556
4557 * md5.h (__P): Don't define -- it comes from config.h.
4558
4559 * strftime.c: Change some #if foo to #ifdef foo.
4560
4561 2000-12-06 Andrew Innes <andrewi@gnu.org>
4562
4563 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
4564
4565 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
4566 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
4567 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
4568
4569 2000-12-06 Gerd Moellmann <gerd@gnu.org>
4570
4571 * alloc.c (gc_sweep): Prevent symbols read during loadup
4572 from being freed.
4573
4574 * xdisp.c (underlying_face_id): New function.
4575 (handle_face_prop, face_before_or_after_it_pos): Use it
4576 to determine the face ``under'' a string. Let strings inherit
4577 the face of the buffer under them.
4578
4579 * xfaces.c (face_at_string_position): Update function comment.
4580
4581 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
4582 matrix if the window's left position has changed; we need to
4583 redraw it in this case.
4584
4585 * dispextern.h (struct glyph_matrix): Add member window_left_x.
4586
4587 * window.c (coordinates_in_window): Check mouse on mode-line or
4588 header-line first.
4589
4590 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
4591 advertized by the function documentation.
4592
4593 * window.c (syms_of_window): Doc fix.
4594
4595 * sound.c (vox_configure): Set volume for left and right channel.
4596 (sound_cleanup): Return nil.
4597
4598 * xdisp.c (move_it_by_lines): Fix paren typo.
4599
4600 * xterm.c (x_load_font): Don't use the font's max_bounds for
4601 computing the height of the font. If max_bounds' ascent or
4602 descent are greater than the font's ascent or descent, this means
4603 glyphs overlap, which should be handled now by redisplay.
4604
4605 * window.c (Veven_window_heights): New variable.
4606 (syms_of_window): DEFVAR_LISP it.
4607 (Fdisplay_buffer): Check Veven_window_heights before evening the
4608 window heights.
4609
4610 2000-12-06 Miles Bader <miles@gnu.org>
4611
4612 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
4613 update `default-frame-alist' instead of setting no frame parameters.
4614
4615 2000-12-06 Kenichi Handa <handa@etl.go.jp>
4616
4617 * composite.c (update_compositions): Fix typo (use the correct
4618 variable).
4619
4620 2000-12-05 Jason Rumney <jasonr@gnu.org>
4621
4622 * md5.h: Remove underscores from function declarations.
4623 (__attribute__, __alignof__) [!__GNUC__]: Define.
4624
4625 * md5.c: Delay include of md5.h until after namespace cleaning.
4626
4627 * makefile.w32-in (fns.o): Depend on md5.h
4628 (md5.o): New target.
4629 (sunfns.o): Remove.
4630
4631 * makefile.nt: Likewise.
4632
4633 2000-12-05 Jason Rumney <jasonr@altavista.net>
4634
4635 * w32term.c (expose_area): Complete last change.
4636
4637 2000-12-05 Ken Raeburn <raeburn@gnu.org>
4638
4639 * minibuf.c: Include intervals.h.
4640
4641 2000-12-05 Jason Rumney <jasonr@gnu.org>
4642
4643 * w32term.c (x_produce_glyphs): If a font for a component of
4644 a composition is not found, use 1 pixel dot ascent and 0 dot
4645 descent value to avoid displaying terribly tall empty boxes.
4646 (expose_area): Pass x-coordinate relative to the exposed
4647 area to x_draw_glyphs instead of a window-relative coordinate.
4648
4649 2000-12-05 Gerd Moellmann <gerd@gnu.org>
4650
4651 * xdisp.c (next_element_from_ellipsis): Save face before selective
4652 display in saved_face_id, and set face_before_selective_p.
4653 (reseat_1): Reset face_before_selective_p.
4654 (append_space, extend_face_to_end_of_line): If iterator's
4655 face_before_selective_p is set, use the face from saved_face_id.
4656 (extend_face_to_end_of_line): For tty frames, make sure to
4657 use the right face id when producing spaces at the end of
4658 the line.
4659
4660 * dispextern.h (struct it): Add face_before_selective_p.
4661
4662 * keyboard.c (record_char): Don't record identical help-echo
4663 events in recent_keys.
4664
4665 * xterm.c [USE_X_TOOLKIT]: Close the display.
4666 (xim_close_dpy): Handle case that the display has been closed.
4667
4668 * xterm.c (x_destroy_window): Reset the frame's X window after
4669 destroying it.
4670
4671 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
4672 variable window_width.
4673 (line_draw_cost): Fix code skipping over spaces at the end of the
4674 line when must_write_spaces is not set.
4675 (scrolling_window): Fix code inserting runs in list of all runs.
4676
4677 2000-12-05 Kenichi Handa <handa@etl.go.jp>
4678
4679 * coding.c (setup_coding_system): Be sure to initialize
4680 coding->category_idx.
4681
4682 2000-12-04 Gerd Moellmann <gerd@gnu.org>
4683
4684 * xterm.c (PER_CHAR_METRIC): Removed because not used.
4685
4686 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
4687 area to x_draw_glyphs instead of a window-relative coordinate.
4688
4689 * fileio.c (auto_save_error): Add parameter ERROR. Show the
4690 error in the message.
4691
4692 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
4693 timer after having read a key. It's not good for code reading
4694 several keys in a loop, like an input method.
4695
4696 * fileio.c (Finsert_file_contents): When VISIT is t, don't
4697 record undo information for format-decode.
4698
4699 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
4700 current buffer is read-only, not if it isn't.
4701
4702 * keyboard.c (record_char): Record `help-echo' input events
4703 in recent_keys only if they display some help. Don't record
4704 `help-echo' events as macro char.
4705
4706 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4707
4708 * editfns.c (save_excursion_restore): Don't move point
4709 in another window if it is showing the wrong buffer.
4710 Avoid the call to Fwindow_live_p, for speed.
4711
4712 2000-12-04 Kenichi Handa <handa@etl.go.jp>
4713
4714 * xfaces.c (struct font_name): New member registry_priority.
4715 (split_font_name): Initialize the above member to zero.
4716 (concat_font_list): New function.
4717 (font_list): Include fonts of all alternative registries.
4718 (FONT_POINT_SIZE_QUANTUM): New macro.
4719 (better_font_p): Ignore point size difference less than
4720 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
4721
4722 * xterm.c (x_produce_glyphs): If a font for a component of
4723 a composition is not found, use 1 pixel dot ascent and 0 dot
4724 descent value to avoid displaying terribly tall empty boxes.
4725
4726 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
4727
4728 2000-12-03 Ken Raeburn <raeburn@gnu.org>
4729
4730 * coding.h (code_convert_string1): Declare.
4731
4732 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
4733
4734 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
4735
4736 2000-12-02 Jason Rumney <jasonr@gnu.org>
4737
4738 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
4739 correctly for single byte character case.
4740 (w32_per_char_metric): Do not try to make any assumptions about
4741 the metrics of BDF fonts.
4742 (x_estimate_mode_line_height): If `mode-line' face
4743 hasn't a font, use that of the frame, as drawing glyphs does.
4744 (note_mouse_highlight): Change the cursor shape on the vertical
4745 border between windows [not enabled].
4746
4747 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
4748
4749 * w32fns.c (Fx_create_frame): Reintroduce the call to
4750 face-set-after-frame-defaults.
4751 (Vx_window_horizontal_drag_shape): New variable.
4752 (syms_of_xfns): DEFVAR_LISP it.
4753 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
4754 enabled].
4755
4756 2000-12-02 Simon Josefsson <simon@josefsson.org>
4757
4758 * fns.c (Fmd5): Use a different logic to decide the coding system
4759 to use.
4760
4761 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
4762
4763 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
4764
4765 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
4766
4767 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4768
4769 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
4770 height for YNegative.
4771 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
4772 height; also see comment there.
4773
4774 * window.c (coordinates_in_window): Handle computations for
4775 positions on the vertical bar and fringes differently for
4776 window-system frames. Consider some pixels near the vertical bar
4777 as on the bar if the frame doesn't have vertical scroll bars.
4778 Associate positions between mode or header lines with the
4779 right window, the left one.
4780
4781 2000-12-01 Jason Rumney <jasonr@gnu.org>
4782
4783 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
4784
4785 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
4786 invalid frame.
4787
4788 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4789
4790 * window.c (struct saved_window): Add members orig_top and orig_height.
4791 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
4792 (save_window_save, Fset_window_configuration): Save/restore
4793 window's orig_top and orig_height.
4794
4795 2000-12-01 Jason Rumney <jasonr@gnu.org>
4796
4797 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
4798
4799 * w32fns.c (x_set_cursor_color): Fix last change.
4800
4801 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4802
4803 * xdisp.c (echo_area_display): If cursor is in the echo area, make
4804 sure that the next redisplay displays the minibuffer, so that
4805 the cursor will be replaced with what the minibuffer wants.
4806
4807 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
4808 #ifndef instead of using #if.
4809 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
4810 USE_TOOLKIT_SCROLL_BARS is defined.
4811
4812 2000-11-30 Jason Rumney <jasonr@gnu.org>
4813
4814 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
4815 x_display_cursor.
4816
4817 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4818
4819 * fns.c (Fmd5): Doc fix.
4820
4821 2000-11-30 Simon Josefsson <simon@josefsson.org>
4822
4823 * fns.c (Fmd5): New function.
4824 (syms_of_fns): Defsubr md5.
4825
4826 * Makefile.in (obj): Add md5.o
4827
4828 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4829
4830 * md5.h, md5.c: New files, taken from glibc.
4831
4832 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
4833
4834 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
4835 hasn't a font, use that of the frame, as drawing glyphs does.
4836
4837 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
4838
4839 * eval.c (Frun_hooks): Allow 0 arguments.
4840
4841 2000-11-29 Gerd Moellmann <gerd@gnu.org>
4842
4843 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
4844 is over the menu bar widget, say it's not on the frame.
4845
4846 * xfns.c (Fx_create_frame): Reintroduce the call to
4847 face-set-after-frame-defaults.
4848
4849 * eval.c (Fsignal): Reset handling_signal.
4850
4851 2000-11-28 Jason Rumney <jasonr@gnu.org>
4852
4853 * w32menu.c (add_menu_item): Reset menu item text when changing
4854 type to radio button.
4855
4856 2000-11-28 Gerd Moellmann <gerd@gnu.org>
4857
4858 * xselect.c: Update copyright.
4859
4860 * window.c (coordinates_in_window): If on a mode or header line,
4861 but sufficiently close to its start, return ``on vertical
4862 border''. This gives us a way to drag windows horizontally when
4863 using toolkit scroll bars.
4864
4865 * xterm.c (note_mouse_highlight): Change the cursor shape
4866 on the vertical border between windows.
4867
4868 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
4869
4870 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
4871 (syms_of_xfns): DEFVAR_LISP it.
4872 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
4873
4874 * textprop.c (text_read_only): New function.
4875 (verify_interval_modification): Use it instead of signaling
4876 `text-read-only'. This makes it easier to catch this error
4877 with a breakpoint.:
4878
4879 * xdisp.c (forward_to_next_line_start): Check for newlines,
4880 not end of line, which includes CR.
4881
4882 2000-11-28 Kenichi Handa <handa@etl.go.jp>
4883
4884 * coding.c (Ffind_coding_systems_region_internal): Be sure to
4885 include no-conversion.
4886
4887 2000-11-27 Jason Rumney <jasonr@gnu.org>
4888
4889 * w32fns.c (w32_load_system_font): Always mark font as double byte
4890 if codepage is unicode.
4891
4892 2000-11-27 Gerd Moellmann <gerd@gnu.org>
4893
4894 * xdisp.c (forward_to_next_line_start): If already on a newline,
4895 just consume it to avoid unintended skipping over invisible text below.
4896
4897 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
4898 `vertical-line', `mode-line' and `header-line' events.
4899
4900 * xdisp.c (try_window_id): Avoid starting to display in the middle
4901 of a character, a TAB for instance. This is easier than to set
4902 up the iterator exactly, and it's not a frequent case, so the
4903 additional effort wouldn't really pay off.
4904
4905 2000-11-26 Andrew Choi <akochoi@i-cable.com>
4906
4907 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
4908 init_window_once.
4909
4910 2000-11-25 Jason Rumney <jasonr@gnu.org>
4911
4912 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
4913 Args to window_from_coordinates should be pixel coordinates.
4914
4915 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
4916 redisplay handles them properly.
4917
4918 2000-11-25 Miles Bader <miles@gnu.org>
4919
4920 * indent.c (compute_motion): Keep pos_byte in sync with pos.
4921
4922 2000-11-24 Jason Rumney <jasonr@gnu.org>
4923
4924 * w32.c (init_environment): Set LANG environment variable based on
4925 locale settings, if not set.
4926
4927 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
4928 making tool bar smaller. When clearing the frame, also
4929 clear current matrices. Clear frame when tool bar disappears.
4930 Don't use more lines for the tool-bar than is available.
4931 (x_change_window_heights): New function.
4932
4933 2000-11-24 Gerd Moellmann <gerd@gnu.org>
4934
4935 * xdisp.c (init_from_display_pos): If POS says we're already after
4936 an overlay string ending at POS, make sure to pop the iterator
4937 because it will be in front of that overlay string. When POS is
4938 ZV, we've thereby also ``processed'' overlay strings at ZV.
4939
4940 * xfaces.c (lface_from_face_name): Function comment fix.
4941
4942 2000-11-24 Miles Bader <miles@gnu.org>
4943
4944 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
4945 apply `mode-line-inverse-video' -- zero means force display using
4946 the default face, non-zero means display using the specialized face.
4947 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
4948
4949 2000-11-23 Kenichi Handa <handa@etl.go.jp>
4950
4951 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
4952 hard coded `4'.
4953
4954 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
4955
4956 * coding.c (decode_coding_emacs_mule): Fix the case of
4957 CODING_EOL_LF, which used uninitialized value of c.
4958
4959 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
4960
4961 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
4962
4963 2000-11-22 Gerd Moellmann <gerd@gnu.org>
4964
4965 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
4966 buffer object.
4967
4968 * frame.h (struct frame): Replace desired_tool_bar_items,
4969 current_tool_bar_items, n_desired_tool_bar_items,
4970 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
4971
4972 * frame.c (make_frame): Change initialization of tool bar
4973 items accordingly.
4974
4975 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
4976 Change references to members deleted from struct frame to use the
4977 new ones.
4978
4979 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
4980 references to members deleted from struct frame to use the new ones.
4981
4982 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
4983
4984 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
4985
4986 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
4987 (note_tool_bar_highlight): Change references to members deleted
4988 from struct frame to use the new ones.
4989
4990 2000-11-23 Miles Bader <miles@gnu.org>
4991
4992 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
4993 the face's inverse-video attribute, rather than overriding it.
4994
4995 2000-11-22 Gerd Moellmann <gerd@gnu.org>
4996
4997 * xfns.c (x_set_tool_bar_lines): Clear internal border when
4998 making tool bar smaller.
4999
5000 2000-11-22 Dave Love <fx@gnu.org>
5001
5002 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
5003
5004 2000-11-22 Miles Bader <miles@gnu.org>
5005
5006 * keyboard.c (Vminibuffer_message_timeout): New variable.
5007 (command_loop_1): Use it to determine message timeout.
5008 (syms_of_keyboard): Initialize it.
5009
5010 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
5011
5012 2000-11-22 Kenichi Handa <handa@etl.go.jp>
5013
5014 * sysdep.c: Move the code for declaring h_errno after #include
5015 <netdb.h>.
5016
5017 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5018
5019 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
5020 the menu bar when the tooltip is unmapped.
5021
5022 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
5023 sole visible buffer when we're currently in the mini-buffer, and
5024 give up if so.
5025
5026 2000-11-21 Jason Rumney <jasonr@gnu.org>
5027
5028 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
5029 put on the clipboard.
5030 (Fw32_get_clipboard_data): Compare data on clipboard with saved
5031 copy of what Emacs last put there. If they are the same, do not
5032 use the clipboard copy to avoid losing data due to coding conversions.
5033
5034 2000-11-22 Miles Bader <miles@gnu.org>
5035
5036 * minibuf.c (Vminibuffer_prompt_properties): New variable.
5037 (syms_of_minibuf): Initialize it.
5038 (read_minibuf): Add properties from Vminibuffer_prompt_properties
5039 to prompt, don't make read-only.
5040
5041 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5042
5043 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
5044 Add BEFORE/AFTER_POTENTIAL_GC.
5045
5046 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
5047
5048 * buffer.c (mmap_free_1): Avoid a compiler warning.
5049
5050 * term.c, cm.c: Don't try to include termcap.h; see comment there.
5051
5052 2000-11-21 Kenichi Handa <handa@etl.go.jp>
5053
5054 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
5055 ... #endif scope.
5056
5057 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5058
5059 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
5060 screen supports it.
5061
5062 * s/gnu-linux.h: Don't use `#cpu'.
5063
5064 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
5065 not defined in mman.h.
5066
5067 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
5068 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
5069 and store an index in the XClientMessageEvent. Storing a
5070 Lisp_Object or pointer can fail on a 64 bit system, since X only
5071 transfers 32 bits.
5072 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
5073
5074 2000-11-20 Dave Love <fx@gnu.org>
5075
5076 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
5077
5078 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5079
5080 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
5081
5082 2000-11-20 Kenichi Handa <handa@etl.go.jp>
5083
5084 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
5085 by WIDTH.
5086
5087 * alloc.c (make_string): Fix previous change. Be sure to make
5088 unibyte string correctly.
5089
5090 2000-11-19 Gerd Moellmann <gerd@gnu.org>
5091
5092 * window.c (Fwindow_list): Change parameter list to be XEmacs
5093 compatible.
5094 (window_list_1): New function.
5095 (window_loop): Use it instead of Fwindow_list.
5096
5097 * sysdep.c (emacs_ospeed): New variable.
5098 (toplevel): Don't declare ospeed extern.
5099 (init_baud_rate): Use emacs_ospeed instead of ospeed.
5100
5101 * termcap.c (ospeed): Remove.
5102 (tputs) [!emacs]: Remove unused code.
5103 (tgetent): Avoid a compiler warning.
5104
5105 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
5106 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
5107 SCROLL_BAR_X_WIDGET with additional argument DPY.
5108
5109 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
5110 removed.
5111 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
5112 Take the X display as additional argument.
5113 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
5114 `Widget' is a pointer type that's not easily stored in Lisp_Object
5115 form in a portable way.
5116
5117 * dispnew.c (update_text_area): Fix last change.
5118
5119 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5120
5121 * xdisp.c: Use BINDING_STACK_SIZE throughout.
5122
5123 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
5124 clear current matrices.
5125
5126 * buffer.c (mmap_enlarge): Don't print a message on stderr
5127 if mapping new memory at the end of the existing region fails.
5128
5129 * dispnew.c (update_text_area): Don't skip over equal glyphs
5130 when the last current glyph overlaps the glyph to its right.
5131
5132 2000-11-18 Miles Bader <miles@gnu.org>
5133
5134 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
5135 lines that *end* with "..." too (that's the most common case!).
5136
5137 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5138
5139 * xdisp.c (resize_mini_window): Temporarily change to the
5140 mini-window's buffer if necessary.
5141
5142 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
5143 the tooltip obscures less text under it.
5144
5145 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5146
5147 * puresize.h (BASE_PURESIZE): Increase to 700000.
5148
5149 2000-11-18 Jason Rumney <jasonr@gnu.org>
5150
5151 * w32term.c (w32_draw_bitmap): Use face to set colors.
5152
5153 2000-11-17 Dave Love <fx@gnu.org>
5154
5155 * lread.c (Fload): Fix #ifdef for pcc.
5156
5157 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5158
5159 * xdisp.c (pos_visible_p): Compute the default character height
5160 differently.
5161
5162 2000-11-16 Gerd Moellmann <gerd@gnu.org>
5163
5164 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
5165 knowing the line's height; use the default font's height in that case.
5166
5167 * xfaces.c (weight_table): Add `demi' with the same meaning as
5168 `demibold'.
5169
5170 2000-11-16 Kenichi Handa <handa@etl.go.jp>
5171
5172 * dispnew.c (null_row): New global static variable.
5173 (clear_glyph_row): Delete local static variable null_row.
5174
5175 2000-11-15 Jason Rumney <jasonr@gnu.org>
5176
5177 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
5178 (w32_alloc_lighter_color): Use new brightness calculations from
5179 xterm.c. Scale delta to be in the range expected by W32.
5180 (w32_draw_relief_rect): Use frame relief colors.
5181
5182 2000-11-15 Gerd Moellmann <gerd@gnu.org>
5183
5184 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
5185 (Qinhibit_default_face_x_resources): New variable.
5186 (syms_of_frame): Initialize it.
5187 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
5188
5189 * xdisp.c (pos_visible_p): Improve function comment.
5190
5191 * lisp.h (BINDING_STACK_SIZE): New macro.
5192
5193 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
5194 reading the directory if readdir returns null and errno is EAGAIN
5195 or EINTR.
5196
5197 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
5198
5199 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
5200 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
5201 Set amount_to_scroll to max of dx and scroll_step so that
5202 scroll-conservatively doesn't defeat scroll-step>1.
5203 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
5204 scroll-conservatively for line-at-a-time scrolling.
5205
5206 2000-11-14 Gerd Moellmann <gerd@gnu.org>
5207
5208 * window.c (Fpos_visible_in_window_p): Call pos_visible with
5209 extra argument.
5210
5211 * xdisp.c (current_mode_line_height, current_header_line_height):
5212 New variables.
5213 (init_xdisp): Initialize them.
5214 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
5215 and use exact mode line heights if it is set.
5216
5217 * lisp.h (pos_visible_p): Change prototype.
5218
5219 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
5220 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
5221 and current_header_line_height first.
5222 (current_mode_line_height, current_header_line_height):
5223 Declare extern.
5224
5225 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
5226
5227 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
5228 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
5229 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
5230
5231 2000-11-14 Miles Bader <miles@gnu.org>
5232
5233 * xterm.c (x_alloc_lighter_color): Include an additive component
5234 too for dark colors, because FACTOR isn't enough.
5235 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
5236 New macros.
5237
5238 2000-11-13 Gerd Moellmann <gerd@gnu.org>
5239
5240 * keyboard.c (show_help_echo): Call message3_nolog with number of
5241 bytes in the help string as 2nd parameter, instead of the number
5242 of characters.
5243
5244 2000-11-13 Miles Bader <miles@gnu.org>
5245
5246 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
5247 (Fload): Use new openp return protocol.
5248 Don't try to use Vload_source_file_function to load .elc files.
5249 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
5250 openp return protocol.
5251 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
5252
5253 2000-11-11 Kenichi Handa <handa@etl.go.jp>
5254
5255 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
5256
5257 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
5258 Defined these macros.
5259 (NLIST_STRUCT): Avoid re-defining it.
5260
5261 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
5262 -I/usr/contrib/X11R6/include.
5263 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
5264
5265 2000-11-10 Jason Rumney <jasonr@gnu.org>
5266
5267 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
5268
5269 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
5270 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
5271
5272 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
5273 (Qw32_charset_vietnamese): New symbol.
5274 (xlfd_charset_of_font): New function.
5275 (w32_load_system_font): Use it.
5276 (x_to_w32_charset): Use Fassoc to find charset info. Special case
5277 when Vw32_charset_info_alist is nil to ensure default face always
5278 has font. Use Fcar and Fcdr for safety.
5279 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
5280 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
5281 pseudo-codepages for special cases.
5282 (w32_to_x_font): New parameter to allow charset portion to be
5283 specified where there is many to one mapping. Callers changed.
5284 (w32_list_fonts): Avoid listing fonts that won't display.
5285
5286 2000-11-10 Gerd Moellmann <gerd@gnu.org>
5287
5288 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
5289 (font_list_1): Renamed from font_list.
5290 (font_list): New function, trying alternative registries from
5291 Vface_alternative_font_registry_alist.
5292 (Finternal_set_alternative_font_registry_alist): New function.
5293 (syms_of_xfaces): Initialize and Staticpro
5294 Vface_alternative_font_registry_alist.
5295 Defsubr Finternal_set_alternative_font_registry_alist.
5296
5297 2000-11-09 Ken Raeburn <raeburn@gnu.org>
5298
5299 * lisp.h (Flooking_at): Declare.
5300
5301 2000-11-09 Gerd Moellmann <gerd@gnu.org>
5302
5303 * dired.c (directory_files_internal): Fix a braino.
5304
5305 * dired.c (directory_files_internal): Add missing GCPRO's.
5306 Some cleanup.
5307
5308 2000-11-08 Gerd Moellmann <gerd@gnu.org>
5309
5310 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
5311 (resize_mini_window): Return quickly if Vresize_mini_window is
5312 nil. Don't return if Vmax_mini_window_height is nil.
5313
5314 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
5315 (syms_of_xdisp): Initialize them.
5316 (resize_mini_window): Act according to the setting of
5317 Vresize_mini_window.
5318 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
5319
5320 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
5321 scroll bar widget after configuring it, so that it will appear at
5322 the right position from the start.
5323 (XTredeem_scroll_bar): Cleaned up.
5324
5325 2000-11-08 Kenichi Handa <handa@etl.go.jp>
5326
5327 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5328 font is taller than the frame line, we don't have to bias the
5329 division by two.
5330
5331 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
5332
5333 2000-11-07 Dave Love <fx@gnu.org>
5334
5335 * config.in (HAVE_MKSTEMP): Add.
5336
5337 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
5338
5339 2000-11-07 Gerd Moellmann <gerd@gnu.org>
5340
5341 * window.c (Fset_window_configuration): Don't try to preserve
5342 point in the current buffer, if that buffer is displayed in more
5343 than one window.
5344
5345 * xfaces.c (lookup_named_face): If default face isn't realized,
5346 try to realize it. Return -1 if not successful.
5347 (Fx_list_fonts): Handle case that face cannot be determined.
5348 (Fface_font): Likewise.
5349
5350 2000-11-06 Gerd Moellmann <gerd@gnu.org>
5351
5352 * window.c (displayed_window_lines): Detect partially
5353 visible lines at the bottom correctly.
5354
5355 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
5356
5357 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
5358 when ensuring we don't do visit in indirect buffer.
5359
5360 2000-11-06 Kenichi Handa <handa@etl.go.jp>
5361
5362 * composite.h (compose_chars_in_text): Add prototype.
5363
5364 * composite.c (Vcomposition_function_table): New variable.
5365 (Qcomposition_function_table): New variable.
5366 (run_composition_function): Call
5367 Vcompose_chars_after_function with three arguments.
5368 (compose_chars_in_text): New function.
5369 (syms_of_composite): Modified the doc-string of
5370 Vcompose_chars_after_function. Declare composition-function-table
5371 as a lisp variable, and initialize it.
5372
5373 * xfns.c (x_encode_text): Suppress producing escape sequences for
5374 composition.
5375
5376 * xselect.c: Include composite.h.
5377 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
5378
5379 2000-11-05 Andrew Innes <andrewi@gnu.org>
5380
5381 * w32term.c (x_produce_glyphs): Fix typo in enum name.
5382
5383 * sysdep.c (read_input_waiting): Remove extraneous argument to
5384 read_socket_hook.
5385
5386 * w32fns.c (Fx_server_version): Include w32_build_number in the
5387 return list.
5388
5389 * w32heap.c (w32_build_number): New variable.
5390 (cache_system_info): Set it.
5391
5392 * w32heap.h (w32_build_number): Add extern.
5393
5394 * emacs.c (syms_of_emacs): Update docstring for
5395 system-configuration, to reflect the actual usage on MS-Windows.
5396
5397 2000-10-31 Gerd Moellmann <gerd@gnu.org>
5398
5399 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
5400 process idle timers while waiting for another event.
5401
5402 * dispnew.c (update_frame_line): Handle case where spaces in
5403 the default face are colored.
5404
5405 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
5406 window height hasn't changed.
5407
5408 2000-10-31 Jason Rumney <jasonr@gnu.org>
5409
5410 * w32term.c (x_produce_glyphs): Handle composite characters.
5411 (x_draw_glyph_string_foreground)
5412 (x_draw_composite_glyph_string_foreground): Restore old font.
5413
5414 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
5415
5416 * minibuf.c (read_minibuf): Reset the undo history just before
5417 starting the recursive-edit.
5418
5419 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5420
5421 * xfaces.c (menu_face_change_count): New variable.
5422 (Finternal_set_lisp_face_attribute): Increment it for changes
5423 of the `menu' face.
5424 (realize_basic_faces): Reflect changes in the `menu' faces
5425 in menu bars.
5426
5427 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
5428 dy obtained from the iterator's y-position after moving from
5429 scroll_margin_pos to PT; see comment there.
5430
5431 * xdisp.c (safe_eval_handler): Call add_to_log.
5432
5433 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
5434 is not a symbol or string.
5435
5436 * xdisp.c (echo_area_display): Don't perform a display update from
5437 inside redisplay. The update will happen anyway at the end of
5438 redisplay, and it can confuse redisplay (GC messages while
5439 redisplaying, for instance.)
5440
5441 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
5442
5443 * xrdb.c (x_load_resources): Use the class name in the defaults.
5444
5445 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
5446 (regex_compile): Catch bogus \(\1\).
5447
5448 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5449
5450 * xterm.c (x_alloc_nearest_color): Fix last change to compare
5451 RGB values.
5452
5453 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
5454 we have a color cache, check that the cached color equals the
5455 allocated color. If not, clear the color cache.
5456
5457 * window.c (displayed_window_lines): Change buffers if necessary.
5458 Fix computation of displayed lines.
5459
5460 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
5461 update_menu_bindings to DEFVAR_BOOL.
5462
5463 2000-10-30 Kenichi Handa <handa@etl.go.jp>
5464
5465 * search.c (Fset_match_data): Be sure to make search_regs always sane.
5466
5467 * puresize.h (BASE_PURESIZE): Increase to 680000.
5468
5469 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
5470
5471 2000-10-29 Jason Rumney <jasonr@gnu.org>
5472
5473 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
5474
5475 * w32term.c (w32_bdf_per_char_metric): Negate descent.
5476 (w32_cache_char_metrics): Handle possibility that 'x' does not
5477 exist in a BDF font.
5478 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
5479
5480 * w32bdf.h (bdffont): Add nchars.
5481
5482 * w32bdf.c (set_bdf_font_info): Set it.
5483 (w32_BDF_TextOut): Swap byte order of double byte characters.
5484 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
5485
5486 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
5487
5488 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
5489 don't override the colors in frame's param_alist, unless they are
5490 unspecified.
5491
5492 * term.c (reassert_line_highlight): If inverse_video is non-zero,
5493 reverse the effect of the highlight flag.
5494
5495 2000-10-27 Ken Raeburn <raeburn@gnu.org>
5496
5497 * window.h (Fwindow_live_p): Declare.
5498
5499 * undo.c (record_delete): Check that last_undo_buffer is really a
5500 buffer before applying XBUFFER to it.
5501
5502 * keymap.c (where_is_internal): Pass lisp object, not integer, to
5503 Faref.
5504
5505 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5506
5507 * lisp.h (KEYMAPP): New macro.
5508 (get_keymap): Remove.
5509 (get_keymap_1): Rename get_keymap.
5510
5511 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
5512
5513 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
5514
5515 * xmenu.c (single_submenu): Use KEYMAPP.
5516 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5517 Use KEYMAPP rather than Fkeymapp.
5518
5519 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
5520
5521 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
5522 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5523 Use KEYMAPP rather than Fkeymapp.
5524 (single_submenu): Use KEYMAPP.
5525 (w32_menu_show, w32_dialog_show): Use TRUE.
5526
5527 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
5528
5529 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
5530 (Fkeymapp): Use KEYMAPP.
5531 (get_keymap): Rename from get_keymap_1. Remove old def.
5532 Return t when autoload=0 and error=0 and the keymap needs autoloading.
5533 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
5534 (Fminor_mode_key_binding): Don't raise an error if the binding
5535 is not a keymap.
5536 (Fuse_global_map, Fuse_local_map): Allow autoloading.
5537 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
5538
5539 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
5540 Allow Vspecial_event_map to be autoloaded.
5541 (menu_bar_items): Fetch the keymap rather than using keymapp.
5542 (menu_bar_one_keymap): No need to follow func-indirect any more.
5543 (parse_menu_item): get_keymap_1 -> get_keymap.
5544 (tool_bar_items): Fetch the keymap rather than using keymapp.
5545 (read_key_sequence): Use KEYMAPP.
5546
5547 * intervals.c (get_local_map): Use get_keymap rather than following
5548 function-indirections explicitly.
5549
5550 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
5551
5552 2000-10-27 Jason Rumney <jasonr@gnu.org>
5553
5554 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
5555 point, as Windows has oversized fonts.
5556
5557 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
5558
5559 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5560
5561 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
5562 (freehook, reallochook): Handle null pointer arguments.
5563 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
5564
5565 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5566
5567 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
5568 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
5569 Giving in to popular pressure to shut up the compiler with casts.
5570
5571 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5572
5573 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
5574 signed value, and use a default value computed from the font's
5575 maximum descent.
5576
5577 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
5578
5579 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
5580 that specify a negative underline position can still use underlines.
5581
5582 * window.c (Fpos_visible_in_window_p): Make POS default to
5583 WINDOW's point, not the current buffer's point.
5584
5585 2000-10-26 Dave Love <fx@gnu.org>
5586
5587 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
5588 when it's necessary.
5589
5590 2000-10-26 Gerd Moellmann <gerd@gnu.org>
5591
5592 * window.c (size_window): Compute size difference from sum of old
5593 child window sizes instead of from parent's size.
5594
5595 * xdisp.c (pos_visible_p): Change current buffer if necessary.
5596 Handle obscured lines at the top of the window.
5597
5598 * frame.c (Fdelete_frame): Doc fix. Move running the hook
5599 down after the last error condition check.
5600
5601 * frame.c (Fdelete_frame): Run delete-frame-hook.
5602
5603 2000-10-26 Kenichi Handa <handa@etl.go.jp>
5604
5605 * coding.c (decode_coding): Fix previous change (check also
5606 CODING_MODE_LAST_BLOCK).
5607
5608 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5609
5610 * regex.c: More `unsigned char' -> `re_char' changes.
5611 Also change several `int' into `re_wchar_t'.
5612 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
5613 (PUSH_FAILURE_POINTER): Don't cast any more.
5614 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
5615 We want GCC to complain, since this piece of code makes
5616 re_match non-reentrant, which *should* be fixed.
5617 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
5618 (EXTEND_BUFFER): Use RETALLOC.
5619 (SET_LIST_BIT): Don't cast.
5620 (re_wchar_t): New type.
5621 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
5622 that those two functions will always properly return.
5623 (IMMEDIATE_QUIT_CHECK): Cast to void.
5624 (analyse_first): Use recursion rather than an explicit stack.
5625 (re_compile_fastmap): Can't fail anymore.
5626 (re_search_2): Don't check re_compile_fastmap for failure.
5627 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
5628 Now also sets the new value (passed in a new argument).
5629 (re_match_2_internal): Use it.
5630 Also, use a new var `reg' of type size_t when looping through regs
5631 rather than reuse the inappropriate `mcnt'.
5632
5633 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
5634 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
5635 (where_is_internal): Renamed from Fwhere_is_internal.
5636 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
5637 (Fwhere_is_internal): New function wrapping where_is_internal.
5638 (where_is_internal_1): Handle the case where we're filling the cache.
5639 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
5640
5641 2000-10-25 Miles Bader <miles@gnu.org>
5642
5643 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
5644
5645 2000-10-25 Gerd Moellmann <gerd@gnu.org>
5646
5647 * window.c (pos_fully_visible_p): Removed.
5648 (Fpos_visible_in_window_p): Use pos_visible_p to determine
5649 if position is visible and/or fully visible.
5650
5651 * lisp.h (pos_visible_p): Add prototype.
5652
5653 * xdisp.c (pos_visible_p): New function.
5654
5655 2000-10-25 Kenichi Handa <handa@etl.go.jp>
5656
5657 * process.c (send_process): If OBJECT is t, it means that the data
5658 is from C string, but we should encode it. Before calling
5659 setup_raw_text_coding_system, be sure to flush out data by the
5660 previous coding system.
5661
5662 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
5663
5664 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
5665 assignment of startpos to prev when startpos == pos.
5666
5667 * editfns.c (find_field): Set the field stickiness correctly from
5668 overlay fields. Use renamed `text_property_stickiness'.
5669 (text_property_stickiness): Renamed from `char_property_stickiness'.
5670 Only check text properties, not overlays.
5671 * textprop.c (get_char_property_and_overlay): New function.
5672 (Fget_char_property): Use it.
5673 * intervals.h (get_char_property_and_overlay): Add declaration.
5674
5675 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5676
5677 * keymap.c: Use AREF, ASET and ASIZE macros.
5678 (Fmake_sparse_keymap): Docstring fix.
5679 (synkey): Remove.
5680 (shadow_lookup): Move up.
5681 Handle the case where lookup-key returns an integer.
5682 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
5683 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
5684 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
5685 Simplify/rewrite the keymap-finding code.
5686 Add check for command shadowing, using shadow_lookup.
5687
5688 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
5689
5690 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
5691 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
5692 a symbol.
5693
5694 2000-10-24 Andrew Innes <andrewi@gnu.org>
5695
5696 * dired.c (directory_files_internal_unwind): New function.
5697 (directory_files_internal): Use it to ensure closedir is called
5698 even if expand-file-name or file-attributes throw, eg. because of
5699 a user interrupt. Also enable immediate_quit while calling
5700 re_search, so that matching can be interrupted as well.
5701
5702 2000-10-24 Andrew Innes <andrewi@gnu.org>
5703
5704 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
5705 NT-Emacs only.
5706 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
5707 so that re_search functions only quit when callers expect them to.
5708
5709 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5710
5711 * regex.c (regex_compile): Change the way of handling a range from
5712 a char less than 256 to a char not less than 256.
5713
5714 2000-10-24 Gerd Moellmann <gerd@gnu.org>
5715
5716 * window.c (size_window): Prevent setting window's width or
5717 height to a negative value (esp. with XSETFASTINT).
5718
5719 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
5720 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
5721 (protect_malloc_state) [GC_MALLOC_CHECK &&
5722 GC_PROTECT_MALLOC_STATE]: New function.
5723 (PROTECT_MALLOC_STATE): New macro.
5724 (__malloc_initialize, morecore, _malloc_internal)
5725 (_free_internal) _realloc_internal): Use it to make _heapinfo
5726 read-only outside of gmalloc.
5727
5728 * keymap.c: Update copyright.
5729
5730 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
5731 a symbol.
5732
5733 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
5734
5735 * filelock.c (unlock_all_files): Use unlock_file to expand each
5736 buffer's file_truename before trying remove its lock file.
5737
5738 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
5739
5740 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
5741 or CRLF, decode EOLs.
5742
5743 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5744
5745 * window.c (Fdisplay_buffer): Fix doc.
5746
5747 2000-10-23 Jason Rumney <jasonr@gnu.org>
5748
5749 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
5750 ASCII font of default fontset on Windows.
5751
5752 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
5753 xterm.c comment below).
5754
5755 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
5756
5757 2000-10-23 Gerd Moellmann <gerd@gnu.org>
5758
5759 * xterm.c (x_connection_closed): Reset handling_signal.
5760
5761 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
5762
5763 2000-10-23 Miles Bader <miles@gnu.org>
5764
5765 * window.c (window_scroll_pixel_based, window_scroll_line_based):
5766 Pass nil for FULLY argument to Fpos_visible_in_window_p to
5767 maintain old behavior.
5768 * minibuf.c (Fminibuffer_complete): Likewise.
5769
5770 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
5771
5772 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
5773 that when a font can't be exactly centered, it errs up rather than
5774 down.
5775
5776 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
5777
5778 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
5779
5780 2000-10-23 Andrew Choi <akochoi@i-cable.com>
5781
5782 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
5783
5784 * dispnew.c [macintosh]: Include macterm.h.
5785 (init_display) [macintosh]: Initialization for window system.
5786
5787 * emacs.c (main) [macintosh]: Call syms_of_textprop,
5788 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
5789 syms_of_search, x_term_init, and init_keyboard before calling
5790 init_window_once. Also, call syms_of_xmenu.
5791
5792 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
5793 default fontset to Monaco.
5794
5795 * frame.c [macintosh]: Include macterm.h. Remove declarations of
5796 NewMacWindow and DisposeMacWindow.
5797 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
5798 instead of calling NewMacWindow and setting fields of
5799 f->output_data.mac directly. Call init_frame_faces.
5800 (Fdelete_frame) [macintosh]: Remove unused code.
5801 (Fmodify_frame_parameters) [macintosh]: Call
5802 x_set_frame_parameters instead of mac_set_frame_parameters.
5803
5804 * frame.h [macintosh]: Define menu_bar_lines field in struct
5805 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
5806
5807 * keyboard.c [macintosh]: Include macterm.h.
5808 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
5809 and menu_bar_activate_event type events as for X and NT.
5810 (make_lispy_event) [macintosh]: Construct lisp events of type
5811 MENU_BAR_EVENT as for X and NT.
5812
5813 * sysdep.c [macintosh]: Remove declaration for sys_signal.
5814 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
5815 (sys_subshell) [macintosh]: Remove definition entirely.
5816 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
5817 Vwindow_system_version here. Remove initialization of
5818 Vx_bitmap_file_path.
5819 (read_input_waiting): Correct the number of parameters passed to
5820 read_socket_hook.
5821 Move all Macintosh functions to mac/mac.c.
5822
5823 * term.c [macintosh]: Include macterm.h.
5824
5825 * window.c [macintosh]: Include macterm.h.
5826
5827 * xdisp.c [macintosh]: Include macterm.h. Declare
5828 set_frame_menubar and pending_menu_activation.
5829 (echo_area_display) [macintosh]: Do not return if terminal frame
5830 is the selected frame.
5831 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
5832 Allow only the selected frame to set menu bar.
5833 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
5834 calling FRAME_EXTERNAL_MENU_BAR (f).
5835 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
5836
5837 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
5838 and check_x. Declare XCreateGC. Define x_create_gc and
5839 x_free_gc. Initialize font_sort_order.
5840 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
5841 but call x_list_fonts instead of w32_list_fonts.
5842 (Finternal_face_x_get_resource) [macintosh]: Do not call
5843 display_x_get_resource.
5844 (prepare_face_for_display) [macintosh]: Set xgcv.font.
5845 (realize_x_face) [macintosh]: Load the font if it is specified in
5846 ATTRS.
5847 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
5848
5849 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
5850
5851 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
5852 is nil: since we go to the end of submap anyway, we'd end up
5853 setting nil to nil.
5854 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
5855 doesn't obey autoload.
5856
5857 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5858
5859 * msdos.c (dos_set_window_size): Update screen dimension variables.
5860
5861 2000-10-21 Jason Rumney <jasonr@gnu.org>
5862
5863 * w32term.c (w32_cache_char_metrics): Double check that font is
5864 really fixed pitch before trusting tmPitchAndFamily.
5865
5866 2000-10-21 Andrew Innes <andrewi@gnu.org>
5867
5868 * w32gui.h (w32_char_font_type): Move enum from w32term.c
5869
5870 * w32term.h: Extern decl for w32_cache_char_metrics.
5871
5872 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
5873
5874 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
5875 (w32_unload_font): Free per_char array if present.
5876
5877 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
5878 cached information in emulated XFontStruct to handle common cases
5879 quickly. Do not allocate XCharStruct for return.
5880 (w32_native_per_char_metric): New function.
5881 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
5882 allocating one.
5883 (x_produce_glyphs): Don't get an HDC. Change calls to
5884 w32_per_char_metric to match arg change above. Remove calls to
5885 free results.
5886 (w32_get_glyph_overhangs): Ditto.
5887 (w32_cache_char_metrics): New function.
5888
5889 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
5890 ($(BLD)/casefiddle.$(O)): Remove compile command.
5891 ($(BLD)/gmalloc.$(O)): Remove compile command.
5892 ($(BLD)/dispnew.obj):
5893 ($(BLD)/keyboard.obj):
5894 ($(BLD)/w32inevt.obj):
5895 ($(BLD)/w32bdf.obj):
5896 ($(BLD)/alloc.obj):
5897 ($(BLD)/buffer.obj):
5898 ($(BLD)/editfns.obj):
5899 ($(BLD)/emacs.obj):
5900 ($(BLD)/fileio.obj):
5901 ($(BLD)/fns.obj):
5902 ($(BLD)/indent.obj):
5903 ($(BLD)/insdel.obj):
5904 ($(BLD)/intervals.obj):
5905 ($(BLD)/minibuf.obj):
5906 ($(BLD)/print.obj):
5907 ($(BLD)/scroll.obj):
5908 ($(BLD)/sysdep.obj):
5909 ($(BLD)/textprop.obj):
5910 ($(BLD)/widget.obj):
5911 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
5912 ($(BLD)/term.obj): Add dependency on dispextern.h.
5913
5914 * makefile.nt ($(BLD)\dispnew.obj):
5915 ($(BLD)\keyboard.obj):
5916 ($(BLD)\w32inevt.obj):
5917 ($(BLD)\w32bdf.obj):
5918 ($(BLD)\alloc.obj):
5919 ($(BLD)\buffer.obj):
5920 ($(BLD)\editfns.obj):
5921 ($(BLD)\emacs.obj):
5922 ($(BLD)\fileio.obj):
5923 ($(BLD)\fns.obj):
5924 ($(BLD)\indent.obj):
5925 ($(BLD)\insdel.obj):
5926 ($(BLD)\intervals.obj):
5927 ($(BLD)\minibuf.obj):
5928 ($(BLD)\print.obj):
5929 ($(BLD)\scroll.obj):
5930 ($(BLD)\sysdep.obj):
5931 ($(BLD)\textprop.obj):
5932 ($(BLD)\widget.obj):
5933 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
5934 ($(BLD)\term.obj): Add dependency on dispextern.h
5935
5936 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5937
5938 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
5939 with an additional argument of Qt.
5940
5941 2000-10-21 Miles Bader <miles@gnu.org>
5942
5943 * window.c (pos_fully_visible_in_window_p): New function.
5944 (Fpos_visible_in_window_p): Add FULLY argument.
5945 Use pos_fully_visible_in_window_p.
5946 (window_scroll_pixel_based, window_scroll_line_based): Update
5947 calls to Fpos_visible_in_window_p.
5948 * lisp.h (Fpos_visible_in_window_p): Update prototype
5949
5950 2000-10-20 Gerd Moellmann <gerd@gnu.org>
5951
5952 * alloc.c (toplevel): Conditionalize compilation of mem_*
5953 functions differently.
5954
5955 2000-10-20 Jason Rumney <jasonr@gnu.org>
5956
5957 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
5958 mem_init where it used to be. mem_z etc not defined otherwise.
5959
5960 2000-10-20 Gerd Moellmann <gerd@gnu.org>
5961
5962 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
5963 GC_MALLOC_CHECK.
5964 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
5965 structure definition and related variabled to the top of the file.
5966 Include this code when GC_MALLOC_CHECK is defined.
5967 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
5968 register/unregister allocated region.
5969 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
5970 which isn't allocated.
5971 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
5972 something which is already in use.
5973 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
5974 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
5975 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
5976 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
5977
5978 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
5979 _malloc_internal instead of malloc.
5980 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
5981 of free.
5982
5983 2000-10-20 Andrew Innes <andrewi@gnu.org>
5984
5985 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
5986 Windows.
5987 (my_strftime) <macro>: Don't use macro arg list when redefining as
5988 _strftime_copytm.
5989 (my_strftime) <function>: Supply 0 as ut argument.
5990
5991 2000-10-19 Jason Rumney <jasonr@altavista.net>
5992
5993 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
5994 including dispextern.h, as it stops faces from working.
5995
5996 * w32fns.c (Fx_create_frame): Don't bother calling
5997 face-set-after-frame-default since the caller does it for us
5998 anyway. Clean up calls to x_get_arg to be consistent with X.
5999
6000 * w32term.c (x_produce_glyphs): Handle
6001 unibyte_display_via_language_environment correctly.
6002 (w32_draw_box_rect): Fix the calculation of width and height.
6003
6004 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
6005 as it has stopped working.
6006 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
6007 menu-bar.
6008
6009 2000-10-19 Gerd Moellmann <gerd@gnu.org>
6010
6011 * eval.c (skip_debugger): Prevent a compiler warning.
6012 (Fcondition_case): Likewise.
6013 (Fbacktrace_frame): Use a null interactive spec.
6014
6015 2000-10-19 Kenichi Handa <handa@etl.go.jp>
6016
6017 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
6018
6019 2000-10-18 Gerd Moellmann <gerd@gnu.org>
6020
6021 * strftime.c: Sync with glibc, file version 1.78.
6022 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
6023 should no longer be used according to ISO 8601.
6024
6025 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
6026 no map for meta_prefix_char, don't try to use it as a keymap.
6027 Instead, if T_OK is non-zero, look up a default binding, if any,
6028 otherwise, if T_OK is zero, return nil.
6029
6030 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
6031 (x_to_xcolors, png_load): Use x_query_color.
6032
6033 * xterm.c (x_color_cells, x_query_colors, x_query_color):
6034 New functions.
6035 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
6036 which can be slow.
6037 (x_copy_color, x_alloc_lighter_color): Likewise.
6038
6039 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
6040 (x_query_color, x_query_colors): Add prototype.
6041
6042 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
6043 check_string_bytes only if not noninteractive, increase count to 50.
6044
6045 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
6046
6047 * insdel.c (adjust_markers_for_delete): Handle before-insertion
6048 markers correctly.
6049
6050 2000-10-17 Gerd Moellmann <gerd@gnu.org>
6051
6052 * alloc.c (pure_bytes_used): Renamed from pureptr.
6053 (ALIGN): New macro.
6054 (pure_alloc): New function.
6055 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
6056 Use it.
6057 (Fpurecopy): Use PURE_POINTER_P.
6058
6059 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
6060 PT has moved backward.
6061
6062 * xdisp.c (cursor_row_p): Take continued lines into account.
6063
6064 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
6065 string's size_byte.
6066 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
6067 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
6068 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
6069 string allocated.
6070
6071 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
6072 of selective display off while searching for the next line start.
6073
6074 2000-10-17 Kenichi Handa <handa@etl.go.jp>
6075
6076 * Makefile.in (term.o): Depend on dispextern.h.
6077
6078 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
6079
6080 * keymap.c (keymap_memberp): Ensure that nil is not a member.
6081
6082 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6083
6084 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
6085 the iterator at the beginning, so that they can be set later on,
6086 for instance in reseat_at_next_visible_line_start, without being
6087 overwritten.
6088
6089 * xfns.c (pbm_format): Add :foreground and :background keywords.
6090 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
6091 (xbm_load): Recognize foreground and background color specifications.
6092
6093 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
6094
6095 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
6096
6097 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
6098
6099 * msdos.c (IT_set_face): Compare highlighted face with the default
6100 face, and invert colors if these faces' colors are identical.
6101 (Fmsdos_remember_default_colors): Don't swap foreground and
6102 background colors in initial_colors[].
6103 (IT_set_frame_parameters): Don't swap frame's foreground and
6104 background pixels. If ALIST includes "(reverse . t)", swap
6105 foreground-color and background-color properties in frame's
6106 param_alist. If the original frame's param_alist doesn't specify
6107 the colors, store unspecified-fg and unspecified-bg, reversed if
6108 required.
6109
6110 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
6111 the colors are unspecified and reversed, reverse fore- and back-
6112 ground in the returned value.
6113 (Fframe_parameter): Ditto.
6114
6115 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6116
6117 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
6118 get_last_unchanged_at_beg_row.
6119 (find_first_unchanged_at_end_row): Renamed from
6120 get_first_unchanged_at_end_row.
6121 (find_first_unchanged_at_end_row): Convert assertions to
6122 unconditional tests which abort. When looking for a row in
6123 unchanged text, don't go further back than first_text_row.
6124
6125 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
6126 Don't add in the last line's height when deciding if the new
6127 position is below the scroll margin.
6128
6129 2000-10-16 Miles Bader <miles@gnu.org>
6130
6131 * editfns.c (Fconstrain_to_field): Check carefully for field
6132 boundaries if either OLD_POS or NEW_POS has a non-nil field
6133 property, even if they're the same.
6134
6135 2000-10-16 Kenichi Handa <handa@etl.go.jp>
6136
6137 * xterm.c (x_draw_box_rect): Fix the calculation of width and
6138 height for XFillRectangle.
6139
6140 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
6141
6142 * syntax.c (Fstring_to_syntax): New function extracted from
6143 Fmodify_syntax_entry.
6144 (Fmodify_syntax_entry): Use it and document the ! and | fences.
6145 (skip_chars, Fforward_comment): Remove unused variables.
6146 (syms_of_syntax): Add defsubr for string-to-syntax.
6147 (describe_syntax): Add code for comment and string fences.
6148
6149 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
6150
6151 * keymap.c (access_keymap): Add AUTOLOAD parameter.
6152 Do the meta->esc mapping. Call get_keyelt before returning.
6153 Start scanning from the second element (the first is always `keymap')
6154 to make it easier to detect when we reach a parent map.
6155 Handle the case of inheriting from a symbol whose function is a map.
6156 (Fkeymap_parent): Also handle the `inherit from symbol' case.
6157 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
6158 (get_keyelt, Flookup_key): Update call to access_keymap.
6159 Remove the meta->esc mappings.
6160 (define_as_prefix): Delete old disabled code.
6161 (menu_item_p): New function.
6162 (where_is_internal_1): Skip over the few remaining menu items.
6163 * lisp.h (access_keymap): Update prototype.
6164 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
6165 Update call to access_keymap.
6166 (follow_key, read_key_sequence): Update calls to access_keymap.
6167 Remove the meta->esc mappings.
6168
6169 2000-10-13 Gerd Moellmann <gerd@gnu.org>
6170
6171 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
6172 with additional argument.
6173
6174 * xdisp.c (cursor_row_p): New function.
6175 (try_cursor_movement, display_line): Use it.
6176
6177 * xdisp.c (append_space): Also save/restore iterator's current
6178 character and its length.
6179
6180 * xdisp.c (init_from_display_pos): Add an assertion.
6181 (handle_stop): Don't set iterator's add_overlay_start.
6182 (handle_invisible_prop): Likewise.
6183 (load_overlay_strings): If text under an overlay is invisible,
6184 take both before- and after-strings into account when the iterator
6185 is positioned either at the start or at the end of the overlay.
6186 (forward_to_next_line_start): Rewritten.
6187 (reseat_at_next_visible_line_start): Rewritten.
6188 (set_iterator_to_next): Add parameter RESEAT_P.
6189
6190 * dispextern.h (struct it): Remove member add_overlay_start.
6191 (set_iterator_to_next): Change prototype.
6192
6193 2000-10-13 Kenichi Handa <handa@etl.go.jp>
6194
6195 * coding.c (code_convert_region): Be sure to initialize
6196 coding->category_idx.
6197 (decode_coding_string): Set coding->src_multibyte and
6198 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
6199 (encode_coding_string): Set coding->src_multibyte and
6200 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
6201
6202 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
6203
6204 * xfns.c (Fx_create_frame): Don't bother calling
6205 face-set-after-frame-default since the caller does it for us anyway.
6206
6207 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
6208
6209 * window.c (coordinates_in_window): Fix detection of vertical line
6210 on character terminals.
6211
6212 2000-10-12 Gerd Moellmann <gerd@gnu.org>
6213
6214 * editfns.c (save_excursion_save): Additionally record the
6215 selected window.
6216 (save_excursion_restore): If buffer was visible in a window, and a
6217 different window was selected, and the old selected window is
6218 still live, restore point in that window.
6219
6220 2000-10-12 Kenichi Handa <handa@etl.go.jp>
6221
6222 * xterm.c (x_produce_glyphs): Handle
6223 unibyte_display_via_language_environment correctly.
6224
6225 * regex.c (regex_compile): Change the way of handling a range from
6226 unibyte char to multibyte char.
6227
6228 * syntax.c (skip_chars): Change the way of handling a range from
6229 unibyte char to multibyte char.
6230
6231 * process.c (read_process_output): Cancel previous change.
6232
6233 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
6234
6235 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
6236
6237 * charset.c (Ffind_charset_string): Doc fix.
6238 (Ffind_charset_region): Doc fix.
6239
6240 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
6241
6242 * process.c (read_process_output): Fix previous change. Adjust
6243 multibyteness of text to insert in a buffer by
6244 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
6245
6246 2000-10-10 Andreas Schwab <schwab@suse.de>
6247
6248 * alloc.c (mark_object): Remove all workarounds installed on
6249 1993-08-08.
6250
6251 2000-10-10 Kenichi Handa <handa@etl.go.jp>
6252
6253 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
6254 (base64_encode_1): Make it work for a text of multibyte form.
6255 (Fbase64_decode_region): Allocate sufficient memory for multibyte
6256 case. Don't call str_to_multibyte because base64_decode_1
6257 produces correct multibyte form for eight-bit codes.
6258 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
6259 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
6260 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
6261 codes.
6262
6263 * charset.h (CHAR_STRING): Optimized for single byte characters.
6264
6265 2000-10-09 Andreas Schwab <schwab@suse.de>
6266
6267 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
6268 -1 after socket is closed, to fall through to error processing.
6269
6270 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
6271
6272 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
6273 variables. If ALIST includes foreground-color or
6274 background-color, change also the colors of the default face for
6275 this frame.
6276
6277 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
6278
6279 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
6280 them extern (they are defined on xfaces.c).
6281 (syms_of_msdos): Don't intern and don't staticpro
6282 Qbackground_color and Qforeground_color.
6283
6284 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
6285
6286 * frame.c (Fframe_parameter): For non-windowed frames, if
6287 f->param_alist says foreground or background color is unspecified,
6288 call tty_color_name to return the color name computed from the
6289 frame's current colors.
6290
6291 2000-10-06 Dave Love <fx@gnu.org>
6292
6293 * terminfo.c (ospeed): Don't declare.
6294
6295 * sysdep.c: Don't include string.h.
6296 (h_errno): Declare conditional also on TRY_AGAIN.
6297
6298 * charset.c (Ffind_charset_string): Doc fix.
6299
6300 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
6301 (Fbase64_decode_region, Fbase64_decode_string): More explicit
6302 error messages.
6303
6304 2000-10-05 Dave Love <fx@gnu.org>
6305
6306 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
6307 position like menu-bar.
6308
6309 2000-10-05 Gerd Moellmann <gerd@gnu.org>
6310
6311 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
6312
6313 * xdisp.c (handle_single_display_prop): Use safe_call1.
6314 (safe_call): Renamed from call_function.
6315 (safe_call1): New function.
6316 (handle_fontified_prop): Use safe_call1 instead of call1.
6317 (safe_eval): Renamed from eval_form.
6318 (safe_eval_handler): Renamed from eval_handler.
6319 (handle_single_display_prop, display_mode_element): Use safe_eval
6320 instead of eval_form.
6321
6322 * xfaces.c (merge_face_heights): Use safe_call instead of
6323 call_function.
6324
6325 * keyboard.c (show_help_echo): Use safe_call instead of
6326 call_function; use safe_eval instead of eval_form.
6327
6328 * lisp.h (safe_call): Renamed from call_function.
6329 (safe_eval): Renamed from eval_form.
6330 (safe_call1): Add prototype.
6331
6332 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
6333
6334 * xfns.c (image_ascent): Rearrange ascent calculation for the
6335 has-a-font case.
6336
6337 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
6338
6339 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
6340 (where_is_internal_1): Don't bother ignoring menu-items any more.
6341
6342 2000-10-04 Gerd Moellmann <gerd@gnu.org>
6343
6344 * keyboard.c (update_menu_bindings): New variable.
6345 (parse_menu_item): Use AREF. If update_menu_bindings
6346 is 0, don't update menu bindings.
6347 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
6348
6349 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
6350
6351 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
6352 to `mark_object'.
6353
6354 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
6355
6356 * syntax.c (forw_comment): Match nestedness of ender/starter.
6357 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
6358 (prev_char_comstart_first): Remove.
6359 (back_comment): Check two-char comment markers more carefully
6360 to better handle overlapping cases like *//* or /* */* */ ...
6361 Match nestedness of ender/starter.
6362
6363 2000-10-02 Dave Love <fx@gnu.org>
6364
6365 * config.in (HAVE_GAI_STRERROR): Add undef.
6366
6367 * process.c (Fopen_network_stream): Use it.
6368
6369 * m/alpha.h (NO_REMAP): Don't define.
6370
6371 2000-10-02 Gerd Moellmann <gerd@gnu.org>
6372
6373 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
6374 return with a string converted to an integer or vice versa when
6375 Vmocklisp_arguments is t.
6376 (Fsignal): Likewise. The function can return for `quit'.
6377 (struct gcpro): Declare member `var' to point to a volatile
6378 Lisp_Object.
6379
6380 * eval.c (error): Prevent compiler warning.
6381
6382 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
6383
6384 * keymap.c (keymap_memberp): New function.
6385 (Fset_keymap_parent): Use it.
6386 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
6387 Use keymap_memberp to avoid creating cycles.
6388 (access_keymap): Use KEYMAPP.
6389
6390 2000-09-30 Gerd Moellmann <gerd@gnu.org>
6391
6392 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
6393 gai_strerror. Make sure xerrno is set if connect fails. Improve
6394 error recovery.
6395
6396 2000-09-29 Jason Rumney <jasonr@gnu.org>
6397
6398 * w32term.c (w32_char_font_type, w32_encode_char)
6399 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
6400 (w32_bdf_per_char_metric): New function.
6401 (w32_per_char_metric): Use it.
6402 (x_draw_glyph_string_background): Always draw background for BDF
6403 glyphs.
6404
6405 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
6406 GDI object which is a scarce resource.
6407
6408 * w32bdf.c (search_file_line): Fix skipping of whitespace.
6409 (get_quoted_string): Fix limit on memchr search.
6410 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
6411 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
6412 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
6413 (get_cached_font_char, cache_char_offset): Use macro
6414 BDF_CODEPOINT_RANGE_COVER_P.
6415 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
6416 (clear_cached_bitmap_slots): New function.
6417 (GET_HEX_VALUE): G-Z, g-z are not hex.
6418 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
6419 (get_bitmap_with_cache): Use new cache implementation.
6420 (create_offscreen_bitmap): New function.
6421 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
6422
6423 * w32term.c (x_produce_glyphs): If the distance from the current
6424 position to the next tab stop is less than a canonical character
6425 width, use the tab stop after that.
6426 (x_draw_glyphs): Handle case START and END are out of bounds more
6427 carefully.
6428 (x_clear_mouse_face): Block/unblock input.
6429 (x_display_and_set_cursor): Don't show a hollow box cursor for
6430 buffers whose cursor_type is nil.
6431
6432 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6433
6434 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
6435
6436 * dispextern.h (updating_frame): Declare extern.
6437
6438 2000-09-29 Andreas Schwab <schwab@suse.de>
6439
6440 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
6441
6442 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6443
6444 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
6445 use its function definition.
6446 (tool_bar_items): Likewise.
6447
6448 * lisp.h (fatal): Declare NO_RETURN.
6449
6450 2000-09-29 Kenichi Handa <handa@etl.go.jp>
6451
6452 * keymap.c: Remove the line "#undef NULL".
6453
6454 2000-09-28 Gerd Moellmann <gerd@gnu.org>
6455
6456 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
6457
6458 2000-09-28 Dave Love <fx@gnu.org>
6459
6460 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
6461
6462 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
6463
6464 * .gdbinit (xreload): Note its need on GNU/Linux.
6465
6466 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
6467 r_alloc, r_alloc_free.
6468
6469 2000-09-28 Kenichi Handa <handa@etl.go.jp>
6470
6471 * syntax.c (skip_chars): Handle negation correctly.
6472
6473 2000-09-27 Gerd Moellmann <gerd@gnu.org>
6474
6475 * xfaces.c (realize_default_face): Call set_lface_from_font_name
6476 with non-zero FORCE_P argument.
6477
6478 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
6479 Add assertions.
6480
6481 * xdisp.c (window_box_height): Add an assertion.
6482
6483 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
6484 tool-bar than is available.
6485 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
6486
6487 2000-09-27 Dave Love <fx@gnu.org>
6488
6489 * s/irix6-5.h: Now works 64-bit. Tidied.
6490
6491 2000-09-26 Gerd Moellmann <gerd@gnu.org>
6492
6493 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
6494 instead of BITS_PER_INT.
6495 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
6496 EMACS_UINT, respectively.
6497 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
6498
6499 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
6500
6501 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
6502
6503 * window.c (freeze_window_starts): Construct last argument for
6504 foreach_window differently.
6505
6506 * xfns.c (x_decode_color): Don't return a Lisp_Object.
6507
6508 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
6509 EMACS_UINT instead of `int' and `unsigned int'.
6510 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
6511
6512 * frame.h (struct frame): Make the `nothing' member of union
6513 output_data an EMACS_INT.
6514
6515 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
6516 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
6517 size in the sdata structure.
6518 (SDATA_NBYTES, SDATA_DATA): New macros.
6519 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
6520 differently for the different layout of the sdata structure.
6521 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
6522 in sdata.
6523 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
6524 Check that size recorded in the string size and size recorded in
6525 the sdata structure agree.
6526
6527 2000-09-25 Dave Love <fx@gnu.org>
6528
6529 * buffer.c: Include stdio.h.
6530
6531 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
6532
6533 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
6534
6535 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
6536 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
6537 (__malloc_extra_blocks): Declare as __malloc_size_t.
6538
6539 2000-09-25 Gerd Moellmann <gerd@gnu.org>
6540
6541 * alloc.c (mark_image): Use GC_NILP instead of NILP.
6542
6543 * keyboard.c (show_help_echo): Set help_echo_showing_p.
6544 (read_char): If help-echo is showing, preserve the echo area
6545 when redisplaying.
6546
6547 * xdisp.c (help_echo_showing_p): New variable.
6548 (set_message): Reset it to 0.
6549 (init_xdisp): Initialize help_echo_showing_p.
6550
6551 * dispextern.h (help_echo_showing_p): Declare extern.
6552
6553 * config.in: Fix typo in __GNUC_MINOR__.
6554
6555 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
6556
6557 * s/freebsd.h (POSIX_SIGNALS): Define.
6558
6559 * xterm.c (x_clear_mouse_face): Block/unblock input.
6560
6561 2000-09-24 Dave Love <fx@gnu.org>
6562
6563 * fns.c (base64_encode_1): Fix last change.
6564
6565 2000-09-22 Gerd Moellmann <gerd@gnu.org>
6566
6567 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
6568
6569 * xdisp.c (try_window_reusing_current_matrix): More fixes
6570 for the case window has a header-line.
6571
6572 2000-09-22 Dave Love <fx@gnu.org>
6573
6574 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
6575 a doc string.
6576
6577 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
6578
6579 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
6580
6581 2000-09-21 Gerd Moellmann <gerd@gnu.org>
6582
6583 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
6584 for GCC >= 2.5.
6585
6586 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
6587 Declare NO_RETURN.
6588
6589 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
6590 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
6591 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
6592 warnings.
6593
6594 * marker.c (byte_char_debug_check): Return void.
6595
6596 * xfns.c (Fx_create_frame): Set default frame parameter value
6597 for tool-bar-lines to 1.
6598
6599 * dispnew.c (scrolling_window): Compare y-positions of rows
6600 equal at the start. Some simplification.
6601
6602 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
6603 reused rows' y-position in the case window has a header-line, and
6604 new window start is greater than old window start.
6605
6606 * process.c (process_sent_to): New variable.
6607 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
6608 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
6609 Declare more parameters volatile.
6610
6611 * lread.c (Vrecursive_load_depth_limit): New variable.
6612 (Fload): Check recursive loads whose recursion depth exceeds
6613 Vrecursive_load_depth_limit.
6614 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
6615
6616 2000-09-20 Gerd Moellmann <gerd@gnu.org>
6617
6618 * fileio.c (Fread_file_name): Doc fix.
6619
6620 * editfns.c (Fmessage_or_box): Doc fix.
6621
6622 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
6623
6624 * xfns.c (xbm_scan): Allow C-style comments.
6625
6626 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
6627 symbols are specified, add color translations to the cache.
6628 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
6629 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
6630 xpm_cache_color.
6631 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
6632 structures to xpm_init_color_cache.
6633
6634 2000-09-19 Gerd Moellmann <gerd@gnu.org>
6635
6636 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
6637
6638 2000-09-19 Andrew Innes <andrewi@gnu.org>
6639
6640 * makefile.nt (bootstrap-emacs): Don't change directory.
6641
6642 2000-09-19 Kenichi Handa <handa@etl.go.jp>
6643
6644 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
6645
6646 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
6647 If output buffer is too small, signal an appropriated error.
6648
6649 2000-09-18 Dave Love <fx@gnu.org>
6650
6651 * keyboard.c (menu_bar_items, tool_bar_items)
6652 (current_active_maps): Remove redundant get_local_map call.
6653
6654 2000-09-18 Gerd Moellmann <gerd@gnu.org>
6655
6656 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
6657 cursor for buffers whose cursor_type is nil.
6658
6659 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
6660 a feature to implement that is already implemented.
6661 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
6662 warnings.
6663
6664 * xfns.c (x_clear_image_1): New function.
6665 (x_clear_image): Use it.
6666 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
6667
6668 * dispnew.c (update_window): Move test for invisible lines
6669 at the top to update_window_line.
6670 (update_window_line): Handle invisible lines here.
6671
6672 * xfns.c (clear_image_cache): Clear current matrices of all
6673 frames sharing an image cache. Block input while freeing
6674 images. Fix timestamp comparison.
6675 (x_clear_image): Also free the mask.
6676
6677 * xfns.c (lookup_image): Block input while loading the image so
6678 that we won't get interrupted in a state where the image isn't yet
6679 set up completely.
6680 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
6681 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
6682 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
6683 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
6684
6685 2000-09-16 Gerd Moellmann <gerd@gnu.org>
6686
6687 * dispnew.c (update_window): Make sure to make desired rows
6688 current even if they are completely invisible at the top
6689 of a window.
6690
6691 2000-09-15 Gerd Moellmann <gerd@gnu.org>
6692
6693 * xfns.c (lookup_image): Build mask before applying an algorithm.
6694 Recognize algorithm `disabled'.
6695 (cross_disabled_images): New variable.
6696 (COLOR_INTENSITY): New macro.
6697 (x_detect_edges): Use COLOR_INTENSITY.
6698 (x_disable_image): New function.
6699 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
6700
6701 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
6702 disabled state, don't apply an image transformation algorithm if
6703 the user specified an image for the disabled state. Use
6704 `:algorithm disabled' for creating a disabled item's image if the
6705 user hasn't specified an image.
6706
6707 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
6708 allocation functions with the XPM lib.
6709 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
6710 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
6711 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
6712 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
6713 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
6714 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
6715 functions, if possible, because these handle color allocation
6716 failure more gracefully.
6717 (Fimage_mask_p): New function.
6718
6719 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
6720 (Qedge_detection, Qheuristic): New symbols.
6721 (syms_of_xfns): Initialize new symbols.
6722 (lookup_image): Handle `:mask X', `:algorithm emboss', and
6723 `algorithm (edge-detection ...)'.
6724 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
6725 (tiff_format, gif_format, gs_format): Add `:mask'.
6726 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
6727 (GIF_MASK, GS_MASK): New enumerators.
6728 (x_laplace_read_row, x_laplace_write_row): Functions removed.
6729 (emboss_matrix, laplace_matrix): New variables.
6730 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
6731 (x_edge_detection): New functions.
6732 (x_laplace): Rewritten in terms of x_detect_edges.
6733 (x_build_heuristic_mask): If image has a mask, free it.
6734
6735 2000-09-14 Andrew Innes <andrewi@gnu.org>
6736
6737 * makefile.w32-in: Revert to Unix line endings.
6738
6739 2000-09-14 Andrew Innes <andrewi@gnu.org>
6740
6741 * makefile.w32-in: Standardize indentation somewhat.
6742 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
6743 cater for differences between shells.
6744
6745 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
6746
6747 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6748
6749 * xterm.c (x_produce_glyphs): If the distance from the current
6750 position to the next tab stop is less than a canonical character
6751 width, use the tab stop after that.
6752
6753 2000-09-14 Dave Love <fx@gnu.org>
6754
6755 * buffer.c (alloc_buffer_text): Fix xmalloc call.
6756
6757 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6758
6759 * xdisp.c (handle_fontified_prop): While running fontification
6760 functions, bind `fontification-functions' and
6761 `after-change-functions' to nil.
6762
6763 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
6764 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
6765
6766 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
6767
6768 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
6769 USE_MMAP_FOR_BUFFERS.
6770
6771 * insdel.c (make_gap): Use enlarge_buffer_text.
6772
6773 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
6774 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
6775 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
6776 from former r_alloc_* functions in ralloc.c.
6777 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
6778 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
6779 (mmap_init) [REL_ALLOC_MMAP]: New function.
6780 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
6781 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
6782 BUFFER_FREE.
6783
6784 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
6785 (enlarge_buffer_text): Add prototype.
6786
6787 * ralloc.c: Remove everything having to do with the use of mmap.
6788
6789 2000-09-13 Gerd Moellmann <gerd@gnu.org>
6790
6791 * sound.c (Fplay_sound): Doc fix.
6792
6793 * keyboard.c: Avoid some more compiler warnings.
6794 (parse_tool_bar_item): Ignore cached key bindings.
6795
6796 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
6797 and allocation of Lisp data.
6798
6799 2000-09-12 Gerd Moellmann <gerd@gnu.org>
6800
6801 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
6802 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
6803 defaults first.
6804
6805 * lread.c (Fload): Put code checking for recursive loads in #if 0.
6806
6807 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
6808
6809 * ccl.c: Comment fixed.
6810 (MAX_MAP_SET_LEVEL): Increased to 30.
6811 (PUSH_MAPPING_STACK): Enclose with do-while block.
6812 (POP_MAPPING_STACK): Likewise.
6813 (stack_idx_of_map_multiple): New variable.
6814 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
6815 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
6816 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
6817 (ccl_driver) <CCL_MapSingle>: Likewise.
6818 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
6819 with the case where looking up process reaches to the end of
6820 map-set, and call CCL programs as the above change.
6821
6822 2000-09-11 Gerd Moellmann <gerd@gnu.org>
6823
6824 * xfns.c (png_load, jpeg_load): Declare some variables volatile
6825 that might be clobbered by longjmp.
6826 (check_x_display_info, x_decode_color, create_frame_xic)
6827 (Fx_display_backing_store, Fx_display_visual_class)
6828 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
6829
6830 * lread.c (init_lread): Set Vloads_in_progress to nil.
6831 (Fload): Show list of recursively loaded files, when signaling an
6832 error.
6833
6834 * lread.c (Vloads_in_progress): New variable.
6835 (record_load_unwind): New function.
6836 (Fload): Check for recursive loads.
6837 (syms_of_lread): Initialize Vloads_in_progress.
6838 (read_integer, read1): Avoid some compiler warnings.
6839
6840 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
6841 compiler warnings.
6842
6843 2000-09-11 Miles Bader <miles@gnu.org>
6844
6845 * editfns.c (Fbuffer_string): Doc fix.
6846
6847 2000-09-10 Gerd Moellmann <gerd@gnu.org>
6848
6849 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
6850
6851 2000-09-09 Ken Raeburn <raeburn@gnu.org>
6852
6853 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
6854 whether to include other header files.
6855
6856 2000-09-09 Gerd Moellmann <gerd@gnu.org>
6857
6858 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
6859 by Fmemq as a boolean.
6860
6861 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
6862
6863 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
6864
6865 2000-09-08 Gerd Moellmann <gerd@gnu.org>
6866
6867 * ralloc.c (mmap_fd): Remove initializer which can make it
6868 read-only in a dumped Emacs.
6869 (mmap_fd_1): New variable.
6870 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
6871 restore it from there.
6872 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
6873 unconditionally so that mmap_fd can be initialized there.
6874 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
6875 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
6876 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
6877
6878 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
6879
6880 * xdisp.c (dump_glyph_row): Fix printf format string.
6881 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
6882
6883 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
6884
6885 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
6886 inheritance.
6887
6888 * xdisp.c (try_window_id): When trying to locate cursor in
6889 unchanged rows at the top, handle the case that we can't find it.
6890
6891 * xterm.c (x_draw_glyphs): Handle case START and END are out
6892 of bounds more carefully.
6893
6894 2000-09-08 Dave Love <fx@gnu.org>
6895
6896 * s/sol2.h (REL_ALLOC_MMAP): Define.
6897 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
6898
6899 * ralloc.c: Don't include string.h (redundant).
6900 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
6901 [!MAP_ANON]: Include fcntl.h.
6902 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
6903 (r_alloc, r_re_alloc, r_alloc_free)
6904 (mmap_enlarge, mmap_set_vars): Use it.
6905 (r_alloc_init_fd): New function.
6906 (__morecore) [SYSTEM_MALLOC]: Don't declare.
6907 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
6908 malloc type.
6909
6910 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
6911 Remove vm-limit.o.
6912
6913 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
6914 change to __NetBSD__.
6915
6916 2000-09-08 Kenichi Handa <handa@etl.go.jp>
6917
6918 * search.c (compile_pattern): Check the multibyteness of cached
6919 string and PATTERN.
6920
6921 2000-09-08 Miles Bader <miles@gnu.org>
6922
6923 * xfaces.c (default_face_vector): Function removed.
6924 (Finternal_merge_in_global_face): Restore old global/local
6925 attribute override order. Use inline loop instead of calling
6926 default_face_vector.
6927
6928 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6929
6930 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
6931 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
6932 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
6933 where necessary, in case POINTER_TYPE is `void'.
6934
6935 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
6936
6937 * frame.c (make_terminal_frame): Initialize frame foreground and
6938 background colors to unspecified, for the initial instance of an
6939 MSDOS frame.
6940
6941 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6942
6943 * ralloc.c (mmap_find): Fix overlap computation.
6944 (mmap_enlarge): Compute nbytes before trying to find an
6945 overlapping region.
6946
6947 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
6948 instead of `!='.
6949
6950 * lread.c (syms_of_lread): Change value of regexp
6951 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
6952
6953 * xmenu.c (xdialog_show): When looking up the selection in
6954 menu_items, take `quote' boundaries into account; this corresponds
6955 to a nil ITEM in x-popup-dialog.
6956
6957 2000-09-07 Kenichi Handa <handa@etl.go.jp>
6958
6959 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
6960 not 0x81.
6961 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
6962
6963 * coding.c (encode_coding_sjis_big5): Use translation table for
6964 encoding, not decoding. Fix the handling of latin-jisx0201.
6965 Check for the charset katakana-jisx0201 too.
6966 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
6967 (detect_coding_sjis): Check the byte sequence more rigidly.
6968
6969 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6970
6971 * xfaces.c (Vparam_value_alist): New variable.
6972 (syms_of_xfaces): Initialize it.
6973 (Finternal_set_lisp_face_attribute): Avoid more consing.
6974
6975 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
6976 specially.
6977 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
6978 (Qbackground_mode): New variable.
6979 (syms_of_frame_1): Initialize Qbackground_mode.
6980
6981 * lisp.h (Qdisplay): Declare extern.
6982
6983 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
6984 change face on all frames, and change the default for new frames.
6985
6986 2000-09-07 Dave Love <fx@gnu.org>
6987
6988 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
6989
6990 2000-09-07 Kenichi Handa <handa@etl.go.jp>
6991
6992 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
6993
6994 * charset.c: Include composite.h
6995 (lisp_string_width): New function.
6996 (Fstring_width): Call lisp_string_width instead of strwidth.
6997
6998 * Makefile.in (charset.o): Depends on composite.h.
6999
7000 * process.c (read_process_output): Before inserting the decoded
7001 text in the buffer, adjust the multibyteness.
7002
7003 2000-09-06 Gerd Moellmann <gerd@gnu.org>
7004
7005 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
7006 buffer's text buffer is null, map new memory.
7007
7008 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
7009 POINTER_TYPE and size_t.
7010 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
7011 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
7012 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
7013 [REL_ALLOC_MMAP]: New macros.
7014 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
7015 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
7016 [REL_ALLOC_MMAP]: New functions.
7017
7018 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
7019 before and after unexec.
7020
7021 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
7022 text buffers if necessary.
7023
7024 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
7025 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
7026 in prototypes.
7027
7028 * config.in (HAVE_MMAP): Add #undef.
7029
7030 2000-09-05 Gerd Moellmann <gerd@gnu.org>
7031
7032 * frame.c (Qdisplay_type): New variable.
7033 (syms_of_frame_1): Initialize it.
7034 (Fframe_parameter): New function that avoids consing.
7035 (syms_of_frame): Defsubr it.
7036
7037 * buffer.c (Fother_buffer): Consider buffers as invisible when
7038 they are displayed in a window on an invisible frame.
7039
7040 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
7041 get-largest-window always return nil.
7042
7043 2000-09-04 Gerd Moellmann <gerd@gnu.org>
7044
7045 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
7046 variable; recognize Emacs 19 elc files.
7047
7048 2000-09-04 Miles Bader <miles@gnu.org>
7049
7050 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
7051 before initially popping up the menu, so the menu doesn't flash
7052 when the face settings are significantly different from the defaults.
7053
7054 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
7055
7056 * regex.c (WIDE_CHAR_SUPPORT): New macro.
7057 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
7058 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
7059 (BIT_UNIBYTE): Remove.
7060 (re_match_2_internal): Delete corresponding code and streamline the
7061 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
7062 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
7063 (re_wctype_t): New type.
7064 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
7065 (regex_compile): Use them and fix handling of overly long char classes.
7066
7067 2000-09-03 Andrew Innes <andrewi@gnu.org>
7068
7069 * makefile.w32-in: Change to DOS line endings.
7070
7071 * s/ms-w32.h (ORDINARY_LINK): New define.
7072
7073 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
7074 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
7075
7076 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
7077 (distclean): Delete them here instead.
7078
7079 * w32proc.c (compare_env): Convert to uppercase for comparison,
7080 not lowercase, to match how the native Windows shell works.
7081
7082 2000-09-03 Jason Rumney <jasonr@gnu.org>
7083
7084 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
7085 CVS changes the line-ends when checking in/out on DOS/Windows.
7086
7087 * makefile.nt (emacs): Do not change directory to run temacs, as
7088 the load-path is set relative to current directory.
7089
7090 2000-09-03 Miles Bader <miles@gnu.org>
7091
7092 * xterm.c (x_alloc_lighter_color_for_widget): New function.
7093
7094 2000-09-02 Gerd Moellmann <gerd@gnu.org>
7095
7096 * xdisp.c (redisplay_mode_lines): New function.
7097 (display_mode_lines): Return number of mode lines displayed.
7098 (echo_area_display): Use redisplay_mode_lines to draw garbaged
7099 mode lines. Don't temporarily bind redisplay-dont-pause to t.
7100
7101 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
7102 string.h and strings.h.
7103 (index) [HAVE_INDEX]: Add prototype.
7104
7105 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
7106 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
7107
7108 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
7109 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
7110
7111 2000-09-01 Gerd Moellmann <gerd@gnu.org>
7112
7113 * lread.c (read1): Accept `?' as symbol constituent, for
7114 compatiblity with XEmacs.
7115
7116 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
7117
7118 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
7119 (struct re_pattern_buffer): Remove newline_anchor.
7120 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
7121 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
7122 (re_max_failures, fail_stack): Use size_t rather than unsigned.
7123 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
7124 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
7125 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
7126 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
7127 Get rid of references to newline_anchor.
7128 (regcomp): Allocate and precompute a fastmap.
7129
7130 2000-08-31 Gerd Moellmann <gerd@gnu.org>
7131
7132 * lread.c (openp): GCPRO local variable `filename'.
7133
7134 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
7135
7136 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
7137
7138 * regex.c: Merge some changes from GNU libc. Add prototypes.
7139 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
7140 Use memcmp and memcpy instead of bcopy and bcmp.
7141 (init_syntax_once): Use ISALNUM.
7142 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
7143 (REG_UNSET_VALUE): Remove. Use NULL instead.
7144 (REG_UNSET, re_match_2_internal): Use NULL.
7145 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
7146 New macros.
7147 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
7148 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
7149 (regex_compile): In handle_interval, return an error rather than try to
7150 unfetch the interval if we can't find the closing brace.
7151 Obey the RE_NO_GNU_OPS syntax bit.
7152 (TOLOWER): New macro.
7153 (regcomp): Use it.
7154 (regexec): Allocate regs.start and regs.end as one block.
7155
7156 2000-08-30 Gerd Moellmann <gerd@gnu.org>
7157
7158 * xdisp.c (echo_area_display): Check display_completed instead
7159 of calling detect_input_pending.
7160
7161 * dispnew.c (update_frame): Only set display_completed here; move
7162 the update_begin and update_end calls here from update_frame_1.
7163 (update_frame_1): Don't set display_completed here, don't call
7164 update_begin/update_end.
7165
7166 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
7167 instead of store_frame_param.
7168
7169 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7170
7171 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
7172 desired window matrix hasn't been displayed, use the current row
7173 instead. Make sure that only those frame rows are updated for
7174 which there exists a corresponding enabled desired row.
7175
7176 2000-08-29 Miles Bader <miles@gnu.org>
7177
7178 * xfaces.c (default_face_vector): New function.
7179 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
7180
7181 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7182
7183 * lread.c (openp): Prevent temporary string passed to
7184 Ffile_readable_p from being garbage collected.
7185
7186 2000-08-28 Dave Love <fx@gnu.org>
7187
7188 * keymap.c (store_in_keymap): Add `static' to declaration.
7189
7190 2000-08-28 Gerd Moellmann <gerd@gnu.org>
7191
7192 * emacs.c, callint.c, doc.c, editfns.c
7193 (toplevel) [HAVE_STRING_H]: Include string.h.
7194 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
7195 (index): Remove prototypes which might conflict with non-standard
7196 definitions of index/strchr.
7197
7198 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
7199 (rindex): Define only if !HAVE_RINDEX.
7200
7201 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
7202
7203 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
7204
7205 2000-08-28 Miles Bader <miles@gnu.org>
7206
7207 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
7208 made inconsistent by a font-related attribute in FROM.
7209 (merge_face_inheritance): Add function comment.
7210
7211 2000-08-28 Kenichi Handa <handa@etl.go.jp>
7212
7213 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
7214 the 4th arg (PREV_EVENT) Qt to suppress input method.
7215
7216 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
7217
7218 * regex.c: Indent cpp directives and remove parens after `defined'.
7219 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
7220 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
7221 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
7222 (re_compile_pattern): Use size_t for length.
7223 (init_syntax_once): Move to a better place.
7224 * regex.h: Merge changes from GNU libc. Indent cpp directives.
7225 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
7226
7227 * syntax.c (back_comment): Detect cases where a comment-starter is
7228 actually inside another comment as in: /* a // b */ c // d \n.
7229 Make it clear that `comstart_pos' is unused for nested comments.
7230
7231 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
7232 (KEYMAPP): New macro.
7233 (Fkeymap_parent, Fset_keymap_parent): Use it.
7234 (fix_submap_inheritance): Mark it static.
7235 (define_as_prefix, describe_buffer_bindings, describe_command)
7236 (describe_translation, describe_map): Complete prototypes.
7237
7238 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
7239
7240 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
7241 to better match the key-lookup behavior.
7242
7243 2000-08-27 Gerd Moellmann <gerd@gnu.org>
7244
7245 * xfaces.c (lface_fully_specified_p): Handle :inherit.
7246 (Finternal_set_lisp_face_attribute): Fix typo in error message.
7247
7248 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
7249
7250 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
7251 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
7252 (xterm.o): Depend on coding.h
7253
7254 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7255
7256 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
7257 the corresponding '#endif'.
7258
7259 2000-08-26 Miles Bader <miles@gnu.org>
7260
7261 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
7262 * xfaces.c (QCinherit): New variable.
7263 (syms_of_xfaces): Initialize it.
7264 (LFACE_INHERIT): New macro.
7265 (Finternal_get_lisp_face_attribute)
7266 (merge_face_vector_with_property)
7267 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
7268 (check_lface_attrs): Allow new types of face height. Check
7269 inherit attribute.
7270 (CYCLE_CHECK): New macro.
7271 (merge_face_inheritance): New function.
7272 (merge_face_vectors): Merge inherited faces too. Add F and
7273 CYCLE_CHECK arguments.
7274 (merge_face_vector_with_property, Finternal_merge_in_global_face)
7275 (lookup_named_face, lookup_derived_face, realize_named_face)
7276 (face_at_string_position, face_at_buffer_position): Supply
7277 new F and CYCLE_CHECK arguments to merge_face_vectors.
7278 (merge_face_heights): New function.
7279 (merge_face_vectors, merge_face_vector_with_property)
7280 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
7281 handle relative face heights.
7282 (lface_same_font_attributes_p): Compare heights using EQ.
7283
7284 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7285
7286 * charset.c (char_to_string): Check the character validity.
7287 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
7288
7289 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
7290
7291 * regex.c (PUSH_FAILURE_COUNT): New macro.
7292 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
7293 Handle popping of a register's or a counter's data.
7294 (POP_FAILURE_POINT): Use the new name.
7295 (re_match_2_internal): Push counter data on the stack for succeed_n,
7296 jump_n and set_number_at and remove misleading dead code in succeed_n.
7297
7298 2000-08-25 Gerd Moellmann <gerd@gnu.org>
7299
7300 * xdisp.c (redisplay_internal): If considering all windows on all
7301 frames, update the display for each frame as soon as possible,
7302 instead of first building all desired matrices for all frames, and
7303 then updating them all.
7304 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
7305
7306 2000-08-24 Gerd Moellmann <gerd@gnu.org>
7307
7308 * bytecode.c (mark_byte_stack): Add a comment.
7309
7310 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
7311 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
7312 a graphical frame.
7313
7314 2000-08-24 Kenichi Handa <handa@etl.go.jp>
7315
7316 * minibuf.c (do_completion): Always use compare-string, not
7317 string-equal because the latter doesn't pay attention to
7318 multibyteness of strings.
7319
7320 * process.c (create_process): Don't setup raw-text coding here.
7321 (Fopen_network_stream): Don't set coding->src_multibyte and
7322 coding->dst_multibyte here.
7323 (read_process_output): For process filter, return unibyte string
7324 if default-enable-multibyte-characters is nil.
7325 (send_process): If OBJECT is multibyte text, be sure to encoded it
7326 by the specified coding system for the process. Otherwise, setup
7327 raw-text coding.
7328 (init_process): Don't initialize default-process-coding-system here.
7329
7330 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
7331
7332 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
7333 <scroll-down-aggressively>: Likewise.
7334
7335 2000-08-23 Kenichi Handa <handa@etl.go.jp>
7336
7337 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
7338 zero. Set coding->produced_char correctly.
7339
7340 2000-08-22 Andrew Innes <andrewi@gnu.org>
7341
7342 * makefile.w32-in: New file.
7343
7344 * unexw32.c (unexec): Ignore old_name, and use the actual location
7345 of the current executable instead. Base new_name on this.
7346
7347 * w32proc.c (create_child): Remove reference to security
7348 descriptor, which isn't needed and doesn't compile with mingw32.
7349
7350 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7351 up dllimport attributes.
7352 (x_update_window_end): Update prototype.
7353
7354 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
7355 extern, which screws up dllimport attributes.
7356
7357 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7358 up dllimport attributes.
7359
7360 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
7361 screws up dllimport attributes.
7362
7363 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7364 up dllimport attributes.
7365 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
7366 screws up dllimport attributes.
7367
7368 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7369 up dllimport attributes.
7370
7371 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
7372 screws up dllimport attributes.
7373
7374 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
7375 screws up dllimport attributes.
7376
7377 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7378 up dllimport attributes.
7379
7380 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
7381 unnecessary extern, which screws up dllimport attributes.
7382 (main): Ditto.
7383
7384 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7385 up dllimport attributes.
7386
7387 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
7388 unnecessary extern, which screws up dllimport attributes.
7389
7390 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
7391 screws up dllimport attributes.
7392
7393 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7394 up dllimport attributes.
7395
7396 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
7397
7398 * w32bdf.c (search_file_line):
7399 (set_bdf_font_info):
7400 (seek_char):
7401 (w32_get_bdf_glyph):
7402 (w32_BDF_to_x_font): Fix compile warnings.
7403
7404 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
7405
7406 * w32select.c: Include keyboard.h before frame.h.
7407
7408 * w32fns.c (max): Define macro.
7409 (JOHAB_CHARSET): Define if not known.
7410 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
7411 (Fx_show_tip): Synch with X version.
7412
7413 * w32xfns.c: Include keyboard.h before frame.h.
7414
7415 * w32fns.c: Include keyboard.h before frame.h.
7416
7417 * w32term.c: Include keyboard.h before frame.h.
7418
7419 * fontset.c: Include keyboard.h before frame.h.
7420
7421 * w32inevt.c: Include keyboard.h before frame.h.
7422 (MOUSE_MOVED): Define if not known.
7423
7424 * minibuf.c: Include keyboard.h before frame.h.
7425
7426 * keyboard.c: Include keyboard.h before frame.h.
7427
7428 * indent.c: Include keyboard.h before frame.h.
7429
7430 * dispnew.c: Include keyboard.h before frame.h.
7431
7432 * buffer.c: Include keyboard.h before frame.h.
7433
7434 * alloc.c: Include keyboard.h before frame.h.
7435
7436 * print.c: Include keyboard.h before frame.h.
7437
7438 * process.c: Include keyboard.h before frame.h.
7439
7440 * scroll.c: Include keyboard.h before frame.h.
7441
7442 * sysdep.c: Include keyboard.h before frame.h.
7443
7444 * term.c: Include keyboard.h before frame.h.
7445
7446 * window.c: Include keyboard.h before frame.h.
7447
7448 * xdisp.c: Include keyboard.h before frame.h.
7449 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
7450
7451 * frame.c: Include keyboard.h before frame.h.
7452
7453 * w32heap.h: Undefine min, max.
7454
7455 * w32gui.h: Undefine min, max.
7456
7457 * unexw32.c: Change PUCHAR to PCHAR.
7458 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
7459 (relocate_offset):
7460 (get_section_info):
7461 (copy_executable_and_dump_data): Remove unnecessary static defs.
7462 (copy_executable_and_dump_data): Fix compile warnings.
7463
7464 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
7465
7466 * w32console.c (min): Define macro.
7467 (clear_frame, write_glyphs): Fix compile warning.
7468
7469 * w32proc.c (compare_env):
7470 (find_child_console): Fix compile warning.
7471
7472 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
7473 sys_errlist instead of _sys_errlist.
7474 (get_emacs_configuration_options): New function.
7475
7476 * s/ms-w32.h (sys_nerr): Provide default definition.
7477 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
7478 name with _ prepended.
7479 (NSIG): Define if not known.
7480 (get_emacs_configuration): Provide extern declaration.
7481 (get_emacs_configuration_options): Provide extern declaration.
7482 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
7483
7484 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
7485 (map_w32_filename):
7486 (read_unc_volume): Fix compile warning.
7487
7488 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
7489 definitions from being used.
7490
7491 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
7492
7493 * w32.c (unc_volume_file_attributes):
7494 (open_unc_volume): Make arg const.
7495
7496 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
7497 (read_input_waiting): Remove excess parameter.
7498
7499 * w32.c (init_environment): Call _access.
7500 (check_windows_init_file): Call _close.
7501 (init_user_info): Call _putenv.
7502 (init_environment): Call _putenv and _strdup.
7503 (init_ntproc): Reset volume info cache on startup.
7504
7505 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
7506 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
7507 cannot override the CRT malloc.
7508
7509 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
7510 (LINK_FLAGS): Append to original value of LINK_FLAGS.
7511
7512 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
7513 unless we are linking with a static CRT.
7514 (RVA_TO_PTR): Cast result to unsigned char*.
7515
7516 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
7517 (add_volume_info): Use xstrdup.
7518
7519 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
7520
7521 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
7522 (do_completion, Fminibuffer_complete_word): Use it.
7523 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
7524 var so it can take non-boolean values.
7525
7526 2000-08-21 Gerd Moellmann <gerd@gnu.org>
7527
7528 * editfns.c (find_field): Formatting changes.
7529 (toplevel): Some old-style function forward declarations
7530 changed to prototypes, some new protypes added, some functions
7531 made static.
7532
7533 * lisp.h (set_time_zone_rule): Add prototype.
7534 (use_dialog_box): External declaration.
7535
7536 * keyboard.c (gen_help_event): Add parameter SIZE.
7537 (kbd_buffer_events_waiting): Slightly rewritten.
7538 (clear_event): New function.
7539 (kbd_buffer_get_event): Use it, and clear the input_events of
7540 HELP_EVENTs.
7541 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
7542 don't fill the newly created array with nils.
7543 (toplevel): Convert some old-style function forward declarations
7544 to prototypes.
7545
7546 * keyboard.h (gen_help_event): Change prototype.
7547
7548 * xterm.c (XTread_socket): Change calls to gen_help_event.
7549
7550 * w32term.c (w32_read_socket): Change calls to gen_help_event.
7551
7552 * eval.c (Fmacroexpand): Doc fix.
7553
7554 2000-08-20 Jason Rumney <jasonr@gnu.org>
7555
7556 * w32term.h (x_display_info_for_display): Remove as this function
7557 does not exist on W32.
7558
7559 * w32term.c (help_echo_window): New variable.
7560 (syms_of_w32term): staticpro it.
7561 (note_mode_line_highlight): Set it.
7562 (XTextExtents16): Removed as there is no equivalent on W32.
7563 (x_compute_glyph_string_overhangs): Incomplete body removed, as
7564 the X way of doing this will not work for W32.
7565 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
7566 (x_draw_image_foreground): Avoid drawing outside of the clip area
7567 when image doesn't have a mask.
7568 (note_mouse_highlight): Process overlays in the right order of
7569 priority. Set help_echo_window.
7570 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
7571 because that's more visible for large images.
7572
7573 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
7574 name to single_keymap_panes.
7575 (w32_menu_show): Set wv->title when dealing with titles.
7576 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
7577
7578 2000-08-21 Miles Bader <miles@gnu.org>
7579
7580 * minibuf.c (do_completion): Try again if we rewrite the input
7581 string, but no completion was done, so that any completion message
7582 will be correct.
7583
7584 2000-08-20 Gerd Moellmann <gerd@gnu.org>
7585
7586 * xfaces.c (lface_equal_p): Compare strings differently.
7587 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
7588 (realize_tty_face): Use them.
7589 (syms_of_xfaces): Initialize new variables.
7590 (map_tty_color): New function, extracted from realize_tty_face.
7591 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
7592 foreground or background color, store the new color name in the
7593 realized face; previous code trying to do this had no effect.
7594 (realize_tty_face): Use map_tty_color.
7595 (Fclear_face_cache): Set face_change_count and ensure thorough
7596 redisplay.
7597
7598 2000-08-19 Gerd Moellmann <gerd@gnu.org>
7599
7600 * undo.c (record_first_change, record_marker_adjustment): Don't
7601 use XBUFFER on last_undo_buffer which might not be a buffer.
7602
7603 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7604
7605 * coding.c (decode_coding_string): Set members consumed,
7606 consumed_char, produced, produced_char of *coding correctly. If
7607 decode_coding doesn't consume any byte, don't try anymore.
7608 (encode_coding_string): Likewise.
7609
7610 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7611
7612 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
7613 conditional have void type, for Standard C compilers.
7614
7615 * xdisp.c (redisplay_internal): Compare windows for equality with
7616 EQ, instead of applying XWINDOW to something that might not
7617 be a window.
7618
7619 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7620
7621 * fontset.c (Finternal_char_font): Search only the selected frame
7622 for a window of the current buffer.
7623
7624 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7625
7626 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
7627 Lisp_Objects.
7628
7629 * keyboard.c (kbd_buffer_get_event): Handle the case that the
7630 second half of a HELP_EVENT is found at the start of kbd_buffer.
7631
7632 2000-08-18 Miles Bader <miles@gnu.org>
7633
7634 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
7635
7636 * editfns.c (save_restriction_save): Rewrite to use markers.
7637 (save_restriction_restore): Rewrite to understand new form of data
7638 saved by save_restriction_save.
7639 (Fsave_restriction): Remove cautionary note in doc-string.
7640
7641 2000-08-17 Gerd Moellmann <gerd@gnu.org>
7642
7643 * fileio.c (build_annotations): Add a comment explaining the
7644 return value of format-annotate-function. Replace a spurious call
7645 to Flength with a CONSP test. Call format-annotate-function with
7646 a fifth arg specifying how many times the function is been called
7647 in a row, to let it choose temporary buffers appropriately.
7648
7649 2000-08-17 Dave Love <fx@gnu.org>
7650
7651 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
7652 declare make_temp_name twice.
7653
7654 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
7655 (unreadpure): Give it an arg.
7656
7657 * unexalpha.c: Prototype fatal_unexec, mark_x,
7658 update_dynamic_symbols. Declare unexec as void.
7659
7660 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
7661 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
7662
7663 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
7664 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
7665
7666 * alloca.c: Use #error.
7667 [POINTER_TYPE]: Use it.
7668
7669 * eval.c (Fdefvar): Doc fix.
7670
7671 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
7672 INITIALIZE_INTERVAL.
7673
7674 * buffer.h: Avoid DECLARE_INTERVALS.
7675
7676 * config.in: Add size_t.
7677
7678 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
7679
7680 * w16select.c (set_clipboard_data): If there's not enough memory
7681 to put text into clipboard, return 1, as Fw16_set_clipboard_data
7682 expects. In case of other failures, return 3.
7683 (system_error_msg): New error message.
7684 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
7685 system_error_msg.
7686
7687 2000-08-16 Gerd Moellmann <gerd@gnu.org>
7688
7689 * term.c (write_glyphs): Also turn off inverse video after turning
7690 off other appearances in case TS_exit_attribute_mode is not equal
7691 to TS_end_standout_mode.
7692 (insert_glyphs): Turn inverse video on/off for each run of glyphs
7693 with the same face.
7694 (turn_off_face): Reset standout_mode only if
7695 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
7696 is equal to TS_end_standout_mode.
7697
7698 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7699
7700 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
7701 sequence at the end of the source block.
7702
7703 * ccl.c (Fccl_program_p): Docstring modified.
7704 (Fccl_execute): Likewise.
7705 (Fccl_execute_on_string): Likewise.
7706
7707 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
7708
7709 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
7710
7711 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7712
7713 The following changes are mainly to fix bugs of
7714 encode/decode-coding-string failing if encoding/decoding return
7715 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
7716 variable conversion_buffer.
7717
7718 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
7719 decrement dst_end to avoid buffer overflow in the later call of
7720 string_as_multibyte
7721
7722 * coding.h (conversion_buffer_size, conversion_buffer)
7723 (get_conversion_buffer): Extern deleted.
7724
7725 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
7726 (conversion_buffer, conversion_buffer_size): Variables deleted.
7727 (get_conversion_buffer): Function deleted.
7728 (struct conversion_buffer): New structure.
7729 (MAX_ALLOCA): New macro.
7730 (allocate_conversion_buffer): New macro.
7731 (extend_conversion_buffer, free_conversion_buffer): New functions.
7732 (ccl_coding_driver): Set coding->result.
7733 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
7734 this is the last block of source.
7735 (encode_coding): Likewise. Handle the source block as the last
7736 one only when the whole source text is consumed.
7737 (decode_coding_string): Handle the case that the output buffer is
7738 too small to decode the whole source text. Use
7739 allocate_conversion_buffer, extend_conversion_buffer and
7740 free_conversion_buffer, not get_conversion_buffer.
7741 (encode_coding_string): Likewise.
7742 (init_coding): Function deleted.
7743 (init_coding_once): Delete code to initialize conversion_buffer_size.
7744
7745 * emacs.c (main): Don't call init_coding.
7746
7747 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
7748
7749 * term.c (write_glyphs): Use a locally declared conversion_buffer.
7750 (insert_glyphs): Likewise.
7751
7752 * w32console.c (write_glyphs): Use a locally declared
7753 conversion_buffer.
7754
7755 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
7756
7757 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
7758 member of display_info is NULL.
7759
7760 2000-08-15 Gerd Moellmann <gerd@gnu.org>
7761
7762 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
7763
7764 * term.c (turn_off_face): Reset standout_mode when resetting
7765 appearances with capability `me'.
7766 (write_glyphs): Switch on inverse video before each face change.
7767
7768 2000-08-14 Dave Love <fx@gnu.org>
7769
7770 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
7771 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
7772 (lisp_free): Declare and make static.
7773
7774 * window.c: Fix embedded comment.
7775 (syms_of_window): Fix doc string.
7776
7777 2000-08-14 Gerd Moellmann <gerd@gnu.org>
7778
7779 * keymap.c (push_key_description): If C without modifiers is < 32,
7780 make sure to print `C-' before `M-', like in the manual.
7781
7782 2000-08-11 Gerd Moellmann <gerd@gnu.org>
7783
7784 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
7785 since they aren't relocated anymore.
7786 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
7787
7788 * xdisp.c (try_cursor_movement): Fix handling of cursor in
7789 partially visible line which is smaller than the window's height.
7790
7791 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7792
7793 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
7794 the multibyte form of eight-bit-control characters.
7795 (Fccl_execute_on_string): Initialize ccl->multibyte.
7796
7797 * ccl.h (struct ccl_program): New member multibyte.
7798
7799 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
7800
7801 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7802
7803 * regex.c (regex_compile) <normal_char>: Pay attention to
7804 multibyteness.
7805 (analyse_first) <exactn>: Setup fastmap correctly for
7806 eight-bit-control characters.
7807
7808 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7809
7810 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
7811
7812 * keyboard.c (make_lispy_event): Handle the new event type
7813 multibyte_char_keystroke.
7814
7815 * xterm.c: Include coding.h.
7816 (XTread_socket): Work around a bug of XmbLookupString. If the
7817 input is from XIM, decode it according to the current locale. In
7818 that case, generate multibyte_char_keystroke events.
7819
7820 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7821
7822 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
7823 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
7824
7825 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7826
7827 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
7828 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
7829 (move_it_in_display_line_to): Record iterator's ascent and descent
7830 before producing glyphs, and restore them when we know the glyph
7831 doesn't fit on the line.
7832 (move_it_to): Restructured so that it's easier to debug. If
7833 moving to a vpos, and not moving to an x or character position,
7834 stop as soon as the specified vpos is reached; don't move further
7835 into that line because that might change the computed line height.
7836 (try_cursor_movement): New function, extracted from the cursor
7837 movement branch of redisplay_window. If ending on a partially
7838 visible line, don't try to scroll if the cursor line is taller
7839 than the window.
7840 (redisplay_window): Use try_cursor_movement.
7841
7842 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
7843 because that function doesn't cope with variable-height lines.
7844
7845 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
7846 box cursor because that's better visible for large images.
7847
7848 2000-08-10 Miles Bader <miles@gnu.org>
7849
7850 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
7851
7852 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7853
7854 * xdisp.c (Vmessages_buffer_name): New variable.
7855 (message_dolog): Use it.
7856 (syms_of_xdisp): Initialize it.
7857
7858 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
7859
7860 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
7861 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
7862 redundant now that keyboard.h is included.
7863
7864 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
7865
7866 * keyboard.c (kbd_buffer_events_waiting): New function.
7867
7868 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
7869
7870 * msdos.c: Include keyboard.h.
7871 (XMenuActivate): Empty no_event events from the event buffer. If
7872 no events are left after that, call clear_input_pending.
7873 (mouse_clear_clicks): New function, code moved from mouse_init.
7874 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
7875 mouse driver to ``forget'' any past clicks.
7876
7877 * Makefile.in (msdos.o): Depend on keyboard.h.
7878
7879 2000-08-09 Gerd Moellmann <gerd@gnu.org>
7880
7881 * lisp.h (input_pending): External declaration.
7882
7883 * dispextern.h (Qredisplay_dont_pause): Declare extern.
7884
7885 * xdisp.c (echo_area_display): Display thoroughly if input is
7886 pending. Bind redisplay-dont-pause to t during the redisplay.
7887 in case input is pending.
7888
7889 * dispnew.c (Qredisplay_dont_pause): New variable.
7890 (syms_of_display): Initialize and staticpro it.
7891 (update_frame_1): Don't interrupt the display for pending input if
7892 redisplay_dont_pause is set.
7893
7894 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
7895
7896 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
7897
7898 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
7899
7900 * callproc.c (Fcall_process): Terminate the unwind-protect around
7901 the post-read-conversion of coding system.
7902
7903 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
7904 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
7905 * buffer.h (overlays_at): Update prototype.
7906 * xdisp.c (next_overlay_change): Update call to overlays_at.
7907 * xfaces.c (face_at_buffer_position): Likewise.
7908 * textprop.c (Fget_char_property): Likewise.
7909 * xterm.c (note_mouse_highlight): Likewise.
7910
7911 * minibuf.c (do_completion): Don't consider a simple change of
7912 case as `completion'.
7913
7914 2000-08-08 Ken Raeburn <raeburn@gnu.org>
7915
7916 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
7917 * undo.c (record_delete): Make sure last_point_position_buffer is
7918 a buffer before comparing pointers.
7919
7920 * coding.h (decode_coding_string): Declare.
7921
7922 * intervals.h (Fprevious_single_char_property_change): Declare.
7923
7924 * textprop.c (Fprevious_single_char_property_change): Don't do
7925 arithmetic directly on lisp objects.
7926
7927 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
7928
7929 * keyboard.h (menu_item_eval_property): Declare.
7930
7931 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
7932 reuse as buffer name, instead of recreating (and discarding) every
7933 time a message is logged.
7934 (with_echo_area_buffer): Make callback arg A2 a lisp object.
7935 (current_message_1, truncate_message_1, set_message_1)
7936 (display_echo_area_1, resize_mini_window_1): Signatures changed.
7937 (current_message, truncate_echo_area, display_echo_area)
7938 (resize_echo_area_axactly): Changed calls.
7939
7940 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
7941 Lisp object.
7942 (Ffind_coding_systems_region_internal): First argument to Fappend
7943 must be an integer, not a Lisp object.
7944
7945 2000-08-08 Kenichi Handa <handa@etl.go.jp>
7946
7947 * charset.c (Fchar_width): Doc fix.
7948
7949 2000-08-08 Gerd Moellmann <gerd@gnu.org>
7950
7951 * charset.c (Fstring_width): Doc fix.
7952
7953 2000-08-07 Gerd Moellmann <gerd@gnu.org>
7954
7955 * xdisp.c (start_display): When starting display on a continuation
7956 line, clear ascent and descent members of the iterator structure;
7957 the height of the continued line does not affect the height of the
7958 continuation line.
7959 (make_cursor_line_fully_visible): Do nothing if cursor is on a
7960 line taller than the window.
7961 (redisplay_window) <forced window start>: Handle case that the
7962 middle of the window is not found in any row.
7963 (dump_glyph_row): Show more information.
7964 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
7965 first text line in a glyph matrix.
7966
7967 * xterm.c (x_draw_image_foreground): Avoid drawing outside
7968 of the clip area when image doesn't have a mask.
7969
7970 * fns.c (sweep_weak_table): Fix survival conditions for
7971 key-or-value and key-and-value weakness.
7972
7973 * .gdbinit (xhashtable): New command.
7974
7975 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
7976 tables out of the list of all weak hash tables.
7977
7978 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
7979 a new buffer is created, make sure echo_area_buffer[] references
7980 the new buffer.
7981
7982 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
7983
7984 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
7985 the doc string.
7986
7987 2000-08-07 Kenichi Handa <handa@etl.go.jp>
7988
7989 * syntax.c (skip_chars): Fix previous change. Make the handling
7990 of unibyte string consistent with that of regex search.
7991
7992 2000-08-05 Gerd Moellmann <gerd@gnu.org>
7993
7994 * xmenu.c (popup_get_selection): Use xfree instead of free.
7995
7996 * fileio.c (Finsert_file_contents): Use xfree instead of free.
7997
7998 * editfns.c (Ftranspose_regions): Use xfree instead of free.
7999
8000 * callproc.c (child_setup): Use xfree instead of free.
8001
8002 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
8003 instead of malloc.
8004 (run_mac_command, closedir): Use `xfree' instead of `free'.
8005
8006 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
8007
8008 * eval.c (error): Use xfree instead of free.
8009
8010 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
8011
8012 * fns.c: Replace `illegal' with `invalid'.
8013 (Fmake_hash_table, make_hash_table): Allow table size of 0.
8014
8015 2000-08-05 Kenichi Handa <handa@etl.go.jp>
8016
8017 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
8018 conversion.
8019
8020 2000-08-04 Noah Friedman <friedman@splode.com>
8021
8022 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
8023 docstring.
8024
8025 2000-08-04 Gerd Moellmann <gerd@gnu.org>
8026
8027 * syntax.c (skip_chars): Fix typo in error message.
8028
8029 2000-08-04 Andreas Schwab <schwab@suse.de>
8030
8031 * m/ia64.h: Moved from s/ia64.h.
8032
8033 2000-08-04 Kenichi Handa <handa@etl.go.jp>
8034
8035 * process.c (read_process_output): Big simplification. Handle
8036 composition and post-read-conversion of coding system correctly.
8037 (send_process): Handle composition correctly.
8038
8039 * callproc.c (Fcall_process): Handle post-read-conversion of
8040 coding system if any.
8041
8042 * coding.c (decode_coding_iso2022): More strict check for handling
8043 single shifting.
8044 (coding_restore_composition): Pay attention to the case that
8045 cmp_data is not set properly (because of invalid code in the
8046 source text).
8047 (run_pre_post_conversion_on_str): Include text properties in the
8048 resulting string.
8049 (decode_coding_string): Set members of coding correctly.
8050
8051 2000-08-03 Gerd Moellmann <gerd@gnu.org>
8052
8053 * s/ia64.h: New file.
8054
8055 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
8056 Use NULL instead of 0 at the end of variable argument list of
8057 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
8058 sizeof (int) < sizeof (void *).
8059
8060 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
8061 of variable argument lists of XtVaGetValues and XtVaSetValues.
8062
8063 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
8064 variable argument lists of XtVaGetValues and XtVaSetValues.
8065
8066 2000-08-02 Gerd Moellmann <gerd@gnu.org>
8067
8068 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
8069 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
8070
8071 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
8072 prototype.
8073
8074 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
8075 in call to Fsingle_key_description.
8076
8077 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
8078 Callers changed.
8079
8080 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
8081
8082 * window.c (display_buffer_reuse_frames): New variable.
8083 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
8084 frames displaying BUFFER.
8085 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
8086
8087 2000-08-01 Miles Bader <miles@gnu.org>
8088
8089 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
8090 when to constrain NEW_POS (they were pretty screwed up before).
8091
8092 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
8093
8094 * msdos.c (run_msdos_command): Save and restore the master
8095 environment, for the case that child_setup signals an error.
8096 When mirroring slashes in DOS shell commands, don't fail when
8097 argv[2] has embedded blanks.
8098 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
8099 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
8100 (dos_ttraw): Call mouse_setup_buttons.
8101
8102 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
8103 using alloca; free it after run_msdos_command returns.
8104
8105 2000-07-27 Dave Love <fx@gnu.org>
8106
8107 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
8108 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
8109
8110 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
8111
8112 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
8113
8114 * editfns.c (lisp_time_argument): Fix last change.
8115
8116 2000-07-27 Gerd Moellmann <gerd@gnu.org>
8117
8118 * fns.c (Fdelete): Make it work on vectors and strings in addition
8119 to lists.
8120
8121 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
8122 (syms_of_fns): Initialize new variables.
8123 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
8124 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
8125 weakness, with t meaning the same as `key-and-value'.
8126
8127 2000-07-27 Kenichi Handa <handa@etl.go.jp>
8128
8129 * coding.h (struct coding_system): Member safe_charset deleted.
8130
8131 * coding.c (Qsafe_charsets): This variable deleted.
8132 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
8133 New variables.
8134 (coding_safe_chars): New function.
8135 (CODING_SAFE_CHAR_P): New macro.
8136 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
8137 checking safe_charsets member of the coding system. Caller changed.
8138 (detect_coding_iso2022): New local variable safe_chars.
8139 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
8140 safe_charsets member of the coding system.
8141 (decode_coding_iso2022): New local variable safe_chars.
8142 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
8143 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
8144 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
8145 (ENCODE_UNSAFE_CHARACTER): New macro.
8146 (encode_coding_iso2022): New local variable safe_chars. Check
8147 unsafe chars.
8148 (setup_coding_system): Delete the code to initialize
8149 coding->safe_charses
8150 (intersection, find_safe_codings): New functions.
8151 (Ffind_coding_systems_region_internal): New function.
8152 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
8153 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
8154 variable and initialize it.
8155
8156 * fns.c (char_table_ref_and_index): New function.
8157
8158 * lisp.h (char_table_ref_and_index): Add prototype.
8159
8160 2000-07-26 Sam Steingold <sds@gnu.org>
8161
8162 * editfns.c (lisp_time_argument): Added third argument `usec'.
8163 (Ffloat_time): New built-in Lisp function.
8164
8165 2000-07-26 Gerd Moellmann <gerd@gnu.org>
8166
8167 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
8168 for the character code.
8169
8170 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
8171 GNU/Linux.
8172
8173 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
8174 if called for a popup menu.
8175 (xmenu_show): Store help string in widget values.
8176
8177 2000-07-26 Dave Love <fx@gnu.org>
8178
8179 * syswait.h: Move some definitions.
8180 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
8181 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
8182 perspicuous definitions.
8183 (WTERMSIG): Fix bit pattern used.
8184
8185 2000-07-26 Kenichi Handa <handa@etl.go.jp>
8186
8187 * print.c (print_object): If vector printing is truncated, print
8188 "..." to indicate it as well as the case of list printing.
8189
8190 2000-07-25 Gerd Moellmann <gerd@gnu.org>
8191
8192 * xdisp.c (next_element_from_display_vector): Improve comments.
8193
8194 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
8195 for the character code, and the rest for the face id as in 20.x.
8196 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
8197
8198 * window.c (window_display_table): Cleaned up.
8199
8200 * syntax.c (Fforward_word): Add last arg nil in call of
8201 Fconstrain_to_field.
8202
8203 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
8204
8205 * fileio.c (Frename_file) [DOS_NT]: If the file names are
8206 identical but for the letter-case, don't call
8207 barf_or_query_if_file_exists.
8208
8209 2000-07-25 Miles Bader <miles@gnu.org>
8210
8211 * editfns.c (find_field): Honor special `boundary' fields.
8212 (Qboundary): New variables.
8213 (syms_of_editfns): Initialize Qboundary.
8214 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
8215 Use scan_buffer instead of find_before_next_newline, because it
8216 allows us to detect the boundary case where there's a newline at
8217 the search limit.
8218 * lisp.h (Fconstrain_to_field): Update external declaration.
8219
8220 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8221
8222 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
8223 if that is nil.
8224
8225 2000-07-24 Dave Love <fx@gnu.org>
8226
8227 * s/sunos4-0.h, s/sol2.h:
8228 (LIBS_TERMCAP): Move from m/sparc.h.
8229
8230 * m/sparc.h (TERMINFO): Moved to system files (probably only
8231 relevant for sunos4 judging by its vintage).
8232 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
8233 __arch64__.
8234
8235 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
8236
8237 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
8238 name to single_keymap_panes.
8239
8240 2000-07-24 Andreas Schwab <schwab@suse.de>
8241
8242 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
8243
8244 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8245
8246 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
8247 parameters instead of using int parameters. Expect FN to accept
8248 EMACS_INT parameters.
8249 (display_echo_area, resize_echo_area_axactly, current_message)
8250 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
8251 with new argument list.
8252 (resize_mini_window_1): New callback function.
8253 (current_message_1, truncate_message_1, set_message_1): Change
8254 parameter lists to the new format expected by with_echo_area_buffer.
8255
8256 2000-07-24 Kenichi Handa <handa@etl.go.jp>
8257
8258 * fontset.c (fontset_ref): Remove INLINE declaration.
8259 (fontset_ref_via_base): Likewise.
8260 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
8261 to downcase.
8262
8263 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
8264
8265 * msdos.c (IT_note_mouse_highlight): Process overlays in the
8266 correct order of priority. If help echo was found in an overlay,
8267 use that overlay as the object in which the help echo was found.
8268
8269 2000-07-22 Miles Bader <miles@gnu.org>
8270
8271 * textprop.c (Fprevious_single_char_property_change): The initial
8272 property value should be from the position preceding POSITION, not
8273 following it.
8274
8275 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
8276
8277 * coding.c (syms_of_coding): Doc fix for
8278 inhibit-iso-escape-detection.
8279
8280 2000-07-21 Gerd Moellmann <gerd@gnu.org>
8281
8282 * xterm.c (note_mouse_highlight): Process overlays in the right
8283 order of priority.
8284
8285 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
8286
8287 * xterm.c (note_mouse_highlight): If help-echo was found in an
8288 overlay, use that overlay as the object in which the help was found.
8289
8290 * window.c (foreach_window_1): Fix typo reversing an if-condition.
8291
8292 * window.c (foreach_window): Instead of a fake variable argument
8293 list, take one USER_DATA argument.
8294 (foreach_window_1): Likewise, and call callback functions with two
8295 args, the window and USER_DATA.
8296 (struct check_window_data): New struct.
8297 (check_window_containing): Use it.
8298 (window_from_coordinates): Set up a struct check_window_data for
8299 foreach_window.
8300 (add_window_to_list, freeze_window_start): Change parameters
8301 according to new calling convention.
8302
8303 * window.h (foreach_window): Change prototype.
8304
8305 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
8306
8307 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
8308
8309 * xmenu.c (menu_help_callback): Call show_help_echo with
8310 additional arguments OBJECT and POS.
8311
8312 2000-07-21 Kenichi Handa <handa@etl.go.jp>
8313
8314 * data.c (Faset): Allow storing any multibyte character in a
8315 string. Convert unibyte string to multibyte if necessary.
8316
8317 * xfns.c (x_encode_text): New function.
8318 (x_set_name): Use x_encode_text.
8319 (x_set_title): Likewise.
8320
8321 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
8322
8323 * xterm.h (x_encode_text): Add prototype.
8324
8325 2000-07-20 Dave Love <fx@gnu.org>
8326
8327 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
8328 xfree, not free.
8329
8330 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
8331
8332 * msdos.c (help_echo_window): New variable.
8333 (syms_of_msdos): Initialize and staticpro it.
8334 (IT_note_mode_line_highlight): Set help_echo_window.
8335 (IT_note_mouse_highlight): Ditto.
8336 (dos_rawgetc): Store help_echo_window in the second event produced
8337 for HELP_EVENTs.
8338
8339 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
8340 Record the object that generated the help echo and the position of
8341 that object in help_echo_object and help_echo_pos. Record that
8342 some glyphs in a row are displayed in mouse-face.
8343 (IT_update_begin): Don't clear mouse highlight unless one of the
8344 enabled glyph rows is marked as being displayed in mouse-face.
8345 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
8346 and position recorded in help_echo_object and help_echo_pos to the
8347 event queue.
8348 (IT_menu_display): Accept a new argument PN: the pane number of
8349 the current menu pane. Record the pane number and the item
8350 number of the item which has associated help string.
8351 (XMenuActivate): Update the prototype for help_callback in
8352 function declaration. Call IT_menu_display with the current menu
8353 pane number as an additional argument. Call help_callback with
8354 two additional arguments: the pane number and the item number of
8355 the menu item associated with the help text.
8356 (help_echo_object, help_echo_pos): New variables.
8357 (syms_of_msdos): Initialize them and staticpro help_echo_object.
8358
8359 * msdos.h (XMenuActivate): Update prototype.
8360
8361 2000-07-19 Gerd Moellmann <gerd@gnu.org>
8362
8363 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
8364 Add some more prototypes.
8365
8366 * xterm.c, xterm.h: Add some more prototypes.
8367
8368 * lisp.h (Fnext_single_char_property_change): Add prototype.
8369
8370 * dispnew.c (direct_output_for_insert): Remove confusing
8371 outer local variable mouse_face_overwritten_p.
8372 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
8373
8374 * alloc.c (allocate_string_data): Don't copy old string contents.
8375
8376 2000-07-19 Kenichi Handa <handa@etl.go.jp>
8377
8378 * coding.c (code_convert_region): Delete text properties before
8379 shrinking the conversion region.
8380
8381 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8382
8383 * dispnew.c (update_text_area): Write the whole row if it
8384 has mouse-face in it.
8385
8386 * xfaces.c (face-alternative-font-family-alist): Remove
8387 DEFVAR_LISP; staticpro instead.
8388
8389 * xmenu.c (menu_help_callback): Call show_help_echo with
8390 new arguments.
8391
8392 * keyboard.c (show_help_echo): Add parameter WINDOW.
8393 (read_char): Call show_help_echo with window extracted from Lisp
8394 help event.
8395 (gen_help_event): Add parameter WINDOW.
8396
8397 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
8398
8399 * xterm.c (help_echo_window): New variable.
8400 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
8401 (XTread_socket): Pass help_echo_window to gen_help_event.
8402 (syms_of_xterm): Initialize and staticpro help_echo_window.
8403
8404 2000-07-18 Dave Love <fx@gnu.org>
8405
8406 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
8407
8408 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8409
8410 * alloc.c (allocate_string_data): If string had already data
8411 assigned, copy old contents to new string data.
8412
8413 * coding.c (syms_of_coding): Fix typo in spelling of variable
8414 `inhibit-iso-escape-detection'.
8415
8416 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
8417
8418 * Makefile.in: Add dependencies on dispextern.h.
8419 (alloca.o): Don't define malloc and define EMACS_FREE instead of
8420 `free'; both can conflict with system header files.
8421
8422 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8423
8424 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
8425 undefined.
8426
8427 2000-07-18 Dave Love <fx@gnu.org>
8428
8429 * window.c (Fwindow_list): Declare arg `window'.
8430
8431 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8432
8433 * coding.c (setup_coding_system): Don't override the explicitly
8434 specified designations.
8435
8436 2000-07-15 Miles Bader <miles@gnu.org>
8437
8438 * editfns.c (char_property_eq, char_property_stickiness): Renamed
8439 from `text_property_eq' and `text_property_stickiness', respectively.
8440 (find_field, Fconstrain_to_field, char_property_eq)
8441 (char_property_stickiness): Changed to call char-property functions
8442 instead of text-property-only ones.
8443
8444 * textprop.c (Fnext_single_char_property_change): Made a subr (was
8445 `next_single_char_property_change'). Do more error checking, and
8446 cleanup limit behavior.
8447 (Fprevious_single_char_property_change): New function.
8448 (syms_of_textprop): Initialize new subrs.
8449
8450 * xdisp.c (display_prop_end, invisible_text_between_p):
8451 Call Fnext_single_char_property_change instead of
8452 next_single_char_property_change.
8453
8454 2000-07-15 Jason Rumney <jasonr@gnu.org>
8455
8456 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
8457 after menu is finished with.
8458 (add_menu_item): Only consider wv->title as a menu title.
8459 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
8460
8461 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
8462 null title.
8463 (FONT_REGEXP): Remove unused macro, and its sub-components.
8464 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
8465
8466 * w32term.c (help_echo_object, help_echo_pos): New variables.
8467 (note_mode_line_highlight): Store additional information about the
8468 help-echo in help_echo_object and help_echo_pos. Check both
8469 `local-map' and `keymap' properties for changing the cursor
8470 (note_mouse_highlight): Store additional information about the
8471 help-echo in help_echo_object and help_echo_pos.
8472 (note_tool_bar_highlight): Set help_echo_object to nil and
8473 help_echo_pos to -1.
8474 (w32_read_socket): Use gen_help_event instead of filling
8475 input_events manually.
8476 (syms_of_w32term): Staticpro help_echo_object.
8477 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
8478 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
8479 (x_clear_mouse_face): New function.
8480 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
8481 (x_update_window_begin): No need to turn off the mouse
8482 highlight here.
8483 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8484 depending on whether they contain glyphs highlighted in mouse-face.
8485 (x_fill_stretch_glyph_string): Consume runs of stretch
8486 glyphs instead of a single one.
8487 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8488 with new argument list.
8489 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8490 (x_append_glyph, x_append_composite_glyph)
8491 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8492 changes in struct glyph starting 1999-12-27. See comments for
8493 xterm.c on 2000-07-05.
8494
8495 2000-07-14 Sam Steingold <sds@gnu.org>
8496
8497 * xfaces.c (realize_x_face): Fix the last patch:
8498 check `default_face' before dereferencing.
8499
8500 2000-07-14 Dave Love <fx@gnu.org>
8501
8502 * syntax.c (back_comment): Add null default in switch (for pcc).
8503
8504 2000-07-14 Kenichi Handa <handa@etl.go.jp>
8505
8506 * xfaces.c (realize_x_face): Make fontset using the base of the
8507 default_face's fontset, not using the default fontset.
8508
8509 * coding.c (inhibit_iso_escape_detection): New variable.
8510 (syms_of_coding): Make it a Lisp variable.
8511 (detect_coding_iso2022): If inhibit_iso_escape_detection is
8512 nonzero, ignore ISO2022's escape sequence.
8513
8514 2000-07-14 Gerd Moellmann <gerd@gnu.org>
8515
8516 * alloca.c (malloc) [emacs]: Define as xmalloc.
8517
8518 * xfns.c (Fx_show_tip): If frame parameters contain a position,
8519 use that instead of the mouse position. Add parameters DX and DY.
8520
8521 * dispextern.h (Fx_show_tip): Adjust number of parameters
8522 in prototype.
8523
8524 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
8525 if HELP is a function, call it with OBJECT and POS as parameters
8526 to get the help to display.
8527 (gen_help_event, kbd_buffer_store_help_event): New functions.
8528 (kbd_buffer_get_event): Construct the Lisp help-event differently.
8529 (read_char): Call show_help_echo with new parameters.
8530
8531 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
8532 Add prototypes.
8533
8534 * xterm.c (help_echo_object, help_echo_pos): New variables.
8535 (note_mode_line_highlight): Store additional information about the
8536 help-echo in help_echo_object and help_echo_pos. Check both
8537 `local-map' and `keymap' properties for changing the cursor
8538 (note_mouse_highlight): Store additional information about the
8539 help-echo in help_echo_object and help_echo_pos.
8540 (note_tool_bar_highlight): Set help_echo_object to nil and
8541 help_echo_pos to -1.
8542 (XTread_socket): Use gen_help_event instead of filling
8543 input_events manually.
8544 (syms_of_xterm): Staticpro help_echo_object.
8545
8546 * xmenu.c (menu_highlight_callback): Use
8547 kbd_buffer_store_help_event instead of setting up and input_event
8548 structure manually.
8549
8550 * xdisp.c (eval_form): GCPRO argument sexpr.
8551 (call_function): New function.
8552 (handle_single_display_prop): Use call_function and FUNCTIONP
8553 instead of checking whether if font_height is a symbol and
8554 using eval_form.
8555
8556 * eval.c (internal_condition_case_2): New function.
8557
8558 * lisp.h (FUNCTIONP): New macro.
8559 (internal_condition_case_2, call_function): Add prototypes.
8560
8561 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
8562 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
8563 Always set `arg' member of input_events.
8564 (construct_menu_click): Unused function removed.
8565
8566 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
8567
8568 * w32term.c (construct_mouse_click, construct_mouse_wheel)
8569 (construct_drag_n_drop, x_scroll_bar_handle_click)
8570 (w32_read_socket): Always set `arg' member of input_events.
8571
8572 * keyboard.c (show_help_echo): Use eval_form. Add comment.
8573
8574 * lisp.h (eval_form): Add prototype.
8575
8576 * xdisp.c (eval_form): Make it externally visible.
8577
8578 2000-07-13 Gerd Moellmann <gerd@gnu.org>
8579
8580 * xterm.c (x_handle_tool_bar_click): Store the frame in the
8581 frame_or_window slot of TOOL_BAR_EVENT input events instead of
8582 consing. For prefix events, store the frame in the `arg' slot of
8583 the event, otherwise store the key there.
8584 (XTread_socket): Instead of consing, use the frame_or_window slot
8585 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
8586
8587 * xmenu.c (menu_highlight_callback): Store help string in the
8588 `arg' member of the input event; don't cons.
8589 (menubar_selection_callback): Use the `arg' slot of input events
8590 to queue additional information, instead of consing.
8591
8592 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
8593
8594 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
8595 TOOL_BAR_EVENTs.
8596 (w32_read_socket): Adapt to changes in HELP_EVENTs.
8597
8598 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
8599 input events to queue additional information, instead of consing.
8600
8601 * keyboard.c (kbd_buffer_gcpro): Renamed from
8602 kbd_buffer_frame_or_window. Now used for all Lisp objects
8603 referenced from the input queue.
8604 (kbd_buffer_store_event): Always use structure assignment for
8605 copying input events. Record all Lisp objects referenced from
8606 events in kbd_buffer_gcpro.
8607 (kbd_buffer_get_event): Construct Lisp `help-echo' events
8608 differently from input events. Test for prefix menu_bar_events
8609 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
8610 event in kbd_buffer_gcpro to nil.
8611 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
8612 frame_or_window is equal to its arg member as prefix events.
8613 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
8614 used by an input event to nil.
8615 (init_keyboard): Use two times the size of the input queue
8616 for kbd_buffer_gcpro.
8617 (syms_of_keyboard): Likewise.
8618
8619 * emacs.c (handle_USR2_signal, handle_USR1_signal):
8620 Use USER_SIGNAL_EVENT.
8621
8622 * termhooks.h (struct input_event): Add member `arg'.
8623 (MENU_BAR_EVENT): Renamed from menu_bar_event.
8624 (USER_SIGNAL_EVENT): Renamed from user_signal.
8625
8626 * xfaces.c (ASET): Remove definition.
8627
8628 * lisp.h (AREF, ASET, ASIZE): New macros.
8629
8630 * fontset.c (AREF, ASIZE): Remove definitions.
8631
8632 * fns.c (AREF): Remove definition.
8633
8634 * composite.c (AREF): Remove definition.
8635
8636 2000-07-12 Gerd Moellmann <gerd@gnu.org>
8637
8638 * dispnew.c (redraw_overlapped_rows): Add missing local.
8639 (scrolling_window): Remove debug code.
8640
8641 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
8642 Before scrolling, turn off a mouse-highlight in the window
8643 being scrolled.
8644
8645 * xterm.c (x_update_window_end): Add parameter
8646 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
8647 redisplay in XTframe_up_to_date.
8648 (x_clear_mouse_face): New function.
8649 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
8650
8651 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
8652 current glyph row.
8653 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
8654 it when any row is written to that contains glyphs highlighted in
8655 mouse-face.
8656 (update_window): Call the window update end hook with new
8657 parameter MOUSE_FACE_OVERWRITTEN_P.
8658 (direct_output_for_insert): Give up if row contains mouse-face.
8659
8660 * dispextern.h (struct redisplay_interface): Add parameter
8661 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
8662 (clear_mouse_face): New function pointer member.
8663
8664 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
8665
8666 * syntax.c (back_comment): Use one switch rather than a few `if's.
8667 Obey open_paren_in_column_0_is_defun_start.
8668 When reverting to the `slow' method, try to nicely handle the case
8669 of nested comments by checking that the comment-starter we found
8670 does indeed match the comment-ender.
8671 (scan_sexps_forward, scan_sexps_forward):
8672 Ignore excessive opening parenthesis rather than throwing an error.
8673
8674 2000-07-11 Gerd Moellmann <gerd@gnu.org>
8675
8676 * doc.c (Fsubstitute_command_keys): Handle case that a GC
8677 in Fwhere_is_internal or get_keymap_1 relocates string contents.
8678
8679 * dispnew.c (direct_output_forward_char): Give up if currently
8680 displaying a message instead of the minibuffer contents.
8681
8682 * xterm.c (x_update_window_begin): No need to turn off the mouse
8683 highlight here.
8684 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8685 depending on whether they contain glyphs highlighted in mouse-face.
8686
8687 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
8688 compare the mouse_face_p flags of both rows.
8689
8690 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
8691
8692 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
8693
8694 * keyboard.c (show_help_echo): Accept additional parameter
8695 ok_to_overwrite_keystroke_echo.
8696 (read_char): Call show_help_echo with a zero
8697 ok_to_overwrite_keystroke_echo argument.
8698 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
8699 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
8700 ok_to_overwrite_keystroke_echo argument.
8701 * w32menu.c (w32_menu_display_help): Call show_help_echo with
8702 non-zero ok_to_overwrite_keystroke_echo argument.
8703
8704 2000-07-10 Gerd Moellmann <gerd@gnu.org>
8705
8706 * xdisp.c (try_window_id): If changes are all below what is
8707 displayed in the window, and point is in the window, we still
8708 might have to find point on the display.
8709
8710 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
8711 glyphs instead of a single one.
8712 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8713 with new argument list.
8714 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8715
8716 * keymap.c (get_keymap_1): Add comment that this function can GC.
8717 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
8718 comment that functions can GC.
8719 (Fset_keymap_parent): GCPRO arg KEYMAP.
8720
8721 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
8722
8723 * msdos.c (XMenuActivate): After exiting the menu, restore the
8724 echo area message and erase it.
8725
8726 2000-07-10 Kenichi Handa <handa@etl.go.jp>
8727
8728 * fontset.c (Ffontset_info): Make the return value more compatible
8729 with that of Emacs 20.
8730
8731 2000-07-07 Gerd Moellmann <gerd@gnu.org>
8732
8733 * eval.c (Fsignal): Handle case that backtrace_list is null.
8734
8735 2000-07-07 Kenichi Handa <handa@etl.go.jp>
8736
8737 * ccl.c (Fccl_execute): Typo fixed.
8738
8739 2000-07-06 Gerd Moellmann <gerd@gnu.org>
8740
8741 * window.c (window_loop): Add missing gcpro1 local variable.
8742
8743 * window.c (Fwindow_list): Reverse list at the end.
8744 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
8745 means allow windows on OWINDOW's frame, only.
8746 (window_loop): Simplified; use Fwindow_list.
8747
8748 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
8749
8750 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8751
8752 * xterm.c (XTread_socket): Increment handling_signal at the start,
8753 decrement it at the end.
8754
8755 * eval.c (handling_signal): New variable.
8756 (Fsignal): Abort if handling_signal is non-zero.
8757
8758 * lisp.h (handling_signal): External declaration.
8759
8760 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
8761
8762 2000-07-05 Ken Raeburn <raeburn@gnu.org>
8763
8764 Sound support for NetBSD through "Linux emulation" support:
8765 * config.in (HAVE_SOUNDCARD_H): Undef.
8766 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
8767 * Makefile.in (LIBSOUND): New variable.
8768 (LIBES): Include it.
8769 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
8770 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
8771 (vox_open): Use DEFAULT_SOUND_DEVICE.
8772 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
8773
8774 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8775
8776 * print.c (print_error_message): If Vsignaling_function is set,
8777 show it in *Messages*.
8778
8779 * lisp.h (Vsignaling_function): External declaration.
8780
8781 * eval.c (Vsignaling_function): New variable.
8782 (Fsignal): Compute it.
8783 (syms_of_eval): Staticpro it.
8784
8785 2000-07-05 Dave Love <fx@gnu.org>
8786
8787 * syswait.h: Use the autoconf recommended approach. Old code
8788 #if'd out in case we need to revert.
8789
8790 * config.in (HAVE_SYS_WAIT_H): Added.
8791
8792 2000-07-05 Andrew Innes <andrewi@gnu.org>
8793
8794 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
8795 when non-NULL instead of __morecore, to take account of buffer
8796 memory. This also solves a problem with spurious memory warnings
8797 on Windows.
8798
8799 * ralloc.c: Make real_morecore non-static.
8800
8801 * eval.c (internal_condition_case): Comment out abort if
8802 interrupt_input_blocked is not zero.
8803
8804 * makefile.nt: Add support for `bootstrap' and related targets.
8805 Include minimal debug info in emacs.exe in release build.
8806 Remove all dependencies on lisp.h, and fixup some others.
8807
8808 * w32.c (init_environment): Install code from 20.7 for providing
8809 default values for environment variables, based on the
8810 executable's own location.
8811 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
8812 (sys_socket): Install socket inheritance bug fix from 20.7.
8813
8814 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
8815 here via blockinput.h).
8816
8817 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
8818
8819 * w32menu.c (w32_menu_display_help):
8820 * xmenu.c (menu_help_callback): Use show_help_echo.
8821
8822 * keyboard.h (show_help_echo): Declare.
8823
8824 * keyboard.c (show_help_echo): New function, extracted from read_char.
8825 Feval its `msg' argument if it's a cons cell.
8826 (read_char): Use it.
8827 (follow_key): Pass `autoload' to get_keyelt.
8828
8829 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
8830 (note_tool_bar_highlight, XTread_socket):
8831 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
8832 (dos_rawgetc):
8833 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
8834 (note_tool_bar_highlight, w32_read_socket):
8835 Do not gratuitously ignore non-string `help-echo' properties.
8836
8837 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8838
8839 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
8840
8841 * window.c (delete_all_subwindows): Reset Vwindow_list.
8842
8843 * xterm.c (x_append_glyph, x_append_composite_glyph)
8844 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8845 changes in struct glyph starting 1999-12-27. Some bit-fields of
8846 struct glyph were not set, which made glyphs unequal when compared
8847 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
8848 effects were the result. This also depended on the contents of
8849 memory returned by xmalloc. If flickering happens again, activate
8850 the code in clear_glyph_row that's in #if 0. If the flickering is
8851 gone with that, chances are that it is caused by something similar.
8852
8853 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
8854
8855 * dispextern.h: Add some comments.
8856
8857 * window.c (add_window_to_list): Add parameter LIST.
8858 (window_list): Order list so that, for each frame, windows are
8859 in canonical order, and so that frames appear in the list in
8860 the order given by Vframe_list.
8861 (next_window): Reverse the handling of NEXT_P.
8862
8863 2000-07-04 Gerd Moellmann <gerd@gnu.org>
8864
8865 * window.c (Vwindow_list): New variable.
8866 (make_window, delete_window): Set Vwindow_list to nil.
8867 (check_window_containing): New function.
8868 (window_from_coordinates): Rewritten.
8869 (add_window_to_list, window_list, candidate_window_p)
8870 (decode_next_window_args, next_window): New functions.
8871 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
8872 (Fwindow_list): New function.
8873 (Fother_window): Cleaned up.
8874 (foreach_window): Add a longer "variable argument list". Let
8875 callback function return 0 to indicate that cycling over windows
8876 should stop.
8877 (foreach_window_1): Likewise.
8878 (freeze_window_start): Return int.
8879 (init_window): New function.
8880 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
8881
8882 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
8883 input_event with bzero.
8884 (main): Call init_window.
8885
8886 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
8887 a menu filter.
8888
8889 2000-07-04 Kenichi Handa <handa@etl.go.jp>
8890
8891 * composite.h (make_composition_value_copy): Extern it.
8892
8893 * composite.c (make_composition_value_copy): New function.
8894
8895 * editfns.c (Fformat): While copying text properties, make each
8896 composition property value a copy.
8897
8898 * fns.c (concat): While copying text properties, make each
8899 composition property value a copy.
8900
8901 2000-07-03 Gerd Moellmann <gerd@gnu.org>
8902
8903 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
8904
8905 * fns.c (sweep_weak_table): Mark only objects that are not
8906 marked already.
8907
8908 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
8909 include those frames as candidates which have their focus
8910 redirected to the minibuffer frame.
8911
8912 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
8913
8914 * fns.c (Fputhash): Return `value' rather than nil.
8915
8916 2000-06-30 Gerd Moellmann <gerd@gnu.org>
8917
8918 * frame.c (next_frame): Don't check focus redirection in case
8919 MINIBUF is a window. Doing so excludes frames using MINIBUF
8920 unless their focus is redirected, which contradicts the
8921 specification of next-frame, and leads to infinite loops in
8922 certain situations when cycling through windows with next-window.
8923
8924 2000-06-30 Kenichi Handa <handa@etl.go.jp>
8925
8926 * coding.c (code_convert_region): Even if the length of text is
8927 zero, try to convert it if coding->type is coding_type_ccl.
8928 (decode_coding_string, encode_coding_string): Likewise.
8929
8930 2000-06-28 Gerd Moellmann <gerd@gnu.org>
8931
8932 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
8933 the display if windows_or_buffers_changed.
8934
8935 * dispnew.c (struct row_entry): New structure.
8936 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
8937 (row_table_size, old_lines, new_lines, old_lines_size)
8938 (new_lines_size, run_pool, runs_size, runs): New variables.
8939 (add_row_entry): New function.
8940 (scrolling_window): Use data structures allocated with xmalloc and
8941 held in global variables, instead of allocating them with alloca and
8942 holding them in local variables. Use a larger hash table whose
8943 size depends on glyph matrix sizes. Don't use bzero to clear the
8944 hash table; instead, clear used slots only.
8945
8946 * fns.c (next_almost_prime): Make it externally visible.
8947
8948 * lisp.h (next_almost_prime): Add prototype.
8949
8950 * s/isc4-0.h (sigunblock): Define.
8951
8952 * s/sco5.h (sigunblock): Define.
8953
8954 2000-06-27 Dave Love <fx@gnu.org>
8955
8956 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
8957 (moved to osf5-0.h).
8958 [!NOT_C_CODE]: Protect string.h stuff.
8959
8960 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
8961 (sys_siglist, NSIG): Definitions moved here from osf1.h.
8962
8963 2000-06-27 Gerd Moellmann <gerd@gnu.org>
8964
8965 * xdisp.c (resize_mini_window): Subtract the extra line spacing
8966 below the last line from the needed window height.
8967
8968 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
8969
8970 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
8971 (Fwidget_get): Use it.
8972 (syms_of_fns): Defsubr it.
8973
8974 2000-06-26 Gerd Moellmann <gerd@gnu.org>
8975
8976 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
8977 display info for XIM.
8978 (xim_open_dpy): Likewise.
8979 (xim_close_dpy): Don't free the display info's XIM.
8980
8981 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
8982
8983 * config.in (USE_XIM): New define.
8984
8985 * keymap.c (get_keyelt): For menu-items containing a `:filter
8986 FILTER', apply FILTER to the menu-item's definition to get the
8987 real definition to use.
8988
8989 * lisp.h (QCfilter): External declaration.
8990
8991 * xfns.c (Fimage_size): New function.
8992 (syms_of_xfns): Defsubr it.
8993
8994 2000-06-26 Andreas Schwab <schwab@suse.de>
8995
8996 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
8997 Fstring_as_unibyte.
8998
8999 2000-06-25 Dave Love <fx@gnu.org>
9000
9001 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
9002
9003 * Makefile.in (blockinput.h): Depend on atimer.h.
9004 (atimer.h): Depend on systime.h.
9005
9006 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
9007
9008 * atimer.h: Protect against multiple inclusion. Include systime.h.
9009
9010 * lisp.h (swap_in_global_binding): Declare.
9011
9012 2000-06-24 Ken Raeburn <raeburn@gnu.org>
9013
9014 * process.c (Fopen_network_stream): Turn off atimers for duration
9015 of call to connect. (Patch from Gerd.)
9016
9017 2000-06-23 Dave Love <fx@gnu.org>
9018
9019 * ralloc.c: Maybe include unistd.h
9020
9021 * emacs.c (setgrp): Undefine before defining.
9022 (malloc_warning, set_time_zone_rule, index): Prototype.
9023
9024 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
9025 HAVE_STRUCT_TIMEZONE.
9026
9027 * s/osf1.h: Move string.h hack here from alpha.h and make it
9028 conditional.
9029 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
9030 _XOPEN_SOURCE.
9031 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
9032 (SOCKLEN_TYPE): Don't define.
9033
9034 * m/alpha.h: Remove string.h hack.
9035
9036 * s/osf5-0.h: New file.
9037
9038 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
9039 include time.h, done by systime.h.
9040 [__FreeBSD__]: Remove redundant includes.
9041
9042 * callproc.c (setpgrp): Undefine before defining.
9043 (delete_temp_file): Return Qnil to avoid warning.
9044
9045 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
9046
9047 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
9048 HAVE_X_WINDOWS.
9049
9050 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
9051
9052 * composite.h (compose_text): Declare.
9053
9054 * xterm.c: Don't include sys/types.h unconditionally. Don't
9055 protect its inclusion with !USG (following xmenu.c).
9056
9057 2000-06-23 Gerd Moellmann <gerd@gnu.org>
9058
9059 * xfns.c (x_create_tip_frame): Initialize frame's colors like
9060 in x_create_frame.
9061
9062 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
9063
9064 * coding.c (decode_eol_post_ccl): Special handling for undecided
9065 and inconsistent EOL types.
9066
9067 2000-06-22 Gerd Moellmann <gerd@gnu.org>
9068
9069 * xrdb.c (x_load_resources): Add default resource for scroll bar's
9070 trough color and main window's background color.
9071
9072 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
9073
9074 * xterm.h (Xt_app_con): External declaration.
9075
9076 * widget.c (EmacsFrameRealize): Fix typo.
9077
9078 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
9079
9080 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
9081 (handle_invisible_prop): Record the start of invisible text in
9082 it->add_overlay_start.
9083 (struct overlay_entry): Add member `overlay'.
9084 (handle_overlay_change): Simplify.
9085 (next_overlay_string): After having processed overlay strings at the
9086 end of the buffer, record that fact in
9087 it->overlay_strings_at_end_processed_p.
9088 (compare_overlay_entries): If before- and after-strings come
9089 from the same overlay, let before-strings come first.
9090 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
9091 (load_overlay_strings): Take it->add_overlay_start into account
9092 when adding overlay strings.
9093
9094 * dispextern.h (struct it): Add member add_overlay_start.
9095
9096 2000-06-22 Dave Love <fx@gnu.org>
9097
9098 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
9099
9100 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
9101
9102 2000-06-22 Kenichi Handa <handa@etl.go.jp>
9103
9104 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
9105 is greater than 0.
9106
9107 2000-06-21 Dave Love <fx@gnu.org>
9108
9109 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9110
9111 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
9112
9113 * syntax.c (back_comment): Simplify string-parity counting (with
9114 the added benefit of handling multiple string-styles as long as
9115 they are not intertwined).
9116 Jump to the slow code as soon as a comment starter is found in
9117 a "string_lossage" position. Fixes the case: " /* " /* " */.
9118
9119 2000-06-21 Dave Love <fx@gnu.org>
9120
9121 * Makefile.in: Use GETLOADAVG_LIBS.
9122
9123 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
9124 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
9125
9126 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9127
9128 * syntax.c (describe_syntax): Recognize the `n'estable bit.
9129 (Fforward_comment, scan_lists):
9130 Check the comstyle of single-char comment-starters.
9131 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
9132 we're just at the beginning of the comment (f.ex with (*) ... (*)).
9133 Check the comstyle of single-char comment-starters.
9134 Clarify control-flow around the Scomment case.
9135
9136 2000-06-20 Dave Love <fx@gnu.org>
9137
9138 * fns.c (make_hash_table, maybe_resize_hash_table):
9139 Cast arg of next_almost_prime.
9140
9141 * tparam.c [emacs]: Include lisp.h.
9142
9143 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
9144 and unistd.h.
9145
9146 2000-06-20 Gerd Moellmann <gerd@gnu.org>
9147
9148 * keyboard.c (adjust_point_for_property): Check if display
9149 property should be treated as intangible by looking at its value.
9150
9151 * xdisp.c (single_display_prop_intangible_p)
9152 (display_prop_intangible_p): New functions.
9153
9154 * dispextern.h (display_prop_intangible_p): Add prototype.
9155
9156 * xdisp.c (dump_glyph_row): Show type of glyph->object.
9157
9158 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
9159 argument to sigprocmask.
9160
9161 * s/sco5.h (sigblock): Redefined to pass a pointer as second
9162 argument to sigprocmask.
9163
9164 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
9165 sigprocmask_set, and pass a pointer to it to sigprocmask.
9166
9167 * sysdep.c (sigprocmask_set): New variable.
9168
9169 * fileio.c (make_temp_name): Don't use `%s' in string passed to
9170 report_file_error.
9171
9172 2000-06-20 Sam Steingold <sds@gnu.org>
9173
9174 * xrdb.c: Don't declare xmalloc, xrealloc.
9175
9176 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9177
9178 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
9179 (re_comp): Cast gettext return value to avoid complaints when
9180 !HAVE_LIBINTL.
9181
9182 2000-06-20 Dave Love <fx@gnu.org>
9183
9184 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
9185
9186 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
9187
9188 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
9189
9190 * m/alpha.h: Don't declare xmalloc, xrealloc.
9191
9192 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
9193
9194 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
9195
9196 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
9197
9198 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
9199 HAVE_GETWD.
9200
9201 * keyboard.h (poll_for_input_1): Declare.
9202
9203 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
9204
9205 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
9206
9207 * doprnt.c: Don't declare xmalloc, xrealloc.
9208
9209 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
9210 (getenv, ctime, getwd): Removed.
9211 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
9212
9213 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
9214 x_set_tool_bar_lines.
9215
9216 * config.in: Add HAVE_GETWD. Move some definitions above
9217 machine/system includes.
9218
9219 2000-06-20 Kenichi Handa <handa@etl.go.jp>
9220
9221 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
9222
9223 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
9224 contain information about ENCODING.
9225
9226 * fontset.c (FONTSET_ASCII): Use the first element of char table
9227 for an ASCII font, not defalt slot.
9228 (fontset_ref_via_base): If FONTSET doesn't contain information for
9229 C, try the default fontset.
9230 (make_fontset): Don't copy the default fontset.
9231 (fontset_font_pattern): Likewise.
9232 (accumulate_font_info): If ELT is nil, use the corresponding
9233 element in the default fontset.
9234
9235 2000-06-19 Dave Love <fx@gnu.org>
9236
9237 * syntax.c (Fparse_partial_sexp): Doc fix.
9238
9239 * regex.h: Test PROTOTYPES as well as __STDC__.
9240
9241 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
9242 errno, strerror. Put text after #endif in comment.
9243
9244 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
9245
9246 * xterm.c (x_frame_of_widget): Likewise.
9247
9248 2000-06-19 Gerd Moellmann <gerd@gnu.org>
9249
9250 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
9251 to Vfundamental_mode_abbrev_table.
9252
9253 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
9254 bogus objects are marked. This slows down GC by ~80 percent, but
9255 it might be worth trying when debugging GC-related problems.
9256 This feature requires conservative stack marking to be enabled.
9257
9258 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
9259 returns XLookupChars, reset `modifiers' to zero.
9260
9261 2000-06-19 Dave Love <fx@gnu.org>
9262
9263 * mktime.c: Unprotoized.
9264
9265 2000-06-19 Richard Stallman <rms@gnu.org>
9266
9267 * data.c (set_internal): If variable is frame-local,
9268 store the new value immediately into the frame parameter alist.
9269
9270 2000-06-19 Ken Raeburn <raeburn@gnu.org>
9271
9272 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
9273 in the custom handler pointer.
9274
9275 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
9276 value, or checks for CHAR_META can fail when Lisp_Object is a
9277 union type.
9278 * keymap.c (get_keyelt): Likewise.
9279
9280 2000-06-19 Kenichi Handa <handa@etl.go.jp>
9281
9282 * ccl.h (struct ccl_program): New member eol_type.
9283 (struct ccl_spec): New member cr_carryover.
9284
9285 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
9286 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
9287
9288 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
9289 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
9290 (decode_eol_post_ccl): New function.
9291 (decode_coding): Don't detect EOL format here for CCL based coding
9292 systems.
9293 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
9294 decode_eol_post_ccl after running the CCL program.
9295 (code_convert_region): Don't detect EOL format here for CCL based
9296 coding systems.
9297 (decode_coding_string): Likewise.
9298
9299 2000-06-18 Ken Raeburn <raeburn@gnu.org>
9300
9301 * charset.c (update_charset_table): Use XINT on "iso_final_char"
9302 when treating it as an integer.
9303
9304 * coding.h (encode_coding_string): Declare.
9305
9306 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
9307 it as an integer.
9308
9309 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
9310 "xkeymap" to avoid shadowing the "enum map_type" value that needs
9311 to be passed to get_local_map.
9312
9313 * sound.c (Fplay_sound): Don't call make_number on
9314 Frun_hook_with_args count argument.
9315
9316 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
9317 for lisp objects in X event structure data field, when lisp
9318 objects are represented with unions.
9319 (x_scroll_bar_to_input_event): Ditto.
9320
9321 2000-06-16 Ken Raeburn <raeburn@gnu.org>
9322
9323 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
9324 termination of string. Fix sense of test whether
9325 Vline_number_display_limit is an integer.
9326
9327 2000-06-16 Gerd Moellmann <gerd@gnu.org>
9328
9329 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
9330 only if HAVE_X_WINDOWS.
9331
9332 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
9333 of titles.
9334
9335 * dispnew.c (update_frame_1): Handle case that cursor vpos is
9336 out of bounds.
9337
9338 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
9339
9340 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
9341 of its headers.
9342
9343 2000-06-15 Kenichi Handa <handa@etl.go.jp>
9344
9345 * coding.c (decode_coding_emacs_mule): Always set src_base at the
9346 start of the while loop.
9347
9348 2000-06-15 Gerd Moellmann <gerd@gnu.org>
9349
9350 * atimer.c (alarm_signal_handler): Add forward declaration.
9351
9352 * data.c (set_internal): Remove debug code.
9353
9354 2000-06-14 Gerd Moellmann <gerd@gnu.org>
9355
9356 * Makefile.in (bootstrap-temacs): Add `-I../src'.
9357
9358 * unexec.c (toplevel) [COFF]: Include coff.h.
9359
9360 * s/lynxos.h: New file.
9361
9362 * keymap.c (Fsingle_key_description): Enclose function key and
9363 event symbol names in angle brackets.
9364
9365 * xdisp.c (setup_echo_area_for_printing): Call
9366 message_log_maybe_newline if message_buf_print is not set.
9367
9368 * print.c (printchar, strout): Don't check message_buf_print
9369 before calling setup_echo_area_for_printing because that
9370 function does something useful even when message_buf_print is
9371 already set.
9372
9373 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
9374 New variables.
9375 (ensure_echo_area_buffers): Initialize echo buffer's
9376 truncate lines setting to nil.
9377 (with_echo_area_buffer): Don't set the echo buffer's truncate
9378 lines setting here.
9379 (set_message_1): Set it here instead, based on the value
9380 of message_truncate_lines.
9381 (resize_mini_window): Handle case that lines are truncated.
9382 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
9383 DEFVAR_BOOL message-truncate-lines.
9384
9385 * keyboard.c (read_char): Bind message-truncate-lines to t
9386 while displaying a help-echo.
9387
9388 * lisp.h (Qmessage_truncate_lines): External declaration.
9389
9390 2000-06-13 Gerd Moellmann <gerd@gnu.org>
9391
9392 * xdisp.c (Vline_number_display_limit): Renamed from
9393 line_number_display_limit.
9394 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
9395 Extend documentation string. Initialize
9396 Vline_number_display_limit to nil meaning no limit.
9397 (decode_mode_spec): Use Vline_number_display_limit with its new
9398 meaning.
9399
9400 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
9401
9402 2000-06-13 Richard Stallman <rms@gnu.org>
9403
9404 * frame.c (Fmodify_frame_parameters): Doc fix.
9405
9406 * xfns.c (x_set_frame_parameters): Comment fix.
9407
9408 * frame.c (store_frame_param): Call swap_in_global_binding if the
9409 variable's current binding was chosen based on this frame.
9410
9411 * data.c (swap_in_global_binding): New function.
9412
9413 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9414
9415 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
9416 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
9417
9418 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9419
9420 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
9421
9422 2000-06-12 Jason Rumney <jasonr@gnu.org>
9423
9424 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
9425
9426 * w32.h (EMACS_W32_H): Renamed from _NT_H_
9427
9428 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
9429
9430 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
9431
9432 2000-06-12 Gerd Moellmann <gerd@gnu.org>
9433
9434 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
9435 (syms_of_xfaces): Defsubr Sdump_colors.
9436 (x_free_colors): Don't treat b&w specially on default visual.
9437 (x_free_dpy_colors): New function.
9438 (free_face_colors): Don't check visual class; it's done
9439 in x_free_colors.
9440
9441 * xterm.c (x_frame_of_widget): New function.
9442 (x_alloc_nearest_color_for_widget): Use it.
9443 (x_copy_dpy_color): New function.
9444 (x_destroy_window): Free various colors.
9445
9446 2000-06-12 Kenichi Handa <handa@etl.go.jp>
9447
9448 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
9449
9450 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
9451
9452 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
9453
9454 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
9455
9456 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
9457
9458 2000-06-11 Dave Love <fx@gnu.org>
9459
9460 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
9461
9462 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
9463
9464 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
9465
9466 2000-06-11 Gerd Moellmann <gerd@gnu.org>
9467
9468 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
9469 to `XEvent *'.
9470
9471 2000-06-10 Kenichi Handa <handa@etl.go.jp>
9472
9473 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
9474 (regex_compile): Fix the code for handling the case of single byte
9475 char and multibyte char being mixed in a range within [...].
9476
9477 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
9478 and dst_multibyte members of coding.
9479
9480 * charset.c (update_charset_table): Update the table
9481 bytes_by_char_head.
9482 (init_charset_once): Initialize elements of bytes_by_char_head to
9483 1 except for leading codes for private charases.
9484
9485 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
9486 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
9487
9488 2000-06-09 Ken Raeburn <raeburn@gnu.org>
9489
9490 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
9491 access the data it doesn't point to.
9492
9493 2000-06-08 Gerd Moellmann <gerd@gnu.org>
9494
9495 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
9496 will be translated to a switch-frame event when reading the
9497 event queue. This is necessary because Emacs otherwise won't
9498 perform a switch-frame to a new frame until some other event, for
9499 example a keystroke event, forces it to do so. This has various
9500 effects, one visible being that the cursor of a frame created with
9501 C-x 5 2 or switched to with a window manager key binding like
9502 A-TAB stays hollow because selected_window isn't on the newly
9503 focused frame until the switch-frame is performed.
9504
9505 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
9506 generating a switch-frame event if necessary.
9507
9508 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
9509
9510 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
9511 it's an integer.
9512
9513 2000-06-08 Kenichi Handa <handa@etl.go.jp>
9514
9515 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
9516
9517 2000-06-07 Gerd Moellmann <gerd@gnu.org>
9518
9519 * window.c (displayed_window_lines): Take empty lines at
9520 the bottom of a window into account.
9521
9522 * window.c (displayed_window_lines): New function.
9523 (Fmove_to_window_line): Use displayed_window_lines to determine
9524 the number of lines to move, instead of using the window's height.
9525
9526 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
9527 to stop reading, even if the form read sets point to a different
9528 value when evaluated.
9529
9530 * xdisp.c (display_line): Fix code deciding in which line to
9531 put the cursor.
9532
9533 2000-06-07 Kenichi Handa <handa@etl.go.jp>
9534
9535 * fileio.c (e_write): Free composition data if stored in
9536 coding->cmp_data.
9537
9538 2000-06-06 Gerd Moellmann <gerd@gnu.org>
9539
9540 * xdisp.c (display_line): Set row's and iterator's
9541 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
9542 Set cursor even if row ends in the middle of a character.
9543 (dump_glyph_row): Print values of new flags.
9544 (redisplay_window) <cursor movement in unchanged window>: When
9545 point has been moved forward, and PT is at the end of the cursor
9546 row, don't place the cursor in the next row if the cursor row ends
9547 in the middle of a character or at ZV.
9548
9549 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
9550 (struct glyph_row): Add starts_in_middle_of_char_p and
9551 ends_in_middle_of_char_p.
9552 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
9553 ends_in_middle_of_char_p flag.
9554 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
9555
9556 * term.c (append_glyph): Revert change of 2000-06-06.
9557
9558 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
9559 padding glyph not fitting on line as whole character not
9560 fitting on line.
9561
9562 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
9563 this isn't true for images with `:ascent 100'.
9564
9565 2000-06-06 Kenichi Handa <handa@etl.go.jp>
9566
9567 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
9568 as modified if it is originally unmodified.
9569
9570 * term.c (encode_terminal_code): Change the way to check if
9571 terminal coding does any conversion.
9572 (append_glyph): Set glyph->pixel_width correctly.
9573
9574 * xdisp.c (display_line): While checking line continuation, pay
9575 attention to a padding glyph.
9576
9577 2000-06-05 Gerd Moellmann <gerd@gnu.org>
9578
9579 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
9580
9581 2000-06-05 Dave Love <fx@gnu.org>
9582
9583 * xdisp.c: Include fontset.h.
9584
9585 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
9586
9587 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9588
9589 * dispnew.c: Conditionally include term.h.
9590
9591 * coding.h: Declare code_convert_string_norecord.
9592
9593 * frame.h (struct frame): Use volatile unconditionally.
9594
9595 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
9596
9597 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
9598
9599 * systime.h: Protect against multiple inclusion.
9600 (timezone) [USG5_4]: Define as time_t.
9601
9602 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9603 (Foptimize_char_table, make_temp_name): Declare.
9604
9605 * Makefile.in (xdisp.o): Depend on fontset.h.
9606
9607 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9608
9609 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9610 (Foptimize_char_table, make_temp_name): Declare.
9611
9612 * s/irix4-0.h:
9613 * s/irix5-0.h:
9614 * s/netbsd.h: Don't define autoconfiscated MATHERR.
9615
9616 2000-06-02 Dave Love <fx@gnu.org>
9617
9618 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
9619
9620 2000-06-02 Gerd Moellmann <gerd@gnu.org>
9621
9622 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
9623 result face, set flags in that face indicating that colors may not
9624 be freed.
9625
9626 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
9627 glyph, use the ASCII NUL character to determine the face.
9628
9629 2000-06-02 Dave Love <fx@gnu.org>
9630
9631 * sysdep.c: Conditionally include stdlib.h, unistd.h.
9632 (VFORK_RETURN_TYPE): Remove.
9633
9634 * config.in: Add NO_MATHERR.
9635
9636 2000-06-01 Dave Love <fx@gnu.org>
9637
9638 * cmds.c (internal_self_insert): Don't check
9639 Vbefore_change_function, Vafter_change_function.
9640
9641 * insdel.c (signal_before_change, signal_after_change): Likewise.
9642
9643 * buffer.c (Vbefore_change_function, Vafter_change_function):
9644 Variables and their initializations deleted.
9645
9646 * callint.c (Fcall_interactively): Doc fix.
9647
9648 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
9649
9650 2000-05-31 Dave Love <fx@gnu.org>
9651
9652 * textprop.c: Revert last change -- duplicated.
9653
9654 2000-05-31 Gerd Moellmann <gerd@gnu.org>
9655
9656 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
9657 in #if 0.
9658
9659 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
9660
9661 2000-05-31 Jason Rumney <jasonr@gnu.org>
9662
9663 * search.c (Fre_search_forward, Fre_search_backward)
9664 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
9665
9666 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
9667
9668 2000-05-30 Jason Rumney <jasonr@gnu.org>
9669
9670 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
9671 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
9672
9673 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
9674
9675 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
9676 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
9677 expand a nil default_filename.
9678
9679 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
9680 pointer to glyph_to_pixel_coords, not a frame.
9681
9682 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
9683 coding.h to dependencies.
9684
9685 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
9686
9687 * w32console.c (glyph_to_pixel_coords): Change first parameter to
9688 window pointer to be consistent with w32term.c and xterm.c.
9689
9690 * w32fns.c: Format and doc changes to bring closer to xfns.c.
9691 (VIETNAMESE_CHARSET): Define if not defined in system headers.
9692 (Qline_spacing, Qcenter): New variables.
9693 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
9694 (x_set_line_spacing): New function.
9695 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
9696 (x_specified_cursor_type): New function.
9697 (x_set_cursor_type): Use it.
9698 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
9699 and icon strings.
9700 (validate_x_resource_name, x_get_resource_string): Measure lengths
9701 of external strings in bytes.
9702 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
9703 GetTextExtentPoint32 with NULL title.
9704 (Fx_create_frame): Initialize Qline_spacing.
9705 (w32_load_system_font): Initialize font->double_byte_p.
9706 (x_to_w32_charset): Use Vw32_charset_info_alist.
9707 (Image, busy cursor, tooltip functions): Merged changes from
9708 xfns.c. Not yet functional on Windows.
9709
9710 * w32gui.h (W32FontStruct): Add double_byte_p member.
9711
9712 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
9713 (emacs_button_translation): Use it.
9714 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
9715 in `mask' to be set.
9716
9717 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
9718 menu strings.
9719
9720 * w32term.c: Format and doc changes to bring closer to xterm.c.
9721 (w32_char_font_type): New enum.
9722 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
9723 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
9724 (w32_encode_char): New function.
9725 (x_encode_char): Removed.
9726 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
9727 x_encode_char and w32_font_is_double_byte.
9728 (x_produce_image_glyph): Use image_ascent.
9729 (x_produce_glyphs): Use new version of w32_per_char_metric and
9730 handle NULL return value. Allow extra line spacing.
9731 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
9732 (w32_get_glyph_overhangs): Remove unicode_p param. Use
9733 w32_font_type member of glyph instead.
9734 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
9735 (fast_find_position): Make sure not to consider rows not visible
9736 in the window.
9737 (w32_read_socket) [WM_MENUSELECT]: Cannot call
9738 w32_menu_display_help with input blocked, as it can abort.
9739 (x_display_and_set_cursor): Choose cursor depending
9740 on buffer-local value of cursor_type.
9741 (x_draw_bar_cursor): Add parameter WIDTH.
9742
9743 * w32term.h (CP_DEFAULT): Define.
9744 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
9745
9746 2000-05-30 Gerd Moellmann <gerd@gnu.org>
9747
9748 * search.c (Fre_search_forward, Fre_search_backward)
9749 (Fposix_search_backward, Fposix_search_forward): Doc fix.
9750
9751 2000-05-30 Kenichi Handa <handa@etl.go.jp>
9752
9753 * coding.c (detect_coding_iso2022): Fix code for checking
9754 CODING_CATEGORY_MASK_ISO_8_2.
9755
9756 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
9757
9758 * regex.c (PREFETCH_NOLIMIT): New function.
9759 (re_match_2_internal): Use it and adjust the end_match_2 logic.
9760
9761 2000-05-29 Gerd Moellmann <gerd@gnu.org>
9762
9763 * syntax.c (find_defun_start): Move test for
9764 open_paren_in_column_0_is_defun_start outside of the loop.
9765
9766 * xdisp.c (redisplay_window): Really switch buffers when
9767 displaying mode lines, and temporarily set selected_frame to the
9768 frame of the window that's redisplayed.
9769
9770 * xfaces.c (free_realized_faces): Block/unblock input.
9771 (free_realized_multibyte_face): Ditto.
9772
9773 2000-05-29 Dave Love <fx@gnu.org>
9774
9775 * textprop.c (Qkeymap): New variable.
9776 (syms_of_textprop): Intern it.
9777
9778 * keymap.c: Include intervals.h.
9779 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
9780
9781 * Makefile.in (keymap.o): Depend on intervals.h.
9782
9783 * keyboard.c (menu_bar_items, tool_bar_items)
9784 (Fexecute_extended_command): Deal with `keymap' property.
9785 (read_key_sequence): Track map from `keymap' property as well as
9786 `local_map'.
9787
9788 * intervals.c (get_local_map): Extra arg to allow looking for
9789 `keymap' too.
9790
9791 * intervals.h (map_property): New enum.
9792 (get_local_map): Extra arg using it.
9793 (Qkeymap): Declare.
9794
9795 * lisp.h (get_local_map): Don't declare here.
9796
9797 2000-05-29 Kenichi Handa <handa@etl.go.jp>
9798
9799 * Makefile.in (callproc.o): Depend on composite.h.
9800
9801 * callproc.c: Include composite.h.
9802 (Fcall_process): Handle composition correctly.
9803
9804 * coding.h (coding_allocate_composition_data): Extern it.
9805 (coding_restore_composition): Likewise.
9806
9807 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
9808 yet allocated, finish decoding with result
9809 CODING_FINISH_INSUFFICIENT_CMP.
9810 (coding_allocate_composition_data): Make it non-static.
9811 (coding_restore_composition): Likewise.
9812
9813 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
9814
9815 * charset.c (syms_of_charset): Revert last change.
9816
9817 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9818
9819 * term.c (produce_glyphs): Treat characters from the eight-bit-*
9820 charsets as unibyte, with 1-column screen width. Sent by Kenichi
9821 Handa.
9822
9823 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9824
9825 * charset.c (syms_of_charset): Set width of character sets
9826 eight-bit-control and eight-bit-graphic to 1 column.
9827
9828 2000-05-26 Gerd Moellmann <gerd@gnu.org>
9829
9830 * config.in (HAVE_SPEED_T): New define.
9831
9832 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
9833 `extern speed_t'.
9834
9835 2000-05-26 Dave Love <fx@gnu.org>
9836
9837 * coding.c (shrink_decoding_region): Initialize eol_conversion.
9838
9839 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
9840 (Fsubr_arity): New function.
9841 (syms_of_data): Install them.
9842
9843 2000-05-26 Kenichi Handa <handa@etl.go.jp>
9844
9845 * charset.c (init_charset_once): Set the table bytes_by_char_head
9846 correctly.
9847
9848 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
9849 the default fontset to what Emacs uses by default.
9850 (check_registry_encoding): This function deleted.
9851 (Fset_fontset_font): Remove the adhoc condition for the default
9852 fontset. Allow cons in FONTNAME.
9853
9854 * fns.c (map_char_table): Ignore char-table entries for
9855 charsets eight-bit-control and eight-bit-graphic.
9856
9857 2000-05-25 Ken Raeburn <raeburn@gnu.org>
9858
9859 * emacs.c (main): Initialize keyboard syms before initializing
9860 window code, so face names are available.
9861
9862 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
9863
9864 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
9865 of an anchor at the beginning of a shy-group.
9866
9867 2000-05-25 Gerd Moellmann <gerd@gnu.org>
9868
9869 * xdisp.c (handle_invisible_prop): Don't try to skip over
9870 invisible text if end of text is already reached.
9871
9872 2000-05-25 Dave Love <fx@gnu.org>
9873
9874 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
9875
9876 * coding.c (encode_eol): Add null statement after label.
9877
9878 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
9879
9880 * w16select.c (Fw16_set_clipboard_data): Fix the change from
9881 2000-05-20.
9882
9883 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9884
9885 * ccl.c (ccl_driver): Fix previous change.
9886
9887 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9888
9889 * coding.c (run_pre_post_conversion_on_str): Set point to the
9890 beginning of buffer before calling coding->post_read_conversion.
9891 (decode_coding_string): Give correct args to
9892 run_pre_post_conversion_on_str.
9893 (encode_coding_string): Likewise.
9894
9895 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
9896 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
9897 eight-bit-graphic correctly.
9898
9899 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
9900
9901 * fileio.c (Finsert_file_contents): Even if a file is not found,
9902 execute codes for setting up coding system. Call
9903 after-insert-file-functions unconditionally.
9904
9905 2000-05-24 Gerd Moellmann <gerd@gnu.org>
9906
9907 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
9908 BSD_PGRPS are not defined.
9909
9910 2000-05-24 Kenichi Handa <handa@etl.go.jp>
9911
9912 * charset.c (update_charset_table): Accept nil in LONG_NAME and
9913 DESCRIPTION.
9914 (syms_of_charset): Avoid building same strings.
9915
9916 2000-05-23 Gerd Moellmann <gerd@gnu.org>
9917
9918 * lread.c (Fload): Add a comment about the meaning of
9919 Vuser_init_file being t.
9920
9921 * puresize.h (BASE_PURESIZE): Increase to 675000.
9922
9923 * s/gnu-linux.h (setpgrp): Don't define it here because this
9924 prevents compilation on GNU/Linux systems with glib 2.2.
9925
9926 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
9927 as setpgid.
9928
9929 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
9930
9931 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
9932 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
9933 version.
9934 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
9935
9936 2000-05-23 Kenichi Handa <handa@etl.go.jp>
9937
9938 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9939
9940 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
9941
9942 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
9943
9944 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
9945
9946 2000-05-22 Kenichi Handa <handa@etl.go.jp>
9947
9948 * keyboard.c (read_char): Allow character codes 128..255 to be
9949 handled by input-method-function.
9950
9951 * insdel.c (adjust_markers_for_replace): Fix previous change.
9952 (adjust_after_replace): If PREV_TEXT is nil, call
9953 adjust_markers_for_insert, not adjust_markers_for_replace.
9954
9955 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
9956
9957 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
9958 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
9959 [HAVE_GRANDPT]: Define.
9960 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
9961
9962 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
9963 like SYSV_PTYS.
9964
9965 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
9966
9967 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
9968
9969 2000-05-20 Kenichi Handa <handa@etl.go.jp>
9970
9971 The following changes are to handle 8-bit characters in a
9972 multibyte buffer/string without facing with byte combining
9973 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
9974 eight-bit-graphic (for 0xA0..0xFF) are introduced.
9975
9976 * Makefile.in (fns.o): Depend on charset.h.
9977
9978 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
9979 convert it to unibyte.
9980 (make_string): Use parse_str_as_multibyte, not chars_in_text.
9981
9982 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
9983 apparent char boundary.
9984 (Fset_buffer_multibyte): Convert 8-bit characters in the range
9985 0x80..0x9F to/from multibyte form.
9986
9987 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
9988 to unibyte.
9989
9990 * callproc.c (Fcall_process): Always encode an argument string if
9991 it is multibyte. Setup src_multibyte and dst_multibyte members of
9992 process_coding properly.
9993
9994 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
9995 SPLIT_NON_ASCII_CHAR.
9996
9997 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
9998 as is.
9999 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
10000
10001 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
10002 (SPLIT_CHARACTER_SEQ): This macro deleted.
10003 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
10004 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
10005 and eight-bit-graphic.
10006 (char_to_string): Likewise. Signal an error for too large
10007 character code.
10008 (char_printable_p): Return 0 for 8-bit characters.
10009 (update_charset_table): Update iso_charset_table only when a final
10010 character is non-negative.
10011 (find_charset_in_text): Renamed from find_charset_in_str.
10012 Arguments and return value changed. Callers changed.
10013 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
10014 be -1 if CHARSET is used only internally.
10015 (Fmake_char_internal): Handle new charsets; eight-bit-control and
10016 eight-bit-graphic.
10017 (Fcharset_after): Simplified.
10018 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
10019 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
10020 (multibyte_chars_in_text): Simplified by assuming there's no
10021 invalid multibyte sequence.
10022 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10023 (str_as_unibyte): New functions.
10024 (Fstring): Simpified by assuming that byte combining never happens.
10025 (init_charset_once): Initialization for
10026 LEADING_CODE_8_BIT_CONTROL.
10027 (syms_of_charset): Intern and staticpro Qeight_bit_control and
10028 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
10029 eight-bit-control and eight-bit-graphic.
10030
10031 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
10032 (CHARSET_8_BIT_GRAPHIC): New macros.
10033 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
10034 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
10035 (CHARSET_REVERSE_CHARSET): Likewise.
10036 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
10037 eight-bit-graphic.
10038 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
10039 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
10040 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
10041 encounter an invalid multibyte sequence.
10042 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
10043 sequence is always valid.
10044 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
10045 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
10046 (CHAR_STRING): For 8-bit characters, call char_to_string.
10047 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
10048 multibyte sequence is always valid.
10049 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
10050 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10051 (str_as_unibyte): Extern them.
10052 (BCOPY_SHORT): Fix a bug.
10053 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
10054 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
10055 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
10056 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
10057
10058 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
10059 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
10060 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
10061 (EMIT_BYTES): New macros.
10062 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
10063 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
10064 macros deleted.
10065 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
10066 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
10067 check the validity of multibyte sequence.
10068 (decode_coding_emacs_mule): New function.
10069 (encode_coding_emacs_mule): New macro.
10070 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
10071 the source.
10072 (DECODE_ISO_CHARACTER): Just return a character code.
10073 (DECODE_COMPOSITION_START): Set coding->result instead of result.
10074 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
10075 EMIT_CHAR to produced decoded characters. Exit the loop only by
10076 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
10077 block here.
10078 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
10079 only position codes for an invalid character.
10080 (encode_designation_at_bol): Return new destination pointer. 5th
10081 arg DSTP is changed to DST.
10082 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
10083 from the source by ONE_MORE_CHAR. Don't handle the case of last
10084 block here.
10085 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
10086 macros deleted.
10087 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
10088 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
10089 TWO_MORE_BYTES to fetch a byte from the source.
10090 (encode_eol): Pay attention to coding->src_multibyte.
10091 (detect_coding, detect_eol): Preserve members src_multibyte and
10092 dst_multibyte.
10093 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
10094 (encoding_buffer_size): Set magnification to 3 for all coding
10095 systems that require encoding.
10096 (ccl_coding_driver): For decoding, be sure that the result is
10097 valid multibyte sequence.
10098 (decode_coding): Initialize coding->errors and coding->result.
10099 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
10100 and raw-text, always call decode_eol. Handle the case of last
10101 block here. If not coding->dst_multibyte, convert the resulting
10102 sequence to unibyte.
10103 (encode_coding): Initialize coding->errors and coding->result.
10104 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
10105 and raw-text, always call encode_eol. Handle the case of last
10106 block here.
10107 (shrink_decoding_region, shrink_encoding_region): Detect cases
10108 that we can't skip data more rigidly.
10109 (code_convert_region): Setup src_multibyte and dst_multibyte
10110 members of coding. For decoding, if the buffer is multibyte,
10111 convert the source sequence to unibyte in advance. For encoding,
10112 if the buffer is multibyte, convert the resulting sequence to
10113 multibyte afterward.
10114 (run_pre_post_conversion_on_str): New function.
10115 (code_convert_string): Deleted and divided into the following two.
10116 (decode_coding_string, encode_coding_string): New functions.
10117 (code_convert_string1, code_convert_string_norecord): Call one of
10118 above.
10119 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
10120 MAKE_NON_ASCII_CHAR.
10121 (Fset_terminal_coding_system_internal)
10122 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
10123 and dst_multibyte members.
10124 (init_coding_once): Initialize iso_code_class with new enum
10125 ISO_control_0 and ISO_control_1.
10126
10127 * coding.h (enum iso_code_class_type): Member ISO_control_code is
10128 devided into ISO_control_0 and ISO_control_1.
10129 (struct coding_system): New members src_multibyte, dst_multibyte,
10130 errors, and result. Delete member fake_multibyte.
10131 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
10132 nonzero.
10133 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
10134 nonzero.
10135
10136 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10137 (Faset): Likewise.
10138
10139 * editfns.c (Fformat): Be sure to convert 8-bit characters to
10140 multibyte form.
10141 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
10142 combining occurs.
10143 (Ftranspose_region): Delete codes for handling byte combining.
10144
10145 * fileio.c (Finsert_file_contents): Setup src_multibyte and
10146 dst_multibyte members of coding. On handling REPLACE on unibyte
10147 buffer, convert the result of decode_coding to unibyte. On
10148 inserting into a mutibyte buffer, always call code_convert_region.
10149 (e_write): Setup coding->src_multibyte according to the
10150 multibyteness of the source (buffer or string).
10151
10152 * fns.c (concat): Handle 8-bit characters correctly.
10153 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
10154 unibyte in the result.
10155 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
10156 valid multibyte form in the result.
10157 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10158 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
10159 return -1, signal an error.
10160 (base64_encode_1): New arg MULTIBYTE. Get each character by
10161 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
10162 character is found, return -1.
10163 (Fbase64_decode_region): Delete codes for handling byte-combining.
10164 Treat each decoded byte as a unibyte character.
10165 (Fbase64_decode_string): Return unibyte string.
10166 (Fcompare_strings, concat, string_byte_to_char): Use
10167 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
10168 FETCH_STRING_CHAR_ADVANCE.
10169 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10170 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
10171
10172 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
10173 SPLIT_NON_ASCII_CHAR.
10174 (fontset_ref_via_base, fontset_set): Likewise
10175
10176 * insdel.c (adjust_markers_for_record_delete): Deleted.
10177 (adjust_markers_for_insert): Argument changed. Caller changed.
10178 (adjust_markers_for_replace): Likewise.
10179 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
10180 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
10181 (copy_text): Delete unused local varialbe c_save. For converting
10182 to multibyte, be sure to make all 8-bit characters in valid
10183 multibyte form.
10184 (count_size_as_multibyte): Handle 8-bit characters correctly.
10185 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10186 (adjust_after_replace, replace_range, del_range_2)
10187 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
10188 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10189 (adjust_after_replace, replace_range, del_range_2) Delete codes for
10190 handling byte combining.
10191 (adjust_before_replace): Deleted.
10192
10193 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
10194 SPLIT_NON_ASCII_CHAR.
10195 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10196 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10197 (Fkey_description): Likewise.
10198
10199 * lread.c (read1): On reading multibyte string, be sure to make
10200 all 8-bit chararacters in valid multibyte form.
10201 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10202
10203 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
10204 unconditionally.
10205
10206 * process.c (Fstart_process): GCPRO current_dir before calling
10207 Ffind_operation_coding_system. Encode arguments here.
10208 (create_process): Don't encode arguments here. Setup
10209 src_multibyte and dst_multibyte members of struct coding.
10210 (read_process_output): Setup src_multibyte and dst_multibyte
10211 members of struct coding. If the output is to multibyte buffer,
10212 always decode the output of the process. Adjust the
10213 representation of 8-bit characters to the multibyteness of the output.
10214 (send_process): Setup coding->src_multibyte according to the
10215 multibyteness of the source.
10216
10217 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10218 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
10219 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
10220
10221 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
10222
10223 * w16select.c (Fw16_set_clipboard_data): Setup members
10224 src_multibyte and dst_multibyte of coding. Adjusted for the
10225 change for find_charset_in_str.
10226 (Fw16_get_clipboard_data): Likewise.
10227
10228 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
10229 dst_multibyte of coding.
10230 (x_to_w32_font): Likewise.
10231
10232 * w32select.c (Fw32_set_clipboard_data): Setup members
10233 src_multibyte and dst_multibyte of coding. Adjusted for the
10234 change for find_charset_in_str.
10235 (Fw32_get_clipboard_data): Likewise.
10236
10237 * xdisp.c (get_next_display_element): Handle 8-bit characters
10238 correctly.
10239 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
10240 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10241
10242 * xselect.c (selection_data_to_lisp_data): Setup members
10243 src_multibyte and dst_multibyte of coding. Adjusted for the
10244 change for find_charset_in_str.
10245 (lisp_data_to_selection_data): Likewise.
10246
10247 2000-05-19 Gerd Moellmann <gerd@gnu.org>
10248
10249 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
10250
10251 * dispextern.h (Vimage_types): Add extern declaration.
10252
10253 * xdisp.c (Vimage_types): Moved here from xfns.c.
10254 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
10255
10256 * xfns.c (Vimages_types): Moved to xdisp.c.
10257 (syms_of_xfns): Move `image-types' to xdisp.c.
10258
10259 * w32fns.c (Vimage_types): Removed.
10260 (syms_of_w32fns): Remove `image-types'.
10261
10262 2000-05-18 Kenichi Handa <handa@etl.go.jp>
10263
10264 * fns.c (map_char_table): Pay attention to character number of
10265 charset. Check the validity of charset at the first level. For
10266 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
10267 the default value.
10268
10269 * fontset.c: Include "buffer.h".
10270 (fs_load_font): If the face has fontset, record the face ID in
10271 that fontset.
10272 (Finternal_char_font): New function.
10273 (accumulate_font_info): New function.
10274 (Ffontset_info): Rewritten for the new fontset implementation.
10275 (syms_of_fontset): Register Vdefault_fontset in the first element
10276 of Vfontset_table. Include Vdefault_fontset in
10277 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
10278 function.
10279
10280 2000-05-16 Dave Love <fx@gnu.org>
10281
10282 * m/iris5d.h: Deleted -- unused.
10283
10284 2000-05-16 Gerd Moellmann <gerd@gnu.org>
10285
10286 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
10287 `invalid' instead of `illegal'.
10288
10289 * indent.c (Fmove_to_column): When ending within a tab, insert
10290 spaces first so that markers at the end of the tab get adjusted.
10291
10292 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
10293 buffer list that wasn't selected in that frame.
10294
10295 * filelock.c (get_boot_time): To obtain an 8 char file name, which
10296 is needed on mescaline, use a 2 char prefix, and call
10297 make_temp_name with second arg non-zero.
10298
10299 * fileio.c (make_temp_name): New function, extracted from
10300 Fmake_temp_name.
10301 (Fmake_temp_name): Use it.
10302
10303 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
10304
10305 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
10306
10307 2000-05-15 Gerd Moellmann <gerd@gnu.org>
10308
10309 * Makefile.in (lisp): Add env.elc.
10310
10311 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
10312
10313 2000-05-12 Gerd Moellmann <gerd@gnu.org>
10314
10315 * search.c (Freplace_match): Handle case of `\N' in the
10316 replacement when there's no group N.
10317
10318 2000-05-11 Gerd Moellmann <gerd@gnu.org>
10319
10320 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
10321 of the message to message_dolog.
10322
10323 * keyboard.c (read_char): Don't clear current message for help
10324 events; let the code handling help events handle this. Change
10325 code detecting help events that should be ignored.
10326
10327 * xdisp.c (handle_single_display_prop): Don't try to set PT if
10328 we're interating over a string.
10329
10330 2000-05-09 Dave Love <fx@gnu.org>
10331
10332 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
10333 that offset before writing. Move gcpro region past call of
10334 Ffile_regular_p.
10335
10336 2000-05-04 Dave Love <fx@gnu.org>
10337
10338 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
10339
10340 2000-05-04 Gerd Moellmann <gerd@gnu.org>
10341
10342 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
10343 of inserted characters when BUF equals the current buffer, and PT
10344 is in front of or equal to FROM.
10345
10346 2000-05-03 Gerd Moellmann <gerd@gnu.org>
10347
10348 * xdisp.c (handle_single_display_prop): If display property value
10349 is invalid, or something not supported on the frame, restore
10350 iterator's position to what it was initially. Make sure to return
10351 0 for invalid and unsupported property values.
10352
10353 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
10354 that x_per_char_metric returns null.
10355
10356 2000-05-02 Gerd Moellmann <gerd@gnu.org>
10357
10358 * xterm.h (struct face): Add forward declaration.
10359 (struct image): Ditto.
10360 (image_ascent): Add prototype.
10361
10362 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
10363 (x_draw_image_relief, x_draw_image_foreground_1): Call function
10364 image_ascent instead of using IMAGE_ASCENT.
10365
10366 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
10367 (IMAGE_ASCENT): Removed.
10368
10369 * xfns.c (Qcenter): New variable.
10370 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
10371 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
10372 (image_ascent): New function.
10373 (lookup_image): Recognize `:ascent center'.
10374 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
10375 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
10376 (xbm_load): Don't set image's ascent here.
10377 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
10378 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
10379 check ascent values here.
10380 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
10381 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
10382 (syms_of_xfns): Initialize Qcenter.
10383
10384 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
10385 to the limits, increase the limits.
10386
10387 2000-05-01 Kenichi Handa <handa@etl.go.jp>
10388
10389 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
10390 Check Vfont_encoding_alist against the full name of the opened font.
10391
10392 2000-04-28 Gerd Moellmann <gerd@gnu.org>
10393
10394 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
10395 taller than the window.
10396
10397 2000-04-28 Kenichi Handa <handa@etl.go.jp>
10398
10399 * xfaces.c (realize_x_face): Fix the argument of the second
10400 xassert. BASE_FACE may not be a face for ASCII.
10401
10402 2000-04-27 Gerd Moellmann <gerd@gnu.org>
10403
10404 * print.c (print_object): Treat print-length < 0 as nil.
10405
10406 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
10407
10408 * s/freebsd.h (TERMCAP_OBJ): Removed.
10409 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
10410
10411 * lread.c (read1): Don't treat period followed by certain
10412 characters as symbol start.
10413
10414 * xfns.c (slurp_file): New function.
10415 (xbm_image_p): Handle case of in-memory XBM files.
10416 (xbm_scan): Rewritten to work on memory buffers instead of files.
10417 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
10418 Work on memory buffers instead of files. If DATA is null test
10419 if buffer looks like an in-memory XBM file.
10420 (xbm_load_image): Renamed from xbm_load_image_file. Work on
10421 memory buffers instead of files.
10422 (xbm_file_p): New function.
10423 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
10424
10425 * lread.c (end_of_file_error): New function.
10426 (read1): Call it instead of signaling `end-of-file' directly.
10427
10428 * print.c (print_error_message): Print data of `end-of-file'
10429 with Fprinc instead of Fprin1.
10430
10431 2000-04-26 Ken Raeburn <raeburn@gnu.org>
10432
10433 * window.c (freeze_window_start): Check that minibuffer scroll
10434 window isn't nil before extracting the window structure pointer
10435 from it.
10436
10437 * undo.c (record_delete): If we hit the end of the undo list, stop
10438 picking elements apart.
10439
10440 2000-04-26 Gerd Moellmann <gerd@gnu.org>
10441
10442 * xdisp.c (display_line): If lines are continued, restore
10443 iterator's ascent/descent information to the values before the
10444 first glyph not fitting on the line.
10445
10446 2000-04-25 Gerd Moellmann <gerd@gnu.org>
10447
10448 * xdisp.c (try_window_id) <all changes above window start>: Adjust
10449 positions in glyph matrix. Don't compute new window end positions.
10450
10451 * dispnew.c (increment_matrix_positions): Renamed from
10452 increment_glyph_matrix_buffer_positions.
10453 (increment_row_positions): Renamed from
10454 increment_glyph_row_buffer_positions.
10455
10456 * dispextern.h: Change names of renamed functions from dispnew.c
10457 in prototypes.
10458
10459 2000-04-24 Gerd Moellmann <gerd@gnu.org>
10460
10461 * fileio.c (Fdo_auto_save): Create directories for auto-save
10462 list file if necessary.
10463
10464 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
10465 from buffer or frame.
10466 (automatic_hscrolling_p): New variable.
10467 (hscroll_windows): Scroll windows horizontally only if automatic
10468 hscrolling is allowed.
10469 (syms_of_xdisp): New variable `automatic-hscrolling'.
10470
10471 * frame.h (struct frame): Add member extra_line_spacing.
10472
10473 * xfns.c (x_set_line_spacing): New function.
10474 (Fx_create_frame): Set line spacing from resources.
10475 (Qline_spacing): New variable.
10476 (syms_of_xfns): Initialize Qline_spacing.
10477
10478 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
10479
10480 * buffer.c (init_buffer_once): Handle extra_line_spacing.
10481 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
10482 (reset_buffer): Don't initialize extra2 and extra3. Initialize
10483 extra_line_spacing from default value.
10484 (init_buffer_once): Initialize default value of extra_line_spacing.
10485
10486 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
10487 and extra3.
10488
10489 * xterm.c (x_produce_glyphs): Remove reference to struct it's
10490 prompt_width. Add extra line spacing.
10491
10492 * term.c (produce_glyphs): Remove reference to struct it's
10493 prompt_width.
10494
10495 * dispextern.h (struct it): Remove member prompt_width, add
10496 extra_line_spacing.
10497
10498 2000-04-22 Gerd Moellmann <gerd@gnu.org>
10499
10500 * dispnew.c (update_frame_line): When writing a whole line, make
10501 sure cursor is in the right row afterwards, otherwise a use of
10502 capability `ch' in cmgoto might leave the cursor in the row below.
10503
10504 2000-04-21 Gerd Moellmann <gerd@gnu.org>
10505
10506 * lisp.h (struct Lisp_Buffer_Cons): Remove.
10507
10508 * keyboard.c (timer_check): Fix typo in comment.
10509
10510 2000-04-21 Kenichi Handa <handa@etl.go.jp>
10511
10512 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
10513 name change: ch -> character.
10514
10515 2000-04-20 Gerd Moellmann <gerd@gnu.org>
10516
10517 * keyboard.c (echo_message_buffer): New variable.
10518 (echo_now): Set echo_message_buffer to the echo area buffer used
10519 to display the echo.
10520 (cancel_echoing): Reset echo_message_buffer to nil.
10521 (read_char): Code rewritten that handles canceling an echo or
10522 echoing a dash, respectively.
10523
10524 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
10525 directory doesn't exist.
10526
10527 2000-04-19 Dave Love <fx@gnu.org>
10528
10529 * fns.c (syms_of_fns): Defsubr mapc.
10530 (concat): Don't allow numeric args.
10531 (Fconcat): Doc change.
10532
10533 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
10534
10535 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
10536 instead define end_match(1|2) more carefully.
10537 Use GET_CHAR_BEFORE_2 for `begline'.
10538
10539 2000-04-19 Gerd Moellmann <gerd@gnu.org>
10540
10541 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
10542 on 64-bit systems where NULL is defined as `0'.
10543
10544 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
10545 the `variable argument list' to make it work on Alpha.
10546
10547 * m/alpha.h (_LP64) [!_LP64]: Define.
10548 (ORDINARY_LINK): Define for NetBSD.
10549
10550 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
10551
10552 2000-04-19 Dave Love <fx@gnu.org>
10553
10554 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
10555 change.
10556
10557 * Makefile.in (LIBS): Don't use.
10558 (GETLOADAVG_OBJ): Define again.
10559 (otherobj): Add GETLOADAVG_OBJ.
10560
10561 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
10562
10563 2000-04-18 Gerd Moellmann <gerd@gnu.org>
10564
10565 * lread.c (read_filtered_event): Cancel and start busy cursor.
10566
10567 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
10568 that the per-character metrics may be null.
10569
10570 2000-04-17 Gerd Moellmann <gerd@gnu.org>
10571
10572 * buffer.c (clone_per_buffer_values): New function.
10573 (Fmake_indirect_buffer): Add optional argument CLONE. Call
10574 clone_per_buffer_values if CLONE is not nil.
10575
10576 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
10577
10578 2000-04-16 Dave Love <fx@gnu.org>
10579
10580 * Makefile.in: Remove obsolete localcpp stuff.
10581 (GETLOADAVG_OBJ): Don't define.
10582 (obj): Move LIBOBJS...
10583 (otherobj): ... to here.
10584 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
10585 whitespace-only lines after the continuation (Irix).
10586
10587 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10588
10589 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
10590
10591 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
10592
10593 2000-04-14 Dave Love <fx@gnu.org>
10594
10595 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
10596 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
10597 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
10598 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
10599 NLIST_STRUCT.
10600
10601 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
10602 autoconfiscated HAVE_GETLOADAVG.
10603
10604 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
10605 BROKEN_MKTIME.
10606
10607 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10608
10609 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
10610 (fill_in_lock_file_name): Avoid existing files that aren't links.
10611
10612 2000-04-14 Dave Love <fx@gnu.org>
10613
10614 * Makefile.in (LIBS, LIBOBJS): New variable.
10615 (INTERVAL_SRC): Convert to make variable.
10616 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
10617 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
10618 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
10619 add LIBOBJS.
10620 (SOME_MACHINE_OBJECTS): Remove interval stuff.
10621 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
10622 (shortlisp): Add facemenu, float-sup, frame.
10623 (SOME_MACHINE_LISP): Remove them from here.
10624 (LIBES): Change unused LDLIBS to autoconf LIBS.
10625
10626 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
10627
10628 2000-04-14 Kenichi Handa <handa@etl.go.jp>
10629
10630 * composite.c (update_compositions): If FROM and TO are not in a
10631 valid range, do nothing.
10632
10633 2000-04-13 Gerd Moellmann <gerd@gnu.org>
10634
10635 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
10636
10637 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
10638
10639 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
10640 as TERMCAP_OBJ.
10641
10642 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
10643
10644 * fileio.c (a_write): Remove redundant semi-colons.
10645 (e_write): Return -1 if failed to write all the data.
10646 This fixes the changes made at 1999-12-15.
10647
10648 2000-04-12 Dave Love <fx@gnu.org>
10649
10650 * fns.c (mapcar1): Test for null vals to support mapc.
10651 (Fmapc): New function.
10652
10653 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
10654
10655 * msdos.c (NUM_MOUSE_BUTTONS): Define.
10656 (IT_frame_up_to_date): Support the buffer local value of
10657 cursor-type, if defined.
10658
10659 2000-04-10 Dave Love <fx@gnu.org>
10660
10661 * editfns.c (preceding-char, following-char): Doc fix.
10662
10663 2000-04-10 Ken Raeburn <raeburn@gnu.org>
10664
10665 * Makefile.in (temacs): Revert 2000-03-12 change.
10666
10667 2000-04-10 Jason Rumney <jasonr@gnu.org>
10668
10669 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
10670
10671 2000-04-10 Gerd Moellmann <gerd@gnu.org>
10672
10673 * xdisp.c (setup_echo_area_for_printing): Choose an echo
10674 area buffer, if it's not set up yet.
10675
10676 * indent.c (compute_motion): Set immediate_quit.
10677
10678 2000-04-09 Gerd Moellmann <gerd@gnu.org>
10679
10680 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
10681 (realize_tty_face): Suppress boldness if colors are the inverse of
10682 the default colors, and tty_suppress_bold_inverse_default_colors_p
10683 is set.
10684 (Ftty_suppress_bold_inverse_default_colors): New function.
10685 (syms_of_xfaces): Defsubr it.
10686
10687 * buffer.c (Frestore_buffer_modified_p): New function.
10688 (syms_of_buffer): Defsubr it.
10689
10690 2000-04-08 Ken Raeburn <raeburn@gnu.org>
10691
10692 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
10693 charset id (int) argument, not a charset (Lisp_Object).
10694
10695 * coding.h (code_convert_string): Declare.
10696 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
10697 object, as the fourth argument to code_convert_string.
10698
10699 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
10700 (Fset_fontset_font): Use EQ to compare lisp objects.
10701
10702 2000-04-05 Ken Raeburn <raeburn@gnu.org>
10703
10704 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
10705 a pointer that looks like a lisp object.
10706 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
10707 zero, instead see whether it's an integer object, since they can't
10708 have intervals.
10709 (GET_INTERVAL_OBJECT): Simply assign to the destination.
10710
10711 * dispnew.c (allocate_matrices_for_frame_redisplay)
10712 (direct_output_forward_char): Use X(U)INT and make_number as needed
10713 to convert between (unsigned) int values and lisp integers.
10714 * keyboard.c (read_key_sequence): Likewise.
10715 * lread.c (substitute_object_recurse): Likewise.
10716 * fns.c (concat, hash_lookup, hash_remove): Likewise.
10717 * minibuf.c (do_completion, Fminibuffer_complete_word)
10718 (Fminibuffer_completion_help): Likewise.
10719 * term.c (produce_special_glyphs): Likewise.
10720
10721 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
10722 * print.c (print_preprocess, print_object): Likewise.
10723
10724 * search.c (compile_pattern): Use NILP when checking for nil.
10725
10726 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
10727 __OPTIMIZE__]: Provide a GNU C macro version that handles
10728 lisp-object unions.
10729 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
10730 field, to better cope with ENABLE_CHECKING and calls that modify a
10731 Lisp_Object using its old value.
10732
10733 2000-04-04 Gerd Moellmann <gerd@gnu.org>
10734
10735 * window.c (compare_window_configurations): Signal an error
10736 if parameters C1 or C2 aren't window configurations.
10737
10738 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
10739 AFTER_POTENTIAL_GC calls around calls to functions that can
10740 signal an error and thus invoke the debugger.
10741
10742 2000-04-03 Gerd Moellmann <gerd@gnu.org>
10743
10744 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
10745 an error if decoding fails.
10746
10747 * keyboard.c (lispy_mouse_names): Variable removed.
10748 (Vlispy_mouse_stem): New variable.
10749 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
10750 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
10751 for any mouse button number. Increase size of mouse_syms and
10752 button_down_location as needed. Call modify_event_symbol with
10753 different arguments.
10754 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
10755 Call modify_event_symbol with different arguments.
10756 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
10757 for any button number. Call modify_event_symbol with different
10758 arguments.
10759 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
10760 Accept a string for NAME_ALIST_OR_STEM.
10761
10762 * lisp.h (larger_vector): Add prototype.
10763
10764 * fns.c (larger_vector): Make externally visible.
10765
10766 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
10767
10768 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
10769
10770 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
10771 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
10772 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
10773 we are between str1 and str2.
10774 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
10775 (PATFETCH): Use `TRANSLATE'.
10776 (PATFETCH_RAW): Fetch multibyte char if applicable.
10777 (PATUNFETCH): Remove.
10778 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
10779 When writing a char, write it directly into the pattern buffer rather
10780 than going needlessly through a temp char-array.
10781 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
10782 multibyte magic and remove the useless `#ifdef emacs'.
10783 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
10784 buffer.
10785
10786 * regex.h (struct re_pattern_buffer): Make field `multibyte'
10787 conditional on `emacs'.
10788
10789 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
10790
10791 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10792
10793 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
10794 non-union-type versions of XMARK and friends here, because XMARK
10795 and friends won't work on an integer field if NO_UNION_TYPE is not
10796 defined.
10797 (make_number): Define as a function if it's not defined as a macro.
10798
10799 * composite.c (run_composite_function): Use NILP when checking for nil.
10800 (syms_of_composite): Delete local var NARGS, pass an int as first
10801 argument to Fmake_hash_table.
10802
10803 * editfns.c (text_property_stickiness): Use NILP to test
10804 Lisp_Object boolean value.
10805 (Fmessage_or_box): Don't use NILP to test int variable.
10806 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
10807 problems reading from and changing the same lisp value in an
10808 XSETSTRING call.
10809
10810 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10811
10812 * term.c (TN_no_color_video): New variable.
10813 (term_init): Intitialize TN_no_color_video.
10814 (enum no_color_bit): New enumeration.
10815 (MAY_USE_WITH_COLORS_P): New macro.
10816 (turn_on_face): Use it to determine if attributes may be used
10817 combined with colors.
10818
10819 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10820
10821 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
10822 with int lvalues via casts; instead, just yield lisp object lvalues.
10823 (enlarge_window): Variable sizep now points to Lisp_Object. Use
10824 proper accessor macros.
10825 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
10826 (grow_mini_window): Fix typo getting int value of root->height.
10827
10828 * xdisp.c (compute_string_pos): Fix order of arguments to
10829 string_pos_nchars_ahead.
10830 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
10831 count arg to variable-arg routines like Frun_hook_with_args and
10832 Fformat.
10833 (back_to_previous_visible_line_start)
10834 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
10835 fixed-arg routines like Fget_char_property and Fmake_string.
10836 (reconsider_clip_changes): Use XINT when comparing integer lisp
10837 objects, or passing them as int arguments.
10838 (mark_window_display_accurate, insert_left_trunc_glyphs)
10839 (append_space, extend_face_to_end_of_line): Use make_number when
10840 storing or passing integer values as lisp objects.
10841 (set_cursor_from_row, highlight_trailing_whitespace): Use
10842 INTEGERP, not implicit test against zero, for glyph object.
10843 (try_window_id): Don't use make_number when we want an int value.
10844
10845 * xfaces.c (xlfd_symbolic_value): Make last argument a
10846 Lisp_Object, to be consistent with callers.
10847 (Fbitmap_spec_p): Use XINT to get numeric value of height.
10848 (lface_hash): Apply XFASTINT to lisp values before folding in.
10849
10850 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
10851 fill in window width and height. Pass an int, not a lisp object,
10852 as first arg to Finsert.
10853
10854 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10855
10856 * xfaces.c (realize_basic_faces): Block input while realizing
10857 the faces.
10858
10859 * keyboard.c (lispy_mouse_names): Add additional mouse names.
10860
10861 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
10862
10863 2000-03-31 Gerd Moellmann <gerd@gnu.org>
10864
10865 * xterm.c (x_produce_glyphs): When displaying unibyte text
10866 or ASCII, handle case that per-char metric is null.
10867
10868 2000-03-30 Ken Raeburn <raeburn@gnu.org>
10869
10870 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
10871
10872 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
10873 (XSUBR, XBUFFER): Verify correct object type before returning
10874 pointer, using eassert.
10875 * frame.h (XFRAME): Likewise.
10876
10877 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
10878 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
10879 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
10880 * data.c (set_internal): Likewise.
10881 * dispextern.h (WINDOW_WANTS_MODELINE_P)
10882 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
10883 * fileio.c (auto_save_1): Likewise.
10884 * insdel.c (check_markers): Likewise.
10885 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
10886 * undo.c (record_insert): Likewise.
10887 * vmsproc.c (child_sig): Likewise.
10888 * window.c (unshow_buffer, window_loop): Likewise.
10889 * xterm.c (x_erase_phys_cursor): Likewise.
10890
10891 2000-03-30 Gerd Moellmann <gerd@gnu.org>
10892
10893 * xfns.c (free_image_cache): Free the cache structure itself
10894 last, after all its members have been freed.
10895
10896 * lisp.h (xstrdup): Add prototype.
10897
10898 * alloc.c (xstrdup): Moved here from xfaces.c.
10899 (allocating_for_lisp): Variable removed.
10900 (lisp_malloc): Block input around the calls to malloc and mem_insert.
10901
10902 * xfaces.c (realize_tty_face): Use find_symbol_value instead
10903 of Fsymbol_value.
10904 (xstrdup): Moved to alloc.c.
10905
10906 2000-03-29 Ken Raeburn <raeburn@gnu.org>
10907
10908 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
10909
10910 * emacs.c (main): Fix sense of no-loadup test.
10911
10912 * config.in (ENABLE_CHECKING): Undef.
10913
10914 * lisp.h (struct interval): Replace "parent" field with a union of
10915 interval pointer and Lisp_Object; add new bitfield to use as
10916 discriminant. Change other flag fields to bitfields.
10917 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
10918 is defined and the supplied test fails, print a message and abort.
10919 (eassert): New macro. Use CHECK to provide an assert-like facility.
10920
10921 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
10922 pointers; abort if the value looks like a lisp object.
10923 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
10924 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
10925 Modify for new interval parent definition.
10926
10927 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
10928 (UNMARK_BALANCE_INTERVALS): Update references that need an
10929 addressable lisp object in the interval structure.
10930 (die): New function.
10931 (suppress_checking): New variable.
10932
10933 * intervals.c (interval_start_pos): Just return 0 if there's no
10934 parent object.
10935
10936 2000-03-29 Gerd Moellmann <gerd@gnu.org>
10937
10938 * lread.c (read1): Accept `.' (period) as symbol start like in CL
10939 and earlier Emacs versions.
10940
10941 * keyboard.c (Ftop_level): Cancel busy-cursor.
10942
10943 * eval.c (call_debugger): Cancel busy-cursor.
10944
10945 2000-03-29 Kenichi Handa <handa@etl.go.jp>
10946
10947 * search.c (Freplace_match): Adjust multibyteness of the current
10948 buffer and NEWTEXT. Free allocated memory before signaling an error.
10949
10950 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
10951
10952 * regex.c (analyse_first): New function obtained by ripping out most
10953 of re_compile_fastmap and generalizing it a little bit so that it
10954 can also just return whether a given (sub)pattern can match the empty
10955 string or not.
10956 (regex_compile): Use `analyse_first' to decide whether the loop-check
10957 needs to be done or not for *, +, *? and +? (the loop check is costly
10958 for non-greedy repetition).
10959 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
10960
10961 2000-03-28 Dave Love <fx@gnu.org>
10962
10963 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
10964
10965 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
10966
10967 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
10968
10969 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
10970 an expression.
10971 (enum re_opcode_t): Update description of succeed_n.
10972 (PATFETCH): Always define.
10973 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
10974 operators, char classes, shy-groups and intervals).
10975 Optimize special cases of intervals so as to only use succeed_n and
10976 jump_n when really needed.
10977 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
10978 that we don't have to handle the special cases any more.
10979 Simplify on_failure_jump handling as well.
10980
10981 2000-03-28 Jason Rumney <jasonr@gnu.org>
10982
10983 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
10984
10985 2000-03-27 Gerd Moellmann <gerd@gnu.org>
10986
10987 * s/freebsd.h (GC_SETJMP_WORKS): Define.
10988
10989 * s/msdos.h (GC_SETJMP_WORKS): Define.
10990
10991 * alloc.c (mark_maybe_object): New function.
10992 (mark_memory): Use it.
10993 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
10994 (setjmp_tested_p, longjmp_done): New variables.
10995 (test_setjmp): New function.
10996 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
10997 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
10998
10999 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
11000 to DEC_TEXT_POS and INC_TEXT_POS.
11001
11002 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
11003 with parameter MULTIBYTE_P.
11004
11005 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
11006
11007 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
11008 buffers because it looks for multibyte character byte sequences
11009 which don't exist in unibyte text.
11010
11011 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
11012
11013 * xfaces.c (register_color, unregister_color, unregister_colors)
11014 [DEBUG_X_COLORS]: New functions.
11015 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
11016
11017 * xfns.c (x_set_cursor_color): Get color reference counts right.
11018
11019 * xterm.c (x_copy_color): New function.
11020 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
11021
11022 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
11023 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
11024 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
11025 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
11026 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
11027 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
11028 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
11029 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
11030 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
11031 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
11032
11033 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
11034 names for handling per-buffer variables.
11035
11036 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
11037 instead of MAX_BUFFER_LOCAL_VARS.
11038 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
11039
11040 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
11041
11042 * xfns.c (x_specified_cursor_type): New function.
11043 (x_set_cursor_type): Use it.
11044
11045 * buffer.h (struct buffer): Add cursor_type.
11046
11047 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
11048
11049 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
11050 (print_partial_compiled_pattern, re_compile_fastmap):
11051 Handle new opcode.
11052 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
11053 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
11054 executing it as well as when popping it off the stack to find infinite
11055 loops in non-greedy repetition operators.
11056
11057 2000-03-26 Gerd Moellmann <gerd@gnu.org>
11058
11059 * doc.c (Qfunction_documentation): New variable.
11060 (syms_of_doc): Initialize Qfunction_documentation.
11061 (Fdocumentation): If FUNCTION is a symbol with non-nil
11062 `function-documentation' property, return a documentation derived
11063 from that.
11064
11065 * buffer.c (syms_of_buffer): Add default-cursor-type.
11066 (init_buffer_once): Don't let cursor_type have a local value
11067 in every buffer.
11068
11069 * xterm.c (x_display_and_set_cursor): Choose cursor depending
11070 on buffer-local value of cursor_type.
11071 (x_draw_bar_cursor): Add parameter WIDTH.
11072
11073 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
11074 (init_buffer_once): Set default cursor_type value to t.
11075 Mark cursor_type as local everywhere.
11076 (syms_of_buffer): New per-buffer variable cursor-type.
11077
11078 * buffer.h (struct buffer): Remove member local_var_flags,
11079 add local_flags.
11080 (MAX_BUFFER_LOCAL_VARS): New macro.
11081 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
11082 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
11083 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
11084 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
11085
11086 * print.c (print_object): Use new macros for per-buffer variables.
11087
11088 * category.c (Fset_category_table): Use new macros for per-buffer
11089 variables.
11090
11091 * buffer.c (buffer_permanent_local_flags): Make a char array.
11092 (max_buffer_local_idx): New variable.
11093 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
11094 for new handling of per-buffer variables.
11095 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
11096 (init_buffer_once): Initialize per-buffer vars differently.
11097 Set max_buffer_local_idx.
11098
11099 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
11100 variables.
11101
11102 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
11103
11104 * data.c (do_symval_forwarding, store_symval_forwarding)
11105 (find_symbol_value, set_internal, default_value, Fset_default)
11106 (Fkill_local_variable, Flocal_variable_p): Use new macros for
11107 per-buffer variables.
11108
11109 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
11110
11111 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11112
11113 * xterm.c (x_term_init): Unblock input around call1 of
11114 Qvendor_specific_keysyms.
11115
11116 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
11117 (find_defun_start): Consider an open parenthesis in column 0
11118 a defun start only if open_paren_in_column_0_is_defun_start is set.
11119 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
11120
11121 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
11122
11123 * eval.c (Fautoload): Add entry in load-history (if after dump).
11124 * lread.c (load-history): Update docstring.
11125
11126 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11127
11128 * indent.c (Fvertical_motion): Always use the current buffer.
11129 Temporarily change the window's buffer, if necessary.
11130
11131 2000-03-23 Gerd Moellmann <gerd@gnu.org>
11132
11133 * xterm.c (fast_find_position): Make sure not to consider rows
11134 not visible in the window.
11135
11136 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
11137
11138 * regex.c (enum syntaxcode): Provide default for non-Emacs.
11139 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
11140
11141 2000-03-22 Jason Rumney <jasonr@gnu.org>
11142
11143 * w32menu.c (single_submenu): Set help string to NULL if none.
11144 (w32_menu_show): Set help string correctly.
11145 (add-menu-item): Set help string in MIIM_DATA for menu item.
11146 Load SetMenuItemInfoA explicitly.
11147 (w32_menu_display_help): New function.
11148
11149 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
11150 (QCdata): Moved to xdisp.c.
11151
11152 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
11153 (Vw32_charset_to_codepage_alist): Removed.
11154 (Vw32_charset_info_alist): New variable.
11155 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
11156 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
11157 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
11158 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
11159 with TODO comment.
11160 (w32_codepage_for_font): Use Vw32_charset_info_alist.
11161 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
11162 Define Vw32_charset_info_alist and w32_charset symbols.
11163
11164 2000-03-22 Jason Rumney <jasonr@gnu.org>
11165
11166 * makefile.nt (w32bdf.obj): Update dependencies.
11167
11168 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
11169
11170 * w32fns.c: Include fontset.h after dispextern.h.
11171 (Fx_create_frame): Do not create fontset.
11172 (w32_load_system_font): Doc fix.
11173 (Fx_close_connection): Free full_name if it is not shared.
11174
11175 * w32term.c: Include fontset.h after dispextern.h.
11176 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
11177 Callers updated.
11178 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
11179 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
11180 (w32_font_is_double_byte): New function, needs body.
11181 (x_append_glyph): Set glyph->glyph_not_available_p.
11182 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11183 it->charset. If it->multibyte_p is zero and it->c is a multibyte
11184 character, convert it to a unibyte character.
11185 (struct glyph_string): Delete member `charset'.
11186 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
11187 calculating it is found.
11188 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11189 the case that per char metric is not available correctly.
11190 (x_fill_glyph_string): Handle the case that the specific glyph is
11191 not available correctly.
11192 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11193 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11194 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11195 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11196 fontset. Don't call FS_LOAD_FONT.
11197
11198 2000-03-22 Ken Raeburn <raeburn@gnu.org>
11199
11200 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
11201 (INT_LISPLIKE): New macro.
11202 (NULL_INTERVAL_P): Use it.
11203 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
11204 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
11205 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
11206
11207 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
11208 explicit references to "parent" field of struct interval and
11209 associated unclean type conversions.
11210 * intervals.c (create_root_interval, root_interval, rotate_right)
11211 (rotate_left, balance_possible_root_interval, split_interval_right)
11212 (split_interval_left, interval_start_pos, find_interval)
11213 (next_interval, previous_interval, update_interval)
11214 (adjust_intervals_for_insertion, delete_node, delete_interval)
11215 (adjust_intervals_for_deletion, merge_interval_right)
11216 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
11217 (copy_intervals_to_string): Likewise.
11218 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
11219 Likewise.
11220 * syntax.c (update_syntax_table): Likewise.
11221
11222 * intervals.c (reproduce_tree_obj): New function, like
11223 reproduce_tree but takes a Lisp_Object for the parent. Declare
11224 with prototype.
11225 (graft_intervals_into_buffer): Use it when appropriate.
11226 (reproduce_tree): Declare with prototype.
11227 (balance_possible_root_interval): Check that the parent is a lisp
11228 object before trying to examine its type.
11229
11230 2000-03-22 Gerd Moellmann <gerd@gnu.org>
11231
11232 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
11233 as strings only if both are known to be strings.
11234
11235 * s/openbsd.h (LIBS_TERMCAP): Undef.
11236
11237 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
11238
11239 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
11240 definitions for non-Emacs compilation.
11241 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
11242 outside of `#ifdef emacs'.
11243 (print_partial_compiled_pattern): Update.
11244 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
11245 (re_compile_fastmap): Merge handling of charset and charset_not (for
11246 emacs and non-emacs compilation as well).
11247 Similarly for (not)categoryspec and (not)syntaxspec.
11248 Don't use the fastmap when reaching `anychar' since the added
11249 complexity is not justified.
11250 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
11251 and (not)syntaxspec. Merge (not)categoryspec.
11252
11253 2000-03-22 Kenichi Handa <handa@etl.go.jp>
11254
11255 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
11256 (FACE_FOR_CHAR): Define them differently for the configuration of
11257 --without-x.
11258
11259 2000-03-21 Dave Love <fx@gnu.org>
11260
11261 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
11262 doc string.
11263
11264 2000-03-21 Gerd Moellmann <gerd@gnu.org>
11265
11266 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
11267 (lface_fully_specified_p): Don't check contents of
11268 LFACE_FONT_INDEX because that attribute is optional.
11269 (realize_x_face): Remove now unwarranted xassert.
11270
11271 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
11272
11273 The following changes are to make font selection based on
11274 characters, not charset. In addition, they recover fontset
11275 facilities while utilizing the new font selection mechanism.
11276
11277 * Makefile.in (fontset.o): Depend on dispextern.h.
11278
11279 * alloc.c (mark_face_cache): Don't mark face->registry.
11280
11281 * dispextern.h (struct glyph): New member glyph_not_available_p.
11282 Use 22 bits for face_id.
11283 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
11284 (struct face): Delete member registry, new member ascii_face.
11285 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
11286 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
11287 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
11288 (struct it): Delete member charset, new member glyph_not_available_p.
11289
11290 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
11291 (struct fontset_info, struct fontset_data): Structs removed.
11292 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
11293 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
11294 (fs_load_font, fs_query_fontset): Adjusted for new argument.
11295 (fs_free_face_fontset, fontset_font_pattern)
11296 (face_suitable_for_char_p, face_for_char)
11297 (make_fontset_for_ascii_face): Extern them.
11298 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
11299 (FS_LOAD_FACE_FONT): New macro.
11300
11301 * fontset.c: All codes rewritten or adjusted for the change of
11302 fontset implementation. Now fontset is represented by char table.
11303 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
11304 Variables removed.
11305 (my_strcasecmp): Function removed.
11306 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
11307 (AREF, ASIZE): New macros.
11308 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
11309 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
11310 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
11311 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
11312 (fontset_id_valid_p, font_family_registry, fontset_name)
11313 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
11314 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
11315 New functions.
11316 (fs_load_font): New arg FACE. Caller changed.
11317 (fs_query_fontset): Argument changed. Caller changed.
11318 (Fquery_fontset): call fs_query_fontset.
11319 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
11320 Functions removed.
11321 (clear_fontset_elements, check_registry_encoding)
11322 (check_fontset_name): New functions.
11323 (syms_of_fontset): Set char-table-extra-slots property of fontset
11324 to 3. Staticpro and initialize Vfontset_table and
11325 Vdefault_fontset. Defsubr fontset_font and fontset_list.
11326
11327 * frame.h (struct frame): Member `fontset_data' removed.
11328 (FRAME_FONTSET_DATA): Macro removed.
11329
11330 * frame.c (make_frame): Don't allocate f->fontset_data.
11331 (Fdelete_frame): Don't free f->fontset_data.
11332
11333 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
11334
11335 * xdisp.c (charset_at_position): Function removed.
11336 (init_iterator): Don't set member charset of struct `it'.
11337 (handle_face_prop, reseat_to_string, set_iterator_to_next)
11338 (next_element_from_display_vector, insert_left_trunc_glyphs):
11339 Likewise.
11340 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
11341 FACE_FOR_CHARSET.
11342 (get_next_display_element, append_space)
11343 (extend_face_to_end_of_line): Likewise.
11344
11345 * xfaces.c (Qx_charset_registry, Vface_default_registry):
11346 Variables removed.
11347 (clear_font_table, frame_update_line_height, load_face_font):
11348 Adjusted for the change of fontset implementation.
11349 (load_face_fontset_font): Function removed.
11350 (pixel_point_size): New function.
11351 (font_list): Argument type changed. Caller changed.
11352 (LFACE_FONT): New macro.
11353 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
11354 (set_lface_from_font_name): Type of arg FONTNAME is changed to
11355 Lisp_Object. Determine the font name by actually loading a font
11356 by the specified pattern. Set LFACE_FONT (lface) to the specified
11357 pattern. Even if a font is not found, don't try alternatives.
11358 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
11359 (set_font_frame_param): If `font' is specified in lface, use it.
11360 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
11361 (lface_same_font_attributes_p): Likewise.
11362 (make_realized_face): Arguent changed. Caller changed. Set
11363 face->ascii_face to face itself.
11364 (free_realized_face): Free face->fontset if face is for ASCII.
11365 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
11366 (deduce_unibyte_registry, x_charset_registry): Functions removed.
11367 (free_realized_multibyte_face): New function.
11368 (lookup_face, lookup_named_face, lookup_derived_face): Argument
11369 changed. Caller changed.
11370 (try_font_list): Argument type changed.
11371 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
11372 (choose_face_font): Argument changed. Handle fontset properly.
11373 (choose_face_fontset_font): Function removed.
11374 (realize_default_face, realize_named_face): Don't remove the
11375 former face here.
11376 (realize_face): Argument changed. Caller changed. Remove face
11377 with the arg former_face_id in advance. Load font for the new face.
11378 (realize_x_face): Argument changed. Caller changed. For a
11379 multibyte character, share fontset with base_face. For a single
11380 byte character, make a new realized fontset. Don't load a font here.
11381 (realize_tty_face): Argument changed. Caller changed.
11382 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
11383 (face_at_buffer_position): Don't check multibyte_p for returning
11384 DEFAULT_FACE_ID.
11385 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
11386 FACE_SUITABLE_FOR_CHARSET_P.
11387 (syms_of_xfaces): Remove code for Qx_charset_registry and
11388 Vface_default_registry.
11389
11390 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
11391 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
11392 (x_per_char_metric): Don't try FONT->default_char. Even if
11393 pcm->width is zero, glyph bits may exist.
11394 (x_encode_char): Always initialize char2b->byte1.
11395 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
11396 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
11397 (x_append_glyph): Set glyph->glyph_not_available_p.
11398 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11399 it->charset. Handle the case that per char metric is not
11400 available. If it->multibyte_p is zero and it->c is a multibyte
11401 character, convert it to a unibyte character.
11402 (struct glyph_string): Delete member `charset'.
11403 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11404 the case that per char metric is not available correctly.
11405 (x_fill_glyph_string): Handle the case that the specific glyph is
11406 not available correctly.
11407 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11408 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11409 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11410 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11411 fontset. Don't call FS_LOAD_FONT.
11412
11413 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
11414 (x_create_tip_frame): Likewise.
11415 (Fx_close_connection): Free full_name of font_info.
11416
11417 * fns.c (optimize_sub_char_table): New function.
11418 (Foptimize_char_table): New function.
11419 (syms_of_fns): Defsubr Soptimize_char_table.
11420
11421 2000-03-20 Gerd Moellmann <gerd@gnu.org>
11422
11423 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
11424 only if buffer is displayed in some window.
11425
11426 * xdisp.c (handle_single_display_prop): Initialize local `value'.
11427 (try_window_reusing_current_matrix): Don't call scroll run
11428 function if run's current and desired position are the same;
11429 this prevents cursor flickering.
11430
11431 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
11432
11433 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
11434
11435 * regex.c (RE_STRING_CHAR): New macro.
11436 (GET_CHAR_AFER_2): Remove.
11437 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
11438 (enum re_opcode_t): Remove on_failure_jump_exclusive.
11439 (print_partial_compiled_pattern, re_compile_fastmap)
11440 (re_match_2_internal): Remove on_failure_jump_exclusive.
11441 (regex_compile): Turn optimizable P+ loops into PP*, so that the
11442 optimization only need to work for * (ie. can use of_keep_string_jump).
11443 Remove the special case for .*\n since it is now covered by the general
11444 optimization.
11445 (re_search_2): Don't bother with `room'.
11446 (skip_one_char): New function.
11447 (skip_noops): Simplify since `memory' is not needed any more.
11448 (mutually_exclusive_p): Restructure slightly to use `switch' and
11449 add handling for "all" remaining cases.
11450 (re_match_2_internal): Change on_failure_jump_smart to use
11451 on_failure_keep_string_jump (and redirect the end-of-loop jump)
11452 rather than on_failure_jump_exclusive.
11453
11454 2000-03-19 Gerd Moellmann <gerd@gnu.org>
11455
11456 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
11457 number of bits per RGB because it's everywhere used as the depth
11458 of the visual.
11459
11460 * term.c (calculate_costs): Remove code dealing with X frames.
11461
11462 2000-03-19 Richard M. Stallman <rms@gnu.org>
11463
11464 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
11465
11466 2000-03-18 Gerd Moellmann <gerd@gnu.org>
11467
11468 * lread.c (read_integer): Unread the last char not consumed.
11469
11470 2000-03-17 Gerd Moellmann <gerd@gnu.org>
11471
11472 * xterm.c (x_update_window_cursor): Don't update in frames
11473 which are in the process of being deleted.
11474
11475 2000-03-16 Gerd Moellmann <gerd@gnu.org>
11476
11477 * Makefile.in (mostlyclean): Add `*.core'.
11478 (clean): Add `bootstrap-emacs'.
11479
11480 * lread.c (read_integer): New function.
11481 (read1): Support read syntax #o, #x, #b, #r.
11482
11483 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
11484
11485 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
11486 make sure POINTER_TO_OFFSET gives the same value before and after
11487 PREFETCH. Use `dfail' to guarantee "atomic" matching.
11488 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
11489 (debug): Now only active if > 0 rather than if != 0.
11490 (DEBUG_*): Update for the new meaning of `debug'.
11491 (print_partial_compiled_pattern): Add missing `succeed' case. Use
11492 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
11493 in `succeed_n', `jump_n' and `set_number_at'.
11494 (store_op1, store_op2, insert_op1, insert_op2)
11495 (at_begline_loc_p, at_endline_loc_p): Add prototype.
11496 (group_in_compile_stack): Move to after its arg's types are
11497 declared and add a prototype.
11498 (PATFETCH): Define in terms of PATFETCH_RAW.
11499 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
11500 (QUIT): Redefine as a nop except for NTemacs.
11501 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
11502 indentation of the greedy-op and shy-group code.
11503 (at_(beg|end)line_loc_p): Fix argument's types.
11504 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
11505 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
11506 (MATCHING_IN_FIRST_STRING): Remove.
11507 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
11508 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
11509 QUIT unconditionally.
11510
11511 2000-03-15 Gerd Moellmann <gerd@gnu.org>
11512
11513 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
11514 a sole completion.
11515
11516 * process.c (send_process): Add a hint that the function
11517 can call Lisp code to its comment.
11518
11519 * lread.c (load_dangerous_libraries): New variable.
11520 (Vbytecomp_version_regexp): New variable.
11521 (safe_to_load_p): New function.
11522 (Fload): Handle files not compiled with Emacs specially.
11523 (syms_of_lread): New Lisp variable load-dangerous-libraries.
11524
11525 2000-03-14 Gerd Moellmann <gerd@gnu.org>
11526
11527 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
11528
11529 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
11530 support functions only if HAVE_X11R6_XIM is defined.
11531 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
11532
11533 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
11534
11535 * xfns.c (X_I18N_INHIBITED): Don't define.
11536 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
11537 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
11538
11539 * config.in (HAVE_X_I18N): Moved here from xterm.h.
11540 (HAVE_X11R6_XIM): Define.
11541
11542 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
11543
11544 * xterm.c (x_term_init): Add support for X resource `synchronous'.
11545 If set, call XSynchronize.
11546
11547 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
11548
11549 * regex.c: Declare a new type `re_char' used throughout the code
11550 for the string char type. It's `const unsigned char' to match the
11551 rest of Emacs. Consistently make sure all pointers to strings use
11552 it and make sure all pointers into the pattern use `unsigned char'.
11553 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
11554 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
11555 code duplication.
11556
11557 * charset.h (GET_CHAR_AFTER_2): Remove.
11558 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
11559
11560 2000-03-12 Ken Raeburn <raeburn@gnu.org>
11561
11562 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
11563 variable before the invocation of YMF_PASS_LDFLAGS, in case both
11564 of them try to use backquotes.
11565
11566 2000-03-12 Dave Love <fx@gnu.org>
11567
11568 * unexelf.c: Restore changes of 1999-10-19.
11569 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
11570 fix its type and alignment; copy it from current process.
11571
11572 2000-03-12 Gerd Moellmann <gerd@gnu.org>
11573
11574 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
11575 has been found. Fix bug not computing timer's predecessor.
11576
11577 * fileio.c (Fread_file_name): Handle case that DIR contains a
11578 file name.
11579
11580 * window.c (Fsave_window_excursion): Doc fix.
11581
11582 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
11583
11584 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
11585
11586 * msdos.c (vga_installed): New function, code moved from
11587 dos_set_window_size.
11588 (Qbar, Qcursor_type, outside_cursor): New variables.
11589 (syms_of_msdos): Intern and staticpro them.
11590 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
11591 shape used outside Emacs when called for the first time.
11592 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
11593 cursor shape used outside Emacs.
11594 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
11595 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
11596 type has changed.
11597 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
11598 parameters specify the cursor. Make qreverse a global
11599 variable (renamed to Qreverse).
11600
11601 2000-03-09 Gerd Moellmann <gerd@gnu.org>
11602
11603 * fns.c (Fy_or_n_p): Cancel busy-cursor.
11604
11605 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
11606
11607 This is a big redesign of failure-stack and register handling, prompted
11608 by bugs revealed when trying to add shy-groups. Overall, what happened
11609 is that loops are now structured a little differently, groups can be
11610 shy and the code is a little simpler.
11611
11612 * regex.h: Update the copyright.
11613 (RE_SHY_GROUPS): New value.
11614 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
11615 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
11616
11617 * regex.c (enum re_opcode_t): Remove jump_past_alt,
11618 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
11619 on_failure_jump_(exclusive, loop and smart). Also fix the comment
11620 for (start|stop)_memory since they now only take one argument (the
11621 second has becomes unnecessary).
11622 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
11623 (print_compiled_pattern): Use %ld to printf long ints and flush to
11624 make debugging a little easier.
11625 (union fail_stack_elt): Make the integer unsigned.
11626 (struct fail_stack_type): Add a `frame' element.
11627 (INIT_FAIL_STACK): Init `frame' as well.
11628 (POP_PATTERN_OP): New macro for re_compile_fastmap.
11629 (DEBUG_PUSH, DEBUG_POP): Remove.
11630 (NUM_REG_ITEMS): Remove.
11631 (NUM_NONREG_ITEMS): Adjust.
11632 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
11633 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
11634 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
11635 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
11636 New macros.
11637 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
11638 address pushed is not the destination of the jump but the source
11639 of it instead.
11640 (NUM_FAILURE_ITEMS): Remove.
11641 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
11642 registers before the actual failure point). Don't hardcode any
11643 meaning for str==NULL anymore.
11644 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
11645 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
11646 Remove.
11647 (REG_UNSET_VALUE): Use NULL (why not?).
11648 (compile_range): Remove declaration since it doesn't exist.
11649 (struct compile_stack_elt_t): Remove inner_group_offset.
11650 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
11651 (regex_grow_registers): Remove dead code.
11652 (FIXUP_ALT_JUMP): New macro.
11653 (regex_compile): Add shy-groups Change loops to use
11654 on_failure_jump_smart&jump instead of
11655 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
11656 initial (dummy_failure_)jump. Remove c1_base (looks like unused
11657 variable to me). Use `jump' instead of `jump_past_alt' and don't
11658 bother with push_dummy_failure in alternatives since it is now
11659 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
11660 emacs' for (re)allocating the stack.
11661 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
11662 from loop when bufp->can_be_null rather than jumping to `done'.
11663 Avoid jumping backwards so as to ensure termination. Use
11664 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
11665 backreferences. Remove dead code in handling of `anychar'.
11666 (skip_noops, mutually_exclusive_p): New functions taken from the
11667 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
11668 improve mutually_exclusive_p to handle ".+\n".
11669 (lowest_active_reg, highest_active_reg)
11670 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
11671 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
11672 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
11673 variables. Push register (in `start_memory') on the stack rather
11674 than storing it in old_reg(start|end). Remove the cycle detection
11675 from `stop_memory', replaced by the use of on_failure_jump_loop
11676 for greedy loops. Add code for the new on_failure_jump_<foo>.
11677 Remove ad-hoc code in `on_failure_jump' to push more registers in
11678 the case of a loop. Take out code from `maybe_pop_jump' into
11679 separate functions and adapt it to the semantics of
11680 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
11681 and push_dummy_failure. Remove dummy_failure handling and
11682 handling of `failures to jump to on_failure_jump' (this last one
11683 was already dead code, it seems).
11684 (group_match_null_string_p, alt_match_null_string_p)
11685 (common_op_match_null_string_p): Remove.
11686
11687 2000-03-08 Dave Love <fx@gnu.org>
11688
11689 * config.in: Don't depend on __STDC__ for volatile.
11690 Add POINTER_TYPE, PTR, PROTOTYPES.
11691
11692 * hftctl.c, strftime.c: Use PROTOTYPES.
11693 * eval.c (find_handler_clause): Likewise.
11694
11695 * mem-limits.h: Use POINTER_TYPE.
11696
11697 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
11698 (memory_warnings): Declare using POINTER_TYPE.
11699
11700 2000-03-08 Gerd Moellmann <gerd@gnu.org>
11701
11702 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
11703
11704 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
11705
11706 * xfns.c: Remove obsolete code in #if 0.
11707 (Fx_focus_frame): New function.
11708
11709 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11710
11711 * coding.c (coding_category_name): Add coding-category-utf-8,
11712 coding-category-utf-16-be, coding-category-utf-16-le.
11713 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
11714 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
11715 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
11716 (detect_coding_utf_8): New function.
11717 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
11718 UTF_16_LOW_SURROGATE_P): New macros.
11719 (detect_coding_utf_16): New function
11720 (detect_coding_mask): When priorities are specified, skip any
11721 categories that have `nil' coding-system. Fix bug of returning
11722 wrong mask when PRIORITIES is specified and detect_coding_XXX()
11723 returns a mask not set in PRIORITIES.
11724 (detect_eol_type_in_2_octet_form): New function.
11725 (detect_eol): selects detect_eol_type_XXX to call according to
11726 cooding->category_idx.
11727 (detect_coding_system): Remove `nil' coding-system in the result.
11728 (Fupdate_coding_systems_internal): Update all coding-categories.
11729
11730 * coding.h (CODING_CATEGORY_IDX_UTF_8)
11731 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
11732 New macros.
11733 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
11734 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
11735 (CODING_CATEGORY_IDX_UTF_16_LE)
11736 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
11737 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
11738 (CODING_CATEGORY_MASK_ANY): Include the above macros.
11739 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
11740
11741 2000-03-07 Gerd Moellmann <gerd@gnu.org>
11742
11743 * doc.c (Fdocumentation_property): If value is not a string,
11744 and doesn't refer to etc/DOC, evaluate it to obtain a string.
11745
11746 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
11747 close the display with XtCloseDisplay. This caused a bus error
11748 on OpenWindows.
11749
11750 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
11751 complete but not unique.
11752
11753 2000-03-06 Gerd Moellmann <gerd@gnu.org>
11754
11755 * process.c (send_process): Remove local variable `procname' that
11756 might become invalid when a GC happens. Instead, access the
11757 process name slot directly.
11758
11759 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
11760 orig_height if set.
11761
11762 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
11763 orig_height if set.
11764
11765 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
11766
11767 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
11768 glyph matrices have been freed.
11769
11770 2000-03-05 Gerd Moellmann <gerd@gnu.org>
11771
11772 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
11773 (bootstrap-temacs): Set LC_ALL to C like for temacs.
11774
11775 * xfns.c (QCdata): Moved to xdisp.c.
11776
11777 * xdisp.c (QCdata): Moved here from xfns.c.
11778 (syms_of_xdisp): Initialize QCdata.
11779
11780 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
11781
11782 * window.c (coordinates_in_window): Use
11783 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
11784 FRAME_INTERNAL_BORDER_WIDTH.
11785
11786 * xdisp.c (try_window_id): Recompute unchanged information if
11787 it is obviously invalid.
11788
11789 * xterm.c (x_term_init): Create a colormap if not using the
11790 default visual.
11791
11792 * xterm.h (select_visual): Change prototype.
11793
11794 * xfns.c (select_visual): Rewritten. Recognize user-specified
11795 visual classes.
11796 (visual_classes): New variable.
11797
11798 2000-03-04 Gerd Moellmann <gerd@gnu.org>
11799
11800 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
11801 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
11802 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
11803 (x_decode_color): Don't handle allocation of white and black specially.
11804 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
11805 XtNcolormap resources.
11806 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
11807 (Fx_create_frame): Initialize color members of x_output structure.
11808 (xpm_load): Pass colormap to XPM lib.
11809
11810 * xfaces.c (x_free_colors): Access colormap of frame using
11811 FRAME_X_COLORMAP. Be paranoid about freeing black and white
11812 when default colormap is used.
11813
11814 * xterm.c (x_term_init): Set Colormap member of x_display_info
11815 structure. Copy colormap if resource `privateColormap' is
11816 specified (PseudoColor only).
11817 (x_setup_relief_color): Access colormap of frame using
11818 FRAME_X_COLORMAP.
11819
11820 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
11821 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
11822
11823 2000-03-04 Jason Rumney <jasonr@gnu.org>
11824
11825 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
11826 other non-platform-specific equivalents.
11827 [WINDOWSNT]: Include w32term.h, fontset.h and define X
11828 specific functions and macros as their w32 equivalents where
11829 non-platform-specifics are not available.
11830 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
11831 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
11832 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
11833 (frame_update_line_height): Use macros to access f->output_data.
11834 (defined_color): Remove FIXME comments; fixed.
11835 (x_face_list_fonts, prepare_face_for_display): Put X specifics
11836 into #ifdef blocks. Add WINDOWSNT blocks.
11837 (Fx_list_fonts): Use macros for accessing font data.
11838 (set_lface_from_font_name): Different default fonts for X and
11839 WINDOWSNT.
11840 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
11841 scalable for backward compatibility.
11842 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
11843 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
11844
11845 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
11846 syms_of_w32faces.
11847
11848 * makefile.nt (w32faces.obj): Remove.
11849 (xfaces.obj): Add.
11850
11851 2000-03-03 Jason Rumney <jasonr@gnu.org>
11852
11853 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
11854 correct parameters.
11855
11856 2000-03-03 Ken Raeburn <raeburn@gnu.org>
11857
11858 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
11859 standard ELF definitions here if the system header does not.
11860
11861 2000-03-03 Gerd Moellmann <gerd@gnu.org>
11862
11863 * xterm.c (PER_CHAR_METRIC): Removed.
11864 (x_per_char_metric_1, x_default_char): New functions.
11865 (x_per_char_metric): If font's default char is invalid, return
11866 metrics of a suitably chosen usable default char.
11867 (x_draw_glyph_string_foreground): If font has an invalid default
11868 char, replace occurrences of unprintable chars with a suitably
11869 chosen usable default char.
11870
11871 2000-03-02 Gerd Moellmann <gerd@gnu.org>
11872
11873 * xterm.c (note_mouse_highlight): Return quickly if frame's
11874 glyph matrices have been freed.
11875
11876 * dispnew.c (free_glyphs): Block input while freeing matrices.
11877
11878 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
11879
11880 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
11881 Use x_free_colors.
11882
11883 * dispextern.h (x_free_colors): Add prototype.
11884
11885 * xfaces.c (x_free_colors): New function.
11886 (unload_color, free_face_colors): Use it.
11887
11888 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
11889
11890 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
11891
11892 * window.c [MSDOS]: Include msdos.h.
11893
11894 2000-03-02 Dave Love <fx@gnu.org>
11895
11896 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
11897
11898 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
11899 set C_OPTIMIZE_SWITCH for gcc.
11900
11901 2000-03-02 Kenichi Handa <handa@etl.go.jp>
11902
11903 * coding.c (coding_save_composition): Be sure to allocate
11904 composition data area in coding even if there's no composition in
11905 the current run.
11906
11907 2000-03-01 Jason Rumney <jasonr@gnu.org>
11908
11909 * w32term.c: Equivalent changes to those made to xterm.c on
11910 2000-02-25 and 2000-02-24.
11911
11912 * w32fns.c: Equivalent changes to those made to xfns.c on
11913 2000-02-25 and 2000-02-21.
11914
11915 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
11916 correct line-end convention is followed.
11917
11918 * w32menu.c [HAVE_BOXES]: Remove #undef.
11919 (single_keymap_panes): Remove code for simulating checkmarks.
11920 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
11921 Remove code for drawing simulated checkmarks.
11922 (w32_menu_show): make unibyte help string correctly.
11923 (add_menu_item): draw standard Windows checkmarks. Draw radio
11924 buttons as radio buttons if possible.
11925
11926 2000-03-01 Gerd Moellmann <gerd@gnu.org>
11927
11928 * sysdep.c (start_of_text): Don't define this function for NetBSD
11929 with ELF.
11930
11931 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
11932 Don't define.
11933 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
11934 (LINKER): Don't undef if __NetBSD__ is defined.
11935
11936 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
11937
11938 * fileio.c [__NetBSD__]: Define `unix'.
11939
11940 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
11941
11942 2000-02-29 Gerd Moellmann <gerd@gnu.org>
11943
11944 * atimer.c (start_atimer): Don't abort when timers are stopped.
11945 (append_atimer_lists): New function.
11946 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
11947 arbitrary lists of stopped and running atimers.
11948
11949 * atimer.c (cancel_atimer): Handle canceling an atimer when
11950 some timers are stopped.
11951
11952 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
11953 after canceling it.
11954
11955 * fns.c (maybe_resize_hash_table): Handle case of new size
11956 coming out as being the same as old size.
11957
11958 2000-02-27 Jason Rumney <jasonr@gnu.org>
11959
11960 * makefile.nt: Add atimer.h to dependencies.
11961 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
11962 * w32console.c: Only disable window system features for dispextern.h
11963 (initialize_w32_display): Build a display info for the console.
11964 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
11965 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
11966 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
11967 as 2 button mice.
11968 * w32gui.h (struct W32FontStruct): Revert last change after change
11969 to xdisp.c.
11970 * w32menu.c (single_submenu): Set up help string.
11971 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
11972 (w32_dialog_show): Set up help string.
11973 * w32term.c (w32_display_info_for_display): Remove unused function.
11974 (w32_draw_bitmap): Use pre-built bitmaps.
11975 (w32_initialize_display_info): New function to initialize parts of
11976 display info that are common to both GUI and console frames.
11977 (w32_term_init): Use w32_initialize_display_info. Do not set
11978 Vw32_num_mouse_buttons here, as it is not called for console
11979 frames. Build bitmaps for indicating truncated lines etc.
11980 (x_delete_display): Destroy pre-built bitmaps.
11981 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
11982 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
11983
11984 2000-02-27 Dave Love <fx@gnu.org>
11985
11986 * lisp.h: Add a bunch of prototypes.
11987
11988 2000-02-26 Kenichi Handa <handa@etl.go.jp>
11989
11990 * keyboard.c (read_char): Set `usec' correctly.
11991
11992 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11993
11994 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
11995 `lambda', set reg[RRR] to the map index.
11996 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
11997 reg[RRR] to 0. Otherwise, set it to -1.
11998
11999 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12000
12001 * emacs.c (main): Remove code snippet commented out with `//'.
12002
12003 2000-02-25 Richard M. Stallman <rms@gnu.org>
12004
12005 * fileio.c (Ffile_symlink_p): If result starts with a `/'
12006 and contains a `:', prepend `/:'.
12007
12008 * window.c (select_window_1): If selected_window is nil,
12009 don't "swap out" the buffer's point.
12010 (Fset_window_configuration): Set selected_window to nil
12011 before calling Fselect_window.
12012 (unshow_buffer): Don't set point in buffer from window's point
12013 if another more recently selected window also shows the buffer.
12014
12015 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12016
12017 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
12018
12019 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
12020 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
12021 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
12022 New variables.
12023 (DEFAULT_BUSY_CURSOR_DELAY): New define.
12024 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
12025 (hide_busy_cursor): New functions.
12026 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
12027
12028 * minibuf.c (read_minibuf): Cancel busy-cursor.
12029
12030 * keyboard.c (command_loop_1): Call start_busy_cursor before
12031 Fcommand_execute and cancel_busy_cursor after it.
12032 (timer_check): Remove busy-cursor code.
12033 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
12034 cursor timer.
12035
12036 * process.c (wait_reading_process_input): Remove busy-cursor code.
12037
12038 * eval.c (Fsignal): Call cancel_busy_cursor instead of
12039 Fx_hide_busy_cursor.
12040
12041 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
12042 Remove prototyoes.
12043 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
12044
12045 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
12046
12047 * xterm.c (XTread_socket): Remove busy-cursor code.
12048
12049 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
12050 (build_frame_matrix_from_leaf_window): Put code handling
12051 glyph row's not being a slice of a frame row in #if 0.
12052 (sync_window_with_frame_matrix_rows): New function.
12053 (frame_row_to_window): New function.
12054 (mirror_line_dance): Handle copies between windows.
12055
12056 * lread.c (Fload): Use `xfree' instead of `free'.
12057 (init_obarray): Use `xmalloc' instead of `malloc'.
12058
12059 * window.c (Fset_window_buffer): Set WINDOW to the window
12060 after decoding.
12061 (coordinates_in_window): Take frame's internal border width
12062 into account.
12063
12064 2000-02-24 Gerd Moellmann <gerd@gnu.org>
12065
12066 * xterm.c (x_display_and_set_cursor): Display cursor of
12067 non-selected windows depending on the setting of
12068 cursor_in_non_selected_windows.
12069
12070 * xdisp.c (cursor_in_non_selected_windows): New variable.
12071 (syms_of_xdisp): DEFVAR_BOOL it.
12072
12073 2000-02-23 Gerd Moellmann <gerd@gnu.org>
12074
12075 * data.c (Fstring_to_number): If number is greater than what
12076 fits into an integer, return a float.
12077
12078 * eval.c (specbind): Remove references to
12079 keyword_symbols_constant_flag.
12080
12081 * data.c (keyword_symbols_constant_flag): Removed.
12082 (Fmakunbound, set_internal, syms_of_data): Remove references to
12083 keyword_symbols_constant_flag.
12084
12085 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
12086
12087 2000-02-23 Kenichi Handa <handa@etl.go.jp>
12088
12089 * syntax.c (multibyte_syntax_as_symbol): New variable.
12090 (syms_of_syntax): Declare it as a Lisp variable.
12091 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
12092 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
12093 nonzero, treat all multibyte characters as symbol.
12094 (init_syntax_once): Give syntax `word' to all multibyte characters.
12095
12096 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
12097
12098 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
12099 a deleted frame.
12100
12101 2000-02-21 Gerd Moellmann <gerd@gnu.org>
12102
12103 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
12104
12105 * xfns.c (x_window_to_frame, x_any_window_to_frame)
12106 (x_non_menubar_window_to_frame): Check the busy-cursor window.
12107
12108 2000-02-21 Dave Love <fx@gnu.org>
12109
12110 * frame.c (Vmouse_position_function): New variable.
12111 (Fmouse_position): Use it.
12112 (syms_of_frame): Install it.
12113
12114 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
12115
12116 2000-02-20 Gerd Moellmann <gerd@gnu.org>
12117
12118 * fileio.c (Finsert_file_contents): Unbind the binding of
12119 standard-output done by temp_output_buffer_setup.
12120
12121 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
12122 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
12123 (specbind, unbind_to): Handle most common case of non-constant
12124 symbol with trivial value specially.
12125
12126 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
12127
12128 2000-02-20 Richard M. Stallman <rms@gnu.org>
12129
12130 * data.c (Fmake_variable_buffer_local): Doc fix.
12131 Init found_for_buffer to 0.
12132 (Fmake_variable_frame_local): If the variable has already
12133 been buffer-local, set the check_frame field.
12134
12135 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
12136
12137 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
12138 produced for CODING_MODE_LAST_BLOCK requires.
12139
12140 2000-02-18 Dave Love <fx@gnu.org>
12141
12142 * keyboard.c (echo_keystrokes): Remove declaration.
12143 (Vecho_keystrokes) New variable.
12144 (read_char, record_menu_key, read_key_sequence): Use it to allow
12145 use of float value.
12146 (syms_of_keyboard): Change Vecho_keystrokes declaration.
12147
12148 * lread.c: Undef feature selection macros before defining.
12149
12150 2000-02-18 Gerd Moellmann <gerd@gnu.org>
12151
12152 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
12153 for symbols other than the symbol in question.
12154
12155 2000-02-17 Dave Love <fx@gnu.org>
12156
12157 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
12158
12159 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12160
12161 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
12162
12163 * alloc.c (enum mem_type): Compile unconditionally.
12164
12165 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
12166
12167 * xfaces.c (tty_defined_color): Don't return faulire indication
12168 for unspecified-fg and unspecified-bg pseudo-colors.
12169
12170 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12171
12172 * alloc.c (mark_object): Don't mark symbol names in pure space.
12173 (gc_sweep): Don't unmark symbol names in pure space.
12174
12175 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
12176 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
12177 [GC_MARK_STACK]: New defines.
12178 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
12179 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
12180
12181 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
12182
12183 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
12184 allocate_buffer instead of xmalloc.
12185
12186 * alloc.c (toplevel): Include setjmp.h.
12187 (PURE_POINTER_P): New define.
12188 (enum mem_type) [GC_MARK_STACK]: New enumeration.
12189 (Vdead) [GC_MARK_STACK]: New variable.
12190 (lisp_malloc): Add parameter TYPE, call mem_insert if
12191 GC_MARK_STACK is defined.
12192 (allocate_buffer): New function.
12193 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
12194 (free_float) [GC_MARK_STACK]: Set type to Vdead.
12195 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
12196 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
12197 (MEM_NIL) [GC_MARK_STACK]: New define.
12198 (struct mem_node) [GC_MARK_STACK]: New structure.
12199 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
12200 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
12201 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
12202 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
12203 (mark_stack) [GC_MARK_STACK]: New functions.
12204 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
12205 (clear_marks): Removed.
12206 (gc_sweep): Set free conses' car, free floats' type, free
12207 symbols' function to Vdead. Use lisp_free to free buffers.
12208 (init_alloc_once): Initialize Vdead.
12209 (survives_gc_p): Return non-zero for pure objects.
12210
12211 * alloc.c: Add comments throughout the file.
12212
12213 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
12214 that unblocks alarms.
12215
12216 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
12217 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
12218 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
12219
12220 * frame.c (make_frame): Set frame initiallly to `garbaged'.
12221
12222 2000-02-17 Kenichi Handa <handa@etl.go.jp>
12223
12224 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
12225 avoid infinite error signaling. Allocate sufficient memory for
12226 eol_str in the case that eoltype is Lisp_Int.
12227
12228 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
12229
12230 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
12231 depends on the previous behavior.
12232
12233 2000-02-16 Gerd Moellmann <gerd@gnu.org>
12234
12235 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
12236
12237 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12238
12239 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
12240
12241 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
12242 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
12243 write(2).
12244
12245 2000-02-15 Richard M. Stallman <rms@gnu.org>
12246
12247 * data.c (set_internal): Don't make variable buffer-local
12248 if within a let-binding for the same buffer.
12249 (let_shadows_buffer_binding_p): New function.
12250
12251 * eval.c (specbind): For buffer-local value,
12252 record the current buffer also.
12253 (unbind_to): Cope with that change.
12254
12255 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12256
12257 * window.c (Fsave_window_excursion): Doc fix.
12258
12259 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
12260
12261 * syntax.c (back_comment): Make sure we only consider comment-starters
12262 of the relevant style and return -1 in case of a failure to find the
12263 beginning of the comment.
12264 (Fforward_comment): If back_comment fails, go back to the position just
12265 after the comment-end.
12266 (scan_lists): Add comment describing a very minor bug.
12267
12268 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12269
12270 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
12271 `completion-regexp-list' in the docstring.
12272
12273 2000-02-14 Dave Love <fx@gnu.org>
12274
12275 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
12276
12277 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12278
12279 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
12280 to Emacs' syntax. Also fix the comment about set/not-set meanings
12281 since Emacs syntax is not the value 0 any more.
12282 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
12283 since it's now part of RE_SYNTAX_EMACS.
12284
12285 2000-02-12 Dave Love <fx@gnu.org>
12286
12287 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
12288
12289 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12290
12291 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
12292
12293 2000-02-12 Dave Love <fx@gnu.org>
12294
12295 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
12296
12297 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
12298 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
12299 * s/hpux.h: Don't define HAVE_VFORK.
12300
12301 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
12302
12303 * s/nextstep.h: Don't define HAVE_ALLOCA.
12304
12305 * config.in: Add vfork bits.
12306
12307 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12308
12309 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
12310 unwind function to undo the effect of stopping atimers.
12311
12312 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
12313
12314 * atimer.c (stopped_atimers): New variable.
12315 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
12316 New functions.
12317
12318 * atimer.h (stop_other_atimers, run_all_atimers)
12319 (unwind_stop_other_atimers): Add function prototypes.
12320
12321 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
12322
12323 2000-02-11 Ken Raeburn <raeburn@gnu.org>
12324
12325 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
12326 library may depend on jpeg.
12327 (atimer.o): Depends on atimer.c.
12328
12329 2000-02-11 Kenichi Handa <handa@etl.go.jp>
12330
12331 * insdel.c (del_range_1): Call update_compositions.
12332 (del_range_both): Call update_compositions just once..
12333
12334 2000-02-10 Dave Love <fx@gnu.org>
12335
12336 * xfns.c (create_frame_xic): Fix initialization of automatic
12337 aggregates for pcc.
12338
12339 2000-02-09 Kenichi Handa <handa@etl.go.jp>
12340
12341 * ccl.c (CCL_MAKE_CHAR): New macro.
12342 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
12343 registers by CCL_MAKE_CHAR before calling translate_char.
12344 <CCL_TranslateCharacterConstTbl> Likewise.
12345
12346 2000-02-08 Dave Love <fx@gnu.org>
12347
12348 * lread.c (__EXTENSIONS__): Define.
12349
12350 2000-02-08 Gerd Moellmann <gerd@gnu.org>
12351
12352 * puresize.h (BASE_PURESIZE): Increase to 650000.
12353
12354 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12355
12356 * msdos.c (XMenuActivate): Turn off the cursor after displaying
12357 the help message.
12358
12359 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12360
12361 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
12362 md, mh, mb, mr, and me to the fake termcap entry.
12363
12364 2000-02-06 Ken Raeburn <raeburn@gnu.org>
12365
12366 * sound.c (sound_cleanup): Don't call device close routine if the
12367 function pointer is null.
12368
12369 2000-02-06 Andrew Innes <andrewi@gnu.org>
12370
12371 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
12372 around image definitions and prototypes.
12373 (gamma_correct) [WINDOWSNT]: New prototype.
12374
12375 * w32term.c (x_make_frame_visible): Replace call to
12376 input_poll_signal with poll_for_input.
12377
12378 * window.c [WINDOWSNT]: Include w32term.h.
12379
12380 * xdisp.c [WINDOWSNT]: Include w32term.h.
12381
12382 * makefile.nt: Add dependencies on w32gui.h.
12383 (OBJ1): Include atimer.obj.
12384 ($(BLD)\atimer.obj): New dependency rule.
12385
12386 * w32.c (sigmask): New function (does nothing).
12387 (sigunblock): Ditto.
12388
12389 * frame.c [WINDOWSNT]: Include w32term.h.
12390
12391 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
12392
12393 * lread.c (syms_of_lread): Fix literal newlines.
12394
12395 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
12396 the string constant limit (2048 bytes) in MSVC.
12397 (main): Ditto.
12398
12399 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
12400
12401 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
12402 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
12403 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
12404 dispatch the event.
12405
12406 2000-02-04 Dave Love <fx@gnu.org>
12407
12408 * fileio.c: Remove some unused vars.
12409 (_GNU_SOURCE): Define (for euidaccess).
12410
12411 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
12412
12413 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
12414 gcpro1, gcpro2.
12415 (read_minibuf): Deal with allow_props correctly.
12416
12417 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
12418
12419 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
12420
12421 2000-02-03 Ken Raeburn <raeburn@gnu.org>
12422
12423 * search.c (compile_pattern): If a cache entry has a nil regexp,
12424 fill in that entry instead of clobbering a previously cached
12425 string regexp.
12426
12427 2000-02-02 Ken Raeburn <raeburn@gnu.org>
12428
12429 * puresize.h (BASE_PURESIZE): Increase to 610000.
12430
12431 2000-02-02 Gerd Moellmann <gerd@gnu.org>
12432
12433 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
12434 can GC.
12435
12436 2000-02-02 Kenichi Handa <handa@etl.go.jp>
12437
12438 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
12439 instead of incrementing ic directly.
12440 <CCL_WriteExprConst> Likewise.
12441 <ccl_set_expr>: Set ic to jump_address.
12442
12443 * fileio.c (e_write): Fix the handling of
12444 CODING_FINISH_INSUFFICIENT_SRC.
12445
12446 2000-02-01 Dave Love <fx@gnu.org>
12447
12448 * editfns.c (Fpropertize): Doc fix.
12449
12450 * process.c (Fstart_process): Doc fix.
12451
12452 * eval.c: Fix various doc strings not to duplicate information
12453 from help-manyarg-func-alist.
12454
12455 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
12456
12457 * doc.c (Vhelp_manyarg_func_alist): New variable.
12458 (Fdocumentation): Use it.
12459 (syms_of_doc): Define it.
12460
12461 2000-01-31 Gerd Moellmann <gerd@gnu.org>
12462
12463 * xterm.c (xim_open_dpy): Remove unused local variable.
12464
12465 * emacs.c (USAGE): Use term `display options' instead of `X options'.
12466
12467 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
12468 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
12469
12470 * fns.c (sweep_weak_table): New function.
12471 (sweep_weak_hash_tables): Use it. Keep on marking until there
12472 is no more change.
12473
12474 2000-01-30 Gerd Moellmann <gerd@gnu.org>
12475
12476 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
12477 that XTread_socket does not crash by trying to call XNoOp on a
12478 closed display.
12479
12480 2000-01-30 Jason Rumney <jasonr@gnu.org>
12481
12482 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12483 Change selected_frame to SELECTED_FRAME ().
12484 (w32_console_mouse_position): Remove #ifndef MULE from around
12485 `insist' parameter.
12486
12487 * makefile.nt: Remove dosfns.obj.
12488
12489 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
12490
12491 * w32fns.c (w32_defined_color): Check for valid frame before
12492 applying gamma correction. Eliminate dependency on frame elsewhere.
12493 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
12494 (w32_to_x_font): Use resx and resy not height_in and width_in.
12495 (x_to_w32_font): Doc fix.
12496 (xlfd_strip_height): New function to strip and return font height.
12497 (w32_font_match): Compare height separately from rest of xlfd
12498 spec, using xlfd_strip_height.
12499
12500 * w32term.c (w32_term_init): Swap resx and height_in, resy and
12501 width_in. Use w32_defined_color in place of defined_color.
12502
12503 * w32faces.c: Merge more of DOS and X specifics in preparation for
12504 merge with xfaces.c.
12505 (defined_color): Remove FIXME comment.
12506 (tty_color_name): Provide w32-specific function.
12507 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
12508
12509 * w32console.c (turn_on_face, turn_off_face): Removed.
12510 (w32_face_attributes): New function.
12511 (Global_variables): Reduce scope where possible.
12512 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
12513 fill attribute.
12514 (hl_mode): Don't modify text attributes.
12515 (write_glyphs): Don't do anything if len <= 0. Use
12516 w32_face_attributes to get attributes for drawing. Write
12517 terminating codes using char_attr_normal.
12518 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
12519 (update_begin, update_end): Likewise.
12520 (vga_stdcolor_name): New function.
12521 (initialize_w32_display): Remove char_attr_reverse and char_attr.
12522 (Fset_screen_color): Remove char_attr_reverse.
12523
12524 2000-01-29 Gerd Moellmann <gerd@gnu.org>
12525
12526 * xfns.c (xic_set_preeditarea): Take window parameter and
12527 window-relative pixel-positions.
12528
12529 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
12530 is its frame's selected window.
12531 (xim_instantiate_callback): Likewise.
12532
12533 * xfns.c (x_create_im): Removed.
12534 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
12535 (supported_xim_styles): Renamed from supported_styles.
12536 (best_xim_style): Renamed from best_style.
12537 (create_frame_xic): Renamed from xic_create_frame.
12538 (free_frame_xic): Renamed from xic_destroy_frame.
12539
12540 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
12541
12542 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
12543 our frames, call XFilterEvent with 2nd parameter `None'.
12544 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
12545 returning XBufferOverflow.
12546 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
12547 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
12548 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
12549 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
12550 (xim_initialize, xim_close)
12551 [HAVE_X_I18N && HAVE_X11R6]: New functions.
12552 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
12553 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
12554 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
12555
12556 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
12557 and `xim_styles'.
12558 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
12559 `xic_style' and `xic_xfs'.
12560 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
12561 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
12562 (FRAME_XIM): Removed.
12563
12564 * xfns.c (supported_styles): New variable.
12565 (DEFAULT_STYLE, DEFAULT_FONT): New macros
12566 (xic_create_xfontset, best_style, xic_create_frame)
12567 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
12568 (xic_set_xfontset): New functions.
12569
12570 2000-01-28 Dave Love <fx@gnu.org>
12571
12572 * s/irix6-5.h: Revert last change after change to irix5-0.h.
12573
12574 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
12575
12576 2000-01-28 Gerd Moellmann <gerd@gnu.org>
12577
12578 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
12579 for *scratch* if it already existed.
12580
12581 * emacs.c (USAGE): New macro.
12582 (main): Use it to display usage information.
12583
12584 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12585
12586 Support for the menu-help feature:
12587
12588 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
12589
12590 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
12591 part of the line to the termscript file.
12592 (IT_clear_to_end): Clear the entire line, not just its beginning.
12593 (menu_help_message, prev_menu_help_message): New variables.
12594 (IT_menu_make_room): Make room for the help_text member.
12595 (IT_menu_display): New argument disp_help; all callers changed.
12596 If disp_help is non-zero, store the help text of the active menu
12597 item in menu_help_message.
12598 (XMenuAddPane): Initialize the help_text member to NULL.
12599 (XMenuAddSelection): New argument help_text. Store it in the
12600 XMenu structure.
12601 (XMenuActivate): New argument help_callback. If the value of
12602 menu_help_message has changed since the last time, display the
12603 menu help message text while waiting for the mouse to move. Clear
12604 the echo area before exiting.
12605 (XMenuDestroy): Free the help_text member.
12606
12607 2000-01-27 Gerd Moellmann <gerd@gnu.org>
12608
12609 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
12610 XMenuAddSelection. Pass help callback to XMenuActivate.
12611 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
12612
12613 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12614
12615 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
12616 and EMACS_SET_USECS.
12617
12618 2000-01-26 Dave Love <fx@gnu.org>
12619
12620 * editfns.c (Fchar_after, Fchar_before): Doc fix.
12621
12622 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
12623 an error may be signalled.
12624
12625 2000-01-26 Gerd Moellmann <gerd@gnu.org>
12626
12627 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
12628 LD_SWITCH_SYSTEM inherited from irix5-0.h.
12629
12630 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
12631
12632 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12633
12634 * charset.c (Fstring): If there is a multibyte char among
12635 the args, always return a multibyte string.
12636
12637 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12638
12639 * sysdep.c (sys_select): Turn atimers off and on instead of
12640 recording and restoring old alarm handler
12641
12642 * process.c (toplevel): Include atimer.h.
12643 (create_process_1): Rewritten.
12644 (create_process): Use atimers instead of alarm.
12645 (wait_reading_process_input) [hpux]: Turn atimers off instead
12646 of turning off SIGALRM.
12647 (wait_reading_process_input): Turn off atimers instead off
12648 calling stop_polling.
12649
12650 * emacs.c (main): Call init_atimer.
12651
12652 * keyboard.c (toplevel): Include systime.h and atimer.h.
12653 (polling_for_input): Removed because unused.
12654 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
12655 (poll_timer): New variable.
12656 (poll_for_input, poll_for_input_1): New functions.
12657 (start_polling, stop_polling): Rewritten.
12658
12659 * keyboard.h (polling_for_input): Removed.
12660
12661 * atimer.h, atimer.c: New files.
12662
12663 * Makefile.in (obj): Add atimer.o.
12664 (atimer.o): New target.
12665
12666 * blockinput.h (pending_atimers): Add extern declaration.
12667 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
12668
12669 * lisp.h (popup_activated_flag): Add extern declaration.
12670
12671 * xmenu.c (popup_activated_flag): Make externally visible.
12672 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
12673 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
12674
12675 * xterm.c (toplevel): Include atimer.h.
12676 (toolkit_scroll_bar_interaction): New variable.
12677 (Fxt_process_timeouts): Removed.
12678 (x_process_timeouts): New function.
12679 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
12680 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
12681 (x_make_frame_visible): Call poll_for_input_1 instead of
12682 input_poll_signal. Don't call alarm.
12683 (x_initialize): Install timer calling x_process_timeouts.
12684
12685 2000-01-24 Dave Love <fx@gnu.org>
12686
12687 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
12688 Don't use -cckr -- apparently not now necessary.
12689
12690 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
12691
12692 * msdos.c (IT_menu_display): Truncate long menu lines at the right
12693 screen boundary.
12694
12695 2000-01-23 Jason Rumney <jasonr@gnu.org>
12696
12697 * w32fns.c (w32_defined_color): Apply gamma correction before
12698 trying to map to the palette.
12699 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
12700 to w32_clear_rect.
12701
12702 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
12703 here. Callers changed to always pass real device context.
12704 (w32_draw_bitmap): Likewise.
12705 (w32_get_glyph_overhangs): Likewise.
12706 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
12707 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
12708 pfnSetScrollInfo and SetScrollRange.
12709 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
12710 back into MULE characters after decoding them.
12711 (x_get_glyph_face_and_encoding): Likewise.
12712 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
12713 GetCharABCWidthsW fails, since this is defined on Windows 9x.
12714 (x_produce_glyphs): Calculate per char metrics for a character
12715 that we know exists in default font when font_not_found_p is true.
12716
12717 2000-01-22 Jason Rumney <jasonr@gnu.org>
12718
12719 * makefile.nt (intervals.obj, composite.obj): New modules.
12720 (composite.h): Added as dependency where appropriate.
12721
12722 * w32gui.h (XGCValue): New struct for emulating X GCs.
12723
12724 * w32term.h (XCharStruct): New struct for emulating X.
12725
12726 * w32console.c (turn_on_face, turn_off_face): New functions.
12727 (change_line_highlight): New prototype for new redisplay.
12728 (write_glyphs): Support multibyte text. Support faces.
12729
12730 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
12731
12732 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
12733 throughout. struct frame * in place of FRAME_PTR.
12734 Skeleton support for images, toolbars, tooltips from xfns.c.
12735 (Fx_create_frame): Use system default for default scroll bar width.
12736 (w32_get_arg): Renamed from x_get_arg.
12737 (Fx_file_dialog): New function.
12738 (w32_list_fonts): Check cache before asking system.
12739 (Vw32_enable_synthesized_fonts): New variable.
12740 (Vw32_enable_italics): Obsolete, removed.
12741
12742 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12743 Use SELECTED_FRAME macro.
12744
12745 * w32menu.c: Add skeleton support for help strings on menus.
12746 (add_menu_item): Native checkbox and radio support added, but not
12747 yet enabled due to bugs.
12748 (push_menu_item): Add parameters type, selection and help.
12749 Callers updated.
12750 Formatting changes to reduce unnecessary diffs with xmenu.c.
12751
12752 * w32select.c (Fw32_set_clipboard_data): Update call to
12753 find_charset_in_str.
12754
12755 * w32term.c: Complete rewrite for new redisplay based on new
12756 xterm.c with necessary sections merged back in from old w32term.c.
12757
12758 2000-01-21 Richard M. Stallman <rms@gnu.org>
12759
12760 * data.c (set_internal): Further fix in same criterion.
12761
12762 2000-01-20 Richard M. Stallman <rms@gnu.org>
12763
12764 * data.c (set_internal): Fix the criteria for whether
12765 to swap out the old cached binding.
12766
12767 2000-01-19 Dave Love <fx@gnu.org>
12768
12769 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
12770
12771 2000-01-18 Kenichi Handa <handa@etl.go.jp>
12772
12773 * regex.c (re_compile_fastmap): While checking a range table for
12774 `charset', skip flag bits for a character class correctly.
12775
12776 2000-01-17 Gerd Moellmann <gerd@gnu.org>
12777
12778 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
12779
12780 * xfns.c (x_window): Call lw_create_widget with new parameter list.
12781
12782 * widget.c (EmacsFrameSetCharSize): Change size of children first
12783 because of problems with main window geometry management under Lesstif.
12784
12785 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
12786 MENU_ITEMS_ITEM_.*.
12787 (MENU_ITEMS_ITEM_HELP): New enumerator.
12788 (push_menu_item): Add parameter HELP. Record help in menu_items.
12789 (single_menu_item, single_submenu, list_of_items): Call
12790 push_menu_item with new parameter.
12791 (single_submenu): Set help string in widget value.
12792 (menu_highlight_callback): New function.
12793 (set_frame_menubar): Call lw_create_widget with new
12794 parameter list.
12795 (xmenu_show, xdialog_show): Ditto.
12796
12797 2000-01-13 Gerd Moellmann <gerd@gnu.org>
12798
12799 * sound.c (Fplay_sound): Improve doc string.
12800
12801 2000-01-11 Richard M. Stallman <rms@gnu.org>
12802
12803 * lisp.h (set_internal): Enter the new arg.
12804
12805 * eval.c (specbind): Record buffer-local variables specially,
12806 indicating which buffer's binding was saved.
12807 (unbind_to): Restore buffer-local variables specially
12808 in the proper buffer.
12809
12810 * data.c (set_internal): New arg BUF.
12811
12812 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
12813 * data.c (Fset): Pass new arg to set_internal.
12814 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
12815
12816 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12817
12818 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
12819
12820 2000-01-11 Richard M. Stallman <rms@gnu.org>
12821
12822 * minibuf.c (Ftry_completion): Doc fix.
12823
12824 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12825
12826 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
12827 vector, too.
12828
12829 2000-01-11 Andreas Schwab <schwab@suse.de>
12830
12831 * coding.c (code_convert_region): Initialize total_skip.
12832
12833 2000-01-08 Dave Love <fx@gnu.org>
12834
12835 * eval.c (Fuser_variable_p): Check customizability too.
12836
12837 2000-01-07 Gerd Moellmann <gerd@gnu.org>
12838
12839 * minibuf.c (Fcompleting_read): Doc fix.
12840
12841 2000-01-05 Gerd Moellmann <gerd@gnu.org>
12842
12843 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
12844 -L /usr/local/lib.
12845
12846 * xfns.c (x_create_im): New function to set IM and IC of a frame.
12847 Check that input style is supported before trying to create an
12848 IC for it.
12849 (x_window): Call x_create_im.
12850
12851 2000-01-04 Gerd Moellmann <gerd@gnu.org>
12852
12853 * xfns.c (current_gif_memory_src): New variable.
12854 (gif_load): Record the address of the current memory source
12855 in current_gif_memory_src.
12856 (gif_read_from_memory): Use current_gif_memory_src.
12857
12858 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
12859 macros statement form.
12860
12861 * sound.c (struct sound): Renamed from struct sound_file.
12862 (struct sound): Add members `data' and `header_size'.
12863 (enum sound_attr): Add SOUND_DATA.
12864 (current_sound, current_sound_device): Variables renamed from
12865 sound_file and sound_device.
12866 (parse_sound): Parse :data.
12867 (parse_sound): Handle sound data in strings.
12868 (find_sound_type): Function renamed from find_sound_file_type.
12869 (wav_init, au_init): Fail if sound's header_size is smaller than
12870 needed header size.
12871 (wav_play, au_play): Play sounds from string data.
12872
12873 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
12874
12875 * lisp.h: Add prototype for allocate_string_data.
12876
12877 * alloc.c (Fgarbage_collect): Return number of live and free strings.
12878
12879 * alloc.c (mark_buffer): Remove code in #if 0.
12880 (gc_sweep): Ditto.
12881 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
12882 (strings_consed): New variable.
12883 (allocate_string): Set it.
12884 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
12885 (Fmemory_use_counts): Return strings_consed. Use Flist.
12886
12887 * alloc.c: General cleanup in comments etc. Remove conditional
12888 compilation for `standalone'.
12889
12890 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
12891
12892 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
12893 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
12894 (DONT_COPY_FLAG): Removed.
12895 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
12896 (struct sdata, struct sblock): New
12897 (struct string_block): Rewritten.
12898 (STRINGS_IN_STRING_BLOCK): New macro.
12899 (oldest_sblock, current_sblock, total_strings, total_free_strings)
12900 (large_sblocks, string_blocks, string_free_list): New variables.
12901 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
12902 (init_strings): Rewritten.
12903 (allocate_string, allocate_string_data, compact_small_strings)
12904 (free_large_strings, sweep_strings): New functions.
12905 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
12906 (struct string_block_head, current_string_block)
12907 (first_string_block, large_string_blocks, STRING_FULLSIZE)
12908 (STRING_PAD): Removed.
12909 (make_uninit_multibyte_string, make_pure_string): Rewritten.
12910 (Fgarbage_collect): Don't set mark bit in large strings.
12911 (mark_object): Mark strings differently. Mark symbol names
12912 differently.
12913 (survives_gc_p): Test marked strings differently.
12914 (gc_sweep): Sweep strings differently, unmark strings in
12915 symbol names.
12916 (compact_strings): Removed.
12917
12918 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
12919
12920 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
12921 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
12922
12923 2000-01-04 Kenichi Handa <handa@etl.go.jp>
12924
12925 * fileio.c (Finsert_file_contents): Signal error if visiting file
12926 in a non-empty buffer.
12927
12928 * term.c (encode_terminal_code): Fix the previous change.
12929
12930 2000-01-03 Gerd Moellmann <gerd@gnu.org>
12931
12932 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
12933 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
12934
12935 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
12936
12937 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12938
12939 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
12940 need to test for MSDOS frames.
12941
12942 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12943
12944 * dosfns.c (unspecified_colors): Remove.
12945 (msdos_stdcolor_idx): Use global variables unspecified_fg and
12946 unspecified_bg.
12947 (msdos_stdcolor_name): Return strings for unspecified fore- and
12948 back-ground colors.
12949
12950 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
12951 (syms_of_xfaces): Remove their staticpro's.
12952 (tty_color_name): Return Lisp strings for unspecified fore- and
12953 back-ground colors.
12954 (Finternal_set_lisp_face_attribute): Remove the special treatment
12955 for Qunspecified_{f,b}g.
12956 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
12957
12958 2000-01-03 Gerd Moellmann <gerd@gnu.org>
12959
12960 * xdisp.c (reseat_at_next_visible_line_start): Position before
12961 newline only if ending up on a newline.
12962 (next_element_from_ellipsis): Return success. Handle case of
12963 displaying no ellipsis. Fix case of ellipsis defined in display table.
12964 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
12965 returns 0.
12966
12967 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12968
12969 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
12970 (Fcolor_supported_p): Renamed from face-color-supported-p.
12971
12972 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12973
12974 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
12975 list of colors renamed to tty-defined-color-alist.
12976 (tty_color_name): Pass the frame to tty-color-by-index.
12977 (realize_tty_face): tty-color-alist is now a function which
12978 accepts the frame as argument.
12979
12980 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
12981
12982 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12983
12984 * term.c (insert_glyphs): Pass glyph, not &glyph, to
12985 encode_terminal_code.
12986
12987 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12988
12989 * dispnew.c (mode_line_string): Support termcap frames as well.
12990
12991 2000-01-01 Gerd Moellmann <gerd@gnu.org>
12992
12993 * syntax.c (Fforward_word): Undo previous change.
12994
12995 * editfns.c (Fconstrain_to_field): Don't constrain if
12996 inhibit-field-text-motion is non-nil.
12997 (Fline_beginning_position): Undo previous change.
12998 (Fline_end_position): Ditto.
12999
13000 * syntax.c (Fforward_word): Notice field boundaries only if
13001 inhibit-field-text-motion is nil.
13002
13003 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
13004
13005 * editfns.c (Vinhibit_field_text_motion): New variable.
13006 (inhibit-field-text-motion): New DEFVAR_LISP.
13007 (Fline_beginning_position, Fline_end_position): Notice field
13008 boundaries only if inhibit-field-text-motion is nil.
13009
13010 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
13011 All calls adjusted.
13012 (x_build_heuristic_mask): Likewise.
13013 (xbm_load_image_from_file): Change error output.
13014 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
13015 (gif_load, gs_load, x_kill_gs_process): Ditto.
13016
13017 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
13018 color indices when accessing raster pixels.
13019 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
13020 one of :file or :data.
13021 (enum pbm_keyword_index): Add PBM_DATA.
13022 (pbm_format): Add :data.
13023 (pbm_image_p): Allow either :file or :data.
13024 (pbm_read_file): New function.
13025 (pbm_scan_number): Rewritten to read from string.
13026 (pbm_load): Support :data.
13027
13028 See ChangeLog.8 for earlier changes.
13029
13030 ;; Local Variables:
13031 ;; coding: iso-2022-7bit
13032 ;; End:
13033
13034 Copyright (C) 2001 Free Software Foundation, Inc.
13035 Copying and distribution of this file, with or without modification,
13036 are permitted provided the copyright notice and this notice are preserved.