*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
1 2001-10-16 Miles Bader <miles@gnu.org>
2
3 * fns.c: Change doc-string comments to `new style' [w/`doc:' keyword].
4
5 2001-10-16 Gerd Moellmann <gerd@gnu.org>
6
7 * buffer.c (Fset_buffer_major_mode): Use initial-major-mode for
8 *scratch*.
9
10 2001-10-16 Ken Raeburn <raeburn@gnu.org>
11
12 Avoid the assumption that car and cdr slots of cons cells are
13 addressable lvalues; this allows for easier experimentation with
14 other lisp implementations that may not permit such accesses for
15 various reasons. Not quite complete -- buffer.c still needs some
16 work, and w32/mac files need rechecking -- so compile-time
17 enforcement is left disabled for now.
18
19 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
20 gcc with a union-based Lisp object rep. Redefine as no-op for
21 now.
22 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
23 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
24 (XSETCAR, XSETCDR): New macros.
25 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
26 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
27 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
28 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
29 XSETCDR.
30 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
31 * buffer.c (record_buffer, Fbury_buffer,
32 swap_out_buffer_local_variables, recenter_overlay_lists,
33 Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
34 fields of a cons cell respectively.
35 * callint.c (quotify_args, Fcall_interactively): Likewise.
36 * ccl.c (Fregister_code_conversion_map): Likewise.
37 * coding.c (detect_coding_system): Likewise.
38 * composite.c (get_composition_id, make_composition_value_copy):
39 Likewise.
40 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding,
41 swap_in_symval_forwarding, set_internal, Fset_default,
42 Fmake_variable_buffer_local, Fmake_local_variable,
43 Fmake_variable_frame_local): Likewise.
44 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
45 * keymap.c (Fset_keymap_parent, store_in_keymap,
46 accessible_keymaps_1, where_is_internal_2, Fcopy_keymap):
47 Likewise.
48 * minibuf.c (get_minibuffer): Likewise.
49 * search.c (Fmatch_data): Likewise.
50 * textprop.c (extend_property_ranges): Likewise.
51 * undo.c (record_insert, Fundo_boundary, truncate_undo_list):
52 Likewise.
53 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
54 Likewise.
55 * w32term.c (x_delete_display): Likewise.
56 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
57 Likewise.
58 * xterm.c (x_list_fonts, x_load_font, x_delete_display):
59 Likewise.
60 * doc.c (store_function_docstring): Use XSETCARFASTINT.
61 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and
62 XSETCDRFASTINT.
63 (Fread_file_name): Use XSETCAR.
64 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
65 CHECK_NUMBER_CDR.
66 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
67 * frame.c (Fmake_terminal_frame): Use XSETCDR.
68 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
69 CHECK_NUMBER_CDR.
70 * keyboard.c (read_char): Alter list traversal to avoid taking the
71 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
72 (parse_menu_item): Use XSETCAR and XSETCDR.
73 (reach_char_x_menu_prompt): Use XSETCAR.
74 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
75 (Fcommand_execute): Use XSETCDR.
76 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
77 (openp): Change list traversal to avoid using XCAR as lvalue.
78 (read_list): Use XSETCDR.
79 * process.c (wait_reading_process_input): Change wait_for_cell
80 handling to avoid taking addresses of cons cell slots.
81 * xselect.c (x_own_selection, x_handle_selection_clear,
82 x_clear_frame_selections): Use XSETCDR.
83 (wait_for_property_change): Use XSETCARFASTINT and
84 XSETCDRFASTINT.
85 (x_handle_property_notify, x_get_foreign_selection,
86 x_handle_selection_notify): Use XSETCAR.
87
88 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
89
90 * buffer.c: Put doc strings in comments.
91
92 * sound.c: Include <sys/ioctl.h> also on systems without
93 <soundcard.h>.
94
95 2001-10-15 Sam Steingold <sds@gnu.org>
96
97 * fns.c (Vafter_load_alist): Declare extern (w32 build problem).
98
99 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
100
101 * process.c (process-inherit-coding-system-flag,
102 get-buffer-process): Do not confuse make-docfile with doc strings
103 in comment.
104
105 * editfns.c (Fchar_to_string): Make doc string consistent with
106 arguments.
107 Put doc strings in comments.
108
109 * abbrev.c, minibuf.c: Put doc strings in comments.
110
111 2001-10-15 Gerd Moellmann <gerd@gnu.org>
112
113 * window.c (window_loop): Don't check for Fother_buffer returning
114 nil.
115
116 * window.c (select_window_1): Unfreeze window start. Remove a
117 doubled test for WINDOW being live.
118
119 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
120
121 * fns.c (Fmapconcat): Fix typo in a doc string.
122
123 * dispnew.c (Fsleep_for): Fix typo in a doc string.
124
125 2001-10-15 Gerd Moellmann <gerd@gnu.org>
126
127 * xterm.c (x_draw_glyph_string): Restore clipping after
128 drawing box.
129
130 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
131
132 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc
133 string.
134
135 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
136
137 * indent.c (skip_invisible): Use new retval of
138 TEXT_PROP_MEANS_INVISIBLE.
139
140 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
141 If a parent is reached and noinherit is set, exit immediately.
142 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
143
144 * s/ms-w32.h (EXEC_SUFFIXES):
145 * s/msdos.h (EXEC_SUFFIXES):
146 * process.h (EXEC_SUFFIXES): Remove.
147
148 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
149 (decode_suffixes): Remove.
150
151 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
152 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
153 (invisible_ellipsis_p): Remove.
154
155 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
156 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
157 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
158 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
159 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
160
161 2001-10-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
162
163 * lisp.h (Ftop_level): Add prototype.
164
165 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
166 (XTread_socket): Improve style of comments to follow other
167 comments.
168
169 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
170 is already prototyped in included lisp.h).
171
172 * frame.c (Fset_mouse_position): Improve style of comment to
173 follow other comments.
174 (Fset_mouse_pixel_position): Improve style of comment to follow
175 other comments.
176 (Fmake_frame_visible): Doc fix and typo in comment.
177 (Fmake_frame_invisible): Doc fix and typo in comment.
178 (Ficonify_frame): Fix typo in comment.
179
180 2001-10-14 Gerd Moellmann <gerd@gnu.org>
181
182 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
183 * term.c, alloc.c: Put doc strings in comments.
184
185 2001-10-13 Gerd Moellmann <gerd@gnu.org>
186
187 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
188 Provide definitions for doc strings in comments.
189
190 * fns.c: Put doc strings in comments.
191
192 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
193
194 * dired.c (file_name_completion): Ignore a candidate directory if
195 it matches an element in completion-ignored-extensions that ends
196 in a slash.
197 (syms_of_dired) <completion-ignored-extensions>: Mention the above
198 feature in the doc string.
199 (Ffile_name_completion): Ditto.
200
201 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
202
203 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
204
205 * xfns.c (syms_of_xfns): Update calls to Fprovide.
206
207 * lisp.h (Fprovide): Update prototype.
208 (Ffeaturep, invisible_p): Remove.
209
210 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
211 (DOLIST, LOOP_PROPVAL): New macros.
212 (invisible_p, invisible_ellipsis_p): Use them.
213 (invisible_noellipsis_p): New function.
214 (syms_of_xdisp): Use empty_string.
215
216 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
217
218 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
219 (syms_of_lread) <Vafter_load_alist>: Update docstring.
220
221 * print.c (Fwith_output_to_temp_buffer): Align with
222 internal_with_output_to_temp_buffer.
223 (print_preprocess): Use traverse_intervals_noorder.
224 (print_object): Update call to traverse_intervals.
225
226 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
227 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
228
229 * intervals.c (traverse_intervals_noorder): New function.
230 (search_for_interval, count_intervals): Use it.
231 (traverse_intervals): Use less stack space and drop `depth' arg.
232
233 * fns.c (Ffeaturep): Add new `subfeature' arg.
234 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
235 (Qsubfeatures): New var.
236 (syms_of_fns): Initialize it.
237
238 * keymap.c (Fkey_description): Use empty_string.
239 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
240 (syms_of_keymap): Setup inheritance between maps.
241 Don't export Sdescribe_bindings_internal any more.
242
243 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
244
245 2001-10-12 Gerd Moellmann <gerd@gnu.org>
246
247 * xterm.c (notice_overwritten_cursor): Renamed from
248 note_overwritten_text_cursor. Rewritten to take glyph widths into
249 account.
250
251 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
252
253 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
254 multi-line strings without a trailing "\n\".
255
256 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
257
258 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
259 defined.
260
261 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
262
263 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
264
265 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
266 * w32proc.c (sys_spawnve):
267 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
268 * w32.c (check_windows_init_file):
269 * sound.c (Fplay_sound):
270 * emacs.c (init_cmdargs):
271 * process.c (Fstart_process): Update calls to openp.
272
273 * callproc.c (Vexec_suffixes): New var.
274 (Fcall_process): Update call to openp.
275 (decode_suffixes): New function.
276 (syms_of_callproc): Init exec-suffixes.
277
278 * lread.c (Vload_suffixes, default_suffixes): New vars.
279 (openp): Take a lisp list of suffixes.
280 Check for file-name-handlers even if the file was absolute already.
281 (syms_of_lread): Declare load-suffixes.
282 (Fload): Fix up call to openp.
283 Don't bother checking for file-name-handler at the very beginning.
284
285 * keymap.h (Fcopy_keymap): Don't export.
286
287 * lisp.h (empty_string): Declare.
288 (Vload_suffixes, Vexec_suffixes): Declare.
289 (openp): Update prototype.
290
291 * emacs.c (empty_string): New var.
292 (syms_of_emacs): Initialize it.
293
294 * search.c (wordify): Use it.
295
296 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
297 selected window if it's not displayed there. Handle the case
298 when the window is dedicated.
299 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
300
301 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
302
303 * syntax.h (struct gl_state_s): Change the meaning of b_property.
304 Remove left_ok and right_ok.
305 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
306 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
307 new meaning of b_property.
308
309 * syntax.c (update_syntax_table): Simplify.
310 (Fforward_comment): Don't skip quoted chars when going backward.
311
312 2001-10-11 Gerd Moellmann <gerd@gnu.org>
313
314 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
315 in case I is of some unsigned type, in which case
316 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
317 comparison becomes bogus.
318
319 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
320 (Fuser_full_name): Fix bug treating a float as a fixnum.
321
322 * data.c (Fstring_to_number): Use make_fixnum_or_float.
323
324 * lisp.h (make_fixnum_or_float): New macro.
325
326 * lisp.h (circular_list_error): Add prototype.
327
328 * data.c (Qcircular_list): New variable.
329 (circular_list_error): New function.
330 (syms_of_data): Initialize it Qcircular_list.
331
332 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
333
334 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
335 casefiddle.c, buffer.c: Include keymap.h.
336
337 2001-10-10 Gerd Moellmann <gerd@gnu.org>
338
339 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
340 options. From Dave Love <d.love@dl.ac.uk>.
341
342 2001-10-09 Gerd Moellmann <gerd@gnu.org>
343
344 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
345 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
346
347 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
348 unsigned char.
349 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
350
351 2001-10-08 Andrew Innes <andrewi@gnu.org>
352
353 * lisp.h [max]: Undef min and max before redefining them.
354
355 * w32gui.h: Do not undef min and max.
356
357 * w32heap.h: Do not undef min and max.
358
359 * s/ms-w32.h: Do not undef min and max.
360
361 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
362
363 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
364
365 2001-10-08 Sam Steingold <sds@gnu.org>
366
367 * keymap.c (current-active-maps): Quote newlines (compilation error).
368
369 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
370
371 * Makefile.in (lisp, shortlisp): Replace bindings.el with
372 bindings.elc, since otherwise doc strings in bindings.el get wrong
373 offsets in etc/DOC.
374
375 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
376
377 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
378
379 * keyboard.h (map_prompt): Remove.
380
381 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
382 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
383
384 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
385
386 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
387
388 * keyboard.c (map_prompt): Remove.
389 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
390 Use Fkeymap_prompt.
391
392 * keymap.h: New file. Extracted from lisp.h.
393
394 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
395 (accessible_keymaps_1): New function.
396 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
397 (Fwhere_is_internal): Use Fcurrent_active_maps.
398 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
399 Insert in current buffer rather than standard-output.
400 Don't call `help-mode'. Export to elisp.
401 (describe_buffer_bindings): New wrapper.
402 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
403 and Sdescribe_buffer_bindings.
404
405 2001-10-08 Gerd Moellmann <gerd@gnu.org>
406
407 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
408 Remove code setting signal handler.
409
410 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
411 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
412
413 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
414
415 * keyboard.c: Don't define min/max.
416
417 2001-10-08 Gerd Moellmann <gerd@gnu.org>
418
419 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
420 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
421 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
422 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
423 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
424 Don't define min/max.
425
426 * lisp.h (min, max): New macros.
427
428 * puresize.h (BASE_PURESIZE): Increase to 725000.
429
430 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
431
432 * xfaces.c (free_frame_menubar): Add prototype.
433
434 * lisp.h (init_window): Add prototype.
435
436 * editfns.c: Include ctype.h.
437
438 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
439 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
440 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
441 variable `sb'.
442
443 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
444 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
445 `popup_activated_flag' and `title'.
446
447 * doc.c (Fdocumentation_property): Fix typo in a doc string.
448
449 * emacs.c (main): Remove extra `;'.
450
451 * atimer.h (struct atimer): Fix typos in a comment.
452
453 * atimer.c: Fix typo.
454
455 * Makefile.in: Fix typo.
456
457 * README: Remove obsolete part mentioning removed VMS file.
458
459 2001-10-07 Miles Bader <miles@gnu.org>
460
461 * Makefile.in (lisp, shortlisp): Add `button.elc'.
462
463 2001-10-07 Ken Raeburn <raeburn@gnu.org>
464
465 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
466 Lisp_Object.
467
468 * lisp.h (Ffield_end): Declare.
469
470 2001-10-07 Gerd Moellmann <gerd@gnu.org>
471
472 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
473
474 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
475
476 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
477
478 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
479
480 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
481 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
482
483 * alloc.c (inhibit_garbage_collection): Simplify.
484 (Fmemory_use_counts): Ditto.
485
486 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
487 (syms_of_data): DEFVAR_INT most-positive-fixnum and
488 most-negative-fixnum.
489
490 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
491 (FIXNUM_OVERFLOW_P): New macros.
492
493 2001-10-06 Miles Bader <miles@gnu.org>
494
495 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
496 scroll_bar_bottom_shadow_pixel fields.
497 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
498 for the shadows, and tell the toolkit about them if we succeed.
499 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
500 Free scroll-bar shadow colors.
501 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
502 Free scroll-bar shadow colors when the background color changes.
503 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
504 Initialize scroll-bar shadow-color fields.
505
506 2001-10-05 Gerd Moellmann <gerd@gnu.org>
507
508 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
509
510 2001-10-05 Miles Bader <miles@gnu.org>
511
512 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
513 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
514 New functions (were in simple.el).
515 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
516 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
517 (syms_of_minibuf): Initialize them.
518
519 2001-10-05 Gerd Moellmann <gerd@gnu.org>
520
521 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
522 (tiff_load): Install them as error and warning handler.
523
524 2001-10-04 Andrew Innes <andrewi@gnu.org>
525
526 * w32fns.c (x_to_w32_color): Fix argument to alloca.
527 (w32_load_system_font): Don't believe what GetLanguageFontInfo
528 says; query codepage info directly to determine if font is double byte.
529 (x_to_w32_charset): Handle private format for unknown charsets.
530 Handle wildcards in charset spec, by ignoring them.
531 (w32_codepage_for_font): Fix argument to alloca. Don't remove
532 "*-" prefix from charset.
533 (x_to_w32_font): Enlarge remainder array for safety. Specifically
534 handle the truncated font spec form constructed by font_list_1, so
535 that we correctly identify the charset fields. Don't remove "*-"
536 prefix from charset.
537 (w32_list_synthesized_fonts): Fix argument to alloca.
538
539 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
540
541 * window.h (MINI_WINDOW_P): Use NILP.
542
543 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
544
545 * termhooks.h (struct input_event): Use proper type for `kind'.
546
547 2001-10-04 Gerd Moellmann <gerd@gnu.org>
548
549 This handles unknown keysyms better than before. For example,
550 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
551 Emacs formerly completely ignored F5. With the change, it derives
552 a key symbol from the name of the X keysym, `ccaron' in this case.
553 Reported by Martin Buchholz.
554
555 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
556 unknown keysyms.
557
558 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
559 that EVENT->code isn't a function key, use the keysym's name.
560
561 2001-10-04 Gerd Moellmann <gerd@gnu.org>
562
563 FOREACH is a macro that should make it easier to loop over Lisp
564 lists with checks for cycles and proper lists.
565
566 * lisp.h (LIST_END_P, FOREACH): New macros.
567
568 2001-10-04 Gerd Moellmann <gerd@gnu.org>
569
570 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
571 called for a lost connection. Prevent dumping core in this case.
572 Instead print the X error, and exit. On user request.
573
574 * xterm.c (error_msg): New variable.
575 (x_fatal_error_signal): New function.
576 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
577 as fatal_error_signal_hook around the call to XtCloseDisplay.
578
579 * emacs.c (fatal_error_signal_hook): New variable.
580 (fatal_error_signal): Call that function.
581
582 2001-10-04 Gerd Moellmann <gerd@gnu.org>
583
584 With this, Emacs prints how much pure storage it will
585 approximately need in case pure storage overflows while dumping.
586
587 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
588 New variables.
589 (init_alloc_once): Initialize new variables.
590 (PURE_POINTER_P): Use new variables.
591 (pure_alloc): If pure storage overflows, allocate from the heap.
592 (check_pure_size): New function.
593 (Fgarbage_collect): Don't GC if pure storage has overflowed.
594
595 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
596 (check_pure_size): Add prototype.
597
598 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
599
600 2001-10-04 Gerd Moellmann <gerd@gnu.org>
601
602 This adds a post-gc-hook that's run with GC inhibited.
603 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
604
605 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
606 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
607 (Fgarbage_collect): Run post-gc-hook.
608
609 2001-10-04 Gerd Moellmann <gerd@gnu.org>
610
611 This adds `defvaralias' and `indirect-variable'. Changes not
612 directly related to this feature are there to gain the same
613 performance again as before variable aliases.
614
615 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
616 code to get and set symbol values, to take defvaralias into account.
617
618 (Note: the new `constant' bit-flag in symbols would make it
619 possible to define arbitrary read-only variables, e.g. with
620 `defconst'.)
621
622 Documentation is in lispref/variables.texi. Added to NEWS.
623
624 * lisp.h (enum symbol_interned): New enumeration.
625 (struct Lisp_Symbol): Remove member `obarray', add
626 `indirect_variable', `constant', and `interned'.
627 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
628 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
629 (indirect_variable): Add prototype.
630
631 * print.c (print_preprocess, print_object): Test internedness of
632 symbols differently.
633
634 * lread.c (Fintern, Funintern): Set symbol's interned and constant
635 bit-fields.
636 (init_obarray): Likewise for t and nil.
637
638 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
639 (Fdefvaralias): New function.
640 (specbind): Simplify the test if symbol is a constant.
641 (syms_of_eval): Defsubr Fdefvaralias.
642
643 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
644 (Qcyclic_variable_indirection): New variable.
645 (Fkeywordp): Check for internedness differently.
646 (Fmakunbound): Simplify the test if symbol is a constant.
647 (indirect_variable, Findirect_variable): New functions.
648 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
649 aliased symbol.
650 (let_shadows_buffer_binding_p): Check for variable aliases.
651 (set_internal): Simplify the test if SYMBOL is a constant.
652 If SYMBOL has a buffer-local value and is an alias, use the aliased
653 symbol instead.
654 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
655 Sindirect_variable.
656
657 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
658 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
659 set directly.
660
661 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
662
663 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
664 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
665 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
666
667 2001-10-04 Gerd Moellmann <gerd@gnu.org>
668
669 * Branch for 21.1.
670
671 2001-10-03 Miles Bader <miles@gnu.org>
672
673 * callproc.c (syms_of_callproc): Explicitly state in the
674 documentation for `process-environment' that earlier entries take
675 precedence over later ones.
676
677 2001-10-02 Miles Bader <miles@gnu.org>
678
679 * textprop.c (Fnext_char_property_change)
680 (Fprevious_char_property_change): Remove reference to non-existant
681 argument OBJECT from doc-string.
682
683 2001-10-01 Gerd Moellmann <gerd@gnu.org>
684
685 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
686 (try_window_id): Skip back over lines ending in a newline from a
687 string.
688
689 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
690 New bit flag
691
692 2001-10-01 Richard M. Stallman <rms@gnu.org>
693
694 * search.c (Freplace_match): Doc fix.
695
696 2001-09-28 Andrew Innes <andrewi@gnu.org>
697
698 * w32menu.c (set_frame_menubar): Take into account that
699 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
700 <raeburn@gnu.org>.
701
702 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
703
704 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
705
706 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
707
708 * s/gnu-linux.h: Fix a typo in comment.
709
710 2001-09-28 Andreas Schwab <schwab@suse.de>
711
712 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
713 nocombreloc, in case -z combreloc is the default.
714
715 2001-09-28 Gerd Moellmann <gerd@gnu.org>
716
717 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
718 really going on here.
719
720 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
721
722 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
723
724 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
725
726 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
727 utf-8, menu-bar, and latin-N.
728 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
729 unconditionally now.
730 (lisp): Add latin-N, since they are preloaded.
731
732 2001-09-27 Gerd Moellmann <gerd@gnu.org>
733
734 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
735 to the left. Some cleanup.
736
737 * xdisp.c (display_mode_element): One more case where a string's
738 multibyteness should be used for display.
739
740 2001-09-26 Gerd Moellmann <gerd@gnu.org>
741
742 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
743 reading at EOF.
744
745 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
746 of the only temporarily set echoing flag for deciding when
747 the cancel echoing.
748
749 * keyboard.c (echo_kboard): Make externally visible.
750
751 * lisp.h (echo_kboard): Declare extern.
752
753 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
754 fonts_changed_p if we need larger matrices due to vscrolling.
755 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
756 this round of redisplay if make_cursor_line_fully_visible fails.
757 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
758 (try_cursor_movement, try_scrolling): Use them instead of integers.
759
760 * dispextern.h (required_matrix_width, required_matrix_height):
761 Add prototypes.
762
763 * dispnew.c (required_matrix_width, required_matrix_height):
764 New functions.
765 (allocate_matrices_for_window_redisplay)
766 (allocate_matrices_for_frame_redisplay: Use them.
767 Remove parameters CH_DIM.
768
769 * xdisp.c (display_mode_lines): Temporarily set selected_frame
770 and selected_window to the frame of the window whose mode-lines
771 are displayed, and to the window itself.
772 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
773 here.
774
775 2001-09-25 Gerd Moellmann <gerd@gnu.org>
776
777 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
778 the image cache under us.
779
780 * xdisp.c (display_mode_element): If the mode element is a symbol
781 with a string value, use that string's multibyteness for displaying.
782
783 * keyboard.c (read_char): Don't clear a message for a switch-frame
784 event. From Stefan Monnier <monnier@cs.yale.edu>.
785
786 * xterm.c (fast_find_position) [0]: Add a presumably more correct
787 version for after 21.1.
788
789 * xdisp.c (row_containing_pos): Make externally visible.
790
791 * dispextern.h (row_containing_pos): Add prototype.
792
793 * process.c (send_process): Disable composition if from_byte < 0.
794 From Kenichi Handa <handa@etl.go.jp>.
795
796 2001-09-24 Gerd Moellmann <gerd@gnu.org>
797
798 * xterm.c (refreshicon): Function removed.
799
800 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
801
802 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
803
804 * xterm.c (toplevel): Remove includes in #if 0.
805
806 * process.c (sigchld_handler) [LINUX]: Don't return from
807 the signal handler at the end of the loop.
808
809 2001-09-21 Gerd Moellmann <gerd@gnu.org>
810
811 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
812 Terminate only if kill returns -1, and errno is ESRCH.
813
814 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
815
816 * Makefile.in (shortlisp): Add ../lisp/env.elc.
817
818 2001-09-20 Gerd Moellmann <gerd@gnu.org>
819
820 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
821 since this function can be called during GC.
822
823 * callproc.c (Fcall_process): Handle errors from pipe(2).
824 (child_setup): Delete code in #ifdef vipc.
825
826 2001-09-19 Gerd Moellmann <gerd@gnu.org>
827
828 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
829 (display_mode_element): Display the string from decode_mode_spec
830 depending on its multibyteness.
831
832 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
833
834 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
835
836 2001-09-18 Gerd Moellmann <gerd@gnu.org>
837
838 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
839 recursive_edit_unwind.
840 (recursive_edit_unwind): Set kboard state according to
841 SINGLE-KBOARD.
842
843 * buffer.c (modify_overlay): Don't do nothing if START == END;
844 This can still be a modification, for example when an overlay has
845 a before-string or after-string.
846 (Fdelete_overlay): Prevent redisplay optimizations when deleting
847 an overlay with before-string or after-string.
848
849 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
850 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
851
852 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
853 first_unchanged_at_end_row is in front of
854 last_unchanged_at_beg_row. This code should be removed after the
855 release of 21.1.
856
857 2001-09-17 Gerd Moellmann <gerd@gnu.org>
858
859 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
860 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
861
862 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
863 versions >= 2.95.
864
865 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
866
867 * dired.c (Ffile_attributes): Doc fix.
868
869 2001-09-14 Gerd Moellmann <gerd@gnu.org>
870
871 * fileio.c (Ffile_symlink_p): Fix last change.
872
873 * filelock.c (current_lock_owner): Fix last change.
874
875 2001-09-13 Gerd Moellmann <gerd@gnu.org>
876
877 * filelock.c (current_lock_owner): If readlink returns ERANGE,
878 take that to mean that the buffer is too small.
879
880 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
881 that to mean that the buffer is too small.
882
883 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
884 current buffer's multibyteness when discarding the iterator's
885 stack.
886
887 * xfns.c (Fx_window_property): Handle case that property gets
888 deleted between the two calls to XGetWindowProperty.
889
890 2001-09-11 Gerd Moellmann <gerd@gnu.org>
891
892 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
893
894 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
895 in addition to read-only.
896
897 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
898 to t in addition to read-only.
899
900 * lisp.h (Qinhibit_modification_hooks): Declare.
901
902 * insdel.c (Qinhibit_modification_hooks): New variable.
903 (syms_of_insdel): Initialize and staticpro it.
904
905 * textprop.c (verify_interval_modification): Don't run
906 modification-hooks if inhibit_modification_hooks.
907
908 * dispnew.c (set_window_cursor_after_update): Fix code
909 finding glyph row containing cursor when cursor_in_echo_area
910 is >= 0.
911
912 * xdisp.c (init_from_display_pos): Put some code in #if 0.
913 (add_to_log): Use bcopy instead of strcpy.
914 (init_from_display_pos): Use an explicit loop over bytes in
915 overlay strings instead of calling index.
916
917 2001-09-10 Gerd Moellmann <gerd@gnu.org>
918
919 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
920
921 * dispnew.c (direct_output_for_insert): Don't change IT's
922 stop_charpos to something in front of its current position.
923
924 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
925 `format'.
926
927 2001-09-10 Richard M. Stallman <rms@gnu.org>
928
929 * frame.c (Fmouse_position): Doc fix.
930
931 2001-09-07 Gerd Moellmann <gerd@gnu.org>
932
933 * xdisp.c (init_from_display_pos): Don't compare the result
934 of calling index with NULL.
935
936 2001-09-06 Gerd Moellmann <gerd@gnu.org>
937
938 * xfns.c (x_set_background_color): Don't change the colors
939 of the X window of scroll bar widgets.
940
941 2001-09-05 Andrew Innes <andrewi@gnu.org>
942
943 * w32fns.c (w32_createwindow): Undo last change.
944
945 2001-09-05 Gerd Moellmann <gerd@gnu.org>
946
947 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
948
949 * xdisp.c (string_buffer_position): Use *single_char_property*
950 functions instead of the *single_property* functions.
951
952 2001-09-04 Andrew Innes <andrewi@gnu.org>
953
954 * w32term.c (w32_read_socket): Add more information to debugging
955 output.
956
957 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
958 from Emacs frames, so that calls to GetClipBox in w32term.c
959 correctly report when part of a frame is visible (including
960 scrollbars, etc). This prevents repeated redrawing of frames when
961 only a scrollbar is visible.
962 (w32_wnd_proc): Add more frame information to debugging output.
963
964 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
965
966 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
967
968 2001-09-03 Gerd Moellmann <gerd@gnu.org>
969
970 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
971 help-echo for a string which doesn't have help-echo itself, use
972 get-char-property to obtain the help-echo from the string's buffer
973 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
974 have mouse-face, look ``under'' the string for mouse-face from an
975 overlay.
976 (fast_find_position): Add parameter STOP. In the final row, stop
977 before glyphs having STOP as object. Don't consider glyphs that
978 are not from a buffer.
979
980 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
981
982 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
983
984 * fns.c (Fmd5): Doc fix.
985
986 2001-08-31 Gerd Moellmann <gerd@gnu.org>
987
988 * composite.c (update_compositions): Do nothing if
989 inhibit-modification-hooks is set.
990
991 2001-08-30 Gerd Moellmann <gerd@gnu.org>
992
993 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
994 and check_message_stack if terminating abnormally. We want
995 glyph matrices etc. in a core dump.
996
997 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
998 (syms_of_xdisp): Initialize them.
999 (handle_single_display_prop): Don't change point, bind `object',
1000 `position', and `buffer-position' instead to the object having the
1001 `display' property, position in the object and position in the buffer.
1002
1003 * fileio.c (Finsert_file_contents): Don't change the multibyteness
1004 of the buffer if REPLACE is non-nil.
1005
1006 2001-08-29 Gerd Moellmann <gerd@gnu.org>
1007
1008 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
1009
1010 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
1011
1012 * w32term.c (x_set_glyph_string_background_width)
1013 (show_mouse_face): Track the last changes in xterm.c.
1014
1015 2001-08-28 Gerd Moellmann <gerd@gnu.org>
1016
1017 * xterm.c (x_set_glyph_string_background_width): Set the glyph
1018 string's background width so that multi-line mouse-face is drawn
1019 to the right edge of the window.
1020 (show_mouse_face): Set the row's mouse_face_p flag after drawing
1021 glyphs.
1022
1023 * dispnew.c (direct_output_for_insert): Set updated_area
1024 before inserting/writing glyphs.
1025
1026 * xdisp.c (display_mode_element): Use string_byte_to_char to
1027 determine character positions in strings, use chars_in_text
1028 instead of strwidth.
1029 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
1030 a matrix as parameter; this is easier to use from GDB.
1031
1032 2001-08-28 Miles Bader <miles@gnu.org>
1033
1034 * textprop.c (Fprevious_single_char_property_change)
1035 (Fnext_single_char_property_change): Doc fixes.
1036
1037 2001-08-27 Gerd Moellmann <gerd@gnu.org>
1038
1039 * fileio.c (Finsert_file_contents): Allocate, restore, and
1040 free composition data in the case of REPLACE not being nil.
1041
1042 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
1043 there exist overlay strings with newlines at POS.
1044 (text_outside_line_unchanged_p): Return 0 if changes start at
1045 START and overlays exist at START. Likewise for END.
1046 (try_window_id): Give up if init_to_row_end returns 0.
1047
1048 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
1049 unconditionally.
1050
1051 2001-08-24 Gerd Moellmann <gerd@gnu.org>
1052
1053 * keymap.c (access_keymap): Return the cdr of the binding of
1054 a generic character instead of its definition (KEY . BINDING).
1055
1056 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
1057 to 0 also in the REPLACE case.
1058
1059 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
1060
1061 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
1062 open to determine whether file is readable (as for DOS_NT).
1063
1064 2001-08-23 Gerd Moellmann <gerd@gnu.org>
1065
1066 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
1067 coding.type is coding_type_no_conversion or coding_type_raw_text,
1068 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
1069 non-nil instead of just setting enable_multibyte_characters in the
1070 buffer to nil.
1071
1072 2001-08-22 Gerd Moellmann <gerd@gnu.org>
1073
1074 * dispextern.h (struct face_cache): Add member
1075 menu_face_changed_p.
1076
1077 * xfaces.c (menu_face_changed_default): New variable.
1078 (menu_face_changed_count): Variable removed.
1079 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
1080 the menu_face_changed_default flag, otherwise set the FRAME's
1081 menu_face_changed_p flag if the `menu' face has been changed.
1082 Prevent calling set_font_frame_param if FRAME is t.
1083 (make_face_cache): Initialize cache's menu_face_changed_p
1084 from menu_face_changed_default.
1085 (realize_basic_faces): Look into the frame's face cache to
1086 determine if the menu appearance needs updating.
1087
1088 * keymap.c (access_keymap): Fix last change to not consider
1089 IDX when it has modifiers.
1090
1091 2001-08-21 Gerd Moellmann <gerd@gnu.org>
1092
1093 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
1094 . BINDING) exists, where GENERIC-CHAR is the generic character of
1095 the charset of IDX, return BINDING unless there exists a binding
1096 for IDX itself.
1097
1098 2001-08-16 Gerd Moellmann <gerd@gnu.org>
1099
1100 * xrdb.c (SYSV): Don't define on Solaris 2.
1101 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
1102
1103 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
1104 of the screen line, not text line, containing IT's current position.
1105
1106 2001-08-15 Gerd Moellmann <gerd@gnu.org>
1107
1108 * window.c (window_scroll_pixel_based): Don't recenter if
1109 PT is partially visible in the window.
1110
1111 * xterm.c (expose_window_tree, expose_window, expose_line):
1112 Return 1 when overwriting mouse-face.
1113 (expose_frame): If mouse-face was overwritten, redo it.
1114
1115 * xfaces.c (x_update_menu_appearance): Don't call
1116 set_frame_menubar, let the next redisplay do it.
1117
1118 2001-08-14 Andrew Innes <andrewi@gnu.org>
1119
1120 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
1121 drawing glyph string.
1122
1123 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
1124
1125 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
1126 running HI-UX/MPP.
1127
1128 2001-08-14 Gerd Moellmann <gerd@gnu.org>
1129
1130 * xfaces.c (x_update_menu_appearance): Save and restore value of
1131 interrupt_input_blocked.
1132
1133 2001-08-13 Gerd Moellmann <gerd@gnu.org>
1134
1135 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
1136 a line start, move back to the line start.
1137
1138 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
1139 exactly when a mini-buffer is active.
1140
1141 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
1142 in units of 1/8 character on non window-system frames.
1143 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
1144
1145 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
1146
1147 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
1148 a doc string.
1149
1150 2001-08-09 Gerd Moellmann <gerd@gnu.org>
1151
1152 * keyboard.c (Vpre_help_message): New variable.
1153 (syms_of_keyboard): Initialize and staticpro it.
1154 (show_help_echo): Record current message before displaying a
1155 help-echo, and restore that message when clearing the help.
1156
1157 * xfns.c (x_create_im): Remove prototype.
1158
1159 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
1160
1161 * dispnew.c (adjust_glyph_matrix): Undo last change.
1162
1163 2001-08-08 Gerd Moellmann <gerd@gnu.org>
1164
1165 * dispnew.c (adjust_glyph_matrix): In the optimization for
1166 windows whose height has changed, disable partially visible lines.
1167
1168 2001-08-07 Gerd Moellmann <gerd@gnu.org>
1169
1170 * window.c (Frecenter): If ARG < 0, and on a window system
1171 frame, count in some empty lines when we can't move -ARG lines down.
1172
1173 * xdisp.c (start_display): Don't try to determine the continuation
1174 lines width if lines are truncated. It's superfluous and leads to
1175 incorrect results if POS is not visible in the window after
1176 reseating the iterator at the previous line start.
1177
1178 2001-08-06 Gerd Moellmann <gerd@gnu.org>
1179
1180 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
1181
1182 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1183
1184 * alloc.c (init_stack): Remove declaration.
1185
1186 2001-08-03 Gerd Moellmann <gerd@gnu.org>
1187
1188 * keyboard.c (read_key_sequence): Check that key is an integer
1189 before comparing it with quit_char.
1190 (add_command_key): Use larger_vector.
1191 (read_char_x_menu_prompt): Instead of converting symbol and
1192 integer events into conses (EVENT . nil), use (EVENT . disabled)
1193 which cannot be confused with valid events.
1194 (read_char): When reading from Vunread_command_events, check for
1195 events of the form (EVENT . disabled) instead of
1196 (EVENT . nil).
1197
1198 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
1199 a float, determine the max height from the frame's height.
1200
1201 2001-08-02 Gerd Moellmann <gerd@gnu.org>
1202
1203 * xdisp.c (redisplay_internal): Take message_cleared_p into
1204 account only if minibuf_level == 0.
1205
1206 2001-08-01 Gerd Moellmann <gerd@gnu.org>
1207
1208 * xdisp.c (redisplay_internal): Add a check for the last
1209 displayed message.
1210
1211 * xdisp.c (message_cleared_p): New variable.
1212 (clear_message): Set message_cleared_p when clearing the current
1213 message.
1214 (redisplay_internal): Look at message_cleared_p to capture
1215 the case that the echo area should be cleared.
1216
1217 * keyboard.c (command_loop_1): Fix spelling of
1218 resize_echo_area_exactly.
1219
1220 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
1221
1222 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
1223
1224 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
1225 current matrix when the window gets smaller.
1226
1227 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
1228
1229 * print.c (strout): Cast the character passed to insert_char to
1230 unsigned char, to avoid sign extension when it is promoted to int.
1231
1232 2001-07-31 Gerd Moellmann <gerd@gnu.org>
1233
1234 * fileio.c (Finsert_file_contents): Don't treat a return value
1235 of 0 from emacs_read as an IO error.
1236
1237 2001-07-30 Gerd Moellmann <gerd@gnu.org>
1238
1239 * keyboard.c (abs): New macro.
1240 (double_click_fuzz): New variable.
1241 (make_lispy_event): Use it to determine what makes a double-click.
1242 (syms_of_keyboard): DEFVAR_INT it.
1243
1244 * xmenu.c (set_frame_menubar): Take into account that
1245 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
1246 <raeburn@gnu.org>.
1247
1248 2001-07-27 Gerd Moellmann <gerd@gnu.org>
1249
1250 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
1251
1252 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
1253 of row's visible height.
1254
1255 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
1256 deal with the first overlay string having an image `display' property.
1257 (try_window_reusing_current_matrix, compute_line_metrics):
1258 Fix computation of row's visible height for the case that part of the
1259 row is invisible above and part of the row is at the same time
1260 invisible below the window.
1261
1262 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1263
1264 * xfns.c (x-show-tip): Doc fix.
1265
1266 * xfns.c (Vx_max_tooltip_size): New variable.
1267 (syms_of_xfns): DEFVAR_LISP it.
1268 (Fx_show_tip): Set frame's window_width to the width of the
1269 window. Use a maximum tooltip size specified by
1270 Vx_max_tooltip_size, if that has valid contents.
1271 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
1272
1273 2001-07-26 Andrew Innes <andrewi@gnu.org>
1274
1275 * w32term.c (x_display_list): New variable.
1276 (w32_term_init): Set it.
1277
1278 * w32term.h (x_display_list): New extern.
1279
1280 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1281
1282 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
1283 is non-nil, instead of when redisplaying_p is non-zero.
1284 See comment there.
1285 (mark_window_display_accurate_1): Add an assertion.
1286
1287 2001-07-25 Gerd Moellmann <gerd@gnu.org>
1288
1289 * dispextern.h (struct it): Increase size of ctl_chars to 16.
1290
1291 * xfns.c (Fx_file_dialog): Block/unblock input while processing
1292 events so that we get a chance of processing expose events.
1293
1294 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
1295
1296 2001-07-24 Gerd Moellmann <gerd@gnu.org>
1297
1298 * xfns.c (valid_image_p): Protect better against invalid image
1299 specifications. Previous code could signal an error.
1300
1301 2001-07-23 Gerd Moellmann <gerd@gnu.org>
1302
1303 * indent.c (current_column): Fix column computation in the
1304 presence of display table entries.
1305 (current_column_1, Fmove_to_column, compute_motion): Likewise.
1306
1307 * dispnew.c (adjust_glyph_matrix): In the optimization for
1308 windows whose height has changed, use the new window height
1309 to compute which rows to invalidate.
1310
1311 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
1312 (MAX_10_EXP): New macro.
1313 (Fformat): Use it.
1314
1315 * coding.c (code_convert_region): Handle the multibyte case if
1316 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
1317
1318 2001-07-20 Gerd Moellmann <gerd@gnu.org>
1319
1320 * dispextern.h (struct face): Change type of `stipple' to
1321 int; it's an ID.
1322
1323 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
1324
1325 2001-07-19 Gerd Moellmann <gerd@gnu.org>
1326
1327 * dispnew.c (update_window): Don't set the cursor at the end
1328 of the update if display update has been paused.
1329
1330 * composite.h (syms_of_composite): Renamed from syms_of_composition.
1331
1332 2001-07-18 Ken Raeburn <raeburn@gnu.org>
1333
1334 * fns.c (Fset_char_table_default): Check that a charset is defined
1335 before checking its dimension.
1336
1337 2001-07-17 Ken Raeburn <raeburn@gnu.org>
1338
1339 * coding.c (setup_coding_system): Don't do any designation based
1340 on reg_bits if charset is not yet defined.
1341
1342 * lisp.h (XVECTOR): Verify correct object type before returning a
1343 pointer, using eassert.
1344
1345 2001-07-17 Gerd Moellmann <gerd@gnu.org>
1346
1347 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
1348 Increase to 4096 because of paste problems reported on GNU/Linux.
1349
1350 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
1351
1352 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
1353
1354 2001-07-16 Gerd Moellmann <gerd@gnu.org>
1355
1356 * fileio.c (unwind_read): Function removed.
1357 (read_non_regular, read_non_regular_quit): New functions.
1358 (Finsert_file_contents): When reading from non-regular files,
1359 arrange to catch a `quit' and terminate the loop. Rearrange
1360 code so that a `quit' when reading from a regular file doesn't
1361 insert text in the buffer.
1362
1363 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
1364 Clear faces afterwards.
1365 (clear_font_table): Take a x_display_info parameter. Don't free
1366 fonts being the default font of any frame on the given display.
1367
1368 2001-07-13 Gerd Moellmann <gerd@gnu.org>
1369
1370 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
1371 instead of CHAR_STRING which can signal an error.
1372
1373 * charset.c (char_to_string_1): Extracted from char_to_string.
1374 Return -1 instead of signaling an error.
1375 (char_to_string): Use it.
1376
1377 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
1378
1379 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
1380
1381 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
1382 is t, don't try to append anything to it.
1383
1384 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
1385
1386 * dired.c (file_name_completion): Pass dp->d_name to
1387 Fstring_match, not elt, which is always nil here.
1388
1389 2001-07-12 Gerd Moellmann <gerd@gnu.org>
1390
1391 * xselect.c (x_decline_selection_request): Handle errors
1392 caused by receivers that have vanished.
1393
1394 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
1395 ignoring events on foreign windows in #if 0. Always dispatch
1396 the event after checking it with x_handle_property_notify.
1397
1398 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
1399 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
1400 TRACE macros to facilitate debugging. Add additional trace statements.
1401 (toplevel): Add prototypes for file-local functions.
1402 (x_atom_to_symbol): Remove DPYINFO parameter.
1403
1404 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
1405
1406 * w32menu.c (menubar_selection_callback, w32_menu_show):
1407 Initialize `entry' to nil.
1408 (w32_dialog_show): Remove unused `save_wv' variable.
1409 (name_is_separator): Recognize "--:foo" and "--foo-bar".
1410
1411 2001-07-11 Gerd Moellmann <gerd@gnu.org>
1412
1413 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
1414
1415 * fileio.c (unwind_read): Print a message when discarding inserted
1416 text or switching the buffer to unibyte. Change parameter.
1417 (Finsert_file_contents): Don't pass VISIT to unwind_read.
1418
1419 * fileio.c (unwind_read): New function.
1420 (Finsert_file_contents): Record it as unwind-function for
1421 the case that reading is interrupted by C-g.
1422
1423 2001-07-10 Gerd Moellmann <gerd@gnu.org>
1424
1425 * dispnew.c (update_window): Don't skip the header-line
1426 update when scrolling_window returns 0.
1427
1428 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
1429
1430 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
1431 for the case that x_decode_color signals an error.
1432
1433 * xdisp.c (add_to_log): Do nothing if called asynchronously.
1434
1435 2001-07-09 Gerd Moellmann <gerd@gnu.org>
1436
1437 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
1438 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
1439 around ioctls.
1440
1441 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
1442
1443 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
1444 doc string line for dos-timezone-offset.
1445
1446 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
1447 inline assembly, to avoid compiler warnings.
1448 (syms_of_msdos): Add \n\ at the end of a line in the doc string
1449 line for dos-unsupported-char-glyph.
1450
1451 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
1452
1453 2001-07-05 Gerd Moellmann <gerd@gnu.org>
1454
1455 * sound.c: Include Emacs' header files with #include "...".
1456
1457 * eval.c (specbind): Additionally record the buffer that was
1458 current when a buffer-local or frame-local variable was bound.
1459
1460 2001-07-04 Gerd Moellmann <gerd@gnu.org>
1461
1462 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
1463 to unibyte characters in unibyte buffers.
1464
1465 2001-07-03 Gerd Moellmann <gerd@gnu.org>
1466
1467 * eval.c (specbind): If SYMBOL has a frame-local binding, record
1468 the frame on the binding stack. Change format of entries for
1469 local bindings on the binding stack to '(SYMBOL . WHERE)'.
1470 (unbind_to): Handle unbinding a frame-local variable.
1471
1472 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
1473 glyphs and truncation glyphs at the end of a row from its pixel width.
1474 (dump_glyph_row): Print row's continuation_lines_width.
1475 (try_window_id): Take the shortcut if ZV is visible in the
1476 window, but there are actually no changes at ZV.
1477
1478 2001-07-02 Gerd Moellmann <gerd@gnu.org>
1479
1480 * xterm.h (x_free_dpy_colors): Add prototype.
1481
1482 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
1483 right number of arguments.
1484
1485 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
1486 ($(lwlibdir)TAGS): New target.
1487 (TAGS): Fix dependency list.
1488
1489 * xterm.c (x_list_fonts): Make sure XFreeFont is called
1490 with input blocked.
1491
1492 2001-06-30 Gerd Moellmann <gerd@gnu.org>
1493
1494 * emacs.c (main): Remove extern declaration for sys_nerr, which
1495 isn't used and causes a compilation error with GCC 3.0 on
1496 FreeBSD 4.3.
1497
1498 2001-06-27 Gerd Moellmann <gerd@gnu.org>
1499
1500 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
1501 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
1502 (toplevel): Include <signal.h> and syssignal.h.
1503
1504 * sound.c (vox_configure, vox_close): Turn off atimers
1505 around ioctls.
1506
1507 2001-06-26 Gerd Moellmann <gerd@gnu.org>
1508
1509 * keyboard.c (read_char) <non_reread>: Record the previous idle
1510 start time before calling timer_stop_idle.
1511 (read_char) <reread_first>: After processing a help-echo event,
1512 restore the previous idle start time.
1513
1514 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
1515 the start of invisible text.
1516 (setup_for_ellipsis): New function.
1517 (next_overlay_string): After all overlay strings have been
1518 processed, display an ellipsis if necessary.
1519 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
1520 (push_it): Initialize display_ellipsis_p on the iterator's stack.
1521
1522 * dispextern.h (struct iterator_stack_entry): Add member
1523 display_ellipsis_p.
1524
1525 2001-06-25 Gerd Moellmann <gerd@gnu.org>
1526
1527 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
1528 on the value of the wait-for-wm frame parameter.
1529
1530 * xterm.h (struct x_output): Add member wait_for_wm.
1531
1532 * xfns.c (Qwait_for_wm): New variable.
1533 (x_frame_parms): Add entry for `wait-for-wm".
1534 (x_set_wait_for_wm): New function.
1535 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
1536 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
1537
1538 * xdisp.c (try_window_id) <all changes below window end>: Don't
1539 take this shortcut if ZV is visible in the window.
1540 (try_window_id): When checking for window start being in changed
1541 text, don't check that the buffer's size has changed.
1542
1543 2001-06-23 Richard M. Stallman <rms@gnu.org>
1544
1545 * minibuf.c (Fcompleting_read): Doc fix.
1546
1547 2001-06-19 Gerd Moellmann <gerd@gnu.org>
1548
1549 * composite.c (Ffind_composition_internal): Accept ZV
1550 and a string's end position as POS.
1551
1552 2001-06-18 Gerd Moellmann <gerd@gnu.org>
1553
1554 * composite.c (Ffind_composition_internal): Check POS
1555 for validity.
1556
1557 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1558
1559 * editfns.c (Fmessage_box): If the frame is not under a window
1560 system, output the message in the echo area.
1561
1562 2001-06-14 Richard M. Stallman <rms@gnu.org>
1563
1564 * xdisp.c (try_window_id): When EOB is visible, don't treat
1565 insertion at EOB as if it were "off the bottom of the screen."
1566
1567 2001-06-11 Andrew Innes <andrewi@gnu.org>
1568
1569 * w32proc.c (create_child): Add new parameter is_gui_app.
1570 (w32_executable_type): Add new parameter is_gui_app.
1571 (sys_spawnve): Use it.
1572 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
1573 SIGQUIT. This matches better how the signals are interpreted by
1574 MSVC compiled programs.
1575 (syms_of_ntproc): Update docstring.
1576
1577 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
1578
1579 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
1580 well otherwise note_mouse_highlight might optimize away highlighting
1581 if we pass over that same overlay again.
1582
1583 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
1584
1585 * lread.c (Fload): Document that the argument is run via
1586 substitute-in-file-name.
1587
1588 2001-05-31 Gerd Moellmann <gerd@gnu.org>
1589
1590 * Makefile.in (bootstrap-doc): New target.
1591 (bootstrap-emacs): Depend on it.
1592
1593 * fileio.c (Fdo_auto_save): Don't try to create the directory of
1594 auto-save-list-file-name when shutting down Emacs, because
1595 creating the directory might signal an error, and leaves
1596 Emacs in a strange state.
1597
1598 * term.c: (tty_cursor_hidden): New variable.
1599 (update_begin): Don't call tty_hide_cursor. Clean up.
1600 (update_end, set_terminal_window, set_scroll_region): Clean up.
1601 (ring_bell, reset_terminal_modes): Clean up.
1602 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
1603 on tty_cursor_hidden.
1604 (write_glyphs): Call tty_hide_cursor.
1605
1606 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
1607
1608 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
1609
1610 2001-05-30 Gerd Moellmann <gerd@gnu.org>
1611
1612 * xfns.c (enum image_value_type): New enumerator
1613 IMAGE_STRING_OR_NIL_VALUE.
1614 (parse_image_spec): Handle it.
1615 (xbm_format, pbm_format): Use it for :foreground and :background.
1616 (xbm_load, pbm_load): Check for nil color names.
1617
1618 * xterm.c (note_mouse_highlight): If an overlapping overlay
1619 exists, but we find that we highlight the same overlay as before,
1620 don't do the highlighting again.
1621
1622 2001-05-29 Gerd Moellmann <gerd@gnu.org>
1623
1624 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
1625 Protect unibyte strings created by replacing their multibyte
1626 equivalents in menu_items.
1627
1628 * keymap.c (Fsingle_key_description): NUL-terminate the string
1629 buffer before calling build_string.
1630
1631 * callproc.c (Fcall_process): Deal with decode_coding returning
1632 CODING_FINISH_INCONSISTENT_EOL.
1633
1634 2001-05-28 Gerd Moellmann <gerd@gnu.org>
1635
1636 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
1637 an item's name with its key description in case the description
1638 is a multibyte string.
1639
1640 * keymap.c (Fsingle_key_description): Create a multibyte string
1641 only if necessary.
1642
1643 * macros.c (Fstart_kbd_macro): Doc fix.
1644
1645 * xterm.c (cursor_in_mouse_face_p): New function.
1646 (x_draw_stretch_glyph_string): Use it to choose a different GC
1647 when drawing a cursor within highlighted text.
1648
1649 * editfns.c (char_property_eq): Put in #if 0.
1650
1651 * indent.c (string_display_width): Put in #if 0.
1652
1653 * lread.c (Fload): Remove unused label.
1654
1655 * termcap.c (speeds): Put in #if 0.
1656
1657 2001-05-18 Gerd Moellmann <gerd@gnu.org>
1658
1659 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
1660
1661 * xfaces.c (xlfd_point_size): Don't divide pixel size from
1662 transformation matrix by 10.
1663
1664 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1665
1666 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
1667 only if it's equal to the former foreground pixel color.
1668 (x_set_foreground_color, x_set_background_color)
1669 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
1670
1671 2001-05-16 Dave Love <fx@gnu.org>
1672
1673 * insdel.c (signal_before_change, signal_after_change): Consider a
1674 local change hook which changes the buffer.
1675
1676 * process.c (read_process_output): Don't call signal_after_change
1677 and update_compositions after insert_from_string_before_markers.
1678
1679 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1680
1681 * xfaces.c (split_font_name): Use the right field when
1682 checking for `[...]' syntax.
1683
1684 * buffer.c (copy_overlays): New function.
1685 (clone_per_buffer_values): Use it.
1686
1687 * buffer.h (OVERLAY_PLIST): New macro.
1688
1689 * keymap.c (Fsingle_key_description): Replace a build_string with
1690 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
1691
1692 * fontset.c (Ffontset_info): Check that face is non-null
1693 before accessing its fields.
1694
1695 2001-05-15 Gerd Moellmann <gerd@gnu.org>
1696
1697 * keyboard.c (read_key_sequence): Prevent generating a fake
1698 prefix key twice.
1699
1700 * xfaces.c (split_font_name): Handle `[...]' for the right
1701 font name fields.
1702
1703 * ccl.c (ccl_driver): Don't copy remaining bytes in case
1704 of CCL_STAT_INVALID_CMD.
1705
1706 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
1707
1708 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
1709 in <var> has no default value yet.
1710
1711 * xfaces.c (try_alternative_families): First try the FAMILY.
1712 And if nothing is found in the end, try again with scalable fonts.
1713 (try_font_list): Let try_alternative_families do a bit more of
1714 the work. Only use FAMILY if it is not nil.
1715 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
1716
1717 2001-05-14 Gerd Moellmann <gerd@gnu.org>
1718
1719 * xterm.c (note_mouse_highlight): Avoid changing the mouse
1720 pointer shape when show_mouse_face has already done it.
1721
1722 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
1723 full-width rows.
1724
1725 * xfaces.c (split_font_name): Make sure to leave the loop
1726 with the right value of `i'.
1727
1728 * xfaces.c (split_font_name): Handle matrix transformations
1729 in the pixel and point size fields of XLFD font names.
1730 (xlfd_point_size): Likewise.
1731
1732 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
1733
1734 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
1735 (x_to_w32_font): Add prototype.
1736
1737 * regex.c (malloc, realloc, free) [emacs]: Undefine before
1738 redefining, to avoid compiler warnings.
1739
1740 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
1741
1742 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
1743 (w32_get_bdf_glyph): Cast between unsigned char and char when
1744 passing arguments to subroutines, to shut up compiler warnings.
1745 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
1746 GET_HEX_VAL.
1747
1748 * xfaces.c: Include keyboard.h before frame.h, not after it.
1749
1750 * widget.c: Include keyboard.h before frame.h.
1751
1752 * w32term.h (struct image, struct face): Forward declaration, to
1753 avoid compiler warnings.
1754
1755 2001-05-11 Gerd Moellmann <gerd@gnu.org>
1756
1757 * keyboard.c (read_key_sequence): Don't modify events when
1758 generating fake prefix keys (mode-line, scroll-bar, ...) since
1759 this prevents proper processing of such events when pushed back
1760 into unread-command-events.
1761
1762 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
1763 actually redrawn. Make the function static.
1764 (note_mouse_highlight): Fix a case where the mouse cursor
1765 was changed back to the text cursor.
1766
1767 * xterm.h (clear_mouse_face): Remove prototype.
1768
1769 * xdisp.c (try_window_id): Fix the fix and set the right
1770 window_end_vpos.
1771
1772 * xdisp.c (try_window_id): Fix computation of window end in the
1773 case that lines were deleted at the end of the window. Add some
1774 more debug_method_adds.
1775
1776 * xfaces.c (try_alternative_families): New function.
1777 (try_font_list): Use it. If ATTRS specifies a family, check
1778 fonts from that family first.
1779 (choose_face_font): Remove code setting the family part of
1780 the pattern to nil.
1781
1782 2001-05-10 Gerd Moellmann <gerd@gnu.org>
1783
1784 * xdisp.c (try_window_id): Fix case of all changes before
1785 the window start.
1786
1787 * xdisp.c (try_window_id): Add some xasserts.
1788
1789 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1790
1791 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
1792
1793 2001-05-09 Dave Love <fx@gnu.org>
1794
1795 * xdisp.c (GIVE_UP): Fix for K&R C.
1796
1797 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1798
1799 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
1800
1801 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
1802 back to the text cursor shape without need.
1803
1804 2001-05-07 Gerd Moellmann <gerd@gnu.org>
1805
1806 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
1807
1808 * dispextern.h (inverse_video): Declare extern.
1809
1810 * keyboard.c (delete_kboard): Handle the case that selected_frame
1811 has been deleted in the course of x_connection_closed.
1812
1813 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
1814
1815 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
1816 Fix the change from 2001-04-30.
1817
1818 2001-05-03 Gerd Moellmann <gerd@gnu.org>
1819
1820 * xfns.c (file_dialog_unmap_cb): New function.
1821 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
1822 where a dialog is closed via the window manager.
1823
1824 * xdisp.c (try_window_id): Cases of changes all in front of
1825 the window start or all below the window end mostly rewritten.
1826 (redisplay_window): Move the tests if try_window_id is
1827 applicable to try_window_id.
1828 (GIVE_UP): New macro.
1829
1830 2001-05-02 Gerd Moellmann <gerd@gnu.org>
1831
1832 * xterm.c (expose_window): Return int. If W is the window
1833 currently being updated, mark the frame garbaged.
1834 Fix computation of rows intersecting the exposed rectangle.
1835 (expose_window_tree): Stop when expose_window returns 0.
1836
1837 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
1838 again if it has already been drawn.
1839
1840 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
1841
1842 * syntax.c (update_syntax_table): Check that oldi has the same
1843 properties as old_prop before deciding not to invalidate.
1844
1845 2001-04-30 Gerd Moellmann <gerd@gnu.org>
1846
1847 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
1848 read-only text that is so because of text properties.
1849
1850 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
1851 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
1852 windows that are components of a Lucid menu bar.
1853
1854 2001-04-27 Gerd Moellmann <gerd@gnu.org>
1855
1856 * term.c (turn_on_face): Fix reverse video handling on terminals
1857 that don't support colors.
1858
1859 2001-04-26 Gerd Moellmann <gerd@gnu.org>
1860
1861 * editfns.c (save_excursion_restore): Don't use XBUFFER on
1862 a non-buffer.
1863
1864 2001-04-25 Gerd Moellmann <gerd@gnu.org>
1865
1866 * term.c (toggle_highlight): New function.
1867 (turn_on_face): Change handling of reverse video.
1868
1869 * process.c (wait_reading_process_input):
1870 Call record_asynch_buffer_change only if a timer really changed buffers.
1871
1872 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
1873 of the number of overlays to check.
1874
1875 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
1876
1877 * xdisp.c (try_window_id): Fix a case where window_end_pos
1878 and window_end_bytepos were not adjusted.
1879
1880 2001-04-23 Gerd Moellmann <gerd@gnu.org>
1881
1882 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
1883 zero instead of -1.
1884
1885 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
1886
1887 * process.c (wait_reading_process_input) [!subprocesses]:
1888 Don't reference waiting_for_user_input_p, it's not defined in the
1889 branch without async subprocesses support.
1890
1891 2001-04-19 Gerd Moellmann <gerd@gnu.org>
1892
1893 * keyboard.c (delete_kboard): Prevent a dangling reference
1894 from current_kboard to KB, which is freed.
1895
1896 * process.c (wait_reading_process_input):
1897 Call record_asynch_buffer_change after running timers, to make
1898 read_key_sequence aware of buffer changes from under it.
1899
1900 2001-04-18 Gerd Moellmann <gerd@gnu.org>
1901
1902 * xfaces.c (Qscalable_fonts_allowed): New variable.
1903 (realizing_basic_faces_p): Removed.
1904 (x_face_list_fonts): Special handling for realizing_basic_faces_p
1905 removed.
1906 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
1907 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
1908 for scalable-fonts-allowed to t.
1909
1910 * fileio.c (Finsert_file_contents): If the file size returned from
1911 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
1912 read from files on a procfs whose contents are generated dynamically.
1913
1914 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
1915
1916 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
1917 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
1918 (__memalign_hook): Make the two prototypes consistent.
1919
1920 2001-04-17 Gerd Moellmann <gerd@gnu.org>
1921
1922 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
1923 matrix of mini-windows.
1924
1925 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
1926
1927 * intervals.c (find_interval): Don't rebalance during signal handling.
1928
1929 2001-04-11 Gerd Moellmann <gerd@gnu.org>
1930
1931 * fns.c: Include blockinput.h.
1932
1933 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
1934
1935 2001-04-10 Gerd Moellmann <gerd@gnu.org>
1936
1937 * fns.c (Fcompare_strings): Fix return values.
1938
1939 * window.c (window_scroll): Change the meaning of N to mean
1940 N screen-fulls or N lines.
1941 (window_scroll_pixel_based, window_scroll_line_based)
1942 (scroll_command, Fscroll_other_window): Change accordingly.
1943
1944 * window.c (window_scroll_pixel_based, Frecenter):
1945 Call window_box_height instead of using it.last_visible_y for the
1946 height of the window.
1947
1948 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
1949 instead of using it.last_visible_y for the height of the window.
1950
1951 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
1952 From Dan Holmsand <dan@eyebee.com>.
1953
1954 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
1955 able to write to hidden and system files. From Dan Holmsand
1956 <dan@eyebee.com>.
1957
1958 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
1959 Holmsand <dan@eyebee.com>.
1960
1961 2001-04-09 Gerd Moellmann <gerd@gnu.org>
1962
1963 * fns.c (Fplist_get, Fplist_put): Add QUITs.
1964
1965 * window.c (window_internal_height): Return 1 less if the
1966 window has a header line.
1967
1968 * xdisp.c (try_window_id): When scrolling on a terminal, take
1969 the change of window_internal_height into account.
1970
1971 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
1972
1973 * gmalloc.c (align): If the argument SIZE would overflow
1974 __malloc_ptrdiff_t, fail right away.
1975
1976 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1977
1978 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
1979 Make sure the tooltip is completely visible.
1980 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
1981
1982 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
1983
1984 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
1985
1986 2001-04-06 Dave Love <fx@gnu.org>
1987
1988 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
1989 Fix test of `from'.
1990
1991 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1992
1993 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
1994
1995 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
1996
1997 2001-04-05 Gerd Moellmann <gerd@gnu.org>
1998
1999 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
2000
2001 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
2002
2003 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
2004 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
2005
2006 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
2007 shell widget's position only if it is non-null.
2008
2009 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
2010 Set f->output_data.x->widget to null after destroying it.
2011
2012 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
2013 FILENAME to bring it in synch with the documentation.
2014
2015 * xfaces.c (realizing_basic_faces_p): Renamed from
2016 realize_default_face_p.
2017 (realize_basic_faces): Set/clear realizing_basic_faces_p.
2018 (realize_default_face): Don't set the flag.
2019
2020 2001-04-04 Gerd Moellmann <gerd@gnu.org>
2021
2022 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
2023
2024 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
2025
2026 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
2027 the buffer that was used for echoing.
2028
2029 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
2030 (first_font_matching): Removed unused function.
2031 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
2032 (may_use_scalable_font_p): Remove parameter FONT; rename
2033 parameter NAME to FONT.
2034 (x_face_list_fonts): Fix missing bounds check.
2035 (realizing_default_face_p): New variable.
2036 (realize_default_face): Set and clear that flag.
2037 (x_face_list_fonts): When called during the realization of the
2038 default face, and no matching fonts are found when ignoring
2039 scalable fonts and fonts matching a regexp from
2040 face-ignored-fonts, try without ignoring fonts.
2041
2042 2001-04-03 Gerd Moellmann <gerd@gnu.org>
2043
2044 * xfns.c (postprocess_image): New function.
2045 (lookup_image): Call it for all image types except PostScript.
2046 (x_kill_gs_process): Call postprocess_image.
2047
2048 * xterm.c (x_use_underline_position_properties): New variable.
2049 (x_draw_glyph_string): Use it.
2050 (syms_of_xterm): DEFVAR_BOOL it.
2051
2052 2001-04-02 Gerd Moellmann <gerd@gnu.org>
2053
2054 * xterm.c (x_alloc_nearest_color_1): New function.
2055 (x_alloc_nearest_color): Use it.
2056 (x_color_cells): Take a Display as argument, instead of a frame.
2057 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
2058 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
2059 (x_initialize): Register cvt_string_to_pixel as resource converter
2060 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
2061
2062 2001-03-30 Gerd Moellmann <gerd@gnu.org>
2063
2064 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
2065 (set_iterator_to_next): If a string from a display property ends,
2066 consider the case that this might also be the end of an
2067 overlay string having the display property.
2068
2069 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
2070
2071 * xdisp.c (reseat_to_string): Undo last change.
2072
2073 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
2074 matrix of a window when the header line changes, when
2075 new rows are allocated, or when the width changes.
2076
2077 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
2078
2079 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
2080
2081 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
2082
2083 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
2084 deprecated.
2085
2086 2001-03-29 Gerd Moellmann <gerd@gnu.org>
2087
2088 * data.c (Fsubr_interactive_form): New function.
2089 (syms_of_data): Defsubr it.
2090
2091 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
2092 (live_float_p, live_misc_p): Return 1 only if the offset of the
2093 pointer in its block is >= 0.
2094
2095 2001-03-28 Paul Eggert <eggert@twinsun.com>
2096
2097 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
2098 microseconds calcuation. Avoid double-rounding problem.
2099 In doc string, warn that the result is approximate.
2100
2101 2001-03-28 Gerd Moellmann <gerd@gnu.org>
2102
2103 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
2104 bind `inhibit-eval-during-redisplay' to t.
2105
2106 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
2107
2108 * xdisp.c (inhibit_eval_during_redisplay)
2109 (Qinhibit_eval_during_redisplay): New variables.
2110 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
2111 don't eval, return nil instead.
2112 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
2113 Initialize Qinhibit_eval_during_redisplay.
2114
2115 * xdisp.c (reseat_to_string): If STRING is multibyte, set
2116 the iterator's multibyte_p flag.
2117
2118 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
2119 instead of setting it to zero; it's incremented for each frame
2120 where the menu face is changed.
2121
2122 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
2123 change bottom shadow accordingly.
2124
2125 * xterm.c (expose_window_tree, expose_frame): Don't compute
2126 intersections here.
2127 (expose_window): Do it here instead.
2128 (x_draw_glyph_string): Fix a computation of the underline position.
2129
2130 * bytecode.c (BYTE_CODE_QUIT): New macro.
2131 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
2132
2133 2001-03-27 Gerd Moellmann <gerd@gnu.org>
2134
2135 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
2136 Give up if matrix starts in an ellipsis.
2137 (init_from_display_pos): Do nothing if POS doesn't specify
2138 a dpvec_index but the iterator has such a position.
2139
2140 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
2141
2142 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
2143 x/y position is (0, 0) after destroying the menu bar, restore
2144 its original position.
2145
2146 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
2147 (init_from_display_pos): Use it.
2148 (try_window_reusing_current_matrix): Don't use cursor_row_p.
2149
2150 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2151
2152 * xdisp.c (try_window_id): Undo last change.
2153
2154 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
2155
2156 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
2157
2158 * buffer.c (syms_of_buffer): Doc fix.
2159
2160 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2161
2162 * xfaces.c (x_update_menu_appearance): Use local variable
2163 popup_path for setting font resources.
2164
2165 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
2166
2167 * frame.c (Fframe_list): Don't reference tip_frame if
2168 HAVE_WINDOW_SYSTEM is not defined.
2169
2170 * emacs.c (main): Update the copyright year. From Werner LEMBERG
2171 <wl@gnu.org>.
2172
2173 2001-03-25 Gerd Moellmann <gerd@gnu.org>
2174
2175 * xdisp.c (init_from_display_pos): Test invisible property
2176 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
2177
2178 * xdisp.c (redisplay_internal) <update one window>: Make sure
2179 last_arrow_position and last_arrow_string are set.
2180
2181 * frame.c (Fframe_list): Don't return a tooltip frame.
2182
2183 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2184
2185 * xdisp.c (mark_window_display_accurate_1): New function,
2186 extracted from mark_window_display_accurate.
2187 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
2188 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
2189 (mark_window_display_accurate): Use it.
2190 (redisplay_internal): Use it for the selected window.
2191 (redisplay_internal): Avoid duplicate mark_window_display_accurate
2192 for the selected frame.
2193
2194 * xdisp.c Use make_number, for readability.
2195 (try_window_id): Disable rows below the window end.
2196 (try_window_reusing_current_matrix): Use cursor_row_p.
2197 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
2198 of rows.
2199 (init_from_display_pos): If POS specifies a position in a display
2200 vector, maybe get the iterator set up for that ellipsis.
2201
2202 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
2203
2204 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
2205
2206 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
2207
2208 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2209
2210 * xfaces.c (x_update_menu_appearance): Use a different path
2211 for Lucid popup menus.
2212
2213 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
2214
2215 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
2216
2217 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
2218 (string_buffer_position): Use `make_number'.
2219
2220 2001-03-22 Gerd Moellmann <gerd@gnu.org>
2221
2222 * xfaces.c (x_update_menu_appearance): Renamed from
2223 x_set_menu_face_resources. Use different resources for popups.
2224
2225 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
2226 (GC_CHECK_STRING_BYTES): Don't define.
2227
2228 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
2229 Removed, together with subroutines.
2230 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
2231 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
2232
2233 * dispextern.h (x_set_menu_resources_from_menu_face):
2234 Remove prototype.
2235
2236 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
2237 Remove calls to x_set_menu_resources_from_menu_face.
2238
2239 * xfaces.c (xm_set_menu_resources_from_menu_face):
2240 Remove #ifndef LESSTIF_VERSION.
2241
2242 * xmenu.c: Include widget.h.
2243 (single_submenu): Return int. Some cleanup.
2244 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
2245
2246 2001-03-21 Gerd Moellmann <gerd@gnu.org>
2247
2248 * xterm.c (x_update_window_end): Handle overwritten mouse face
2249 also for tool bar windows.
2250 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
2251 DRAW is DRAW_IMAGE_RAISED.
2252
2253 2001-03-20 Gerd Moellmann <gerd@gnu.org>
2254
2255 * print.c (syms_of_print): Doc fixes.
2256
2257 * fns.c (Fmd5): Doc fix.
2258
2259 2001-03-19 Gerd Moellmann <gerd@gnu.org>
2260
2261 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2262 Clear area of the frame not occupied by the scroll bar.
2263
2264 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
2265 tip frame's root window buffer to *tip* right after creating
2266 the frame.
2267
2268 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
2269 is an integer don't have to be for space characters.
2270
2271 2001-03-16 Gerd Moellmann <gerd@gnu.org>
2272
2273 * indent.c (current_column, current_column_1, Fmove_to_column)
2274 (compute_motion): Handle characters from display vectors differently.
2275
2276 2001-03-15 Kenichi Handa <handa@etl.go.jp>
2277
2278 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
2279 drawing glyph string.
2280
2281 2001-03-15 Gerd Moellmann <gerd@gnu.org>
2282
2283 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
2284 (command_loop_1): Undo last change.
2285
2286 * xterm.c (fast_find_position): Return the correct vpos.
2287
2288 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
2289 non-null, set a per-buffer value in BUF instead of the current buffer.
2290 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
2291 Call store_symval_forwarding with BUF null.
2292 (set_internal): Call store_symval_forwarding with the BUF
2293 parameter passed to set_internal. Formerly, the value was always
2294 set in the current buffer; the buffer recorded in specbind for
2295 this case wasn't used.
2296 (arith_driver): Reindent.
2297
2298 * buffer.c (swap_out_buffer_local_variables):
2299 Call store_symval_forwarding with BUF null.
2300
2301 * lisp.h (store_symval_forwarding): Change prototype.
2302
2303 * eval.c (specbind): Call store_symval_forwarding with BUF null.
2304
2305 2001-03-14 Gerd Moellmann <gerd@gnu.org>
2306
2307 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
2308 FOR_DELETION. Avoid resizing the mini-window of the selected
2309 frame if FOR_DELETION is set.
2310 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
2311 (Fmake_frame_invisible): Change calls to do_switch_frame for new
2312 signature.
2313
2314 * window.c (Fset_window_configuration): Change call to
2315 do_switch_frame to new format.
2316
2317 * keyboard.c (quit_throw_to_read_char): Change call to
2318 do_switch_frame to new format.
2319
2320 * lisp.h (do_switch_frame): Change prototype.
2321
2322 * frame.c (Fframe_parameters): In the `buffer-list' frame
2323 parameter, store the buffer list of FRAME, not the list of the
2324 selected frame.
2325
2326 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
2327 box just because the glyph row's full_width_p flag is set.
2328
2329 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
2330
2331 * xdisp.c (highlight_trailing_whitespace): On character terminals,
2332 skip the padding blanks inserted in extend_face_to_end_of_line,
2333 before checking for trailing whitespace.
2334
2335 2001-03-13 Gerd Moellmann <gerd@gnu.org>
2336
2337 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
2338 Remove special handling for LessTif/Motif.
2339 (toplevel): Don't include Xm/Xm.h.
2340
2341 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
2342 Remove workaround code for LessTif; it doesn't work anymore.
2343
2344 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
2345 Xm/ScrollBarP.h.
2346
2347 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
2348 Don't access private scroll bar data; it's no longer necessary with
2349 contemporary LessTif.
2350
2351 * xfaces.c (xm_set_menu_resources_from_menu_face):
2352 Change #if 0 to #ifndef LESSTIF_VERSION.
2353
2354 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
2355 removing button grabs.
2356
2357 2001-03-13 Kenichi Handa <handa@etl.go.jp>
2358
2359 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
2360 and clip-large-size-font as obsolete.
2361
2362 * lread.c (read_multibyte): Check the validity of multibyte
2363 sequence. If invalid, return the first byte.
2364
2365 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2366
2367 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
2368 before running the command; timer functions or process
2369 filters may have set it.
2370
2371 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2372
2373 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
2374 Doc fix.
2375
2376 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2377
2378 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
2379 to sprintf.
2380
2381 2001-03-09 Gerd Moellmann <gerd@gnu.org>
2382
2383 * dispextern.h (string_buffer_position): Add prototype.
2384
2385 * xdisp.c (string_buffer_position, display_prop_string_p)
2386 (single_display_prop_string_p): New functions.
2387
2388 * xterm.c (note_mouse_highlight): If there's no help-echo on
2389 a string, look at the buffer text ``under'' it.
2390
2391 * keyboard.c (make_lispy_event): Add string info to the event,
2392 analogous to what's done on mode lines.
2393 (read_key_sequence): For a click on a string, consider `local-map'
2394 and `keymap' of that string.
2395
2396 * keyboard.c (make_lispy_event, make_lispy_movement):
2397 Adjust calls to buffer_posn_from_coords to new format.
2398
2399 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
2400
2401 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
2402 POS; return void.
2403
2404 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
2405 flags argument to emacs_open; it seems to conflict with O_EXCL.
2406
2407 2001-03-09 Kenichi Handa <handa@etl.go.jp>
2408
2409 * composite.h (struct composition): Change types of members;
2410 glyph_len to unsigned, width to unsigned short.
2411
2412 2001-03-08 Andrew Innes <andrewi@gnu.org>
2413
2414 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
2415 menu titles.
2416
2417 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2418
2419 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
2420 instead of nil.
2421
2422 * xterm.c (note_mouse_highlight): Handle mouse-face and
2423 help-echo in strings.
2424 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
2425 (fast_find_string_pos): New function.
2426
2427 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
2428 (display_string): Call face_at_string_position with new parameter.
2429
2430 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
2431 Handle `mouse-face'.
2432
2433 * dispextern.h (face_at_string_position): Change prototype.
2434
2435 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
2436
2437 * keyboard.c (make_lispy_event): Avoid generating drag events
2438 if the mouse hasn't actually moved to another buffer position.
2439
2440 2001-03-08 Dave Love <fx@gnu.org>
2441
2442 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
2443
2444 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2445
2446 * process.c (Fset_process_window_size): Fix a typo.
2447
2448 2001-03-08 Kenichi Handa <handa@etl.go.jp>
2449
2450 * coding.c (detect_coding_sjis): Do more rigid check.
2451 (detect_coding_big5): Likewise.
2452 (decode_coding_sjis_big5): Likewise.
2453 (Fdetect_coding_region): Call detect_coding_system with tailing
2454 anchor byte `\0' for more rigid detection.
2455 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
2456 (Fdetect_coding_string): Likewise.
2457
2458 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
2459
2460 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
2461 a string before extracting its data.
2462
2463 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2464
2465 * window.c (Frecenter): Rewrite code handling negative values
2466 of ARG on graphical frames.
2467
2468 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
2469
2470 * window.c (displayed_window_lines): If W->start is outside the
2471 accessible portion of the buffer, call start_display with BEGV or
2472 ZV instead of W->start.
2473
2474 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2475
2476 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
2477
2478 * process.c (Fset_process_filter): Don't crash if the input
2479 file descriptor of PROCESS is closed.
2480 (Fset_process_window_size): Likewise.
2481
2482 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2483
2484 * xterm.c (XTflash): Make the timeout of select shorter, and call
2485 select repeatedly until the desired time expires.
2486
2487 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2488
2489 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
2490
2491 * xfns.c (Fx_create_frame): Clear Vwindow_list.
2492
2493 * lisp.h (Vwindow_list): Declare extern.
2494
2495 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2496
2497 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
2498
2499 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2500
2501 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
2502 to detect a case where we have to highlight a different region
2503 despite not having left the currently highlighted region.
2504 Set mouse_face_overlay in the x_display_info.
2505 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
2506
2507 * xterm.h (struct x_display_info): Add mouse_face_overlay.
2508
2509 * buffer.c (mouse_face_overlay_overlaps): New function.
2510
2511 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
2512 (Qmouse_face): Declare extern.
2513
2514 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
2515 if face_change_count is non-zero.
2516
2517 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2518
2519 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
2520 that the source is unibyte.
2521
2522 2001-03-05 Dave Love <fx@gnu.org>
2523
2524 * xterm.c (XTmouse_position): Fix typo.
2525
2526 2001-03-05 Gerd Moellmann <gerd@gnu.org>
2527
2528 * minibuf.c (read_minibuf): Clean up the binding stack if
2529 called noninteractively.
2530
2531 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2532
2533 * coding.c (syms_of_coding): Docstring modified.
2534
2535 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2536
2537 * charset.c (char_to_string): If a single byte char has modifier
2538 bits that can't be reflected to the character code, ignore them
2539 instead of signaling an error.
2540
2541 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
2542
2543 * s/msdos.h: Update copyright notice.
2544
2545 * dosfns.h: Update copyright notice.
2546
2547 * dosfns.c: Update copyright notice.
2548
2549 * msdos.c: Update copyright notice.
2550
2551 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2552
2553 * xterm.c (glyph_rect): New function.
2554 (XTmouse_position): Use it to raise the threshold for mouse
2555 movement event generation.
2556
2557 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2558
2559 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
2560 specifies (reverse . t), reverse the initial screen colors.
2561 (IT_set_frame_parameters): If the property is foreground-color,
2562 but we are reversing the colors, set bg_set, not fg_set.
2563 Likewise for setting background-color and reversing: set fg_set.
2564 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
2565 in effect.
2566
2567 * xfaces.c (Finternal_set_lisp_face_attribute)
2568 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
2569 parameters alist.
2570
2571 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2572
2573 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
2574 to a single slash in the middle of file names.
2575
2576 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
2577 Accept only alphanumeric time zone names.
2578
2579 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
2580 or width area.
2581 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
2582 a widget to zero height.
2583
2584 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2585
2586 * window.c (Fwindow_end): Call move_it_past_eol only if
2587 ending up on a partially visible line.
2588
2589 2001-03-01 Dave Love <fx@gnu.org>
2590
2591 * ccl.c (Fccl_execute): Doc fix.
2592
2593 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2594
2595 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
2596 of the tool bar before calling x_figure_window_size.
2597
2598 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
2599 NULL after destroying it, otherwise XTread_socket can access a
2600 destroyed widget when input is unblocked.
2601
2602 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
2603
2604 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
2605 same name as before, although there was a change in fontsets.
2606
2607 2001-02-28 Ken Raeburn <raeburn@gnu.org>
2608
2609 * lisp.h (Fframe_parameter): Declare.
2610
2611 * window.c (set_window_buffer): Field vscroll is an int, not a
2612 Lisp_Object.
2613
2614 2001-02-28 Gerd Moellmann <gerd@gnu.org>
2615
2616 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
2617 NULL instead.
2618
2619 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
2620 NULL instead.
2621
2622 * alloc.c (toplevel): Include process.h.
2623 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
2624 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
2625 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
2626 (allocate_vector, allocate_hash_table, allocate_window)
2627 (allocate_frame, allocate_process, allocate_other_vector):
2628 New functions.
2629 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
2630 (mark_maybe_pointer): New function.
2631 (mark_memory): Also mark Lisp data to which only pointers
2632 remain and not Lisp_Objects.
2633 (min_heap_address, max_heap_address): New variables.
2634 (mem_find): Return MEM_NIL if START is below min_heap_address or
2635 above max_heap_address.
2636 (mem_insert): Compute min_heap_address and max_heap_address.
2637
2638 * process.c (make_process): Use allocate_process.
2639
2640 * frame.c (make_frame): Use allocate_frame.
2641
2642 * window.c (make_window, make_dummy_parent): Use allocate_window.
2643 (Fcurrent_window_configuration): Use allocate_other_vector.
2644
2645 * lisp.h (allocate_vectorlike): Remove prototype.
2646 (allocate_vector, allocate_other_vector, allocate_frame)
2647 (allocate_window, allocate_process, allocate_hash_table):
2648 Add prototypes.
2649
2650 * fns.c (Fdelete, larger_vector): Use allocate_vector.
2651 (make_hash_table, copy_hash_table): Use allocate_hash_table.
2652
2653 2001-02-27 Kenichi Handa <handa@etl.go.jp>
2654
2655 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
2656 treat the produced bytes as a valid multibyte sequence.
2657
2658 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
2659 (ccl_driver) <CCL_WriteMultibyteChar2>:
2660 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
2661 <ccl_finish>: Set ccl->eight_bit_control properly.
2662
2663 * ccl.h (struct ccl_program): New member eight_bit_control.
2664
2665 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
2666
2667 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
2668 accessible_keymaps_char_table.
2669 (accessible_keymaps_char_table): Obey `is_metized'.
2670 (where_is_internal, Fwhere_is_internal): Don't confuse int and
2671 Lisp_Object.
2672
2673 2001-02-26 Gerd Moellmann <gerd@gnu.org>
2674
2675 * dispnew.c: Check HAVE_TERM_H before including term.h.
2676
2677 2001-02-24 Andrew Innes <andrewi@gnu.org>
2678
2679 * makefile.w32-in: Update copyright notice.
2680
2681 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
2682
2683 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
2684
2685 2001-02-24 Kenichi Handa <handa@etl.go.jp>
2686
2687 * Makefile.in (lisp): Add international/utf-8.elc.
2688
2689 * fontset.c (Fnew_fontset): Fix handling of the case that an
2690 element of FONTLIST is a cons of family and registry.
2691
2692 2001-02-23 Jason Rumney <jasonr@gnu.org>
2693
2694 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
2695 to height unconditionally.
2696
2697 * w32term.c (x_set_glyph_string_background_width): Extend the
2698 background face to the end of the drawing area in the text area, only.
2699 (x_insert_glyphs): Call window_box_left to obtain the left
2700 x-coordinate of the area to shift.
2701
2702 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
2703 safe_run_hooks.
2704
2705 2001-02-22 Andrew Innes <andrewi@gnu.org>
2706
2707 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
2708 ($(BLD)\dispnew.obj):
2709 ($(BLD)\editfns.obj):
2710 ($(BLD)\fileio.obj):
2711 ($(BLD)\filelock.obj):
2712 ($(BLD)\keyboard.obj):
2713 ($(BLD)\w32proc.obj):
2714 ($(BLD)\process.obj):
2715 ($(BLD)\sysdep.obj): Ditto.
2716
2717 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
2718 header files.
2719 ($(BLD)/dispnew.$(O)):
2720 ($(BLD)/editfns.$(O)):
2721 ($(BLD)/fileio.$(O)):
2722 ($(BLD)/filelock.$(O)):
2723 ($(BLD)/keyboard.$(O)):
2724 ($(BLD)/w32proc.$(O)):
2725 ($(BLD)/process.$(O)):
2726 ($(BLD)/sysdep.$(O)): Ditto.
2727
2728 2001-02-22 Gerd Moellmann <gerd@gnu.org>
2729
2730 * xdisp.c (forward_to_next_line_start): When taking the shortcut
2731 at the start of the function, check that the \n in it->c is
2732 from the iterator's current position.
2733
2734 * xdisp.c (handle_single_display_prop): Add parameter
2735 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
2736 properties which replace the display of text with something else.
2737 (handle_display_prop): Call handle_single_display_prop with
2738 additional argument saying if we already replaced text display
2739 with something else. Use AREF.
2740 (with_echo_area_buffer_unwind_data, display_menu_bar)
2741 (decode_mode_spec_coding): Use AREF and ASIZE.
2742
2743 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
2744 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
2745 * vmstime.h: Files removed.
2746
2747 * unexencap.c, unexfx2800.c: Files removed.
2748
2749 * dispnew.c (direct_output_for_insert): Give up if we are showing
2750 a message or just cleared the message because we might need to
2751 resize the echo area window or display an empty echo area.
2752
2753 2001-02-21 Gerd Moellmann <gerd@gnu.org>
2754
2755 * xdisp.c (redisplay_internal): Do the
2756 mark_window_display_accurate after all windows have been
2757 redisplayed because this call resets flags in buffers which are
2758 needed for proper redisplay.
2759
2760 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
2761 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
2762 the old names.
2763
2764 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2765 busy_window to hourglass_window, busy_p to hourglass_p.
2766
2767 * msdos.h (struct x_output): Rename busy_window to
2768 hourglass_window, busy_p to hourglass_p.
2769
2770 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2771 busy_window to hourglass_window, busy_p to hourglass_p.
2772
2773 * xfns.c: Rename everything containing *busy_cursor* and similar
2774 to *hourglass*.
2775 (syms_of_w32fns): Rename x-busy-pointer-shape to
2776 x-hourglass-pointer-shape, display-busy-cursor to
2777 display-hourglass, busy-cursor-delay to hourglass-delay.
2778
2779 * w32fns.c: Rename everything containing *busy_cursor* and similar
2780 to *hourglass*.
2781 (syms_of_w32fns): Rename x-busy-pointer-shape to
2782 x-hourglass-pointer-shape, display-busy-cursor to
2783 display-hourglass, busy-cursor-delay to hourglass-delay.
2784
2785 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
2786 of its busy_p flag.
2787
2788 * dispextern.h (start_hourglass, cancel_hourglass)
2789 (display_hourglass_p): Renamed from *busy_cursor*.
2790
2791 2001-02-20 Gerd Moellmann <gerd@gnu.org>
2792
2793 * keyboard.c (read_char): When an event from unread-command-events
2794 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
2795
2796 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
2797 equal to the current buffer.
2798
2799 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
2800 nil, otherwise we're left with truncate_lines t when a message
2801 is printed with message-truncate-lines bound to t.
2802
2803 2001-02-19 Gerd Moellmann <gerd@gnu.org>
2804
2805 * window.c (Fmove_to_window_line): Undo last change.
2806 (displayed_window_lines): Call line_bottom_y to determine
2807 the line's bottom position.
2808
2809 * dispextern.h (line_bottom_y): Add prototype.
2810
2811 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
2812 (pos_visible_p): Use it.
2813
2814 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
2815 set redisplaying_p to 0 here instead of in Frecursive_edit.
2816 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
2817 set redisplaying_p.
2818
2819 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
2820 New variables.
2821 (syms_of_xdisp): Initialize new variables.
2822 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
2823 Specbind `inhibit-menubar-update' when updating the menu bar.
2824
2825 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
2826 safe_run_hooks.
2827
2828 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
2829 safe_run_hooks.
2830
2831 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
2832 is null.
2833
2834 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
2835 to the start of the file.
2836
2837 2001-02-16 Gerd Moellmann <gerd@gnu.org>
2838
2839 * window.c (set_window_buffer): Fix last change.
2840
2841 * window.c (set_window_buffer): Set window's vscroll to 0.
2842
2843 * window.c (coordinates_in_window): Increase width of area
2844 where the vertical line can be dragged.
2845
2846 * xterm.c (x_set_glyph_string_background_width): Extend the
2847 background face to the end of the drawing area in the text
2848 area, only.
2849
2850 * xdisp.c (handle_single_display_prop): Set iterator's position
2851 to where the `display' property starts, like for images.
2852 (dump_glyph): New function.
2853 (dump_glyph_row): Use it. Dump info about marginal areas.
2854
2855 * dispnew.c (direct_output_for_insert): Recognize more cases where
2856 glyphs can be written instead of being inserted.
2857
2858 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
2859 the left x-coordinate of the area to shift.
2860
2861 * dired.c (directory_files_internal): Set result list to nil
2862 before retrying.
2863
2864 2001-02-15 Kenichi Handa <handa@etl.go.jp>
2865
2866 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
2867 invalid multibyte sequence, treat *SRC as a character of
2868 eight-bit-graphic.
2869
2870 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
2871
2872 * textprop.c (Fset_text_properties): Doc fix.
2873
2874 2001-02-15 Gerd Moellmann <gerd@gnu.org>
2875
2876 * dispnew.c (update_text_area): Undo change of 2001-01-12.
2877
2878 2001-02-14 Dave Love <fx@gnu.org>
2879
2880 * coding.c: Doc and message fixes.
2881
2882 2001-02-14 Andrew Innes <andrewi@gnu.org>
2883
2884 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
2885 Emacs frame above the screen size.
2886
2887 2001-02-14 Gerd Moellmann <gerd@gnu.org>
2888
2889 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
2890
2891 2001-02-13 Gerd Moellmann <gerd@gnu.org>
2892
2893 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
2894 case that TO ends up beyond ZV after running before-change-functions.
2895
2896 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
2897 the selected window if it is showing the buffer in question.
2898
2899 * dired.c (directory_files_internal): Initialize errno.
2900 (toplevel): Include errno.h.
2901
2902 2001-02-13 Kenichi Handa <handa@etl.go.jp>
2903
2904 * xfaces.c (best_matching_font): New parameter width_ratio.
2905 Multiply avgwidth by width_ratio.
2906 (choose_face_font): Call best_matching_font with width_ratio
2907 calculated from the column width of C.
2908
2909 2001-02-12 Andrew Innes <andrewi@gnu.org>
2910
2911 The following changes are to draw box lines inside characters area
2912 if line-width is negative.
2913
2914 * w32term.c (x_produce_image_glyph): Pay attention to the case that
2915 face->box_line_width is negative.
2916 (x_produce_stretch_glyph): Likewise.
2917 (x_produce_glyphs): Likewise.
2918 (x_estimate_mode_line_height): Likewise.
2919 (x_draw_glyph_string_background): Likewise.
2920 (x_draw_glyph_string_foreground): Likewise.
2921 (x_draw_composite_glyph_string_foreground): Likewise.
2922 (x_draw_glyph_string_box): Likewise.
2923 (x_draw_image_foreground): Likewise.
2924 (x_draw_image_relief): Likewise.
2925 (x_draw_image_foreground_1): Likewise.
2926 (x_draw_image_glyph_string): Likewise.
2927
2928 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2929
2930 The following changes are to draw box lines inside characters area
2931 if line-width is negative.
2932
2933 * xterm.c (x_produce_image_glyph): Pay attention to the case that
2934 face->box_line_width is negative.
2935 (x_produce_stretch_glyph): Likewise.
2936 (x_produce_glyphs): Likewise.
2937 (x_estimate_mode_line_height): Likewise.
2938 (x_draw_glyph_string_background): Likewise.
2939 (x_draw_glyph_string_foreground): Likewise.
2940 (x_draw_composite_glyph_string_foreground): Likewise.
2941 (x_draw_glyph_string_box): Likewise.
2942 (x_draw_image_foreground): Likewise.
2943 (x_draw_image_relief): Likewise.
2944 (x_draw_image_foreground_1): Likewise.
2945 (x_draw_image_glyph_string): Likewise.
2946
2947 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
2948 and :line-width can be negative.
2949 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
2950
2951 2001-02-09 Jason Rumney <jasonr@gnu.org>
2952
2953 * w32term.c (w32_encode_char): Treat eight bit graphic and control
2954 characters the same as ASCII and latin-1.
2955 (x_display_and_set_cursor): Check for the focus frame's selected
2956 window instead of selected_window.
2957 (x_after_update_window_line): Don't clear if frame's internal
2958 border width is zero.
2959 (x_new_font): Don't change a tooltip's size.
2960 (w32_initialize): Set char_ins_del_ok to 1.
2961
2962 * w32fns.c (Fx_show_tip): Fix calls to make_number.
2963 (x_set_font): If font hasn't changed, avoid recomputing
2964 faces and other things.
2965 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
2966 (Fx_create_frame): Add the tool bar height to the frame height.
2967 (x_create_tip_frame): Prevent changing the tooltip's
2968 background color by specifying a color for the default font
2969 in .Xdefaults.
2970 (Qcancel_timer): New variable.
2971 (syms_of_w32fns): Initialize and staticpro it.
2972 (Fx_hide_tip, Fx_show_tip): Use it.
2973 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
2974 the timer.
2975 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
2976
2977 * w32.c (init_environment): Duplicate local string before putenv.
2978
2979 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
2980
2981 * charset.c (Fstring): A typo.
2982
2983 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2984
2985 * charset.c (Fstring): If all arguments are less than 256, return
2986 a unibyte string.
2987
2988 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
2989 return a unibyte string.
2990
2991 * coding.c (code_convert_region): After detecting a coding, if
2992 nothing found, set coding->composing to COMPOSITION_NO.
2993 (decode_coding_string): Likewise.
2994
2995 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
2996
2997 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
2998 to avoid overflow.
2999
3000 2001-02-07 Kenichi Handa <handa@etl.go.jp>
3001
3002 * charset.c (parse_str_to_multibyte): New function.
3003
3004 * charset.h (parse_str_to_multibyte): Extern it.
3005
3006 * print.c (print_string): If we are going to print a unibyte
3007 string into a multibyte buffer, convert the string to multibyte by
3008 str_to_multibyte.
3009
3010 2001-02-06 Andrew Innes <andrewi@gnu.org>
3011
3012 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
3013 been created. It seems we can get sent window messages such as
3014 WM_ERASEBKGND before we properly update a frame.
3015
3016 2001-02-06 Gerd Moellmann <gerd@gnu.org>
3017
3018 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
3019 Avoid some unnecessary cursor positioning.
3020
3021 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3022
3023 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
3024 (LFACE_AVGWIDTH): New macro.
3025 (LFACEP): Use AREF.
3026 (check_lface_attrs): Check LFACE_AVGWIDTH.
3027 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
3028 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
3029 (merge_face_vectors): Check LFACE_AVGWIDTH.
3030 (Finternal_make_lisp_face): Use AREF.
3031 (xm_set_menu_resources_from_menu_face)
3032 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
3033 (Finternal_lisp_face_empty_p): Use AREF.
3034 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
3035 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
3036 Compare average widths..
3037 (best_matching_font): Arrange for comparing average widths.
3038
3039 * dispextern.h (enum lface_attribute_index):
3040 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
3041
3042 2001-02-05 Dave Love <fx@gnu.org>
3043
3044 * puresize.h: Revert last change following loadup.el change.
3045
3046 2001-02-05 Andrew Innes <andrewi@gnu.org>
3047
3048 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
3049 invocation of temacs, to work with Windows 2000.
3050 (bootstrap-emacs): Ditto.
3051
3052 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3053
3054 * xterm.c (x_display_and_set_cursor): Check for the focus
3055 frame's selected window instead of selected_window.
3056
3057 * xdisp.c (try_scrolling): If point is in the line below the
3058 window, make sure to move the iterator at least a canonical
3059 char height down.
3060
3061 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
3062
3063 2001-02-05 Kenichi Handa <handa@etl.go.jp>
3064
3065 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
3066 If invalid, execute CCL_INVALID_CMD.
3067 (ccl_driver): If the CCL program is terminated because of
3068 CCL_STAT_INVALID_CMD, copy the remaining source data to the
3069 destination instead of throwing them away.
3070
3071 2001-02-02 Gerd Moellmann <gerd@gnu.org>
3072
3073 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
3074 faces and other things.
3075
3076 * xdisp.c (get_next_display_element): Fix case of empty
3077 display table entry.
3078
3079 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
3080
3081 * editfns.c (Fconstrain_to_field): Doc fix.
3082
3083 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
3084 into `thoroughly', to make it consistent with the doc string.
3085
3086 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
3087
3088 2001-02-01 Gerd Moellmann <gerd@gnu.org>
3089
3090 * search.c (search_buffer): Call set_search_regs with a byte
3091 position, not a character position.
3092
3093 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
3094 minibuffer-only,
3095
3096 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
3097
3098 * frame.c (Fmodify_frame_parameters): Doc fix.
3099
3100 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3101
3102 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
3103 identifier which is not reserved by Standard C.
3104
3105 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
3106
3107 * window.c (enum window_part): New enumeration.
3108 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
3109 Qright_bitmap_area.
3110 (coordinates_in_window): Return an enumerator from enum
3111 window_part. Fix handling of right scroll bar.
3112 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
3113 `right-fringe' instead of `left-bitmap-area' and
3114 `right-bitmap-area'. Use enumerators from enum window_part
3115 instead of hard-coded integers.
3116 (check_window_containing, window_from_coordinates):
3117 Use enumerators from enum window_part instead of hard-coded integers.
3118 (syms_of_window): Replace Qleft_bitmap_area and
3119 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
3120
3121 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
3122
3123 * editfns.c (Fformat_time_string): Doc fix.
3124
3125 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
3126
3127 * keymap.c (Fwhere_is_internal): Use the first valid binding
3128 if no ascii binding is found (when firstonly is t).
3129
3130 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3131
3132 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
3133 instead of Finteractive_p.
3134
3135 * lisp.h (interactive_p): Add prototype.
3136
3137 * eval.c (interactive_p): New function.
3138 (Finteractive_p): Use it.
3139
3140 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
3141
3142 2001-01-31 Dave Love <fx@gnu.org>
3143
3144 * .gdbinit (hook-run): Define to run xreload.
3145
3146 * textprop.c (Fset_text_properties): Fix newline in doc string.
3147
3148 2001-01-30 Gerd Moellmann <gerd@gnu.org>
3149
3150 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
3151 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
3152
3153 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
3154 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
3155 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
3156
3157 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
3158 height.
3159
3160 2001-01-30 Dave Love <fx@gnu.org>
3161
3162 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
3163 AFTER_POTENTIAL_GC.
3164
3165 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3166
3167 * bytecode.c (Fbyte_code) <Bcurrent_column>:
3168 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
3169
3170 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
3171
3172 * textprop.c (Fset_text_properties): Doc fix.
3173
3174 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3175
3176 * xdisp.c (forward_to_next_line_start): Remove xassert.
3177
3178 2001-01-29 Jason Rumney <jasonr@gnu.org>
3179
3180 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
3181 returning without releasing it.
3182
3183 2001-01-29 Kenichi Handa <handa@etl.go.jp>
3184
3185 * w32fns.c (w32_font_match): Allocate three more bytes to regex
3186 for '^', '$', and '\0'.
3187
3188 2001-01-28 Andrew Choi <akochoi@i-cable.com>
3189
3190 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
3191 regex for '^', '$', and '\0'.
3192
3193 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
3194 only if current_sblock has been initialized.
3195
3196 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
3197 terminal frame even if it is the only visible frame.
3198
3199 2001-01-28 Kenichi Handa <handa@etl.go.jp>
3200
3201 * fontset.c (font_family_registry): Even if FONTNAME conform to
3202 XLFD, if it specifies other fields than family and registry,
3203 return FONTANME. New argument FORCE if nonzero cancel that feature.
3204 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
3205 a signle byte character. Don't set FAMILY part to nil here.
3206 It is handled by the caller choose_face_font.
3207 (Fnew_fontset): Call font_family_registry with FORCE 0.
3208 (Fset_fontset_font): Likewise.
3209
3210 2001-01-27 Gerd Moellmann <gerd@gnu.org>
3211
3212 * xdisp.c (display_line): Don't treat a newline as fitting
3213 on the line.
3214
3215 2001-01-26 Gerd Moellmann <gerd@gnu.org>
3216
3217 * window.c (size_window): Set the window's orig_top to nil when
3218 changing heights, so that a future shrink_mini_window won't
3219 restore a bogus height.
3220
3221 * frame.c (do_switch_frame): If selected frame has a mini-window,
3222 resize that to exact size.
3223
3224 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
3225
3226 * xdisp.c (display_line): Simplify check for glyphs fitting
3227 entirely in the line.
3228
3229 * xfns.c (xic_style): New variable.
3230 (create_frame_xic): Move static variable to global scope for
3231 the case that `static' gets defined away.
3232
3233 2001-01-26 Kenichi Handa <handa@etl.go.jp>
3234
3235 * coding.c (decode_coding): Set a flag for inhibiting
3236 inconsistent eol.
3237 (code_convert_region): Always set saved_coding_symbol.
3238 (decode_coding_string): Likewise. Update coding->symbol when we
3239 encounter a inconsistent eol by the same way as code_convert_region.
3240
3241 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3242
3243 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
3244 XClearArea.
3245
3246 * xterm.c (x_after_update_window_line): Don't clear if frame's
3247 internal border width is zero.
3248 (x_clear_area): New function.
3249 (x_after_update_window_line, x_clear_end_of_line)
3250 (x_scroll_bar_create, x_scroll_bar_set_handle)
3251 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
3252 instead of XClearArea.
3253
3254 * xterm.h (x_clear_area): Add prototype.
3255
3256 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
3257 which doesn't seem necessary anymore with Lesstif 0.92.
3258
3259 2001-01-25 Dave Love <fx@gnu.org>
3260
3261 * puresize.h (BASE_PURESIZE): Up to 720000.
3262
3263 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
3264
3265 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3266
3267 * xdisp.c (echo_area_display): Don't call redisplay_internal
3268 when Emacs is shutting down. We can't run hooks etc. that
3269 would be necessary to do a redisplay.
3270
3271 * lread.c (read_integer): Use type EMACS_INT instead of int.
3272
3273 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
3274
3275 * ccl.c (ccl_driver): Fix last change.
3276
3277 2001-01-25 Kenichi Handa <handa@etl.go.jp>
3278
3279 * ccl.h (sturct ccl_program): New member suppress_error.
3280
3281 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
3282 insert error message to the output.
3283 (setup_ccl_program): Initialize ccl->suppress_error to 0.
3284
3285 * coding.h (struct coding_system): New member suppress_error.
3286
3287 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
3288 (Fset_terminal_coding_system_internal): Set the member
3289 suppress_error to 1.
3290 (Fset_safe_terminal_coding_system_internal): Likewise.
3291
3292 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
3293
3294 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
3295 as if it was a `charset'.
3296
3297 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3298
3299 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
3300 value in where_is_cache; the next lookup in the cache returns
3301 something bogus if we do.
3302
3303 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3304
3305 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
3306 if HAVE_WINDOW_SYSTEM isn't defined.
3307
3308 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3309
3310 * fns.c (sweep_weak_table): Fix code taking items out of
3311 the hash collision chain. Some cleanup.
3312
3313 * xterm.c (x_new_font): Don't change a tooltip's size.
3314
3315 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
3316 background color by specifying a color for the default font
3317 in .Xdefaults.
3318
3319 2001-01-24 Kenichi Handa <handa@etl.go.jp>
3320
3321 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
3322 a workaround for SunOS 4's cc.
3323 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
3324 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
3325 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
3326 statement.
3327
3328 2001-01-23 Gerd Moellmann <gerd@gnu.org>
3329
3330 * xterm.c (x_set_window_size_1): New function extracted from
3331 x_set_window_size.
3332 (x_set_window_size): Use it.
3333 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
3334 doesn't have a widget, like tooltips.
3335
3336 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
3337
3338 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
3339
3340 2001-01-23 Kenichi Handa <handa@etl.go.jp>
3341
3342 * fns.c (Fset_char_table_default): Fix to make sub char-table
3343 correctly.
3344
3345 2001-01-22 Gerd Moellmann <gerd@gnu.org>
3346
3347 * xdisp.c (build_desired_tool_bar_string): Make sure we have
3348 a desired tool bar string, even if there are no tool bar items.
3349
3350 * xdisp.c (Ftool_bar_lines_needed): New function.
3351 (syms_of_xdisp): Defsubr it.
3352
3353 * editfns.c (Fformat): Don't extend text properties from arguments
3354 to padding chars in the result.
3355
3356 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
3357
3358 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
3359
3360 2001-01-20 Andrew Innes <andrewi@gnu.org>
3361
3362 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
3363 (w32_initialize): Don't set term hooks that aren't actually needed
3364 in windowed mode.
3365
3366 * xfaces.c (realize_default_face):
3367 (realize_face):
3368 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
3369
3370 * xdisp.c (handle_single_display_prop): Remove references to
3371 FRAME_W32_CONSOLE_P.
3372
3373 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
3374
3375 * frame.h (output_method): Remove output_w32_console method.
3376 (FRAME_W32_CONSOLE_P): Remove macro.
3377
3378 * frame.c (Qw32_console): Remove variable.
3379 (Fframep): Remove references to it.
3380 (syms_of_frame): Ditto.
3381 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
3382
3383 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
3384 redefinition.
3385
3386 2001-01-20 Kenichi Handa <handa@etl.go.jp>
3387
3388 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
3389
3390 2001-01-19 Andrew Innes <andrewi@gnu.org>
3391
3392 * w32.c (init_environment): Add a version-independent site-lisp
3393 directory to EMACSLOADPATH, after the version dependent one.
3394
3395 2001-01-19 Gerd Moellmann <gerd@gnu.org>
3396
3397 * editfns.c (Fbuffer_substring): Doc fix.
3398
3399 * xdisp.c (message_dolog, message2, message2_nolog):
3400 Rename parameter LEN to NBYTES.
3401
3402 2001-01-19 Kenichi Handa <handa@etl.go.jp>
3403
3404 * charset.c (strwidth): Use c_string_width.
3405 (c_string_width): New function.
3406 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
3407 Caller changed.
3408
3409 * charset.h (c_string_width, lisp_string_width): Extern them.
3410
3411 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
3412
3413 * indent.c (check_composition): Check validity of composition.
3414
3415 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
3416 characters by calling c_string_width.
3417 (x_consider_frame_title): Get byte length of frame tile string
3418 correctly.
3419 (display_mode_element): Pay attention to width of non-ASCII
3420 characters by calling strwidth.
3421
3422 2001-01-18 Gerd Moellmann <gerd@gnu.org>
3423
3424 * xfns.c (Qcancel_timer): New variable.
3425 (syms_of_xfns): Initialize and staticpro it.
3426 (Fx_hide_tip, Fx_show_tip): Use it.
3427 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3428 the timer.
3429 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
3430
3431 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
3432
3433 * window.h (WINDOW_LIVE_P): New macro.
3434
3435 * window.c (window_size_fixed): New variable.
3436 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
3437 the doc string.
3438
3439 * eval.c (specbind): If binding a per-buffer variable which
3440 doesn't have a buffer-local value in the current buffer, change
3441 the global value by changing the value of the symbol bound in all
3442 buffers not having their own value, to make it consistent with
3443 what happens with other buffer-local variables.
3444
3445 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
3446
3447 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
3448 when searching for a newline.
3449
3450 2001-01-18 Kenichi Handa <handa@etl.go.jp>
3451
3452 * xdisp.c (display_string): Fix previous change.
3453
3454 2001-01-18 Jason Rumney <jasonr@gnu.org>
3455
3456 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
3457 GLYPH_DEBUG is defined.
3458 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
3459 true for images with `:ascent 100'.
3460 (x_set_mouse_face_gc): If the last used mouse face has gone in the
3461 meantime, use face MOUSE_FACE_ID.
3462 If first glyph isn't a character glyph, use the ASCII NUL
3463 character to determine the face.
3464 (expose_area): Do not treat left margin specially.
3465 (note_mode_line_highlight): If no local_map, check global keymap.
3466 (note_mouse_highlight): Initialize overlay.
3467 (clear_mouse_face): Don't return if tip_frame is non-nil.
3468 (show_scroll_bars): Remove unused function.
3469 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
3470 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
3471 Clip to row.
3472 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
3473 (x_free_frame_resources): Unload relief colors.
3474
3475 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3476
3477 * xdisp.c (forward_to_next_line_start): Avoid calling
3478 get_next_display_element when the newline is already found.
3479 This may change the iterator's position, when its current position is
3480 equal to the iterator's stop_charpos.
3481
3482 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
3483 zero, use this method only at the end of a line.
3484
3485 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
3486 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
3487 if SCALABLE_FONTS_P is set.
3488
3489 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
3490 so that scalable fonts are included.
3491
3492 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
3493 In the cache, use a key containing the information if scalable
3494 fonts are included.
3495 (x_load_font): Adapt to change of keys in the font cache.
3496
3497 2001-01-17 Kim F. Storm <storm@filanet.dk>
3498
3499 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
3500 XListFonts to take advantage of font caching.
3501
3502 * xterm.c (x_list_fonts): Ensure caching font information when
3503 called for a null frame, which is the case frequently when Emacs
3504 starts.
3505
3506 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3507
3508 * xfns.c (QCconversion): Replaces QCalgorithm.
3509
3510 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
3511
3512 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
3513 of :algorithm.
3514
3515 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
3516 not everything could be displayed.
3517
3518 * line.h, x-list-font.c: Files removed because unused.
3519
3520 2001-01-17 Andrew Innes <andrewi@gnu.org>
3521
3522 * dired.c (directory_files_internal): Convert result from readdir
3523 to a unibyte string initially, to avoid possible misinterpretation
3524 of some bytes as the internal form of Emacs characters.
3525
3526 2001-01-17 Kenichi Handa <handa@etl.go.jp>
3527
3528 * fns.c (concat): Be sure to avoid putting the same `composition'
3529 property on the adjacent regions.
3530
3531 2001-01-16 Gerd Moellmann <gerd@gnu.org>
3532
3533 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
3534 (Fscroll_right, Fscroll_left): Set it here instead, if called
3535 interactively.
3536
3537 * buffer.c (Fset_buffer_modified_p): Set buffer's
3538 prevent_redisplay_optimizations_p flag.
3539
3540 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
3541 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
3542 with additional arg.
3543
3544 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
3545 Change prototype.
3546
3547 * xdisp.c (redisplay_preserve_echo_area): Add parameter
3548 FROM_WHERE, for debugging.
3549
3550 2001-01-16 Kenichi Handa <handa@etl.go.jp>
3551
3552 * ccl.c (Fregister_ccl_program): Handle the return value of
3553 resolve_symbol_ccl_program correctly.
3554 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
3555
3556 2001-01-15 Gerd Moellmann <gerd@gnu.org>
3557
3558 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
3559 has gone in the meantime, use face MOUSE_FACE_ID.
3560
3561 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
3562 If x_display_info_for_display returns null, don't try to close
3563 the display; we didn't open it.
3564
3565 * dispnew.c (save_or_restore_current_matrices): Function removed.
3566 (save_current_matrix, restore_current_matrix): New functions.
3567 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
3568 restore the frame's current matrix. Due to the glyph pointer
3569 setup done in adjust_glyph_matrix, there is no easy way to make
3570 saving the current matrix in the desired matrix generally correct,
3571 so don't try it.
3572
3573 2001-01-15 Kenichi Handa <handa@etl.go.jp>
3574
3575 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
3576 truncation glyphs.
3577 (display_line): Optimize for wide characters.
3578 (display_string): Don't try to display a multi-column character
3579 partially. On ttys, produce more than one truncation glyph for
3580 multi-column characters that don't fit on the line.
3581
3582 2001-01-13 Kenichi Handa <handa@etl.go.jp>
3583
3584 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
3585 Define it instead of WORDS_BIGENDIAN. Caller changed.
3586
3587 2001-01-13 Jason Rumney <jasonr@gnu.org>
3588
3589 * w32fns.c (Fimage_size, image_ascent, lookup_image)
3590 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
3591 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3592 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
3593
3594 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
3595 (x_draw_image_relief, x_draw_image_foreground_1)
3596 (x_draw_image_glyph_string): Adapt to change of image margins.
3597
3598 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
3599 variables.
3600
3601 * w32bdf.c (search_file_line, get_cached_font_char)
3602 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
3603
3604 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
3605
3606 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
3607 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
3608 (Fw32_send_sys_command): Remove unused variables.
3609 (w32_msg_pump): Add parentheses.
3610
3611 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
3612 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
3613 Add parentheses.
3614
3615 2001-01-12 Gerd Moellmann <gerd@gnu.org>
3616
3617 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
3618 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
3619 being a pair of margins.
3620 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
3621 to DEFVAR_LISP. Extend doc.
3622
3623 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
3624 margins.
3625 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
3626 pair of integers `(X . Y)', use X for the horizontal and Y for the
3627 vertical margin.
3628 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
3629 (parse_image_spec): Check it.
3630 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3631 (tiff_format, gif_format, gs_format):
3632 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
3633
3634 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
3635 (x_draw_image_relief, x_draw_image_foreground_1)
3636 (x_draw_image_glyph_string): Adapt to the change of image margins.
3637
3638 * dispextern.h (struct image): Replace member `margin' with
3639 `hmargin' and `vmargin'.
3640
3641 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
3642 and GLYPHS.
3643
3644 * dispnew.c (update_text_area): Put code which decrements the
3645 stop position when the row's face extends to the end of the
3646 line in #if 0.
3647
3648 * xfns.c (x_set_mouse_color): Fix color allocation.
3649
3650 * keyboard.c: Call get_local_map with new argument list.
3651
3652 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
3653
3654 * intervals.h (enum map_property): Removed.
3655 (get_local_map): Change prototype.
3656
3657 * keymap.c: Call get_local_map with new argument list.
3658 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
3659
3660 2001-01-11 Gerd Moellmann <gerd@gnu.org>
3661
3662 * xdisp.c (build_desired_tool_bar_string): Correct the computation
3663 of the size needed for the tool bar string. For the last image,
3664 use a `display' property that reaches to the end of the string.
3665
3666 * xselect.c (selection_request_dpyinfo): New variable.
3667 (x_handle_selection_request): Set it.
3668 (x_selection_request_lisp_error): Don't call
3669 x_decline_selection_request if selection request's display has
3670 been closed.
3671
3672 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
3673 Do the unregister_colors before calling XFreeColors.
3674
3675 2001-01-10 Dave Love <fx@gnu.org>
3676
3677 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
3678 ${SOME_MACHINE_LISP}, not ${lisp}.
3679
3680 2001-01-10 Gerd Moellmann <gerd@gnu.org>
3681
3682 * xdisp.c (display_line): On ttys, produce more than one truncation
3683 glyph for multi-column characters that don't fit on the line.
3684
3685 * xselect.c (x_reply_selection_request): Add a comment.
3686
3687 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
3688 XkbGetNames instead of XkbGetKeyboard.
3689
3690 2001-01-10 Dave Love <fx@gnu.org>
3691
3692 * sysdep.c (random): Revert the declaration.
3693
3694 2001-01-09 Gerd Moellmann <gerd@gnu.org>
3695
3696 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
3697 Call function string_bytes.
3698 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
3699
3700 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
3701 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
3702 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
3703 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
3704 the current sblock.
3705 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
3706 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
3707 after sweeping strings, and at the end.
3708 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
3709
3710 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
3711 ensure that pop_message is called.
3712
3713 * keyboard.c (Fexecute_extended_command): Use a
3714 record_unwind_protect to ensure that pop_message is called.
3715
3716 * lisp.h (push_message_unwind): Add prototype.
3717
3718 * xdisp.c (push_message_unwind): New function.
3719
3720 * fileio.c (do_auto_save_unwind): Do the pop_message here
3721 instead of in Fdo_auto_save.
3722 (Fdo_auto_save): Don't call pop_message.
3723
3724 2001-01-08 Ken Raeburn <raeburn@gnu.org>
3725
3726 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
3727 in inner block.
3728
3729 2001-01-08 Gerd Moellmann <gerd@gnu.org>
3730
3731 * window.c (window_scroll_pixel_based): Adjust glyph matrices
3732 when increasing window's vscroll.
3733
3734 * macros.c (Qkbd_macro_termination_hook): New variable.
3735 (syms_of_macros): Initialize and staticpro it.
3736 (pop_kbd_macro): Run kbd-macro-termination-hook.
3737
3738 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
3739
3740 2001-01-07 Dave Love <fx@gnu.org>
3741
3742 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
3743 arglist, for documentation's sake.
3744
3745 2001-01-06 Andrew Innes <andrewi@gnu.org>
3746
3747 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
3748 of *.pdb.
3749
3750 2001-01-05 Andrew Innes <andrewi@gnu.org>
3751
3752 * term.c (update_end): Don't check updating_frame; for some reason
3753 this can be 0 sometimes, such as after dismissing a popup menu,
3754 and isn't necessary given the explicit frame argument.
3755
3756 2001-01-05 Gerd Moellmann <gerd@gnu.org>
3757
3758 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
3759 on some systems, and an unsigned long on others, like FreeBSD 4.1.
3760
3761 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3762
3763 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
3764
3765 * xfns.c (x_create_tip_frame): Preserve the value of
3766 face_change_count around the creation of the tip frame.
3767
3768 * xfns.c (last_show_tip_args): New variable.
3769 (compute_tip_xy): New function.
3770 (Fx_show_tip): Reuse an existing tip frame, if possible.
3771 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
3772
3773 2001-01-04 Dave Love <fx@gnu.org>
3774
3775 * editfns.c (Fformat): Doc fix.
3776
3777 * systime.h (set_file_times): Prototype.
3778
3779 * widget.h (EmacsFrameSetCharSize_): Prototype.
3780
3781 * sysdep.c (random, srandom): Declare explicitly.
3782
3783 * dispextern.h (move_it_vertically_backward): Declare.
3784
3785 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3786
3787 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
3788 like in Fx_create_frame.
3789
3790 * xfaces.c (set_font_frame_param): Don't do anything for
3791 non-graphical frames.
3792
3793 * window.c (Fdelete_other_windows): Set window's window_end_valid
3794 to nil when changing the window's start. Don't change the
3795 window's start when its top position hasn't changed. If we do,
3796 this will set the window's optional_new_start, which act's like a
3797 force_start during redisplay with C-x 1 M-> under particular
3798 circumstances (see report from Per Starback to emacs-pretest-bug
3799 from 2000-12-13.).
3800
3801 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3802
3803 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
3804 short cut at the start of the function. Add an assertion.
3805 (reseat_at_next_visible_line_start): Add an assertion.
3806
3807 * window.c (Frecenter): When changing the window start, set the
3808 window's window_end_valid to nil.
3809 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
3810
3811 * dispextern.h (move_it_past_eol): Add prototype.
3812
3813 * xdisp.c (move_it_past_eol): New function.
3814
3815 * window.c (Fwindow_end): Doc fix.
3816
3817 2001-01-03 Dave Love <fx@gnu.org>
3818
3819 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
3820
3821 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3822
3823 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
3824 the enabled_p flag of the glyph row at window_end_vpos to 0.
3825 (handle_single_display_prop): Fix last change.
3826
3827 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3828
3829 * window.c (Frecenter): Doc fix.
3830
3831 2001-01-02 Andrew Innes <andrewi@gnu.org>
3832
3833 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
3834
3835 * frame.h (output_method): Add output_w32_console method.
3836 (FRAME_W32_CONSOLE_P): New macro.
3837
3838 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
3839 use output_w32_console method.
3840 (Qw32_console): New Lisp_Object.
3841 (Fframep): Return it.
3842 (syms_of_frame): Init it.
3843 (Fframe_parameters): Report w32console as font for w32_console frames.
3844
3845 * xfaces.c (realize_default_face): Set face foreground and
3846 background to unspecified for w32_console frames.
3847 (realize_face): Realize face cache for w32_console frames.
3848 (realize_tty_face): Accept w32_console frames.
3849
3850 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
3851 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
3852 necessary, even if running interactively.
3853
3854 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
3855 w32_console frames.
3856
3857 * w32term.c (x_update_begin):
3858 (x_update_end):
3859 (x_clear_frame):
3860 (x_ins_del_lines):
3861 (x_change_line_highlight):
3862 (x_delete_glyphs):
3863 (w32_ring_bell):
3864 (x_update_begin):
3865 (x_update_end):
3866 (w32_reassert_line_highlight):
3867 (w32_frame_rehighlight):
3868 (w32_frame_raise_lower): Do nothing if not w32 frame.
3869
3870 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
3871
3872 * w32fns.c (Fx_display_color_cells): Determine correct value, when
3873 system doesn't tell us directly.
3874 (Fx_display_visual_class): Implement properly.
3875
3876 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3877
3878 * window.c (Frecenter): Handle centering in graphical frames
3879 specially. Centering on the basis of line counts doesn't work
3880 reliably with variable-height lines.
3881
3882 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3883
3884 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
3885 and al[].
3886
3887 * composite.c (run_composition_function): Remove unused var `val'.
3888 (update_compositions): Remove unused variable `hook'.
3889
3890 * intervals.c (get_local_map): Remove unused variable `tem'.
3891
3892 * doprnt.c (doprnt1): Remove unused variable `size'.
3893
3894 * fns.c (Flength): Remove unused variable `tail'.
3895 (Fdelete): Remove unused variable `size'.
3896
3897 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
3898 and `gcpro2'.
3899
3900 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
3901
3902 * data.c (find_symbol_value): Remove extra 3rd argument in the
3903 call to swap_in_symval_forwarding.
3904
3905 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
3906
3907 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
3908 (trivial_regexp_p): Remove unused variable `c'.
3909 (boyer_moore): Remove unused variable `k'.
3910
3911 * indent.c (current_column): Remove unused variable `stopchar'.
3912 (Fcompute_motion): Remove unused variable `contin'.
3913
3914 * casefiddle.c (casify_object): Remove unused variable `tolen'.
3915
3916 * dired.c (directory_files_internal): Fix a typo in a comment.
3917 Remove an unused variable `handler'.
3918 (file_name_completion): Remove unused function-scope variable `dp'.
3919 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
3920 on BSD4_2.
3921
3922 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
3923
3924 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
3925 and `buf'.
3926 (Fmarker_insertion_type): Remove unused variable `buf'.
3927
3928 * insdel.c (make_gap): Remove unused variable `result'.
3929
3930 * keyboard.c (record_char): Remove unused function-scope var `help'.
3931 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
3932 (menu_bar_items): Remove unused function-scope variable `tem'.
3933
3934 * fontset.c (fontset_ref): Remove unused variable `i'.
3935 (fontset_set): Remove unused variables `j' and `tmp'.
3936 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
3937 (make_fontset_for_ascii_face): Remove unused variable `name'.
3938 (fs_load_font): Remove unused variable `font_idx'.
3939 (fs_query_fontset): Remove unused function-local variable `fontset'.
3940 (list_fontsets): Remove unused variable `tail'.
3941 (Fnew_fontset): Remove unused variables `family' and `registry'.
3942 (accumulate_font_info): Remove unused variable `tmp'.
3943 (Ffontset_font): Remove unused variable `id'.
3944 (syms_of_fontset): Remove unused variable `i'.
3945
3946 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
3947 to x_term_init.
3948 (lookup_image): Remove unused variable `file'.
3949 (xbm_load): Remove unused variables `bitmap_data', `height', and
3950 `width'. Remove function-local variable `i', leave the
3951 block-local one.
3952 (gif_load): Remove unused variable `inc'.
3953
3954 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
3955 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
3956 leave only the one in the inner block.
3957
3958 * xfaces.c (face_fontset, realize_default_face): Remove unused
3959 variable `fontset'.
3960 (face_at_buffer_position): Remove unused variable `multibyte_p'.
3961
3962 * term.c (encode_terminal_code): Remove unused variable `c'.
3963
3964 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
3965 char *' instead of `char *'.
3966
3967 * category.c (Fcategory_docstring): Remove unused variable `doc'.
3968 (Fget_unused_category): Remove unused variable `docstring_vector'.
3969 (Fchar_category_set): Remove unused variables `val', `charset',
3970 `c1' and `c2'.
3971
3972 * coding.c (detect_coding_iso2022, setup_coding_system):
3973 Remove unused variable `i'.
3974 (detect_coding_mask): Remove unused variable `idx'.
3975 (detect_coding): Remove unused variable `i'.
3976 (ccl_coding_driver): Remove unused variable `result'.
3977 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
3978 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
3979 (encode_coding_string): Remove unused variables `gcpro1' and
3980 `saved_coding_symbol'.
3981 (Ffind_coding_systems_region_internal): Remove function-local
3982 variable args[], leave only the block-local one.
3983 (code_convert_region1): Remove unused variable `len'.
3984
3985 * charset.c (char_printable_p): Remove unused variable `chars'.
3986 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
3987 (str_to_multibyte): Remove unused variable `c'.
3988
3989 * window.c (size_window): Remove block-local variable `min_size'.
3990
3991 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
3992 `header_line_height'.
3993 (append_space, extend_face_to_end_of_line): Declare `saved_what'
3994 enum display_element_type.
3995
3996 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3997
3998 * xterm.c (x_connection_closed): Catch X errors around all
3999 statements that call X. Save away the error message in a local copy.
4000
4001 * xterm.c (x_connection_closed): Set handling_signal to 0 at
4002 the start.
4003
4004 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
4005 in or at the start of invisible text.
4006
4007 * dispnew.c (update_window): Don't check_current_matrix_flags.
4008
4009 2001-01-01 Jason Rumney <jasonr@gnu.org>
4010
4011 * w32fns.c (x_figure_window_size): Do not allow new_height and
4012 new_width of frame to override specified values.
4013
4014 2000-12-30 Kenichi Handa <handa@etl.go.jp>
4015
4016 * composite.c (find_composition): Fix a code for searching backward.
4017
4018 2000-12-29 Gerd Moellmann <gerd@gnu.org>
4019
4020 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
4021 (update_window) [GLYPH_DEBUG]: Call it.
4022 (scrolling_window): Prevent including current rows which are below
4023 what's displayed in the window.
4024
4025 * xdisp.c (try_window_reusing_current_matrix)
4026 <new start <= old start>: Disable rows in the current matrix
4027 which are below the window after scrolling.
4028
4029 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
4030 is zero. It's not worth the complexity.
4031 (invisible_text_between_p): Put in #if 0 because unused.
4032
4033 2000-12-28 Gerd Moellmann <gerd@gnu.org>
4034
4035 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
4036 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
4037
4038 * keyboard.c (echo_char): If C is an integer, always call
4039 push_key_description. Former code could signal an invalid
4040 character error.
4041
4042 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
4043 If set, print multibyte text.
4044 (Fsingle_key_description): Call push_key_description with
4045 FORCE_MULTIBYTE set.
4046 (describe_buffer_bindings): Likewise.
4047
4048 * lisp.h (push_key_description): Add prototype.
4049
4050 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
4051 around the call to redisplay_internal.
4052
4053 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4054
4055 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4056
4057 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4058
4059 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
4060 (ccl_driver): New local variable `extra_bytes'.
4061
4062 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
4063
4064 * coding.c (setup_coding_system):
4065 Initialize coding->spec.ccl.eight_bit_carryover.
4066 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
4067
4068 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4069
4070 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
4071 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
4072 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
4073 (decode_composition_emacs_mule): New function.
4074 (decode_coding_emacs_mule): Decode composition sequence by calling
4075 decode_composition_emacs_mule.
4076 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
4077 (encode_coding_emacs_mule): Changed from macro to function.
4078 If a text contains compositions, encode them correctly.
4079 (setup_coding_system): Set coding->commong_flags for emacs-mule so
4080 that decoding and encoding are required.
4081
4082 2000-12-27 Gerd Moellmann <gerd@gnu.org>
4083
4084 * xfaces.c (PT_PER_INCH): New macro.
4085 (xlfd_point_size): Compute real point size from font's pixel size.
4086 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
4087 instead of 72.
4088
4089 * .gdbinit: Comment out the line pointing to the Lesstif source
4090 directory.
4091
4092 * window.c (Frecenter): Use displayed_window_lines instead
4093 of window_internal_height.
4094
4095 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4096 instead of x-toolkit-scroll-bars-p.
4097 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4098
4099 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4100 instead of x-toolkit-scroll-bars-p.
4101 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4102
4103 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
4104 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
4105 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
4106 New variables.
4107 (add_window_display_history, add_frame_display_history)
4108 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
4109 (build_frame_matrix_from_leaf_window): Remove unused code.
4110 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
4111 redisplay history.
4112 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
4113 (update_window) [GLYPH_DEBUG]: Likewise.
4114 (syms_of_display): Defsubr dump-redisplay-history.
4115
4116 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4117
4118 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
4119 the end of the prompt. Set echo_after_prompt to the offset
4120 of echoptr in echobuf.
4121
4122 * xdisp.c (init_from_display_pos): Pop until the iterator's
4123 stack is empty; there may be frames for stretch or images
4124 on the stack.
4125
4126 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
4127 (save_or_restore_current_matrix): New function for the same
4128 purpose, but more efficient.
4129 (adjust_frame_glyphs_for_frame_redisplay): Use it.
4130
4131 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
4132
4133 * xdisp.c (syms_of_xdisp): Fix last change.
4134
4135 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4136
4137 * xdisp.c (syms_of_xdisp): Doc fix.
4138
4139 * xdisp.c (redisplay_window): Remove label restore_buffers;
4140 use finish_scroll_bars instead to make sure that scroll bars
4141 are redeemed. If we don't do this, flickering can result from
4142 scroll bars being destroyed and recreated.
4143
4144 2000-12-22 Jason Rumney <jasonr@gnu.org>
4145
4146 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
4147 in the wrong colors when the foreground is not black.
4148 (expose_window): Don't redraw the window that's currently being
4149 updated.
4150
4151 2000-12-22 Gerd Moellmann <gerd@gnu.org>
4152
4153 * window.c (size_window): When setting the window's too_small_ok
4154 flag, compare old size with minimum size depending on WIDTH_P,
4155 don't compare with window_min_width.
4156
4157 * window.c (delete_window): Simplify somewhat.
4158 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
4159 freeing window matrices. The flag windows_or_buffers_changed is
4160 set, so the next redisplay will consider all windows; this should
4161 suffice.
4162
4163 2000-12-22 Kenichi Handa <handa@etl.go.jp>
4164
4165 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
4166
4167 * ccl.h (struct ccl_program): New member cr_consumed.
4168
4169 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
4170 (CCL_READ_CHAR): Handle EOL conversion here.
4171 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
4172
4173 2000-12-21 Gerd Moellmann <gerd@gnu.org>
4174
4175 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
4176
4177 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
4178 otherwise tabs of different size compare equal.
4179
4180 * callint.c (Fcall_interactively): Prevent a compiler warning.
4181
4182 * print.c (print_unwind): Return nil.
4183 (PRINTDECLARE): Initialize all local variables.
4184 (print_preprocess): Add a default case.
4185
4186 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
4187
4188 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
4189
4190 * window.c (delete_window, Fsplit_window)
4191 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
4192
4193 * dispextern.h (ensure_frame_matrix): Function declaration removed.
4194
4195 * dispnew.c (ensure_frame_matrix): Removed.
4196 (save_frame_matrix, restore_frame_matrix): New functions.
4197 (adjust_frame_glyphs_for_frame_redisplay): Use them.
4198
4199 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
4200 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
4201
4202 2000-12-21 Andrew Innes <andrewi@gnu.org>
4203
4204 * w32term.c (x_update_begin): Regenerate the palette here, rather
4205 than for each window.
4206
4207 * w32xfns.c (select_palette): Avoid calling SelectPalette if
4208 palette is NULL, since this corrupts memory! Also get
4209 display_info reference from frame.
4210
4211 2000-12-21 Jason Rumney <jasonr@gnu.org>
4212
4213 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
4214
4215 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
4216 to avoid returning without releasing it.
4217
4218 2000-12-21 Kenichi Handa <handa@etl.go.jp>
4219
4220 * keymap.c (push_key_description): Don't convert eight-bit-control
4221 and eight-bit-graphic to multibyte character.
4222
4223 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
4224 generic character and CODE1 is nil, return the smallest character
4225 in CHARSET.
4226
4227 2000-12-20 Dave Love <fx@gnu.org>
4228
4229 * s/osf5-0.h (NSIG): Don't redefine.
4230
4231 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
4232
4233 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
4234 excluding menu-bar and tool-bar.
4235 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
4236 (menu_item_p): Remove.
4237 (where_is_internal_1): Don't ignore menu-items.
4238
4239 2000-12-20 Gerd Moellmann <gerd@gnu.org>
4240
4241 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
4242 into account.
4243
4244 * window.c (make_window): Initialize window's min_hscroll.
4245 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
4246 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
4247 to zero.
4248 (struct saved_window): New member min_hscroll.
4249 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
4250 (Fset_window_configuration): Set window's min_hscroll.
4251 (save_window_save): Save window's min_hscroll.
4252 (compare_window_configurations): Compare min_hscroll values.
4253
4254 * window.h (struct window): New member min_hscroll.
4255
4256 * keyboard.c (echo_prompt): Prevent a compiler warning.
4257
4258 * xdisp.c (try_cursor_movement): Fix last change. The real
4259 condition is that PT is at the end of the row, and should
4260 be displayed at the start of the next row.
4261
4262 * xdisp.c (try_cursor_movement): If we end on a partially
4263 visible line, end we already decided to scroll, return -1.
4264
4265 * dispextern.h (ensure_frame_matrix): Add prototype.
4266
4267 * window.c (delete_window, Fsplit_window)
4268 (Fset_window_configuration): Call ensure_frame_matrix.
4269
4270 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
4271 New functions.
4272 (adjust_frame_glyphs_for_frame_redisplay): If display has been
4273 completed, call fake_current_matrices instead of marking frame
4274 garbaged.
4275
4276 2000-12-20 Jason Rumney <jasonr@gnu.org>
4277
4278 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
4279
4280 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4281
4282 * fns.c (Frequire): Doc fix.
4283
4284 2000-12-19 Gerd Moellmann <gerd@gnu.org>
4285
4286 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
4287
4288 * dispnew.c (direct_output_for_insert): Fix check for mini-window
4289 currently displaying a message.
4290
4291 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
4292 xterm.h.
4293 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
4294
4295 2000-12-18 Andrew Innes <andrewi@gnu.org>
4296
4297 * w32.c (w32_strerror): New function.
4298
4299 * w32.h (w32_strerror): New extern.
4300
4301 * w32fns.c (Fw32_shell_execute): Use it.
4302
4303 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4304
4305 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
4306
4307 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4308
4309 * msdos.c (IT_set_face): Obey inverse_video.
4310
4311 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4312
4313 * dired.c (directory_files_internal): Always return decoded filenames.
4314
4315 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4316
4317 * xterm.c (x_connection_closed): Prevent being called recursively
4318 because of an error condition in XtCloseDisplay.
4319
4320 * xdisp.c (init_iterator): If noninteractive, and the frame's
4321 face cache is null, make one.
4322
4323 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
4324
4325 * process.c (wait_reading_process_input): Check for pending
4326 input when running timers.
4327
4328 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4329
4330 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
4331
4332 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4333
4334 * process.c (read_process_output): Don't run a filter if the code
4335 decoder produces nothing but carryover.
4336
4337 2000-12-17 Andrew Innes <andrewi@gnu.org>
4338
4339 * w32.c (sys_rename): Only check errno against EEXIST, and not
4340 EACCES, when determining whether rename failed because the target
4341 exists. This was resulting in indefinite looping on Windows 9x if
4342 the source file was locked by another process.
4343
4344 * w32fns.c (Ffile_system_info): New function.
4345 (syms_of_w32fns): Defsubr it.
4346
4347 2000-12-17 Gerd Moellmann <gerd@gnu.org>
4348
4349 * window.c (coordinates_in_window): Fix computation for
4350 position on vertical line between mode lines.
4351
4352 * xfns.c (unwind_create_frame): Return t if frame was deleted.
4353 Don't alter tip_frame or tip_window.
4354 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4355 was deleted.
4356
4357 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
4358 Don't alter tip_frame or tip_window.
4359 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4360 was deleted.
4361
4362 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4363
4364 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
4365 be consistent with the doc string. Reported by NAKAJIMA Mikio
4366 <minakaji@osaka.email.ne.jp>.
4367
4368 2000-12-16 Kenichi Handa <handa@etl.go.jp>
4369
4370 * xfaces.c (Vface_ignored_fonts): New variable.
4371 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
4372 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
4373
4374 2000-12-15 Gerd Moellmann <gerd@gnu.org>
4375
4376 * dispnew.c (update_window): Detect pending input every nth line
4377 updated, i.e. do it depending on real work done, and not on the
4378 vpos of the line.
4379
4380 * xterm.c (expose_window): Don't redraw the window that's
4381 currently being updated.
4382
4383 * window.c (Fset_window_point): Remove test for
4384 cursor_in_non_selected_windows.
4385
4386 * lread.c (read1): Recognize end of file after `\\'.
4387
4388 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
4389 not unwind_create_frame.
4390
4391 2000-12-15 Dave Love <fx@gnu.org>
4392
4393 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
4394 bcopy & al.
4395
4396 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
4397
4398 2000-12-15 Kenichi Handa <handa@etl.go.jp>
4399
4400 * coding.c (setup_coding_system): Clear all members of the struct
4401 coding_system at first.
4402 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
4403 argument.
4404 (code_convert_region): Don't override coding->src_multibyte and
4405 coding->dst_multibyte.
4406
4407 * fns.c (Fmd5): Docstring improved.
4408
4409 2000-12-15 Miles Bader <miles@gnu.org>
4410
4411 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
4412 are actually marked as mode-lines; otherwise use
4413 estimate_mode_line_height.
4414
4415 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4416
4417 * editfns.c (Fformat): Prevent a buffer overrun when the format
4418 specifies a precision.
4419
4420 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
4421
4422 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
4423 argument is outside the range [2..3].
4424
4425 2000-12-14 Andrew Innes <andrewi@gnu.org>
4426
4427 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
4428 nothing to do. Bind inhibit-quit.
4429 (tip_frame): Make it a Lisp_Object.
4430 (x_create_tip_frame): Set tip_frame after it has been added to
4431 Vframe_list.
4432 (Fx_show_tip): Don't set tip_frame here.
4433 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
4434 (unwind_create_frame, unwind_create_tip_frame): New functions.
4435 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4436 while a frame is only partially constructed.
4437
4438 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4439 (x_free_frame_resources): New function.
4440 (x_destroy_window): Use it.
4441
4442 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4443
4444 * xfns.c (Fx_backspace_delete_keys_p): New function.
4445 (syms_of_xfns): Defsubr it.
4446
4447 * config.in (HAVE_XKBGETKEYBOARD): Add.
4448
4449 2000-12-14 Kenichi Handa <handa@etl.go.jp>
4450
4451 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
4452 Always store string in multibyte representation in echobuf.
4453 (echo_char): Always store string in multibyte representation in
4454 echobuf.
4455 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
4456 (read_key_sequence): Adjusted for the change of echo_prompt.
4457
4458 * fns.c (Fmd5): Docstring improved.
4459
4460 * lisp.h (detect_coding_system): Prototype adjusted.
4461
4462 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
4463 (detect_coding_emacs_mule, detect_coding_iso2022,)
4464 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
4465 (detect_coding_utf_16, detect_coding_ccl): Make them static.
4466 New argument MULTIBYTEP. Callers changed.
4467 (detect_coding_mask, detect_coding_system): New argument
4468 MULTIBYTEP. Callers changed.
4469 (decode_coding_string): Set coding->src_multibyte and
4470 coding->dst_multibyte before calling detect_coding and detect_eol.
4471 Update them after some coding system is detected.
4472
4473 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
4474
4475 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
4476
4477 * keyboard.c (menu_bar_items, tool_bar_items):
4478 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
4479
4480 2000-12-13 Gerd Moellmann <gerd@gnu.org>
4481
4482 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
4483 New variables.
4484 (unwind_create_frame, unwind_create_tip_frame): New functions.
4485 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4486 while a frame is only partially constructed.
4487
4488 * xterm.h (x_free_frame_resources): Declare.
4489
4490 * xterm.c (x_free_frame_resources): New function.
4491 (x_destroy_window): Use it.
4492
4493 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
4494 don't interrupt the update for pending input initially, i.e.
4495 update at least some lines.
4496
4497 * keyboard.c (do_mouse_tracking): Make externally visible.
4498
4499 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
4500
4501 * xfns.c (gray_bitmap_bits): Declare `char *'.
4502
4503 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4504
4505 * xdisp.c (display_tool_bar_line): Make sure that tool bar
4506 lines start with a relief line.
4507
4508 2000-12-12 Dave Love <fx@gnu.org>
4509
4510 * window.c (Fdisplay_buffer): Doc fix.
4511 (Fwindow_list): Remove unused var.
4512
4513 * buffer.h (mmap_set_vars): Declare.
4514
4515 * window.h (Fset_window_point): Declare.
4516
4517 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
4518
4519 * msdos.c (fast_find_position): Don't overstep the last window row.
4520 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
4521 variable `area'. When looking for a row under (X,Y), give up if some
4522 of the previous rows is not enabled.
4523
4524 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4525
4526 * window.c (Fset_window_point): If displaying cursors in windows
4527 other than the selected window, make sure redisplay updates
4528 other windows to show the new value of point in the window.
4529
4530 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
4531
4532 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
4533 the buffer is the sole visible buffer when in the mini-buffer.
4534
4535 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
4536 Bind `inhibit-read-only' to t.
4537 (unwind_with_echo_area_buffer): Use AREF.
4538
4539 * xfns.c (Fx_hide_tip): Simplified.
4540
4541 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
4542 instead of `1'.
4543
4544 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
4545
4546 2000-12-11 Gerd Moellmann <gerd@gnu.org>
4547
4548 * xfns.c (Fx_hide_tip): Fix last change.
4549
4550 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
4551 nothing to do. Bind inhibit-quit.
4552 (tip_frame): Make it a Lisp_Object.
4553 (x_create_tip_frame): Set tip_frame after it has been added to
4554 Vframe_list.
4555 (Fx_show_tip): Don't set tip_frame here.
4556
4557 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4558
4559 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
4560 Lisp_Object.
4561
4562 * dispextern.h: Change external declaration of tip_frame.
4563
4564 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
4565 return an empty string.
4566
4567 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
4568 of the window's update_mode_line flag, since the former is set by
4569 force-mode-line-update, not the latter. This makes
4570 column-number-mode slightly faster.
4571
4572 * xdisp.c (try_window_id) <all changes above window start>:
4573 Set the cursor.
4574
4575 2000-12-11 Paul Eggert <eggert@twinsun.com>
4576
4577 * config.in (HAVE_FTELLO): Remove.
4578 (HAVE_FSEEKO): Add.
4579 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
4580 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
4581 HAVE_FTELLO.
4582 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
4583 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
4584
4585 2000-12-11 Miles Bader <miles@gnu.org>
4586
4587 * window.c (displayed_window_lines): Don't round up when
4588 converting empty space at bottom to lines.
4589 Handle non-newline-terminated final lines properly.
4590 (Fwindow_text_height): New function (used to be in lisp).
4591 (syms_of_window): Initialize it.
4592
4593 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
4594
4595 * syntax.c (scan_lists): Check that the right quote char has the
4596 right Sstring syntax when jumping over strings.
4597 (init_syntax_once): Use Smax rather than 13.
4598
4599 2000-12-09 Miles Bader <miles@gnu.org>
4600
4601 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
4602 with PARTIALLY, inverting the sense.
4603 (window_scroll_pixel_based): Scroll partially visible lines into
4604 place if we hit the beginning or end of the buffer.
4605 (displayed_window_lines): Don't include partially visible lines.
4606 (Fmove_to_window_line): Skip past any partially visible first line.
4607
4608 2000-12-08 Gerd Moellmann <gerd@gnu.org>
4609
4610 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
4611
4612 * tparam.c (tparam1): Change the way buffers are reallocated to be
4613 portable and less obfuscated.
4614
4615 * termcap.c (tgetent): Change the way buffers are reallocated to
4616 be portable and less obfuscated.
4617
4618 * macros.c (store_kbd_macro_char): Change the way buffers are
4619 reallocated to be portable and less obfuscated.
4620
4621 * lread.c (read1): Change the way buffers are reallocated to be
4622 portable and less obfuscated.
4623
4624 * doc.c (Fsubstitute_command_keys): Change the way buffers
4625 are reallocated so that it is portable.
4626
4627 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
4628
4629 * dosfns.c (Ffile_system_info): New function.
4630 (syms_of_dosfns): Defsubr it.
4631
4632 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
4633
4634 * alloc.c (gc_sweep): Add comment.
4635
4636 2000-12-07 Gerd Moellmann <gerd@gnu.org>
4637
4638 * sound.c (vox_configure): Change order of ioctls.
4639 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
4640 Ignore errors when changing volume.
4641 (vox_close): Don't reset the device.
4642
4643 * process.c (read_process_output): Make sure the process marker's
4644 position is valid when the process buffer is changed in
4645 after-change functions. W3 does that.
4646
4647 * xfns.c (x_free_gcs): New function.
4648
4649 * xterm.h (x_free_gcs): Add prototype.
4650
4651 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
4652 freeing GCs here.
4653
4654 * xterm.c (x_destroy_window): Call x_free_gcs so that
4655 resources of non-toolkit X windows will be freed.
4656
4657 2000-12-07 Andrew Innes <andrewi@gnu.org>
4658
4659 * w32fns.c (xlfd_charset_of_font): Fix last change.
4660
4661 2000-12-06 Dave Love <fx@gnu.org>
4662
4663 * md5.h (__P): Don't define -- it comes from config.h.
4664
4665 * strftime.c: Change some #if foo to #ifdef foo.
4666
4667 2000-12-06 Andrew Innes <andrewi@gnu.org>
4668
4669 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
4670
4671 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
4672 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
4673 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
4674
4675 2000-12-06 Gerd Moellmann <gerd@gnu.org>
4676
4677 * alloc.c (gc_sweep): Prevent symbols read during loadup
4678 from being freed.
4679
4680 * xdisp.c (underlying_face_id): New function.
4681 (handle_face_prop, face_before_or_after_it_pos): Use it
4682 to determine the face ``under'' a string. Let strings inherit
4683 the face of the buffer under them.
4684
4685 * xfaces.c (face_at_string_position): Update function comment.
4686
4687 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
4688 matrix if the window's left position has changed; we need to
4689 redraw it in this case.
4690
4691 * dispextern.h (struct glyph_matrix): Add member window_left_x.
4692
4693 * window.c (coordinates_in_window): Check mouse on mode-line or
4694 header-line first.
4695
4696 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
4697 advertized by the function documentation.
4698
4699 * window.c (syms_of_window): Doc fix.
4700
4701 * sound.c (vox_configure): Set volume for left and right channel.
4702 (sound_cleanup): Return nil.
4703
4704 * xdisp.c (move_it_by_lines): Fix paren typo.
4705
4706 * xterm.c (x_load_font): Don't use the font's max_bounds for
4707 computing the height of the font. If max_bounds' ascent or
4708 descent are greater than the font's ascent or descent, this means
4709 glyphs overlap, which should be handled now by redisplay.
4710
4711 * window.c (Veven_window_heights): New variable.
4712 (syms_of_window): DEFVAR_LISP it.
4713 (Fdisplay_buffer): Check Veven_window_heights before evening the
4714 window heights.
4715
4716 2000-12-06 Miles Bader <miles@gnu.org>
4717
4718 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
4719 update `default-frame-alist' instead of setting no frame parameters.
4720
4721 2000-12-06 Kenichi Handa <handa@etl.go.jp>
4722
4723 * composite.c (update_compositions): Fix typo (use the correct
4724 variable).
4725
4726 2000-12-05 Jason Rumney <jasonr@gnu.org>
4727
4728 * md5.h: Remove underscores from function declarations.
4729 (__attribute__, __alignof__) [!__GNUC__]: Define.
4730
4731 * md5.c: Delay include of md5.h until after namespace cleaning.
4732
4733 * makefile.w32-in (fns.o): Depend on md5.h
4734 (md5.o): New target.
4735 (sunfns.o): Remove.
4736
4737 * makefile.nt: Likewise.
4738
4739 2000-12-05 Jason Rumney <jasonr@altavista.net>
4740
4741 * w32term.c (expose_area): Complete last change.
4742
4743 2000-12-05 Ken Raeburn <raeburn@gnu.org>
4744
4745 * minibuf.c: Include intervals.h.
4746
4747 2000-12-05 Jason Rumney <jasonr@gnu.org>
4748
4749 * w32term.c (x_produce_glyphs): If a font for a component of
4750 a composition is not found, use 1 pixel dot ascent and 0 dot
4751 descent value to avoid displaying terribly tall empty boxes.
4752 (expose_area): Pass x-coordinate relative to the exposed
4753 area to x_draw_glyphs instead of a window-relative coordinate.
4754
4755 2000-12-05 Gerd Moellmann <gerd@gnu.org>
4756
4757 * xdisp.c (next_element_from_ellipsis): Save face before selective
4758 display in saved_face_id, and set face_before_selective_p.
4759 (reseat_1): Reset face_before_selective_p.
4760 (append_space, extend_face_to_end_of_line): If iterator's
4761 face_before_selective_p is set, use the face from saved_face_id.
4762 (extend_face_to_end_of_line): For tty frames, make sure to
4763 use the right face id when producing spaces at the end of
4764 the line.
4765
4766 * dispextern.h (struct it): Add face_before_selective_p.
4767
4768 * keyboard.c (record_char): Don't record identical help-echo
4769 events in recent_keys.
4770
4771 * xterm.c [USE_X_TOOLKIT]: Close the display.
4772 (xim_close_dpy): Handle case that the display has been closed.
4773
4774 * xterm.c (x_destroy_window): Reset the frame's X window after
4775 destroying it.
4776
4777 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
4778 variable window_width.
4779 (line_draw_cost): Fix code skipping over spaces at the end of the
4780 line when must_write_spaces is not set.
4781 (scrolling_window): Fix code inserting runs in list of all runs.
4782
4783 2000-12-05 Kenichi Handa <handa@etl.go.jp>
4784
4785 * coding.c (setup_coding_system): Be sure to initialize
4786 coding->category_idx.
4787
4788 2000-12-04 Gerd Moellmann <gerd@gnu.org>
4789
4790 * xterm.c (PER_CHAR_METRIC): Removed because not used.
4791
4792 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
4793 area to x_draw_glyphs instead of a window-relative coordinate.
4794
4795 * fileio.c (auto_save_error): Add parameter ERROR. Show the
4796 error in the message.
4797
4798 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
4799 timer after having read a key. It's not good for code reading
4800 several keys in a loop, like an input method.
4801
4802 * fileio.c (Finsert_file_contents): When VISIT is t, don't
4803 record undo information for format-decode.
4804
4805 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
4806 current buffer is read-only, not if it isn't.
4807
4808 * keyboard.c (record_char): Record `help-echo' input events
4809 in recent_keys only if they display some help. Don't record
4810 `help-echo' events as macro char.
4811
4812 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4813
4814 * editfns.c (save_excursion_restore): Don't move point
4815 in another window if it is showing the wrong buffer.
4816 Avoid the call to Fwindow_live_p, for speed.
4817
4818 2000-12-04 Kenichi Handa <handa@etl.go.jp>
4819
4820 * xfaces.c (struct font_name): New member registry_priority.
4821 (split_font_name): Initialize the above member to zero.
4822 (concat_font_list): New function.
4823 (font_list): Include fonts of all alternative registries.
4824 (FONT_POINT_SIZE_QUANTUM): New macro.
4825 (better_font_p): Ignore point size difference less than
4826 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
4827
4828 * xterm.c (x_produce_glyphs): If a font for a component of
4829 a composition is not found, use 1 pixel dot ascent and 0 dot
4830 descent value to avoid displaying terribly tall empty boxes.
4831
4832 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
4833
4834 2000-12-03 Ken Raeburn <raeburn@gnu.org>
4835
4836 * coding.h (code_convert_string1): Declare.
4837
4838 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
4839
4840 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
4841
4842 2000-12-02 Jason Rumney <jasonr@gnu.org>
4843
4844 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
4845 correctly for single byte character case.
4846 (w32_per_char_metric): Do not try to make any assumptions about
4847 the metrics of BDF fonts.
4848 (x_estimate_mode_line_height): If `mode-line' face
4849 hasn't a font, use that of the frame, as drawing glyphs does.
4850 (note_mouse_highlight): Change the cursor shape on the vertical
4851 border between windows [not enabled].
4852
4853 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
4854
4855 * w32fns.c (Fx_create_frame): Reintroduce the call to
4856 face-set-after-frame-defaults.
4857 (Vx_window_horizontal_drag_shape): New variable.
4858 (syms_of_xfns): DEFVAR_LISP it.
4859 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
4860 enabled].
4861
4862 2000-12-02 Simon Josefsson <simon@josefsson.org>
4863
4864 * fns.c (Fmd5): Use a different logic to decide the coding system
4865 to use.
4866
4867 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
4868
4869 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
4870
4871 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
4872
4873 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4874
4875 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
4876 height for YNegative.
4877 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
4878 height; also see comment there.
4879
4880 * window.c (coordinates_in_window): Handle computations for
4881 positions on the vertical bar and fringes differently for
4882 window-system frames. Consider some pixels near the vertical bar
4883 as on the bar if the frame doesn't have vertical scroll bars.
4884 Associate positions between mode or header lines with the
4885 right window, the left one.
4886
4887 2000-12-01 Jason Rumney <jasonr@gnu.org>
4888
4889 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
4890
4891 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
4892 invalid frame.
4893
4894 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4895
4896 * window.c (struct saved_window): Add members orig_top and orig_height.
4897 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
4898 (save_window_save, Fset_window_configuration): Save/restore
4899 window's orig_top and orig_height.
4900
4901 2000-12-01 Jason Rumney <jasonr@gnu.org>
4902
4903 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
4904
4905 * w32fns.c (x_set_cursor_color): Fix last change.
4906
4907 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4908
4909 * xdisp.c (echo_area_display): If cursor is in the echo area, make
4910 sure that the next redisplay displays the minibuffer, so that
4911 the cursor will be replaced with what the minibuffer wants.
4912
4913 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
4914 #ifndef instead of using #if.
4915 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
4916 USE_TOOLKIT_SCROLL_BARS is defined.
4917
4918 2000-11-30 Jason Rumney <jasonr@gnu.org>
4919
4920 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
4921 x_display_cursor.
4922
4923 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4924
4925 * fns.c (Fmd5): Doc fix.
4926
4927 2000-11-30 Simon Josefsson <simon@josefsson.org>
4928
4929 * fns.c (Fmd5): New function.
4930 (syms_of_fns): Defsubr md5.
4931
4932 * Makefile.in (obj): Add md5.o
4933
4934 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4935
4936 * md5.h, md5.c: New files, taken from glibc.
4937
4938 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
4939
4940 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
4941 hasn't a font, use that of the frame, as drawing glyphs does.
4942
4943 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
4944
4945 * eval.c (Frun_hooks): Allow 0 arguments.
4946
4947 2000-11-29 Gerd Moellmann <gerd@gnu.org>
4948
4949 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
4950 is over the menu bar widget, say it's not on the frame.
4951
4952 * xfns.c (Fx_create_frame): Reintroduce the call to
4953 face-set-after-frame-defaults.
4954
4955 * eval.c (Fsignal): Reset handling_signal.
4956
4957 2000-11-28 Jason Rumney <jasonr@gnu.org>
4958
4959 * w32menu.c (add_menu_item): Reset menu item text when changing
4960 type to radio button.
4961
4962 2000-11-28 Gerd Moellmann <gerd@gnu.org>
4963
4964 * xselect.c: Update copyright.
4965
4966 * window.c (coordinates_in_window): If on a mode or header line,
4967 but sufficiently close to its start, return ``on vertical
4968 border''. This gives us a way to drag windows horizontally when
4969 using toolkit scroll bars.
4970
4971 * xterm.c (note_mouse_highlight): Change the cursor shape
4972 on the vertical border between windows.
4973
4974 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
4975
4976 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
4977 (syms_of_xfns): DEFVAR_LISP it.
4978 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
4979
4980 * textprop.c (text_read_only): New function.
4981 (verify_interval_modification): Use it instead of signaling
4982 `text-read-only'. This makes it easier to catch this error
4983 with a breakpoint.:
4984
4985 * xdisp.c (forward_to_next_line_start): Check for newlines,
4986 not end of line, which includes CR.
4987
4988 2000-11-28 Kenichi Handa <handa@etl.go.jp>
4989
4990 * coding.c (Ffind_coding_systems_region_internal): Be sure to
4991 include no-conversion.
4992
4993 2000-11-27 Jason Rumney <jasonr@gnu.org>
4994
4995 * w32fns.c (w32_load_system_font): Always mark font as double byte
4996 if codepage is unicode.
4997
4998 2000-11-27 Gerd Moellmann <gerd@gnu.org>
4999
5000 * xdisp.c (forward_to_next_line_start): If already on a newline,
5001 just consume it to avoid unintended skipping over invisible text below.
5002
5003 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
5004 `vertical-line', `mode-line' and `header-line' events.
5005
5006 * xdisp.c (try_window_id): Avoid starting to display in the middle
5007 of a character, a TAB for instance. This is easier than to set
5008 up the iterator exactly, and it's not a frequent case, so the
5009 additional effort wouldn't really pay off.
5010
5011 2000-11-26 Andrew Choi <akochoi@i-cable.com>
5012
5013 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
5014 init_window_once.
5015
5016 2000-11-25 Jason Rumney <jasonr@gnu.org>
5017
5018 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
5019 Args to window_from_coordinates should be pixel coordinates.
5020
5021 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
5022 redisplay handles them properly.
5023
5024 2000-11-25 Miles Bader <miles@gnu.org>
5025
5026 * indent.c (compute_motion): Keep pos_byte in sync with pos.
5027
5028 2000-11-24 Jason Rumney <jasonr@gnu.org>
5029
5030 * w32.c (init_environment): Set LANG environment variable based on
5031 locale settings, if not set.
5032
5033 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
5034 making tool bar smaller. When clearing the frame, also
5035 clear current matrices. Clear frame when tool bar disappears.
5036 Don't use more lines for the tool-bar than is available.
5037 (x_change_window_heights): New function.
5038
5039 2000-11-24 Gerd Moellmann <gerd@gnu.org>
5040
5041 * xdisp.c (init_from_display_pos): If POS says we're already after
5042 an overlay string ending at POS, make sure to pop the iterator
5043 because it will be in front of that overlay string. When POS is
5044 ZV, we've thereby also ``processed'' overlay strings at ZV.
5045
5046 * xfaces.c (lface_from_face_name): Function comment fix.
5047
5048 2000-11-24 Miles Bader <miles@gnu.org>
5049
5050 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
5051 apply `mode-line-inverse-video' -- zero means force display using
5052 the default face, non-zero means display using the specialized face.
5053 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
5054
5055 2000-11-23 Kenichi Handa <handa@etl.go.jp>
5056
5057 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
5058 hard coded `4'.
5059
5060 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
5061
5062 * coding.c (decode_coding_emacs_mule): Fix the case of
5063 CODING_EOL_LF, which used uninitialized value of c.
5064
5065 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
5066
5067 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
5068
5069 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5070
5071 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
5072 buffer object.
5073
5074 * frame.h (struct frame): Replace desired_tool_bar_items,
5075 current_tool_bar_items, n_desired_tool_bar_items,
5076 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
5077
5078 * frame.c (make_frame): Change initialization of tool bar
5079 items accordingly.
5080
5081 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
5082 Change references to members deleted from struct frame to use the
5083 new ones.
5084
5085 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
5086 references to members deleted from struct frame to use the new ones.
5087
5088 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
5089
5090 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
5091
5092 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
5093 (note_tool_bar_highlight): Change references to members deleted
5094 from struct frame to use the new ones.
5095
5096 2000-11-23 Miles Bader <miles@gnu.org>
5097
5098 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
5099 the face's inverse-video attribute, rather than overriding it.
5100
5101 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5102
5103 * xfns.c (x_set_tool_bar_lines): Clear internal border when
5104 making tool bar smaller.
5105
5106 2000-11-22 Dave Love <fx@gnu.org>
5107
5108 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
5109
5110 2000-11-22 Miles Bader <miles@gnu.org>
5111
5112 * keyboard.c (Vminibuffer_message_timeout): New variable.
5113 (command_loop_1): Use it to determine message timeout.
5114 (syms_of_keyboard): Initialize it.
5115
5116 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
5117
5118 2000-11-22 Kenichi Handa <handa@etl.go.jp>
5119
5120 * sysdep.c: Move the code for declaring h_errno after #include
5121 <netdb.h>.
5122
5123 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5124
5125 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
5126 the menu bar when the tooltip is unmapped.
5127
5128 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
5129 sole visible buffer when we're currently in the mini-buffer, and
5130 give up if so.
5131
5132 2000-11-21 Jason Rumney <jasonr@gnu.org>
5133
5134 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
5135 put on the clipboard.
5136 (Fw32_get_clipboard_data): Compare data on clipboard with saved
5137 copy of what Emacs last put there. If they are the same, do not
5138 use the clipboard copy to avoid losing data due to coding conversions.
5139
5140 2000-11-22 Miles Bader <miles@gnu.org>
5141
5142 * minibuf.c (Vminibuffer_prompt_properties): New variable.
5143 (syms_of_minibuf): Initialize it.
5144 (read_minibuf): Add properties from Vminibuffer_prompt_properties
5145 to prompt, don't make read-only.
5146
5147 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5148
5149 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
5150 Add BEFORE/AFTER_POTENTIAL_GC.
5151
5152 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
5153
5154 * buffer.c (mmap_free_1): Avoid a compiler warning.
5155
5156 * term.c, cm.c: Don't try to include termcap.h; see comment there.
5157
5158 2000-11-21 Kenichi Handa <handa@etl.go.jp>
5159
5160 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
5161 ... #endif scope.
5162
5163 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5164
5165 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
5166 screen supports it.
5167
5168 * s/gnu-linux.h: Don't use `#cpu'.
5169
5170 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
5171 not defined in mman.h.
5172
5173 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
5174 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
5175 and store an index in the XClientMessageEvent. Storing a
5176 Lisp_Object or pointer can fail on a 64 bit system, since X only
5177 transfers 32 bits.
5178 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
5179
5180 2000-11-20 Dave Love <fx@gnu.org>
5181
5182 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
5183
5184 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5185
5186 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
5187
5188 2000-11-20 Kenichi Handa <handa@etl.go.jp>
5189
5190 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
5191 by WIDTH.
5192
5193 * alloc.c (make_string): Fix previous change. Be sure to make
5194 unibyte string correctly.
5195
5196 2000-11-19 Gerd Moellmann <gerd@gnu.org>
5197
5198 * window.c (Fwindow_list): Change parameter list to be XEmacs
5199 compatible.
5200 (window_list_1): New function.
5201 (window_loop): Use it instead of Fwindow_list.
5202
5203 * sysdep.c (emacs_ospeed): New variable.
5204 (toplevel): Don't declare ospeed extern.
5205 (init_baud_rate): Use emacs_ospeed instead of ospeed.
5206
5207 * termcap.c (ospeed): Remove.
5208 (tputs) [!emacs]: Remove unused code.
5209 (tgetent): Avoid a compiler warning.
5210
5211 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
5212 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
5213 SCROLL_BAR_X_WIDGET with additional argument DPY.
5214
5215 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
5216 removed.
5217 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
5218 Take the X display as additional argument.
5219 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
5220 `Widget' is a pointer type that's not easily stored in Lisp_Object
5221 form in a portable way.
5222
5223 * dispnew.c (update_text_area): Fix last change.
5224
5225 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5226
5227 * xdisp.c: Use BINDING_STACK_SIZE throughout.
5228
5229 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
5230 clear current matrices.
5231
5232 * buffer.c (mmap_enlarge): Don't print a message on stderr
5233 if mapping new memory at the end of the existing region fails.
5234
5235 * dispnew.c (update_text_area): Don't skip over equal glyphs
5236 when the last current glyph overlaps the glyph to its right.
5237
5238 2000-11-18 Miles Bader <miles@gnu.org>
5239
5240 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
5241 lines that *end* with "..." too (that's the most common case!).
5242
5243 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5244
5245 * xdisp.c (resize_mini_window): Temporarily change to the
5246 mini-window's buffer if necessary.
5247
5248 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
5249 the tooltip obscures less text under it.
5250
5251 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5252
5253 * puresize.h (BASE_PURESIZE): Increase to 700000.
5254
5255 2000-11-18 Jason Rumney <jasonr@gnu.org>
5256
5257 * w32term.c (w32_draw_bitmap): Use face to set colors.
5258
5259 2000-11-17 Dave Love <fx@gnu.org>
5260
5261 * lread.c (Fload): Fix #ifdef for pcc.
5262
5263 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5264
5265 * xdisp.c (pos_visible_p): Compute the default character height
5266 differently.
5267
5268 2000-11-16 Gerd Moellmann <gerd@gnu.org>
5269
5270 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
5271 knowing the line's height; use the default font's height in that case.
5272
5273 * xfaces.c (weight_table): Add `demi' with the same meaning as
5274 `demibold'.
5275
5276 2000-11-16 Kenichi Handa <handa@etl.go.jp>
5277
5278 * dispnew.c (null_row): New global static variable.
5279 (clear_glyph_row): Delete local static variable null_row.
5280
5281 2000-11-15 Jason Rumney <jasonr@gnu.org>
5282
5283 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
5284 (w32_alloc_lighter_color): Use new brightness calculations from
5285 xterm.c. Scale delta to be in the range expected by W32.
5286 (w32_draw_relief_rect): Use frame relief colors.
5287
5288 2000-11-15 Gerd Moellmann <gerd@gnu.org>
5289
5290 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
5291 (Qinhibit_default_face_x_resources): New variable.
5292 (syms_of_frame): Initialize it.
5293 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
5294
5295 * xdisp.c (pos_visible_p): Improve function comment.
5296
5297 * lisp.h (BINDING_STACK_SIZE): New macro.
5298
5299 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
5300 reading the directory if readdir returns null and errno is EAGAIN
5301 or EINTR.
5302
5303 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
5304
5305 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
5306 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
5307 Set amount_to_scroll to max of dx and scroll_step so that
5308 scroll-conservatively doesn't defeat scroll-step>1.
5309 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
5310 scroll-conservatively for line-at-a-time scrolling.
5311
5312 2000-11-14 Gerd Moellmann <gerd@gnu.org>
5313
5314 * window.c (Fpos_visible_in_window_p): Call pos_visible with
5315 extra argument.
5316
5317 * xdisp.c (current_mode_line_height, current_header_line_height):
5318 New variables.
5319 (init_xdisp): Initialize them.
5320 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
5321 and use exact mode line heights if it is set.
5322
5323 * lisp.h (pos_visible_p): Change prototype.
5324
5325 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
5326 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
5327 and current_header_line_height first.
5328 (current_mode_line_height, current_header_line_height):
5329 Declare extern.
5330
5331 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
5332
5333 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
5334 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
5335 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
5336
5337 2000-11-14 Miles Bader <miles@gnu.org>
5338
5339 * xterm.c (x_alloc_lighter_color): Include an additive component
5340 too for dark colors, because FACTOR isn't enough.
5341 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
5342 New macros.
5343
5344 2000-11-13 Gerd Moellmann <gerd@gnu.org>
5345
5346 * keyboard.c (show_help_echo): Call message3_nolog with number of
5347 bytes in the help string as 2nd parameter, instead of the number
5348 of characters.
5349
5350 2000-11-13 Miles Bader <miles@gnu.org>
5351
5352 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
5353 (Fload): Use new openp return protocol.
5354 Don't try to use Vload_source_file_function to load .elc files.
5355 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
5356 openp return protocol.
5357 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
5358
5359 2000-11-11 Kenichi Handa <handa@etl.go.jp>
5360
5361 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
5362
5363 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
5364 Defined these macros.
5365 (NLIST_STRUCT): Avoid re-defining it.
5366
5367 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
5368 -I/usr/contrib/X11R6/include.
5369 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
5370
5371 2000-11-10 Jason Rumney <jasonr@gnu.org>
5372
5373 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
5374
5375 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
5376 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
5377
5378 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
5379 (Qw32_charset_vietnamese): New symbol.
5380 (xlfd_charset_of_font): New function.
5381 (w32_load_system_font): Use it.
5382 (x_to_w32_charset): Use Fassoc to find charset info. Special case
5383 when Vw32_charset_info_alist is nil to ensure default face always
5384 has font. Use Fcar and Fcdr for safety.
5385 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
5386 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
5387 pseudo-codepages for special cases.
5388 (w32_to_x_font): New parameter to allow charset portion to be
5389 specified where there is many to one mapping. Callers changed.
5390 (w32_list_fonts): Avoid listing fonts that won't display.
5391
5392 2000-11-10 Gerd Moellmann <gerd@gnu.org>
5393
5394 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
5395 (font_list_1): Renamed from font_list.
5396 (font_list): New function, trying alternative registries from
5397 Vface_alternative_font_registry_alist.
5398 (Finternal_set_alternative_font_registry_alist): New function.
5399 (syms_of_xfaces): Initialize and Staticpro
5400 Vface_alternative_font_registry_alist.
5401 Defsubr Finternal_set_alternative_font_registry_alist.
5402
5403 2000-11-09 Ken Raeburn <raeburn@gnu.org>
5404
5405 * lisp.h (Flooking_at): Declare.
5406
5407 2000-11-09 Gerd Moellmann <gerd@gnu.org>
5408
5409 * dired.c (directory_files_internal): Fix a braino.
5410
5411 * dired.c (directory_files_internal): Add missing GCPRO's.
5412 Some cleanup.
5413
5414 2000-11-08 Gerd Moellmann <gerd@gnu.org>
5415
5416 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
5417 (resize_mini_window): Return quickly if Vresize_mini_window is
5418 nil. Don't return if Vmax_mini_window_height is nil.
5419
5420 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
5421 (syms_of_xdisp): Initialize them.
5422 (resize_mini_window): Act according to the setting of
5423 Vresize_mini_window.
5424 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
5425
5426 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
5427 scroll bar widget after configuring it, so that it will appear at
5428 the right position from the start.
5429 (XTredeem_scroll_bar): Cleaned up.
5430
5431 2000-11-08 Kenichi Handa <handa@etl.go.jp>
5432
5433 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5434 font is taller than the frame line, we don't have to bias the
5435 division by two.
5436
5437 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
5438
5439 2000-11-07 Dave Love <fx@gnu.org>
5440
5441 * config.in (HAVE_MKSTEMP): Add.
5442
5443 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
5444
5445 2000-11-07 Gerd Moellmann <gerd@gnu.org>
5446
5447 * window.c (Fset_window_configuration): Don't try to preserve
5448 point in the current buffer, if that buffer is displayed in more
5449 than one window.
5450
5451 * xfaces.c (lookup_named_face): If default face isn't realized,
5452 try to realize it. Return -1 if not successful.
5453 (Fx_list_fonts): Handle case that face cannot be determined.
5454 (Fface_font): Likewise.
5455
5456 2000-11-06 Gerd Moellmann <gerd@gnu.org>
5457
5458 * window.c (displayed_window_lines): Detect partially
5459 visible lines at the bottom correctly.
5460
5461 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
5462
5463 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
5464 when ensuring we don't do visit in indirect buffer.
5465
5466 2000-11-06 Kenichi Handa <handa@etl.go.jp>
5467
5468 * composite.h (compose_chars_in_text): Add prototype.
5469
5470 * composite.c (Vcomposition_function_table): New variable.
5471 (Qcomposition_function_table): New variable.
5472 (run_composition_function): Call
5473 Vcompose_chars_after_function with three arguments.
5474 (compose_chars_in_text): New function.
5475 (syms_of_composite): Modified the doc-string of
5476 Vcompose_chars_after_function. Declare composition-function-table
5477 as a lisp variable, and initialize it.
5478
5479 * xfns.c (x_encode_text): Suppress producing escape sequences for
5480 composition.
5481
5482 * xselect.c: Include composite.h.
5483 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
5484
5485 2000-11-05 Andrew Innes <andrewi@gnu.org>
5486
5487 * w32term.c (x_produce_glyphs): Fix typo in enum name.
5488
5489 * sysdep.c (read_input_waiting): Remove extraneous argument to
5490 read_socket_hook.
5491
5492 * w32fns.c (Fx_server_version): Include w32_build_number in the
5493 return list.
5494
5495 * w32heap.c (w32_build_number): New variable.
5496 (cache_system_info): Set it.
5497
5498 * w32heap.h (w32_build_number): Add extern.
5499
5500 * emacs.c (syms_of_emacs): Update docstring for
5501 system-configuration, to reflect the actual usage on MS-Windows.
5502
5503 2000-10-31 Gerd Moellmann <gerd@gnu.org>
5504
5505 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
5506 process idle timers while waiting for another event.
5507
5508 * dispnew.c (update_frame_line): Handle case where spaces in
5509 the default face are colored.
5510
5511 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
5512 window height hasn't changed.
5513
5514 2000-10-31 Jason Rumney <jasonr@gnu.org>
5515
5516 * w32term.c (x_produce_glyphs): Handle composite characters.
5517 (x_draw_glyph_string_foreground)
5518 (x_draw_composite_glyph_string_foreground): Restore old font.
5519
5520 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
5521
5522 * minibuf.c (read_minibuf): Reset the undo history just before
5523 starting the recursive-edit.
5524
5525 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5526
5527 * xfaces.c (menu_face_change_count): New variable.
5528 (Finternal_set_lisp_face_attribute): Increment it for changes
5529 of the `menu' face.
5530 (realize_basic_faces): Reflect changes in the `menu' faces
5531 in menu bars.
5532
5533 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
5534 dy obtained from the iterator's y-position after moving from
5535 scroll_margin_pos to PT; see comment there.
5536
5537 * xdisp.c (safe_eval_handler): Call add_to_log.
5538
5539 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
5540 is not a symbol or string.
5541
5542 * xdisp.c (echo_area_display): Don't perform a display update from
5543 inside redisplay. The update will happen anyway at the end of
5544 redisplay, and it can confuse redisplay (GC messages while
5545 redisplaying, for instance.)
5546
5547 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
5548
5549 * xrdb.c (x_load_resources): Use the class name in the defaults.
5550
5551 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
5552 (regex_compile): Catch bogus \(\1\).
5553
5554 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5555
5556 * xterm.c (x_alloc_nearest_color): Fix last change to compare
5557 RGB values.
5558
5559 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
5560 we have a color cache, check that the cached color equals the
5561 allocated color. If not, clear the color cache.
5562
5563 * window.c (displayed_window_lines): Change buffers if necessary.
5564 Fix computation of displayed lines.
5565
5566 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
5567 update_menu_bindings to DEFVAR_BOOL.
5568
5569 2000-10-30 Kenichi Handa <handa@etl.go.jp>
5570
5571 * search.c (Fset_match_data): Be sure to make search_regs always sane.
5572
5573 * puresize.h (BASE_PURESIZE): Increase to 680000.
5574
5575 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
5576
5577 2000-10-29 Jason Rumney <jasonr@gnu.org>
5578
5579 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
5580
5581 * w32term.c (w32_bdf_per_char_metric): Negate descent.
5582 (w32_cache_char_metrics): Handle possibility that 'x' does not
5583 exist in a BDF font.
5584 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
5585
5586 * w32bdf.h (bdffont): Add nchars.
5587
5588 * w32bdf.c (set_bdf_font_info): Set it.
5589 (w32_BDF_TextOut): Swap byte order of double byte characters.
5590 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
5591
5592 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
5593
5594 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
5595 don't override the colors in frame's param_alist, unless they are
5596 unspecified.
5597
5598 * term.c (reassert_line_highlight): If inverse_video is non-zero,
5599 reverse the effect of the highlight flag.
5600
5601 2000-10-27 Ken Raeburn <raeburn@gnu.org>
5602
5603 * window.h (Fwindow_live_p): Declare.
5604
5605 * undo.c (record_delete): Check that last_undo_buffer is really a
5606 buffer before applying XBUFFER to it.
5607
5608 * keymap.c (where_is_internal): Pass lisp object, not integer, to
5609 Faref.
5610
5611 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5612
5613 * lisp.h (KEYMAPP): New macro.
5614 (get_keymap): Remove.
5615 (get_keymap_1): Rename get_keymap.
5616
5617 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
5618
5619 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
5620
5621 * xmenu.c (single_submenu): Use KEYMAPP.
5622 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5623 Use KEYMAPP rather than Fkeymapp.
5624
5625 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
5626
5627 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
5628 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5629 Use KEYMAPP rather than Fkeymapp.
5630 (single_submenu): Use KEYMAPP.
5631 (w32_menu_show, w32_dialog_show): Use TRUE.
5632
5633 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
5634
5635 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
5636 (Fkeymapp): Use KEYMAPP.
5637 (get_keymap): Rename from get_keymap_1. Remove old def.
5638 Return t when autoload=0 and error=0 and the keymap needs autoloading.
5639 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
5640 (Fminor_mode_key_binding): Don't raise an error if the binding
5641 is not a keymap.
5642 (Fuse_global_map, Fuse_local_map): Allow autoloading.
5643 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
5644
5645 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
5646 Allow Vspecial_event_map to be autoloaded.
5647 (menu_bar_items): Fetch the keymap rather than using keymapp.
5648 (menu_bar_one_keymap): No need to follow func-indirect any more.
5649 (parse_menu_item): get_keymap_1 -> get_keymap.
5650 (tool_bar_items): Fetch the keymap rather than using keymapp.
5651 (read_key_sequence): Use KEYMAPP.
5652
5653 * intervals.c (get_local_map): Use get_keymap rather than following
5654 function-indirections explicitly.
5655
5656 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
5657
5658 2000-10-27 Jason Rumney <jasonr@gnu.org>
5659
5660 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
5661 point, as Windows has oversized fonts.
5662
5663 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
5664
5665 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5666
5667 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
5668 (freehook, reallochook): Handle null pointer arguments.
5669 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
5670
5671 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5672
5673 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
5674 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
5675 Giving in to popular pressure to shut up the compiler with casts.
5676
5677 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5678
5679 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
5680 signed value, and use a default value computed from the font's
5681 maximum descent.
5682
5683 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
5684
5685 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
5686 that specify a negative underline position can still use underlines.
5687
5688 * window.c (Fpos_visible_in_window_p): Make POS default to
5689 WINDOW's point, not the current buffer's point.
5690
5691 2000-10-26 Dave Love <fx@gnu.org>
5692
5693 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
5694 when it's necessary.
5695
5696 2000-10-26 Gerd Moellmann <gerd@gnu.org>
5697
5698 * window.c (size_window): Compute size difference from sum of old
5699 child window sizes instead of from parent's size.
5700
5701 * xdisp.c (pos_visible_p): Change current buffer if necessary.
5702 Handle obscured lines at the top of the window.
5703
5704 * frame.c (Fdelete_frame): Doc fix. Move running the hook
5705 down after the last error condition check.
5706
5707 * frame.c (Fdelete_frame): Run delete-frame-hook.
5708
5709 2000-10-26 Kenichi Handa <handa@etl.go.jp>
5710
5711 * coding.c (decode_coding): Fix previous change (check also
5712 CODING_MODE_LAST_BLOCK).
5713
5714 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5715
5716 * regex.c: More `unsigned char' -> `re_char' changes.
5717 Also change several `int' into `re_wchar_t'.
5718 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
5719 (PUSH_FAILURE_POINTER): Don't cast any more.
5720 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
5721 We want GCC to complain, since this piece of code makes
5722 re_match non-reentrant, which *should* be fixed.
5723 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
5724 (EXTEND_BUFFER): Use RETALLOC.
5725 (SET_LIST_BIT): Don't cast.
5726 (re_wchar_t): New type.
5727 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
5728 that those two functions will always properly return.
5729 (IMMEDIATE_QUIT_CHECK): Cast to void.
5730 (analyse_first): Use recursion rather than an explicit stack.
5731 (re_compile_fastmap): Can't fail anymore.
5732 (re_search_2): Don't check re_compile_fastmap for failure.
5733 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
5734 Now also sets the new value (passed in a new argument).
5735 (re_match_2_internal): Use it.
5736 Also, use a new var `reg' of type size_t when looping through regs
5737 rather than reuse the inappropriate `mcnt'.
5738
5739 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
5740 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
5741 (where_is_internal): Renamed from Fwhere_is_internal.
5742 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
5743 (Fwhere_is_internal): New function wrapping where_is_internal.
5744 (where_is_internal_1): Handle the case where we're filling the cache.
5745 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
5746
5747 2000-10-25 Miles Bader <miles@gnu.org>
5748
5749 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
5750
5751 2000-10-25 Gerd Moellmann <gerd@gnu.org>
5752
5753 * window.c (pos_fully_visible_p): Removed.
5754 (Fpos_visible_in_window_p): Use pos_visible_p to determine
5755 if position is visible and/or fully visible.
5756
5757 * lisp.h (pos_visible_p): Add prototype.
5758
5759 * xdisp.c (pos_visible_p): New function.
5760
5761 2000-10-25 Kenichi Handa <handa@etl.go.jp>
5762
5763 * process.c (send_process): If OBJECT is t, it means that the data
5764 is from C string, but we should encode it. Before calling
5765 setup_raw_text_coding_system, be sure to flush out data by the
5766 previous coding system.
5767
5768 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
5769
5770 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
5771 assignment of startpos to prev when startpos == pos.
5772
5773 * editfns.c (find_field): Set the field stickiness correctly from
5774 overlay fields. Use renamed `text_property_stickiness'.
5775 (text_property_stickiness): Renamed from `char_property_stickiness'.
5776 Only check text properties, not overlays.
5777 * textprop.c (get_char_property_and_overlay): New function.
5778 (Fget_char_property): Use it.
5779 * intervals.h (get_char_property_and_overlay): Add declaration.
5780
5781 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5782
5783 * keymap.c: Use AREF, ASET and ASIZE macros.
5784 (Fmake_sparse_keymap): Docstring fix.
5785 (synkey): Remove.
5786 (shadow_lookup): Move up.
5787 Handle the case where lookup-key returns an integer.
5788 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
5789 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
5790 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
5791 Simplify/rewrite the keymap-finding code.
5792 Add check for command shadowing, using shadow_lookup.
5793
5794 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
5795
5796 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
5797 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
5798 a symbol.
5799
5800 2000-10-24 Andrew Innes <andrewi@gnu.org>
5801
5802 * dired.c (directory_files_internal_unwind): New function.
5803 (directory_files_internal): Use it to ensure closedir is called
5804 even if expand-file-name or file-attributes throw, eg. because of
5805 a user interrupt. Also enable immediate_quit while calling
5806 re_search, so that matching can be interrupted as well.
5807
5808 2000-10-24 Andrew Innes <andrewi@gnu.org>
5809
5810 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
5811 NT-Emacs only.
5812 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
5813 so that re_search functions only quit when callers expect them to.
5814
5815 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5816
5817 * regex.c (regex_compile): Change the way of handling a range from
5818 a char less than 256 to a char not less than 256.
5819
5820 2000-10-24 Gerd Moellmann <gerd@gnu.org>
5821
5822 * window.c (size_window): Prevent setting window's width or
5823 height to a negative value (esp. with XSETFASTINT).
5824
5825 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
5826 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
5827 (protect_malloc_state) [GC_MALLOC_CHECK &&
5828 GC_PROTECT_MALLOC_STATE]: New function.
5829 (PROTECT_MALLOC_STATE): New macro.
5830 (__malloc_initialize, morecore, _malloc_internal)
5831 (_free_internal) _realloc_internal): Use it to make _heapinfo
5832 read-only outside of gmalloc.
5833
5834 * keymap.c: Update copyright.
5835
5836 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
5837 a symbol.
5838
5839 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
5840
5841 * filelock.c (unlock_all_files): Use unlock_file to expand each
5842 buffer's file_truename before trying remove its lock file.
5843
5844 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
5845
5846 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
5847 or CRLF, decode EOLs.
5848
5849 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5850
5851 * window.c (Fdisplay_buffer): Fix doc.
5852
5853 2000-10-23 Jason Rumney <jasonr@gnu.org>
5854
5855 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
5856 ASCII font of default fontset on Windows.
5857
5858 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
5859 xterm.c comment below).
5860
5861 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
5862
5863 2000-10-23 Gerd Moellmann <gerd@gnu.org>
5864
5865 * xterm.c (x_connection_closed): Reset handling_signal.
5866
5867 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
5868
5869 2000-10-23 Miles Bader <miles@gnu.org>
5870
5871 * window.c (window_scroll_pixel_based, window_scroll_line_based):
5872 Pass nil for FULLY argument to Fpos_visible_in_window_p to
5873 maintain old behavior.
5874 * minibuf.c (Fminibuffer_complete): Likewise.
5875
5876 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
5877
5878 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
5879 that when a font can't be exactly centered, it errs up rather than
5880 down.
5881
5882 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
5883
5884 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
5885
5886 2000-10-23 Andrew Choi <akochoi@i-cable.com>
5887
5888 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
5889
5890 * dispnew.c [macintosh]: Include macterm.h.
5891 (init_display) [macintosh]: Initialization for window system.
5892
5893 * emacs.c (main) [macintosh]: Call syms_of_textprop,
5894 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
5895 syms_of_search, x_term_init, and init_keyboard before calling
5896 init_window_once. Also, call syms_of_xmenu.
5897
5898 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
5899 default fontset to Monaco.
5900
5901 * frame.c [macintosh]: Include macterm.h. Remove declarations of
5902 NewMacWindow and DisposeMacWindow.
5903 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
5904 instead of calling NewMacWindow and setting fields of
5905 f->output_data.mac directly. Call init_frame_faces.
5906 (Fdelete_frame) [macintosh]: Remove unused code.
5907 (Fmodify_frame_parameters) [macintosh]: Call
5908 x_set_frame_parameters instead of mac_set_frame_parameters.
5909
5910 * frame.h [macintosh]: Define menu_bar_lines field in struct
5911 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
5912
5913 * keyboard.c [macintosh]: Include macterm.h.
5914 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
5915 and menu_bar_activate_event type events as for X and NT.
5916 (make_lispy_event) [macintosh]: Construct lisp events of type
5917 MENU_BAR_EVENT as for X and NT.
5918
5919 * sysdep.c [macintosh]: Remove declaration for sys_signal.
5920 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
5921 (sys_subshell) [macintosh]: Remove definition entirely.
5922 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
5923 Vwindow_system_version here. Remove initialization of
5924 Vx_bitmap_file_path.
5925 (read_input_waiting): Correct the number of parameters passed to
5926 read_socket_hook.
5927 Move all Macintosh functions to mac/mac.c.
5928
5929 * term.c [macintosh]: Include macterm.h.
5930
5931 * window.c [macintosh]: Include macterm.h.
5932
5933 * xdisp.c [macintosh]: Include macterm.h. Declare
5934 set_frame_menubar and pending_menu_activation.
5935 (echo_area_display) [macintosh]: Do not return if terminal frame
5936 is the selected frame.
5937 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
5938 Allow only the selected frame to set menu bar.
5939 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
5940 calling FRAME_EXTERNAL_MENU_BAR (f).
5941 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
5942
5943 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
5944 and check_x. Declare XCreateGC. Define x_create_gc and
5945 x_free_gc. Initialize font_sort_order.
5946 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
5947 but call x_list_fonts instead of w32_list_fonts.
5948 (Finternal_face_x_get_resource) [macintosh]: Do not call
5949 display_x_get_resource.
5950 (prepare_face_for_display) [macintosh]: Set xgcv.font.
5951 (realize_x_face) [macintosh]: Load the font if it is specified in
5952 ATTRS.
5953 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
5954
5955 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
5956
5957 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
5958 is nil: since we go to the end of submap anyway, we'd end up
5959 setting nil to nil.
5960 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
5961 doesn't obey autoload.
5962
5963 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5964
5965 * msdos.c (dos_set_window_size): Update screen dimension variables.
5966
5967 2000-10-21 Jason Rumney <jasonr@gnu.org>
5968
5969 * w32term.c (w32_cache_char_metrics): Double check that font is
5970 really fixed pitch before trusting tmPitchAndFamily.
5971
5972 2000-10-21 Andrew Innes <andrewi@gnu.org>
5973
5974 * w32gui.h (w32_char_font_type): Move enum from w32term.c
5975
5976 * w32term.h: Extern decl for w32_cache_char_metrics.
5977
5978 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
5979
5980 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
5981 (w32_unload_font): Free per_char array if present.
5982
5983 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
5984 cached information in emulated XFontStruct to handle common cases
5985 quickly. Do not allocate XCharStruct for return.
5986 (w32_native_per_char_metric): New function.
5987 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
5988 allocating one.
5989 (x_produce_glyphs): Don't get an HDC. Change calls to
5990 w32_per_char_metric to match arg change above. Remove calls to
5991 free results.
5992 (w32_get_glyph_overhangs): Ditto.
5993 (w32_cache_char_metrics): New function.
5994
5995 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
5996 ($(BLD)/casefiddle.$(O)): Remove compile command.
5997 ($(BLD)/gmalloc.$(O)): Remove compile command.
5998 ($(BLD)/dispnew.obj):
5999 ($(BLD)/keyboard.obj):
6000 ($(BLD)/w32inevt.obj):
6001 ($(BLD)/w32bdf.obj):
6002 ($(BLD)/alloc.obj):
6003 ($(BLD)/buffer.obj):
6004 ($(BLD)/editfns.obj):
6005 ($(BLD)/emacs.obj):
6006 ($(BLD)/fileio.obj):
6007 ($(BLD)/fns.obj):
6008 ($(BLD)/indent.obj):
6009 ($(BLD)/insdel.obj):
6010 ($(BLD)/intervals.obj):
6011 ($(BLD)/minibuf.obj):
6012 ($(BLD)/print.obj):
6013 ($(BLD)/scroll.obj):
6014 ($(BLD)/sysdep.obj):
6015 ($(BLD)/textprop.obj):
6016 ($(BLD)/widget.obj):
6017 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
6018 ($(BLD)/term.obj): Add dependency on dispextern.h.
6019
6020 * makefile.nt ($(BLD)\dispnew.obj):
6021 ($(BLD)\keyboard.obj):
6022 ($(BLD)\w32inevt.obj):
6023 ($(BLD)\w32bdf.obj):
6024 ($(BLD)\alloc.obj):
6025 ($(BLD)\buffer.obj):
6026 ($(BLD)\editfns.obj):
6027 ($(BLD)\emacs.obj):
6028 ($(BLD)\fileio.obj):
6029 ($(BLD)\fns.obj):
6030 ($(BLD)\indent.obj):
6031 ($(BLD)\insdel.obj):
6032 ($(BLD)\intervals.obj):
6033 ($(BLD)\minibuf.obj):
6034 ($(BLD)\print.obj):
6035 ($(BLD)\scroll.obj):
6036 ($(BLD)\sysdep.obj):
6037 ($(BLD)\textprop.obj):
6038 ($(BLD)\widget.obj):
6039 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
6040 ($(BLD)\term.obj): Add dependency on dispextern.h
6041
6042 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6043
6044 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
6045 with an additional argument of Qt.
6046
6047 2000-10-21 Miles Bader <miles@gnu.org>
6048
6049 * window.c (pos_fully_visible_in_window_p): New function.
6050 (Fpos_visible_in_window_p): Add FULLY argument.
6051 Use pos_fully_visible_in_window_p.
6052 (window_scroll_pixel_based, window_scroll_line_based): Update
6053 calls to Fpos_visible_in_window_p.
6054 * lisp.h (Fpos_visible_in_window_p): Update prototype
6055
6056 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6057
6058 * alloc.c (toplevel): Conditionalize compilation of mem_*
6059 functions differently.
6060
6061 2000-10-20 Jason Rumney <jasonr@gnu.org>
6062
6063 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
6064 mem_init where it used to be. mem_z etc not defined otherwise.
6065
6066 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6067
6068 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
6069 GC_MALLOC_CHECK.
6070 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
6071 structure definition and related variabled to the top of the file.
6072 Include this code when GC_MALLOC_CHECK is defined.
6073 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
6074 register/unregister allocated region.
6075 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
6076 which isn't allocated.
6077 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
6078 something which is already in use.
6079 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
6080 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
6081 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
6082 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
6083
6084 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
6085 _malloc_internal instead of malloc.
6086 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
6087 of free.
6088
6089 2000-10-20 Andrew Innes <andrewi@gnu.org>
6090
6091 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
6092 Windows.
6093 (my_strftime) <macro>: Don't use macro arg list when redefining as
6094 _strftime_copytm.
6095 (my_strftime) <function>: Supply 0 as ut argument.
6096
6097 2000-10-19 Jason Rumney <jasonr@altavista.net>
6098
6099 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
6100 including dispextern.h, as it stops faces from working.
6101
6102 * w32fns.c (Fx_create_frame): Don't bother calling
6103 face-set-after-frame-default since the caller does it for us
6104 anyway. Clean up calls to x_get_arg to be consistent with X.
6105
6106 * w32term.c (x_produce_glyphs): Handle
6107 unibyte_display_via_language_environment correctly.
6108 (w32_draw_box_rect): Fix the calculation of width and height.
6109
6110 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
6111 as it has stopped working.
6112 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
6113 menu-bar.
6114
6115 2000-10-19 Gerd Moellmann <gerd@gnu.org>
6116
6117 * eval.c (skip_debugger): Prevent a compiler warning.
6118 (Fcondition_case): Likewise.
6119 (Fbacktrace_frame): Use a null interactive spec.
6120
6121 2000-10-19 Kenichi Handa <handa@etl.go.jp>
6122
6123 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
6124
6125 2000-10-18 Gerd Moellmann <gerd@gnu.org>
6126
6127 * strftime.c: Sync with glibc, file version 1.78.
6128 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
6129 should no longer be used according to ISO 8601.
6130
6131 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
6132 no map for meta_prefix_char, don't try to use it as a keymap.
6133 Instead, if T_OK is non-zero, look up a default binding, if any,
6134 otherwise, if T_OK is zero, return nil.
6135
6136 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
6137 (x_to_xcolors, png_load): Use x_query_color.
6138
6139 * xterm.c (x_color_cells, x_query_colors, x_query_color):
6140 New functions.
6141 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
6142 which can be slow.
6143 (x_copy_color, x_alloc_lighter_color): Likewise.
6144
6145 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
6146 (x_query_color, x_query_colors): Add prototype.
6147
6148 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
6149 check_string_bytes only if not noninteractive, increase count to 50.
6150
6151 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
6152
6153 * insdel.c (adjust_markers_for_delete): Handle before-insertion
6154 markers correctly.
6155
6156 2000-10-17 Gerd Moellmann <gerd@gnu.org>
6157
6158 * alloc.c (pure_bytes_used): Renamed from pureptr.
6159 (ALIGN): New macro.
6160 (pure_alloc): New function.
6161 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
6162 Use it.
6163 (Fpurecopy): Use PURE_POINTER_P.
6164
6165 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
6166 PT has moved backward.
6167
6168 * xdisp.c (cursor_row_p): Take continued lines into account.
6169
6170 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
6171 string's size_byte.
6172 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
6173 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
6174 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
6175 string allocated.
6176
6177 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
6178 of selective display off while searching for the next line start.
6179
6180 2000-10-17 Kenichi Handa <handa@etl.go.jp>
6181
6182 * Makefile.in (term.o): Depend on dispextern.h.
6183
6184 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
6185
6186 * keymap.c (keymap_memberp): Ensure that nil is not a member.
6187
6188 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6189
6190 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
6191 the iterator at the beginning, so that they can be set later on,
6192 for instance in reseat_at_next_visible_line_start, without being
6193 overwritten.
6194
6195 * xfns.c (pbm_format): Add :foreground and :background keywords.
6196 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
6197 (xbm_load): Recognize foreground and background color specifications.
6198
6199 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
6200
6201 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
6202
6203 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
6204
6205 * msdos.c (IT_set_face): Compare highlighted face with the default
6206 face, and invert colors if these faces' colors are identical.
6207 (Fmsdos_remember_default_colors): Don't swap foreground and
6208 background colors in initial_colors[].
6209 (IT_set_frame_parameters): Don't swap frame's foreground and
6210 background pixels. If ALIST includes "(reverse . t)", swap
6211 foreground-color and background-color properties in frame's
6212 param_alist. If the original frame's param_alist doesn't specify
6213 the colors, store unspecified-fg and unspecified-bg, reversed if
6214 required.
6215
6216 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
6217 the colors are unspecified and reversed, reverse fore- and back-
6218 ground in the returned value.
6219 (Fframe_parameter): Ditto.
6220
6221 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6222
6223 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
6224 get_last_unchanged_at_beg_row.
6225 (find_first_unchanged_at_end_row): Renamed from
6226 get_first_unchanged_at_end_row.
6227 (find_first_unchanged_at_end_row): Convert assertions to
6228 unconditional tests which abort. When looking for a row in
6229 unchanged text, don't go further back than first_text_row.
6230
6231 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
6232 Don't add in the last line's height when deciding if the new
6233 position is below the scroll margin.
6234
6235 2000-10-16 Miles Bader <miles@gnu.org>
6236
6237 * editfns.c (Fconstrain_to_field): Check carefully for field
6238 boundaries if either OLD_POS or NEW_POS has a non-nil field
6239 property, even if they're the same.
6240
6241 2000-10-16 Kenichi Handa <handa@etl.go.jp>
6242
6243 * xterm.c (x_draw_box_rect): Fix the calculation of width and
6244 height for XFillRectangle.
6245
6246 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
6247
6248 * syntax.c (Fstring_to_syntax): New function extracted from
6249 Fmodify_syntax_entry.
6250 (Fmodify_syntax_entry): Use it and document the ! and | fences.
6251 (skip_chars, Fforward_comment): Remove unused variables.
6252 (syms_of_syntax): Add defsubr for string-to-syntax.
6253 (describe_syntax): Add code for comment and string fences.
6254
6255 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
6256
6257 * keymap.c (access_keymap): Add AUTOLOAD parameter.
6258 Do the meta->esc mapping. Call get_keyelt before returning.
6259 Start scanning from the second element (the first is always `keymap')
6260 to make it easier to detect when we reach a parent map.
6261 Handle the case of inheriting from a symbol whose function is a map.
6262 (Fkeymap_parent): Also handle the `inherit from symbol' case.
6263 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
6264 (get_keyelt, Flookup_key): Update call to access_keymap.
6265 Remove the meta->esc mappings.
6266 (define_as_prefix): Delete old disabled code.
6267 (menu_item_p): New function.
6268 (where_is_internal_1): Skip over the few remaining menu items.
6269 * lisp.h (access_keymap): Update prototype.
6270 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
6271 Update call to access_keymap.
6272 (follow_key, read_key_sequence): Update calls to access_keymap.
6273 Remove the meta->esc mappings.
6274
6275 2000-10-13 Gerd Moellmann <gerd@gnu.org>
6276
6277 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
6278 with additional argument.
6279
6280 * xdisp.c (cursor_row_p): New function.
6281 (try_cursor_movement, display_line): Use it.
6282
6283 * xdisp.c (append_space): Also save/restore iterator's current
6284 character and its length.
6285
6286 * xdisp.c (init_from_display_pos): Add an assertion.
6287 (handle_stop): Don't set iterator's add_overlay_start.
6288 (handle_invisible_prop): Likewise.
6289 (load_overlay_strings): If text under an overlay is invisible,
6290 take both before- and after-strings into account when the iterator
6291 is positioned either at the start or at the end of the overlay.
6292 (forward_to_next_line_start): Rewritten.
6293 (reseat_at_next_visible_line_start): Rewritten.
6294 (set_iterator_to_next): Add parameter RESEAT_P.
6295
6296 * dispextern.h (struct it): Remove member add_overlay_start.
6297 (set_iterator_to_next): Change prototype.
6298
6299 2000-10-13 Kenichi Handa <handa@etl.go.jp>
6300
6301 * coding.c (code_convert_region): Be sure to initialize
6302 coding->category_idx.
6303 (decode_coding_string): Set coding->src_multibyte and
6304 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
6305 (encode_coding_string): Set coding->src_multibyte and
6306 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
6307
6308 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
6309
6310 * xfns.c (Fx_create_frame): Don't bother calling
6311 face-set-after-frame-default since the caller does it for us anyway.
6312
6313 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
6314
6315 * window.c (coordinates_in_window): Fix detection of vertical line
6316 on character terminals.
6317
6318 2000-10-12 Gerd Moellmann <gerd@gnu.org>
6319
6320 * editfns.c (save_excursion_save): Additionally record the
6321 selected window.
6322 (save_excursion_restore): If buffer was visible in a window, and a
6323 different window was selected, and the old selected window is
6324 still live, restore point in that window.
6325
6326 2000-10-12 Kenichi Handa <handa@etl.go.jp>
6327
6328 * xterm.c (x_produce_glyphs): Handle
6329 unibyte_display_via_language_environment correctly.
6330
6331 * regex.c (regex_compile): Change the way of handling a range from
6332 unibyte char to multibyte char.
6333
6334 * syntax.c (skip_chars): Change the way of handling a range from
6335 unibyte char to multibyte char.
6336
6337 * process.c (read_process_output): Cancel previous change.
6338
6339 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
6340
6341 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
6342
6343 * charset.c (Ffind_charset_string): Doc fix.
6344 (Ffind_charset_region): Doc fix.
6345
6346 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
6347
6348 * process.c (read_process_output): Fix previous change. Adjust
6349 multibyteness of text to insert in a buffer by
6350 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
6351
6352 2000-10-10 Andreas Schwab <schwab@suse.de>
6353
6354 * alloc.c (mark_object): Remove all workarounds installed on
6355 1993-08-08.
6356
6357 2000-10-10 Kenichi Handa <handa@etl.go.jp>
6358
6359 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
6360 (base64_encode_1): Make it work for a text of multibyte form.
6361 (Fbase64_decode_region): Allocate sufficient memory for multibyte
6362 case. Don't call str_to_multibyte because base64_decode_1
6363 produces correct multibyte form for eight-bit codes.
6364 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
6365 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
6366 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
6367 codes.
6368
6369 * charset.h (CHAR_STRING): Optimized for single byte characters.
6370
6371 2000-10-09 Andreas Schwab <schwab@suse.de>
6372
6373 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
6374 -1 after socket is closed, to fall through to error processing.
6375
6376 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
6377
6378 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
6379 variables. If ALIST includes foreground-color or
6380 background-color, change also the colors of the default face for
6381 this frame.
6382
6383 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
6384
6385 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
6386 them extern (they are defined on xfaces.c).
6387 (syms_of_msdos): Don't intern and don't staticpro
6388 Qbackground_color and Qforeground_color.
6389
6390 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
6391
6392 * frame.c (Fframe_parameter): For non-windowed frames, if
6393 f->param_alist says foreground or background color is unspecified,
6394 call tty_color_name to return the color name computed from the
6395 frame's current colors.
6396
6397 2000-10-06 Dave Love <fx@gnu.org>
6398
6399 * terminfo.c (ospeed): Don't declare.
6400
6401 * sysdep.c: Don't include string.h.
6402 (h_errno): Declare conditional also on TRY_AGAIN.
6403
6404 * charset.c (Ffind_charset_string): Doc fix.
6405
6406 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
6407 (Fbase64_decode_region, Fbase64_decode_string): More explicit
6408 error messages.
6409
6410 2000-10-05 Dave Love <fx@gnu.org>
6411
6412 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
6413 position like menu-bar.
6414
6415 2000-10-05 Gerd Moellmann <gerd@gnu.org>
6416
6417 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
6418
6419 * xdisp.c (handle_single_display_prop): Use safe_call1.
6420 (safe_call): Renamed from call_function.
6421 (safe_call1): New function.
6422 (handle_fontified_prop): Use safe_call1 instead of call1.
6423 (safe_eval): Renamed from eval_form.
6424 (safe_eval_handler): Renamed from eval_handler.
6425 (handle_single_display_prop, display_mode_element): Use safe_eval
6426 instead of eval_form.
6427
6428 * xfaces.c (merge_face_heights): Use safe_call instead of
6429 call_function.
6430
6431 * keyboard.c (show_help_echo): Use safe_call instead of
6432 call_function; use safe_eval instead of eval_form.
6433
6434 * lisp.h (safe_call): Renamed from call_function.
6435 (safe_eval): Renamed from eval_form.
6436 (safe_call1): Add prototype.
6437
6438 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
6439
6440 * xfns.c (image_ascent): Rearrange ascent calculation for the
6441 has-a-font case.
6442
6443 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
6444
6445 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
6446 (where_is_internal_1): Don't bother ignoring menu-items any more.
6447
6448 2000-10-04 Gerd Moellmann <gerd@gnu.org>
6449
6450 * keyboard.c (update_menu_bindings): New variable.
6451 (parse_menu_item): Use AREF. If update_menu_bindings
6452 is 0, don't update menu bindings.
6453 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
6454
6455 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
6456
6457 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
6458 to `mark_object'.
6459
6460 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
6461
6462 * syntax.c (forw_comment): Match nestedness of ender/starter.
6463 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
6464 (prev_char_comstart_first): Remove.
6465 (back_comment): Check two-char comment markers more carefully
6466 to better handle overlapping cases like *//* or /* */* */ ...
6467 Match nestedness of ender/starter.
6468
6469 2000-10-02 Dave Love <fx@gnu.org>
6470
6471 * config.in (HAVE_GAI_STRERROR): Add undef.
6472
6473 * process.c (Fopen_network_stream): Use it.
6474
6475 * m/alpha.h (NO_REMAP): Don't define.
6476
6477 2000-10-02 Gerd Moellmann <gerd@gnu.org>
6478
6479 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
6480 return with a string converted to an integer or vice versa when
6481 Vmocklisp_arguments is t.
6482 (Fsignal): Likewise. The function can return for `quit'.
6483 (struct gcpro): Declare member `var' to point to a volatile
6484 Lisp_Object.
6485
6486 * eval.c (error): Prevent compiler warning.
6487
6488 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
6489
6490 * keymap.c (keymap_memberp): New function.
6491 (Fset_keymap_parent): Use it.
6492 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
6493 Use keymap_memberp to avoid creating cycles.
6494 (access_keymap): Use KEYMAPP.
6495
6496 2000-09-30 Gerd Moellmann <gerd@gnu.org>
6497
6498 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
6499 gai_strerror. Make sure xerrno is set if connect fails. Improve
6500 error recovery.
6501
6502 2000-09-29 Jason Rumney <jasonr@gnu.org>
6503
6504 * w32term.c (w32_char_font_type, w32_encode_char)
6505 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
6506 (w32_bdf_per_char_metric): New function.
6507 (w32_per_char_metric): Use it.
6508 (x_draw_glyph_string_background): Always draw background for BDF
6509 glyphs.
6510
6511 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
6512 GDI object which is a scarce resource.
6513
6514 * w32bdf.c (search_file_line): Fix skipping of whitespace.
6515 (get_quoted_string): Fix limit on memchr search.
6516 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
6517 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
6518 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
6519 (get_cached_font_char, cache_char_offset): Use macro
6520 BDF_CODEPOINT_RANGE_COVER_P.
6521 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
6522 (clear_cached_bitmap_slots): New function.
6523 (GET_HEX_VALUE): G-Z, g-z are not hex.
6524 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
6525 (get_bitmap_with_cache): Use new cache implementation.
6526 (create_offscreen_bitmap): New function.
6527 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
6528
6529 * w32term.c (x_produce_glyphs): If the distance from the current
6530 position to the next tab stop is less than a canonical character
6531 width, use the tab stop after that.
6532 (x_draw_glyphs): Handle case START and END are out of bounds more
6533 carefully.
6534 (x_clear_mouse_face): Block/unblock input.
6535 (x_display_and_set_cursor): Don't show a hollow box cursor for
6536 buffers whose cursor_type is nil.
6537
6538 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6539
6540 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
6541
6542 * dispextern.h (updating_frame): Declare extern.
6543
6544 2000-09-29 Andreas Schwab <schwab@suse.de>
6545
6546 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
6547
6548 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6549
6550 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
6551 use its function definition.
6552 (tool_bar_items): Likewise.
6553
6554 * lisp.h (fatal): Declare NO_RETURN.
6555
6556 2000-09-29 Kenichi Handa <handa@etl.go.jp>
6557
6558 * keymap.c: Remove the line "#undef NULL".
6559
6560 2000-09-28 Gerd Moellmann <gerd@gnu.org>
6561
6562 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
6563
6564 2000-09-28 Dave Love <fx@gnu.org>
6565
6566 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
6567
6568 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
6569
6570 * .gdbinit (xreload): Note its need on GNU/Linux.
6571
6572 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
6573 r_alloc, r_alloc_free.
6574
6575 2000-09-28 Kenichi Handa <handa@etl.go.jp>
6576
6577 * syntax.c (skip_chars): Handle negation correctly.
6578
6579 2000-09-27 Gerd Moellmann <gerd@gnu.org>
6580
6581 * xfaces.c (realize_default_face): Call set_lface_from_font_name
6582 with non-zero FORCE_P argument.
6583
6584 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
6585 Add assertions.
6586
6587 * xdisp.c (window_box_height): Add an assertion.
6588
6589 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
6590 tool-bar than is available.
6591 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
6592
6593 2000-09-27 Dave Love <fx@gnu.org>
6594
6595 * s/irix6-5.h: Now works 64-bit. Tidied.
6596
6597 2000-09-26 Gerd Moellmann <gerd@gnu.org>
6598
6599 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
6600 instead of BITS_PER_INT.
6601 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
6602 EMACS_UINT, respectively.
6603 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
6604
6605 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
6606
6607 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
6608
6609 * window.c (freeze_window_starts): Construct last argument for
6610 foreach_window differently.
6611
6612 * xfns.c (x_decode_color): Don't return a Lisp_Object.
6613
6614 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
6615 EMACS_UINT instead of `int' and `unsigned int'.
6616 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
6617
6618 * frame.h (struct frame): Make the `nothing' member of union
6619 output_data an EMACS_INT.
6620
6621 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
6622 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
6623 size in the sdata structure.
6624 (SDATA_NBYTES, SDATA_DATA): New macros.
6625 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
6626 differently for the different layout of the sdata structure.
6627 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
6628 in sdata.
6629 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
6630 Check that size recorded in the string size and size recorded in
6631 the sdata structure agree.
6632
6633 2000-09-25 Dave Love <fx@gnu.org>
6634
6635 * buffer.c: Include stdio.h.
6636
6637 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
6638
6639 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
6640
6641 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
6642 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
6643 (__malloc_extra_blocks): Declare as __malloc_size_t.
6644
6645 2000-09-25 Gerd Moellmann <gerd@gnu.org>
6646
6647 * alloc.c (mark_image): Use GC_NILP instead of NILP.
6648
6649 * keyboard.c (show_help_echo): Set help_echo_showing_p.
6650 (read_char): If help-echo is showing, preserve the echo area
6651 when redisplaying.
6652
6653 * xdisp.c (help_echo_showing_p): New variable.
6654 (set_message): Reset it to 0.
6655 (init_xdisp): Initialize help_echo_showing_p.
6656
6657 * dispextern.h (help_echo_showing_p): Declare extern.
6658
6659 * config.in: Fix typo in __GNUC_MINOR__.
6660
6661 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
6662
6663 * s/freebsd.h (POSIX_SIGNALS): Define.
6664
6665 * xterm.c (x_clear_mouse_face): Block/unblock input.
6666
6667 2000-09-24 Dave Love <fx@gnu.org>
6668
6669 * fns.c (base64_encode_1): Fix last change.
6670
6671 2000-09-22 Gerd Moellmann <gerd@gnu.org>
6672
6673 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
6674
6675 * xdisp.c (try_window_reusing_current_matrix): More fixes
6676 for the case window has a header-line.
6677
6678 2000-09-22 Dave Love <fx@gnu.org>
6679
6680 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
6681 a doc string.
6682
6683 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
6684
6685 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
6686
6687 2000-09-21 Gerd Moellmann <gerd@gnu.org>
6688
6689 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
6690 for GCC >= 2.5.
6691
6692 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
6693 Declare NO_RETURN.
6694
6695 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
6696 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
6697 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
6698 warnings.
6699
6700 * marker.c (byte_char_debug_check): Return void.
6701
6702 * xfns.c (Fx_create_frame): Set default frame parameter value
6703 for tool-bar-lines to 1.
6704
6705 * dispnew.c (scrolling_window): Compare y-positions of rows
6706 equal at the start. Some simplification.
6707
6708 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
6709 reused rows' y-position in the case window has a header-line, and
6710 new window start is greater than old window start.
6711
6712 * process.c (process_sent_to): New variable.
6713 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
6714 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
6715 Declare more parameters volatile.
6716
6717 * lread.c (Vrecursive_load_depth_limit): New variable.
6718 (Fload): Check recursive loads whose recursion depth exceeds
6719 Vrecursive_load_depth_limit.
6720 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
6721
6722 2000-09-20 Gerd Moellmann <gerd@gnu.org>
6723
6724 * fileio.c (Fread_file_name): Doc fix.
6725
6726 * editfns.c (Fmessage_or_box): Doc fix.
6727
6728 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
6729
6730 * xfns.c (xbm_scan): Allow C-style comments.
6731
6732 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
6733 symbols are specified, add color translations to the cache.
6734 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
6735 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
6736 xpm_cache_color.
6737 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
6738 structures to xpm_init_color_cache.
6739
6740 2000-09-19 Gerd Moellmann <gerd@gnu.org>
6741
6742 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
6743
6744 2000-09-19 Andrew Innes <andrewi@gnu.org>
6745
6746 * makefile.nt (bootstrap-emacs): Don't change directory.
6747
6748 2000-09-19 Kenichi Handa <handa@etl.go.jp>
6749
6750 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
6751
6752 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
6753 If output buffer is too small, signal an appropriated error.
6754
6755 2000-09-18 Dave Love <fx@gnu.org>
6756
6757 * keyboard.c (menu_bar_items, tool_bar_items)
6758 (current_active_maps): Remove redundant get_local_map call.
6759
6760 2000-09-18 Gerd Moellmann <gerd@gnu.org>
6761
6762 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
6763 cursor for buffers whose cursor_type is nil.
6764
6765 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
6766 a feature to implement that is already implemented.
6767 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
6768 warnings.
6769
6770 * xfns.c (x_clear_image_1): New function.
6771 (x_clear_image): Use it.
6772 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
6773
6774 * dispnew.c (update_window): Move test for invisible lines
6775 at the top to update_window_line.
6776 (update_window_line): Handle invisible lines here.
6777
6778 * xfns.c (clear_image_cache): Clear current matrices of all
6779 frames sharing an image cache. Block input while freeing
6780 images. Fix timestamp comparison.
6781 (x_clear_image): Also free the mask.
6782
6783 * xfns.c (lookup_image): Block input while loading the image so
6784 that we won't get interrupted in a state where the image isn't yet
6785 set up completely.
6786 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
6787 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
6788 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
6789 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
6790
6791 2000-09-16 Gerd Moellmann <gerd@gnu.org>
6792
6793 * dispnew.c (update_window): Make sure to make desired rows
6794 current even if they are completely invisible at the top
6795 of a window.
6796
6797 2000-09-15 Gerd Moellmann <gerd@gnu.org>
6798
6799 * xfns.c (lookup_image): Build mask before applying an algorithm.
6800 Recognize algorithm `disabled'.
6801 (cross_disabled_images): New variable.
6802 (COLOR_INTENSITY): New macro.
6803 (x_detect_edges): Use COLOR_INTENSITY.
6804 (x_disable_image): New function.
6805 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
6806
6807 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
6808 disabled state, don't apply an image transformation algorithm if
6809 the user specified an image for the disabled state. Use
6810 `:algorithm disabled' for creating a disabled item's image if the
6811 user hasn't specified an image.
6812
6813 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
6814 allocation functions with the XPM lib.
6815 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
6816 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
6817 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
6818 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
6819 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
6820 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
6821 functions, if possible, because these handle color allocation
6822 failure more gracefully.
6823 (Fimage_mask_p): New function.
6824
6825 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
6826 (Qedge_detection, Qheuristic): New symbols.
6827 (syms_of_xfns): Initialize new symbols.
6828 (lookup_image): Handle `:mask X', `:algorithm emboss', and
6829 `algorithm (edge-detection ...)'.
6830 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
6831 (tiff_format, gif_format, gs_format): Add `:mask'.
6832 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
6833 (GIF_MASK, GS_MASK): New enumerators.
6834 (x_laplace_read_row, x_laplace_write_row): Functions removed.
6835 (emboss_matrix, laplace_matrix): New variables.
6836 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
6837 (x_edge_detection): New functions.
6838 (x_laplace): Rewritten in terms of x_detect_edges.
6839 (x_build_heuristic_mask): If image has a mask, free it.
6840
6841 2000-09-14 Andrew Innes <andrewi@gnu.org>
6842
6843 * makefile.w32-in: Revert to Unix line endings.
6844
6845 2000-09-14 Andrew Innes <andrewi@gnu.org>
6846
6847 * makefile.w32-in: Standardize indentation somewhat.
6848 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
6849 cater for differences between shells.
6850
6851 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
6852
6853 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6854
6855 * xterm.c (x_produce_glyphs): If the distance from the current
6856 position to the next tab stop is less than a canonical character
6857 width, use the tab stop after that.
6858
6859 2000-09-14 Dave Love <fx@gnu.org>
6860
6861 * buffer.c (alloc_buffer_text): Fix xmalloc call.
6862
6863 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6864
6865 * xdisp.c (handle_fontified_prop): While running fontification
6866 functions, bind `fontification-functions' and
6867 `after-change-functions' to nil.
6868
6869 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
6870 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
6871
6872 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
6873
6874 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
6875 USE_MMAP_FOR_BUFFERS.
6876
6877 * insdel.c (make_gap): Use enlarge_buffer_text.
6878
6879 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
6880 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
6881 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
6882 from former r_alloc_* functions in ralloc.c.
6883 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
6884 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
6885 (mmap_init) [REL_ALLOC_MMAP]: New function.
6886 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
6887 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
6888 BUFFER_FREE.
6889
6890 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
6891 (enlarge_buffer_text): Add prototype.
6892
6893 * ralloc.c: Remove everything having to do with the use of mmap.
6894
6895 2000-09-13 Gerd Moellmann <gerd@gnu.org>
6896
6897 * sound.c (Fplay_sound): Doc fix.
6898
6899 * keyboard.c: Avoid some more compiler warnings.
6900 (parse_tool_bar_item): Ignore cached key bindings.
6901
6902 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
6903 and allocation of Lisp data.
6904
6905 2000-09-12 Gerd Moellmann <gerd@gnu.org>
6906
6907 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
6908 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
6909 defaults first.
6910
6911 * lread.c (Fload): Put code checking for recursive loads in #if 0.
6912
6913 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
6914
6915 * ccl.c: Comment fixed.
6916 (MAX_MAP_SET_LEVEL): Increased to 30.
6917 (PUSH_MAPPING_STACK): Enclose with do-while block.
6918 (POP_MAPPING_STACK): Likewise.
6919 (stack_idx_of_map_multiple): New variable.
6920 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
6921 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
6922 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
6923 (ccl_driver) <CCL_MapSingle>: Likewise.
6924 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
6925 with the case where looking up process reaches to the end of
6926 map-set, and call CCL programs as the above change.
6927
6928 2000-09-11 Gerd Moellmann <gerd@gnu.org>
6929
6930 * xfns.c (png_load, jpeg_load): Declare some variables volatile
6931 that might be clobbered by longjmp.
6932 (check_x_display_info, x_decode_color, create_frame_xic)
6933 (Fx_display_backing_store, Fx_display_visual_class)
6934 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
6935
6936 * lread.c (init_lread): Set Vloads_in_progress to nil.
6937 (Fload): Show list of recursively loaded files, when signaling an
6938 error.
6939
6940 * lread.c (Vloads_in_progress): New variable.
6941 (record_load_unwind): New function.
6942 (Fload): Check for recursive loads.
6943 (syms_of_lread): Initialize Vloads_in_progress.
6944 (read_integer, read1): Avoid some compiler warnings.
6945
6946 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
6947 compiler warnings.
6948
6949 2000-09-11 Miles Bader <miles@gnu.org>
6950
6951 * editfns.c (Fbuffer_string): Doc fix.
6952
6953 2000-09-10 Gerd Moellmann <gerd@gnu.org>
6954
6955 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
6956
6957 2000-09-09 Ken Raeburn <raeburn@gnu.org>
6958
6959 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
6960 whether to include other header files.
6961
6962 2000-09-09 Gerd Moellmann <gerd@gnu.org>
6963
6964 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
6965 by Fmemq as a boolean.
6966
6967 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
6968
6969 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
6970
6971 2000-09-08 Gerd Moellmann <gerd@gnu.org>
6972
6973 * ralloc.c (mmap_fd): Remove initializer which can make it
6974 read-only in a dumped Emacs.
6975 (mmap_fd_1): New variable.
6976 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
6977 restore it from there.
6978 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
6979 unconditionally so that mmap_fd can be initialized there.
6980 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
6981 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
6982 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
6983
6984 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
6985
6986 * xdisp.c (dump_glyph_row): Fix printf format string.
6987 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
6988
6989 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
6990
6991 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
6992 inheritance.
6993
6994 * xdisp.c (try_window_id): When trying to locate cursor in
6995 unchanged rows at the top, handle the case that we can't find it.
6996
6997 * xterm.c (x_draw_glyphs): Handle case START and END are out
6998 of bounds more carefully.
6999
7000 2000-09-08 Dave Love <fx@gnu.org>
7001
7002 * s/sol2.h (REL_ALLOC_MMAP): Define.
7003 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
7004
7005 * ralloc.c: Don't include string.h (redundant).
7006 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
7007 [!MAP_ANON]: Include fcntl.h.
7008 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
7009 (r_alloc, r_re_alloc, r_alloc_free)
7010 (mmap_enlarge, mmap_set_vars): Use it.
7011 (r_alloc_init_fd): New function.
7012 (__morecore) [SYSTEM_MALLOC]: Don't declare.
7013 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
7014 malloc type.
7015
7016 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
7017 Remove vm-limit.o.
7018
7019 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
7020 change to __NetBSD__.
7021
7022 2000-09-08 Kenichi Handa <handa@etl.go.jp>
7023
7024 * search.c (compile_pattern): Check the multibyteness of cached
7025 string and PATTERN.
7026
7027 2000-09-08 Miles Bader <miles@gnu.org>
7028
7029 * xfaces.c (default_face_vector): Function removed.
7030 (Finternal_merge_in_global_face): Restore old global/local
7031 attribute override order. Use inline loop instead of calling
7032 default_face_vector.
7033
7034 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7035
7036 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
7037 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
7038 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
7039 where necessary, in case POINTER_TYPE is `void'.
7040
7041 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
7042
7043 * frame.c (make_terminal_frame): Initialize frame foreground and
7044 background colors to unspecified, for the initial instance of an
7045 MSDOS frame.
7046
7047 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7048
7049 * ralloc.c (mmap_find): Fix overlap computation.
7050 (mmap_enlarge): Compute nbytes before trying to find an
7051 overlapping region.
7052
7053 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
7054 instead of `!='.
7055
7056 * lread.c (syms_of_lread): Change value of regexp
7057 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
7058
7059 * xmenu.c (xdialog_show): When looking up the selection in
7060 menu_items, take `quote' boundaries into account; this corresponds
7061 to a nil ITEM in x-popup-dialog.
7062
7063 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7064
7065 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
7066 not 0x81.
7067 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
7068
7069 * coding.c (encode_coding_sjis_big5): Use translation table for
7070 encoding, not decoding. Fix the handling of latin-jisx0201.
7071 Check for the charset katakana-jisx0201 too.
7072 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
7073 (detect_coding_sjis): Check the byte sequence more rigidly.
7074
7075 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7076
7077 * xfaces.c (Vparam_value_alist): New variable.
7078 (syms_of_xfaces): Initialize it.
7079 (Finternal_set_lisp_face_attribute): Avoid more consing.
7080
7081 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
7082 specially.
7083 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
7084 (Qbackground_mode): New variable.
7085 (syms_of_frame_1): Initialize Qbackground_mode.
7086
7087 * lisp.h (Qdisplay): Declare extern.
7088
7089 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
7090 change face on all frames, and change the default for new frames.
7091
7092 2000-09-07 Dave Love <fx@gnu.org>
7093
7094 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
7095
7096 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7097
7098 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
7099
7100 * charset.c: Include composite.h
7101 (lisp_string_width): New function.
7102 (Fstring_width): Call lisp_string_width instead of strwidth.
7103
7104 * Makefile.in (charset.o): Depends on composite.h.
7105
7106 * process.c (read_process_output): Before inserting the decoded
7107 text in the buffer, adjust the multibyteness.
7108
7109 2000-09-06 Gerd Moellmann <gerd@gnu.org>
7110
7111 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
7112 buffer's text buffer is null, map new memory.
7113
7114 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
7115 POINTER_TYPE and size_t.
7116 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
7117 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
7118 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
7119 [REL_ALLOC_MMAP]: New macros.
7120 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
7121 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
7122 [REL_ALLOC_MMAP]: New functions.
7123
7124 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
7125 before and after unexec.
7126
7127 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
7128 text buffers if necessary.
7129
7130 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
7131 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
7132 in prototypes.
7133
7134 * config.in (HAVE_MMAP): Add #undef.
7135
7136 2000-09-05 Gerd Moellmann <gerd@gnu.org>
7137
7138 * frame.c (Qdisplay_type): New variable.
7139 (syms_of_frame_1): Initialize it.
7140 (Fframe_parameter): New function that avoids consing.
7141 (syms_of_frame): Defsubr it.
7142
7143 * buffer.c (Fother_buffer): Consider buffers as invisible when
7144 they are displayed in a window on an invisible frame.
7145
7146 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
7147 get-largest-window always return nil.
7148
7149 2000-09-04 Gerd Moellmann <gerd@gnu.org>
7150
7151 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
7152 variable; recognize Emacs 19 elc files.
7153
7154 2000-09-04 Miles Bader <miles@gnu.org>
7155
7156 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
7157 before initially popping up the menu, so the menu doesn't flash
7158 when the face settings are significantly different from the defaults.
7159
7160 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
7161
7162 * regex.c (WIDE_CHAR_SUPPORT): New macro.
7163 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
7164 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
7165 (BIT_UNIBYTE): Remove.
7166 (re_match_2_internal): Delete corresponding code and streamline the
7167 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
7168 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
7169 (re_wctype_t): New type.
7170 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
7171 (regex_compile): Use them and fix handling of overly long char classes.
7172
7173 2000-09-03 Andrew Innes <andrewi@gnu.org>
7174
7175 * makefile.w32-in: Change to DOS line endings.
7176
7177 * s/ms-w32.h (ORDINARY_LINK): New define.
7178
7179 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
7180 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
7181
7182 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
7183 (distclean): Delete them here instead.
7184
7185 * w32proc.c (compare_env): Convert to uppercase for comparison,
7186 not lowercase, to match how the native Windows shell works.
7187
7188 2000-09-03 Jason Rumney <jasonr@gnu.org>
7189
7190 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
7191 CVS changes the line-ends when checking in/out on DOS/Windows.
7192
7193 * makefile.nt (emacs): Do not change directory to run temacs, as
7194 the load-path is set relative to current directory.
7195
7196 2000-09-03 Miles Bader <miles@gnu.org>
7197
7198 * xterm.c (x_alloc_lighter_color_for_widget): New function.
7199
7200 2000-09-02 Gerd Moellmann <gerd@gnu.org>
7201
7202 * xdisp.c (redisplay_mode_lines): New function.
7203 (display_mode_lines): Return number of mode lines displayed.
7204 (echo_area_display): Use redisplay_mode_lines to draw garbaged
7205 mode lines. Don't temporarily bind redisplay-dont-pause to t.
7206
7207 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
7208 string.h and strings.h.
7209 (index) [HAVE_INDEX]: Add prototype.
7210
7211 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
7212 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
7213
7214 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
7215 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
7216
7217 2000-09-01 Gerd Moellmann <gerd@gnu.org>
7218
7219 * lread.c (read1): Accept `?' as symbol constituent, for
7220 compatiblity with XEmacs.
7221
7222 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
7223
7224 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
7225 (struct re_pattern_buffer): Remove newline_anchor.
7226 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
7227 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
7228 (re_max_failures, fail_stack): Use size_t rather than unsigned.
7229 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
7230 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
7231 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
7232 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
7233 Get rid of references to newline_anchor.
7234 (regcomp): Allocate and precompute a fastmap.
7235
7236 2000-08-31 Gerd Moellmann <gerd@gnu.org>
7237
7238 * lread.c (openp): GCPRO local variable `filename'.
7239
7240 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
7241
7242 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
7243
7244 * regex.c: Merge some changes from GNU libc. Add prototypes.
7245 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
7246 Use memcmp and memcpy instead of bcopy and bcmp.
7247 (init_syntax_once): Use ISALNUM.
7248 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
7249 (REG_UNSET_VALUE): Remove. Use NULL instead.
7250 (REG_UNSET, re_match_2_internal): Use NULL.
7251 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
7252 New macros.
7253 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
7254 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
7255 (regex_compile): In handle_interval, return an error rather than try to
7256 unfetch the interval if we can't find the closing brace.
7257 Obey the RE_NO_GNU_OPS syntax bit.
7258 (TOLOWER): New macro.
7259 (regcomp): Use it.
7260 (regexec): Allocate regs.start and regs.end as one block.
7261
7262 2000-08-30 Gerd Moellmann <gerd@gnu.org>
7263
7264 * xdisp.c (echo_area_display): Check display_completed instead
7265 of calling detect_input_pending.
7266
7267 * dispnew.c (update_frame): Only set display_completed here; move
7268 the update_begin and update_end calls here from update_frame_1.
7269 (update_frame_1): Don't set display_completed here, don't call
7270 update_begin/update_end.
7271
7272 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
7273 instead of store_frame_param.
7274
7275 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7276
7277 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
7278 desired window matrix hasn't been displayed, use the current row
7279 instead. Make sure that only those frame rows are updated for
7280 which there exists a corresponding enabled desired row.
7281
7282 2000-08-29 Miles Bader <miles@gnu.org>
7283
7284 * xfaces.c (default_face_vector): New function.
7285 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
7286
7287 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7288
7289 * lread.c (openp): Prevent temporary string passed to
7290 Ffile_readable_p from being garbage collected.
7291
7292 2000-08-28 Dave Love <fx@gnu.org>
7293
7294 * keymap.c (store_in_keymap): Add `static' to declaration.
7295
7296 2000-08-28 Gerd Moellmann <gerd@gnu.org>
7297
7298 * emacs.c, callint.c, doc.c, editfns.c
7299 (toplevel) [HAVE_STRING_H]: Include string.h.
7300 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
7301 (index): Remove prototypes which might conflict with non-standard
7302 definitions of index/strchr.
7303
7304 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
7305 (rindex): Define only if !HAVE_RINDEX.
7306
7307 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
7308
7309 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
7310
7311 2000-08-28 Miles Bader <miles@gnu.org>
7312
7313 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
7314 made inconsistent by a font-related attribute in FROM.
7315 (merge_face_inheritance): Add function comment.
7316
7317 2000-08-28 Kenichi Handa <handa@etl.go.jp>
7318
7319 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
7320 the 4th arg (PREV_EVENT) Qt to suppress input method.
7321
7322 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
7323
7324 * regex.c: Indent cpp directives and remove parens after `defined'.
7325 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
7326 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
7327 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
7328 (re_compile_pattern): Use size_t for length.
7329 (init_syntax_once): Move to a better place.
7330 * regex.h: Merge changes from GNU libc. Indent cpp directives.
7331 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
7332
7333 * syntax.c (back_comment): Detect cases where a comment-starter is
7334 actually inside another comment as in: /* a // b */ c // d \n.
7335 Make it clear that `comstart_pos' is unused for nested comments.
7336
7337 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
7338 (KEYMAPP): New macro.
7339 (Fkeymap_parent, Fset_keymap_parent): Use it.
7340 (fix_submap_inheritance): Mark it static.
7341 (define_as_prefix, describe_buffer_bindings, describe_command)
7342 (describe_translation, describe_map): Complete prototypes.
7343
7344 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
7345
7346 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
7347 to better match the key-lookup behavior.
7348
7349 2000-08-27 Gerd Moellmann <gerd@gnu.org>
7350
7351 * xfaces.c (lface_fully_specified_p): Handle :inherit.
7352 (Finternal_set_lisp_face_attribute): Fix typo in error message.
7353
7354 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
7355
7356 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
7357 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
7358 (xterm.o): Depend on coding.h
7359
7360 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7361
7362 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
7363 the corresponding '#endif'.
7364
7365 2000-08-26 Miles Bader <miles@gnu.org>
7366
7367 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
7368 * xfaces.c (QCinherit): New variable.
7369 (syms_of_xfaces): Initialize it.
7370 (LFACE_INHERIT): New macro.
7371 (Finternal_get_lisp_face_attribute)
7372 (merge_face_vector_with_property)
7373 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
7374 (check_lface_attrs): Allow new types of face height. Check
7375 inherit attribute.
7376 (CYCLE_CHECK): New macro.
7377 (merge_face_inheritance): New function.
7378 (merge_face_vectors): Merge inherited faces too. Add F and
7379 CYCLE_CHECK arguments.
7380 (merge_face_vector_with_property, Finternal_merge_in_global_face)
7381 (lookup_named_face, lookup_derived_face, realize_named_face)
7382 (face_at_string_position, face_at_buffer_position): Supply
7383 new F and CYCLE_CHECK arguments to merge_face_vectors.
7384 (merge_face_heights): New function.
7385 (merge_face_vectors, merge_face_vector_with_property)
7386 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
7387 handle relative face heights.
7388 (lface_same_font_attributes_p): Compare heights using EQ.
7389
7390 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7391
7392 * charset.c (char_to_string): Check the character validity.
7393 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
7394
7395 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
7396
7397 * regex.c (PUSH_FAILURE_COUNT): New macro.
7398 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
7399 Handle popping of a register's or a counter's data.
7400 (POP_FAILURE_POINT): Use the new name.
7401 (re_match_2_internal): Push counter data on the stack for succeed_n,
7402 jump_n and set_number_at and remove misleading dead code in succeed_n.
7403
7404 2000-08-25 Gerd Moellmann <gerd@gnu.org>
7405
7406 * xdisp.c (redisplay_internal): If considering all windows on all
7407 frames, update the display for each frame as soon as possible,
7408 instead of first building all desired matrices for all frames, and
7409 then updating them all.
7410 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
7411
7412 2000-08-24 Gerd Moellmann <gerd@gnu.org>
7413
7414 * bytecode.c (mark_byte_stack): Add a comment.
7415
7416 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
7417 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
7418 a graphical frame.
7419
7420 2000-08-24 Kenichi Handa <handa@etl.go.jp>
7421
7422 * minibuf.c (do_completion): Always use compare-string, not
7423 string-equal because the latter doesn't pay attention to
7424 multibyteness of strings.
7425
7426 * process.c (create_process): Don't setup raw-text coding here.
7427 (Fopen_network_stream): Don't set coding->src_multibyte and
7428 coding->dst_multibyte here.
7429 (read_process_output): For process filter, return unibyte string
7430 if default-enable-multibyte-characters is nil.
7431 (send_process): If OBJECT is multibyte text, be sure to encoded it
7432 by the specified coding system for the process. Otherwise, setup
7433 raw-text coding.
7434 (init_process): Don't initialize default-process-coding-system here.
7435
7436 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
7437
7438 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
7439 <scroll-down-aggressively>: Likewise.
7440
7441 2000-08-23 Kenichi Handa <handa@etl.go.jp>
7442
7443 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
7444 zero. Set coding->produced_char correctly.
7445
7446 2000-08-22 Andrew Innes <andrewi@gnu.org>
7447
7448 * makefile.w32-in: New file.
7449
7450 * unexw32.c (unexec): Ignore old_name, and use the actual location
7451 of the current executable instead. Base new_name on this.
7452
7453 * w32proc.c (create_child): Remove reference to security
7454 descriptor, which isn't needed and doesn't compile with mingw32.
7455
7456 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7457 up dllimport attributes.
7458 (x_update_window_end): Update prototype.
7459
7460 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
7461 extern, which screws up dllimport attributes.
7462
7463 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7464 up dllimport attributes.
7465
7466 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
7467 screws up dllimport attributes.
7468
7469 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7470 up dllimport attributes.
7471 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
7472 screws up dllimport attributes.
7473
7474 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7475 up dllimport attributes.
7476
7477 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
7478 screws up dllimport attributes.
7479
7480 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
7481 screws up dllimport attributes.
7482
7483 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7484 up dllimport attributes.
7485
7486 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
7487 unnecessary extern, which screws up dllimport attributes.
7488 (main): Ditto.
7489
7490 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7491 up dllimport attributes.
7492
7493 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
7494 unnecessary extern, which screws up dllimport attributes.
7495
7496 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
7497 screws up dllimport attributes.
7498
7499 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7500 up dllimport attributes.
7501
7502 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
7503
7504 * w32bdf.c (search_file_line):
7505 (set_bdf_font_info):
7506 (seek_char):
7507 (w32_get_bdf_glyph):
7508 (w32_BDF_to_x_font): Fix compile warnings.
7509
7510 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
7511
7512 * w32select.c: Include keyboard.h before frame.h.
7513
7514 * w32fns.c (max): Define macro.
7515 (JOHAB_CHARSET): Define if not known.
7516 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
7517 (Fx_show_tip): Synch with X version.
7518
7519 * w32xfns.c: Include keyboard.h before frame.h.
7520
7521 * w32fns.c: Include keyboard.h before frame.h.
7522
7523 * w32term.c: Include keyboard.h before frame.h.
7524
7525 * fontset.c: Include keyboard.h before frame.h.
7526
7527 * w32inevt.c: Include keyboard.h before frame.h.
7528 (MOUSE_MOVED): Define if not known.
7529
7530 * minibuf.c: Include keyboard.h before frame.h.
7531
7532 * keyboard.c: Include keyboard.h before frame.h.
7533
7534 * indent.c: Include keyboard.h before frame.h.
7535
7536 * dispnew.c: Include keyboard.h before frame.h.
7537
7538 * buffer.c: Include keyboard.h before frame.h.
7539
7540 * alloc.c: Include keyboard.h before frame.h.
7541
7542 * print.c: Include keyboard.h before frame.h.
7543
7544 * process.c: Include keyboard.h before frame.h.
7545
7546 * scroll.c: Include keyboard.h before frame.h.
7547
7548 * sysdep.c: Include keyboard.h before frame.h.
7549
7550 * term.c: Include keyboard.h before frame.h.
7551
7552 * window.c: Include keyboard.h before frame.h.
7553
7554 * xdisp.c: Include keyboard.h before frame.h.
7555 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
7556
7557 * frame.c: Include keyboard.h before frame.h.
7558
7559 * w32heap.h: Undefine min, max.
7560
7561 * w32gui.h: Undefine min, max.
7562
7563 * unexw32.c: Change PUCHAR to PCHAR.
7564 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
7565 (relocate_offset):
7566 (get_section_info):
7567 (copy_executable_and_dump_data): Remove unnecessary static defs.
7568 (copy_executable_and_dump_data): Fix compile warnings.
7569
7570 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
7571
7572 * w32console.c (min): Define macro.
7573 (clear_frame, write_glyphs): Fix compile warning.
7574
7575 * w32proc.c (compare_env):
7576 (find_child_console): Fix compile warning.
7577
7578 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
7579 sys_errlist instead of _sys_errlist.
7580 (get_emacs_configuration_options): New function.
7581
7582 * s/ms-w32.h (sys_nerr): Provide default definition.
7583 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
7584 name with _ prepended.
7585 (NSIG): Define if not known.
7586 (get_emacs_configuration): Provide extern declaration.
7587 (get_emacs_configuration_options): Provide extern declaration.
7588 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
7589
7590 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
7591 (map_w32_filename):
7592 (read_unc_volume): Fix compile warning.
7593
7594 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
7595 definitions from being used.
7596
7597 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
7598
7599 * w32.c (unc_volume_file_attributes):
7600 (open_unc_volume): Make arg const.
7601
7602 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
7603 (read_input_waiting): Remove excess parameter.
7604
7605 * w32.c (init_environment): Call _access.
7606 (check_windows_init_file): Call _close.
7607 (init_user_info): Call _putenv.
7608 (init_environment): Call _putenv and _strdup.
7609 (init_ntproc): Reset volume info cache on startup.
7610
7611 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
7612 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
7613 cannot override the CRT malloc.
7614
7615 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
7616 (LINK_FLAGS): Append to original value of LINK_FLAGS.
7617
7618 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
7619 unless we are linking with a static CRT.
7620 (RVA_TO_PTR): Cast result to unsigned char*.
7621
7622 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
7623 (add_volume_info): Use xstrdup.
7624
7625 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
7626
7627 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
7628 (do_completion, Fminibuffer_complete_word): Use it.
7629 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
7630 var so it can take non-boolean values.
7631
7632 2000-08-21 Gerd Moellmann <gerd@gnu.org>
7633
7634 * editfns.c (find_field): Formatting changes.
7635 (toplevel): Some old-style function forward declarations
7636 changed to prototypes, some new protypes added, some functions
7637 made static.
7638
7639 * lisp.h (set_time_zone_rule): Add prototype.
7640 (use_dialog_box): External declaration.
7641
7642 * keyboard.c (gen_help_event): Add parameter SIZE.
7643 (kbd_buffer_events_waiting): Slightly rewritten.
7644 (clear_event): New function.
7645 (kbd_buffer_get_event): Use it, and clear the input_events of
7646 HELP_EVENTs.
7647 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
7648 don't fill the newly created array with nils.
7649 (toplevel): Convert some old-style function forward declarations
7650 to prototypes.
7651
7652 * keyboard.h (gen_help_event): Change prototype.
7653
7654 * xterm.c (XTread_socket): Change calls to gen_help_event.
7655
7656 * w32term.c (w32_read_socket): Change calls to gen_help_event.
7657
7658 * eval.c (Fmacroexpand): Doc fix.
7659
7660 2000-08-20 Jason Rumney <jasonr@gnu.org>
7661
7662 * w32term.h (x_display_info_for_display): Remove as this function
7663 does not exist on W32.
7664
7665 * w32term.c (help_echo_window): New variable.
7666 (syms_of_w32term): staticpro it.
7667 (note_mode_line_highlight): Set it.
7668 (XTextExtents16): Removed as there is no equivalent on W32.
7669 (x_compute_glyph_string_overhangs): Incomplete body removed, as
7670 the X way of doing this will not work for W32.
7671 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
7672 (x_draw_image_foreground): Avoid drawing outside of the clip area
7673 when image doesn't have a mask.
7674 (note_mouse_highlight): Process overlays in the right order of
7675 priority. Set help_echo_window.
7676 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
7677 because that's more visible for large images.
7678
7679 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
7680 name to single_keymap_panes.
7681 (w32_menu_show): Set wv->title when dealing with titles.
7682 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
7683
7684 2000-08-21 Miles Bader <miles@gnu.org>
7685
7686 * minibuf.c (do_completion): Try again if we rewrite the input
7687 string, but no completion was done, so that any completion message
7688 will be correct.
7689
7690 2000-08-20 Gerd Moellmann <gerd@gnu.org>
7691
7692 * xfaces.c (lface_equal_p): Compare strings differently.
7693 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
7694 (realize_tty_face): Use them.
7695 (syms_of_xfaces): Initialize new variables.
7696 (map_tty_color): New function, extracted from realize_tty_face.
7697 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
7698 foreground or background color, store the new color name in the
7699 realized face; previous code trying to do this had no effect.
7700 (realize_tty_face): Use map_tty_color.
7701 (Fclear_face_cache): Set face_change_count and ensure thorough
7702 redisplay.
7703
7704 2000-08-19 Gerd Moellmann <gerd@gnu.org>
7705
7706 * undo.c (record_first_change, record_marker_adjustment): Don't
7707 use XBUFFER on last_undo_buffer which might not be a buffer.
7708
7709 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7710
7711 * coding.c (decode_coding_string): Set members consumed,
7712 consumed_char, produced, produced_char of *coding correctly. If
7713 decode_coding doesn't consume any byte, don't try anymore.
7714 (encode_coding_string): Likewise.
7715
7716 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7717
7718 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
7719 conditional have void type, for Standard C compilers.
7720
7721 * xdisp.c (redisplay_internal): Compare windows for equality with
7722 EQ, instead of applying XWINDOW to something that might not
7723 be a window.
7724
7725 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7726
7727 * fontset.c (Finternal_char_font): Search only the selected frame
7728 for a window of the current buffer.
7729
7730 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7731
7732 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
7733 Lisp_Objects.
7734
7735 * keyboard.c (kbd_buffer_get_event): Handle the case that the
7736 second half of a HELP_EVENT is found at the start of kbd_buffer.
7737
7738 2000-08-18 Miles Bader <miles@gnu.org>
7739
7740 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
7741
7742 * editfns.c (save_restriction_save): Rewrite to use markers.
7743 (save_restriction_restore): Rewrite to understand new form of data
7744 saved by save_restriction_save.
7745 (Fsave_restriction): Remove cautionary note in doc-string.
7746
7747 2000-08-17 Gerd Moellmann <gerd@gnu.org>
7748
7749 * fileio.c (build_annotations): Add a comment explaining the
7750 return value of format-annotate-function. Replace a spurious call
7751 to Flength with a CONSP test. Call format-annotate-function with
7752 a fifth arg specifying how many times the function is been called
7753 in a row, to let it choose temporary buffers appropriately.
7754
7755 2000-08-17 Dave Love <fx@gnu.org>
7756
7757 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
7758 declare make_temp_name twice.
7759
7760 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
7761 (unreadpure): Give it an arg.
7762
7763 * unexalpha.c: Prototype fatal_unexec, mark_x,
7764 update_dynamic_symbols. Declare unexec as void.
7765
7766 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
7767 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
7768
7769 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
7770 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
7771
7772 * alloca.c: Use #error.
7773 [POINTER_TYPE]: Use it.
7774
7775 * eval.c (Fdefvar): Doc fix.
7776
7777 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
7778 INITIALIZE_INTERVAL.
7779
7780 * buffer.h: Avoid DECLARE_INTERVALS.
7781
7782 * config.in: Add size_t.
7783
7784 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
7785
7786 * w16select.c (set_clipboard_data): If there's not enough memory
7787 to put text into clipboard, return 1, as Fw16_set_clipboard_data
7788 expects. In case of other failures, return 3.
7789 (system_error_msg): New error message.
7790 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
7791 system_error_msg.
7792
7793 2000-08-16 Gerd Moellmann <gerd@gnu.org>
7794
7795 * term.c (write_glyphs): Also turn off inverse video after turning
7796 off other appearances in case TS_exit_attribute_mode is not equal
7797 to TS_end_standout_mode.
7798 (insert_glyphs): Turn inverse video on/off for each run of glyphs
7799 with the same face.
7800 (turn_off_face): Reset standout_mode only if
7801 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
7802 is equal to TS_end_standout_mode.
7803
7804 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7805
7806 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
7807 sequence at the end of the source block.
7808
7809 * ccl.c (Fccl_program_p): Docstring modified.
7810 (Fccl_execute): Likewise.
7811 (Fccl_execute_on_string): Likewise.
7812
7813 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
7814
7815 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
7816
7817 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7818
7819 The following changes are mainly to fix bugs of
7820 encode/decode-coding-string failing if encoding/decoding return
7821 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
7822 variable conversion_buffer.
7823
7824 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
7825 decrement dst_end to avoid buffer overflow in the later call of
7826 string_as_multibyte
7827
7828 * coding.h (conversion_buffer_size, conversion_buffer)
7829 (get_conversion_buffer): Extern deleted.
7830
7831 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
7832 (conversion_buffer, conversion_buffer_size): Variables deleted.
7833 (get_conversion_buffer): Function deleted.
7834 (struct conversion_buffer): New structure.
7835 (MAX_ALLOCA): New macro.
7836 (allocate_conversion_buffer): New macro.
7837 (extend_conversion_buffer, free_conversion_buffer): New functions.
7838 (ccl_coding_driver): Set coding->result.
7839 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
7840 this is the last block of source.
7841 (encode_coding): Likewise. Handle the source block as the last
7842 one only when the whole source text is consumed.
7843 (decode_coding_string): Handle the case that the output buffer is
7844 too small to decode the whole source text. Use
7845 allocate_conversion_buffer, extend_conversion_buffer and
7846 free_conversion_buffer, not get_conversion_buffer.
7847 (encode_coding_string): Likewise.
7848 (init_coding): Function deleted.
7849 (init_coding_once): Delete code to initialize conversion_buffer_size.
7850
7851 * emacs.c (main): Don't call init_coding.
7852
7853 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
7854
7855 * term.c (write_glyphs): Use a locally declared conversion_buffer.
7856 (insert_glyphs): Likewise.
7857
7858 * w32console.c (write_glyphs): Use a locally declared
7859 conversion_buffer.
7860
7861 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
7862
7863 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
7864 member of display_info is NULL.
7865
7866 2000-08-15 Gerd Moellmann <gerd@gnu.org>
7867
7868 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
7869
7870 * term.c (turn_off_face): Reset standout_mode when resetting
7871 appearances with capability `me'.
7872 (write_glyphs): Switch on inverse video before each face change.
7873
7874 2000-08-14 Dave Love <fx@gnu.org>
7875
7876 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
7877 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
7878 (lisp_free): Declare and make static.
7879
7880 * window.c: Fix embedded comment.
7881 (syms_of_window): Fix doc string.
7882
7883 2000-08-14 Gerd Moellmann <gerd@gnu.org>
7884
7885 * keymap.c (push_key_description): If C without modifiers is < 32,
7886 make sure to print `C-' before `M-', like in the manual.
7887
7888 2000-08-11 Gerd Moellmann <gerd@gnu.org>
7889
7890 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
7891 since they aren't relocated anymore.
7892 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
7893
7894 * xdisp.c (try_cursor_movement): Fix handling of cursor in
7895 partially visible line which is smaller than the window's height.
7896
7897 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7898
7899 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
7900 the multibyte form of eight-bit-control characters.
7901 (Fccl_execute_on_string): Initialize ccl->multibyte.
7902
7903 * ccl.h (struct ccl_program): New member multibyte.
7904
7905 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
7906
7907 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7908
7909 * regex.c (regex_compile) <normal_char>: Pay attention to
7910 multibyteness.
7911 (analyse_first) <exactn>: Setup fastmap correctly for
7912 eight-bit-control characters.
7913
7914 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7915
7916 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
7917
7918 * keyboard.c (make_lispy_event): Handle the new event type
7919 multibyte_char_keystroke.
7920
7921 * xterm.c: Include coding.h.
7922 (XTread_socket): Work around a bug of XmbLookupString. If the
7923 input is from XIM, decode it according to the current locale. In
7924 that case, generate multibyte_char_keystroke events.
7925
7926 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7927
7928 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
7929 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
7930
7931 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7932
7933 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
7934 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
7935 (move_it_in_display_line_to): Record iterator's ascent and descent
7936 before producing glyphs, and restore them when we know the glyph
7937 doesn't fit on the line.
7938 (move_it_to): Restructured so that it's easier to debug. If
7939 moving to a vpos, and not moving to an x or character position,
7940 stop as soon as the specified vpos is reached; don't move further
7941 into that line because that might change the computed line height.
7942 (try_cursor_movement): New function, extracted from the cursor
7943 movement branch of redisplay_window. If ending on a partially
7944 visible line, don't try to scroll if the cursor line is taller
7945 than the window.
7946 (redisplay_window): Use try_cursor_movement.
7947
7948 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
7949 because that function doesn't cope with variable-height lines.
7950
7951 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
7952 box cursor because that's better visible for large images.
7953
7954 2000-08-10 Miles Bader <miles@gnu.org>
7955
7956 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
7957
7958 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7959
7960 * xdisp.c (Vmessages_buffer_name): New variable.
7961 (message_dolog): Use it.
7962 (syms_of_xdisp): Initialize it.
7963
7964 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
7965
7966 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
7967 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
7968 redundant now that keyboard.h is included.
7969
7970 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
7971
7972 * keyboard.c (kbd_buffer_events_waiting): New function.
7973
7974 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
7975
7976 * msdos.c: Include keyboard.h.
7977 (XMenuActivate): Empty no_event events from the event buffer. If
7978 no events are left after that, call clear_input_pending.
7979 (mouse_clear_clicks): New function, code moved from mouse_init.
7980 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
7981 mouse driver to ``forget'' any past clicks.
7982
7983 * Makefile.in (msdos.o): Depend on keyboard.h.
7984
7985 2000-08-09 Gerd Moellmann <gerd@gnu.org>
7986
7987 * lisp.h (input_pending): External declaration.
7988
7989 * dispextern.h (Qredisplay_dont_pause): Declare extern.
7990
7991 * xdisp.c (echo_area_display): Display thoroughly if input is
7992 pending. Bind redisplay-dont-pause to t during the redisplay.
7993 in case input is pending.
7994
7995 * dispnew.c (Qredisplay_dont_pause): New variable.
7996 (syms_of_display): Initialize and staticpro it.
7997 (update_frame_1): Don't interrupt the display for pending input if
7998 redisplay_dont_pause is set.
7999
8000 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
8001
8002 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8003
8004 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
8005
8006 * callproc.c (Fcall_process): Terminate the unwind-protect around
8007 the post-read-conversion of coding system.
8008
8009 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
8010 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
8011 * buffer.h (overlays_at): Update prototype.
8012 * xdisp.c (next_overlay_change): Update call to overlays_at.
8013 * xfaces.c (face_at_buffer_position): Likewise.
8014 * textprop.c (Fget_char_property): Likewise.
8015 * xterm.c (note_mouse_highlight): Likewise.
8016
8017 * minibuf.c (do_completion): Don't consider a simple change of
8018 case as `completion'.
8019
8020 2000-08-08 Ken Raeburn <raeburn@gnu.org>
8021
8022 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
8023 * undo.c (record_delete): Make sure last_point_position_buffer is
8024 a buffer before comparing pointers.
8025
8026 * coding.h (decode_coding_string): Declare.
8027
8028 * intervals.h (Fprevious_single_char_property_change): Declare.
8029
8030 * textprop.c (Fprevious_single_char_property_change): Don't do
8031 arithmetic directly on lisp objects.
8032
8033 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
8034
8035 * keyboard.h (menu_item_eval_property): Declare.
8036
8037 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
8038 reuse as buffer name, instead of recreating (and discarding) every
8039 time a message is logged.
8040 (with_echo_area_buffer): Make callback arg A2 a lisp object.
8041 (current_message_1, truncate_message_1, set_message_1)
8042 (display_echo_area_1, resize_mini_window_1): Signatures changed.
8043 (current_message, truncate_echo_area, display_echo_area)
8044 (resize_echo_area_axactly): Changed calls.
8045
8046 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
8047 Lisp object.
8048 (Ffind_coding_systems_region_internal): First argument to Fappend
8049 must be an integer, not a Lisp object.
8050
8051 2000-08-08 Kenichi Handa <handa@etl.go.jp>
8052
8053 * charset.c (Fchar_width): Doc fix.
8054
8055 2000-08-08 Gerd Moellmann <gerd@gnu.org>
8056
8057 * charset.c (Fstring_width): Doc fix.
8058
8059 2000-08-07 Gerd Moellmann <gerd@gnu.org>
8060
8061 * xdisp.c (start_display): When starting display on a continuation
8062 line, clear ascent and descent members of the iterator structure;
8063 the height of the continued line does not affect the height of the
8064 continuation line.
8065 (make_cursor_line_fully_visible): Do nothing if cursor is on a
8066 line taller than the window.
8067 (redisplay_window) <forced window start>: Handle case that the
8068 middle of the window is not found in any row.
8069 (dump_glyph_row): Show more information.
8070 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
8071 first text line in a glyph matrix.
8072
8073 * xterm.c (x_draw_image_foreground): Avoid drawing outside
8074 of the clip area when image doesn't have a mask.
8075
8076 * fns.c (sweep_weak_table): Fix survival conditions for
8077 key-or-value and key-and-value weakness.
8078
8079 * .gdbinit (xhashtable): New command.
8080
8081 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
8082 tables out of the list of all weak hash tables.
8083
8084 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
8085 a new buffer is created, make sure echo_area_buffer[] references
8086 the new buffer.
8087
8088 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
8089
8090 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
8091 the doc string.
8092
8093 2000-08-07 Kenichi Handa <handa@etl.go.jp>
8094
8095 * syntax.c (skip_chars): Fix previous change. Make the handling
8096 of unibyte string consistent with that of regex search.
8097
8098 2000-08-05 Gerd Moellmann <gerd@gnu.org>
8099
8100 * xmenu.c (popup_get_selection): Use xfree instead of free.
8101
8102 * fileio.c (Finsert_file_contents): Use xfree instead of free.
8103
8104 * editfns.c (Ftranspose_regions): Use xfree instead of free.
8105
8106 * callproc.c (child_setup): Use xfree instead of free.
8107
8108 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
8109 instead of malloc.
8110 (run_mac_command, closedir): Use `xfree' instead of `free'.
8111
8112 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
8113
8114 * eval.c (error): Use xfree instead of free.
8115
8116 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
8117
8118 * fns.c: Replace `illegal' with `invalid'.
8119 (Fmake_hash_table, make_hash_table): Allow table size of 0.
8120
8121 2000-08-05 Kenichi Handa <handa@etl.go.jp>
8122
8123 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
8124 conversion.
8125
8126 2000-08-04 Noah Friedman <friedman@splode.com>
8127
8128 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
8129 docstring.
8130
8131 2000-08-04 Gerd Moellmann <gerd@gnu.org>
8132
8133 * syntax.c (skip_chars): Fix typo in error message.
8134
8135 2000-08-04 Andreas Schwab <schwab@suse.de>
8136
8137 * m/ia64.h: Moved from s/ia64.h.
8138
8139 2000-08-04 Kenichi Handa <handa@etl.go.jp>
8140
8141 * process.c (read_process_output): Big simplification. Handle
8142 composition and post-read-conversion of coding system correctly.
8143 (send_process): Handle composition correctly.
8144
8145 * callproc.c (Fcall_process): Handle post-read-conversion of
8146 coding system if any.
8147
8148 * coding.c (decode_coding_iso2022): More strict check for handling
8149 single shifting.
8150 (coding_restore_composition): Pay attention to the case that
8151 cmp_data is not set properly (because of invalid code in the
8152 source text).
8153 (run_pre_post_conversion_on_str): Include text properties in the
8154 resulting string.
8155 (decode_coding_string): Set members of coding correctly.
8156
8157 2000-08-03 Gerd Moellmann <gerd@gnu.org>
8158
8159 * s/ia64.h: New file.
8160
8161 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
8162 Use NULL instead of 0 at the end of variable argument list of
8163 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
8164 sizeof (int) < sizeof (void *).
8165
8166 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
8167 of variable argument lists of XtVaGetValues and XtVaSetValues.
8168
8169 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
8170 variable argument lists of XtVaGetValues and XtVaSetValues.
8171
8172 2000-08-02 Gerd Moellmann <gerd@gnu.org>
8173
8174 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
8175 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
8176
8177 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
8178 prototype.
8179
8180 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
8181 in call to Fsingle_key_description.
8182
8183 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
8184 Callers changed.
8185
8186 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
8187
8188 * window.c (display_buffer_reuse_frames): New variable.
8189 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
8190 frames displaying BUFFER.
8191 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
8192
8193 2000-08-01 Miles Bader <miles@gnu.org>
8194
8195 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
8196 when to constrain NEW_POS (they were pretty screwed up before).
8197
8198 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
8199
8200 * msdos.c (run_msdos_command): Save and restore the master
8201 environment, for the case that child_setup signals an error.
8202 When mirroring slashes in DOS shell commands, don't fail when
8203 argv[2] has embedded blanks.
8204 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
8205 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
8206 (dos_ttraw): Call mouse_setup_buttons.
8207
8208 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
8209 using alloca; free it after run_msdos_command returns.
8210
8211 2000-07-27 Dave Love <fx@gnu.org>
8212
8213 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
8214 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
8215
8216 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
8217
8218 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
8219
8220 * editfns.c (lisp_time_argument): Fix last change.
8221
8222 2000-07-27 Gerd Moellmann <gerd@gnu.org>
8223
8224 * fns.c (Fdelete): Make it work on vectors and strings in addition
8225 to lists.
8226
8227 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
8228 (syms_of_fns): Initialize new variables.
8229 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
8230 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
8231 weakness, with t meaning the same as `key-and-value'.
8232
8233 2000-07-27 Kenichi Handa <handa@etl.go.jp>
8234
8235 * coding.h (struct coding_system): Member safe_charset deleted.
8236
8237 * coding.c (Qsafe_charsets): This variable deleted.
8238 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
8239 New variables.
8240 (coding_safe_chars): New function.
8241 (CODING_SAFE_CHAR_P): New macro.
8242 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
8243 checking safe_charsets member of the coding system. Caller changed.
8244 (detect_coding_iso2022): New local variable safe_chars.
8245 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
8246 safe_charsets member of the coding system.
8247 (decode_coding_iso2022): New local variable safe_chars.
8248 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
8249 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
8250 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
8251 (ENCODE_UNSAFE_CHARACTER): New macro.
8252 (encode_coding_iso2022): New local variable safe_chars. Check
8253 unsafe chars.
8254 (setup_coding_system): Delete the code to initialize
8255 coding->safe_charses
8256 (intersection, find_safe_codings): New functions.
8257 (Ffind_coding_systems_region_internal): New function.
8258 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
8259 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
8260 variable and initialize it.
8261
8262 * fns.c (char_table_ref_and_index): New function.
8263
8264 * lisp.h (char_table_ref_and_index): Add prototype.
8265
8266 2000-07-26 Sam Steingold <sds@gnu.org>
8267
8268 * editfns.c (lisp_time_argument): Added third argument `usec'.
8269 (Ffloat_time): New built-in Lisp function.
8270
8271 2000-07-26 Gerd Moellmann <gerd@gnu.org>
8272
8273 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
8274 for the character code.
8275
8276 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
8277 GNU/Linux.
8278
8279 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
8280 if called for a popup menu.
8281 (xmenu_show): Store help string in widget values.
8282
8283 2000-07-26 Dave Love <fx@gnu.org>
8284
8285 * syswait.h: Move some definitions.
8286 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
8287 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
8288 perspicuous definitions.
8289 (WTERMSIG): Fix bit pattern used.
8290
8291 2000-07-26 Kenichi Handa <handa@etl.go.jp>
8292
8293 * print.c (print_object): If vector printing is truncated, print
8294 "..." to indicate it as well as the case of list printing.
8295
8296 2000-07-25 Gerd Moellmann <gerd@gnu.org>
8297
8298 * xdisp.c (next_element_from_display_vector): Improve comments.
8299
8300 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
8301 for the character code, and the rest for the face id as in 20.x.
8302 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
8303
8304 * window.c (window_display_table): Cleaned up.
8305
8306 * syntax.c (Fforward_word): Add last arg nil in call of
8307 Fconstrain_to_field.
8308
8309 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
8310
8311 * fileio.c (Frename_file) [DOS_NT]: If the file names are
8312 identical but for the letter-case, don't call
8313 barf_or_query_if_file_exists.
8314
8315 2000-07-25 Miles Bader <miles@gnu.org>
8316
8317 * editfns.c (find_field): Honor special `boundary' fields.
8318 (Qboundary): New variables.
8319 (syms_of_editfns): Initialize Qboundary.
8320 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
8321 Use scan_buffer instead of find_before_next_newline, because it
8322 allows us to detect the boundary case where there's a newline at
8323 the search limit.
8324 * lisp.h (Fconstrain_to_field): Update external declaration.
8325
8326 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8327
8328 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
8329 if that is nil.
8330
8331 2000-07-24 Dave Love <fx@gnu.org>
8332
8333 * s/sunos4-0.h, s/sol2.h:
8334 (LIBS_TERMCAP): Move from m/sparc.h.
8335
8336 * m/sparc.h (TERMINFO): Moved to system files (probably only
8337 relevant for sunos4 judging by its vintage).
8338 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
8339 __arch64__.
8340
8341 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
8342
8343 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
8344 name to single_keymap_panes.
8345
8346 2000-07-24 Andreas Schwab <schwab@suse.de>
8347
8348 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
8349
8350 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8351
8352 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
8353 parameters instead of using int parameters. Expect FN to accept
8354 EMACS_INT parameters.
8355 (display_echo_area, resize_echo_area_axactly, current_message)
8356 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
8357 with new argument list.
8358 (resize_mini_window_1): New callback function.
8359 (current_message_1, truncate_message_1, set_message_1): Change
8360 parameter lists to the new format expected by with_echo_area_buffer.
8361
8362 2000-07-24 Kenichi Handa <handa@etl.go.jp>
8363
8364 * fontset.c (fontset_ref): Remove INLINE declaration.
8365 (fontset_ref_via_base): Likewise.
8366 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
8367 to downcase.
8368
8369 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
8370
8371 * msdos.c (IT_note_mouse_highlight): Process overlays in the
8372 correct order of priority. If help echo was found in an overlay,
8373 use that overlay as the object in which the help echo was found.
8374
8375 2000-07-22 Miles Bader <miles@gnu.org>
8376
8377 * textprop.c (Fprevious_single_char_property_change): The initial
8378 property value should be from the position preceding POSITION, not
8379 following it.
8380
8381 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
8382
8383 * coding.c (syms_of_coding): Doc fix for
8384 inhibit-iso-escape-detection.
8385
8386 2000-07-21 Gerd Moellmann <gerd@gnu.org>
8387
8388 * xterm.c (note_mouse_highlight): Process overlays in the right
8389 order of priority.
8390
8391 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
8392
8393 * xterm.c (note_mouse_highlight): If help-echo was found in an
8394 overlay, use that overlay as the object in which the help was found.
8395
8396 * window.c (foreach_window_1): Fix typo reversing an if-condition.
8397
8398 * window.c (foreach_window): Instead of a fake variable argument
8399 list, take one USER_DATA argument.
8400 (foreach_window_1): Likewise, and call callback functions with two
8401 args, the window and USER_DATA.
8402 (struct check_window_data): New struct.
8403 (check_window_containing): Use it.
8404 (window_from_coordinates): Set up a struct check_window_data for
8405 foreach_window.
8406 (add_window_to_list, freeze_window_start): Change parameters
8407 according to new calling convention.
8408
8409 * window.h (foreach_window): Change prototype.
8410
8411 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
8412
8413 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
8414
8415 * xmenu.c (menu_help_callback): Call show_help_echo with
8416 additional arguments OBJECT and POS.
8417
8418 2000-07-21 Kenichi Handa <handa@etl.go.jp>
8419
8420 * data.c (Faset): Allow storing any multibyte character in a
8421 string. Convert unibyte string to multibyte if necessary.
8422
8423 * xfns.c (x_encode_text): New function.
8424 (x_set_name): Use x_encode_text.
8425 (x_set_title): Likewise.
8426
8427 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
8428
8429 * xterm.h (x_encode_text): Add prototype.
8430
8431 2000-07-20 Dave Love <fx@gnu.org>
8432
8433 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
8434 xfree, not free.
8435
8436 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
8437
8438 * msdos.c (help_echo_window): New variable.
8439 (syms_of_msdos): Initialize and staticpro it.
8440 (IT_note_mode_line_highlight): Set help_echo_window.
8441 (IT_note_mouse_highlight): Ditto.
8442 (dos_rawgetc): Store help_echo_window in the second event produced
8443 for HELP_EVENTs.
8444
8445 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
8446 Record the object that generated the help echo and the position of
8447 that object in help_echo_object and help_echo_pos. Record that
8448 some glyphs in a row are displayed in mouse-face.
8449 (IT_update_begin): Don't clear mouse highlight unless one of the
8450 enabled glyph rows is marked as being displayed in mouse-face.
8451 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
8452 and position recorded in help_echo_object and help_echo_pos to the
8453 event queue.
8454 (IT_menu_display): Accept a new argument PN: the pane number of
8455 the current menu pane. Record the pane number and the item
8456 number of the item which has associated help string.
8457 (XMenuActivate): Update the prototype for help_callback in
8458 function declaration. Call IT_menu_display with the current menu
8459 pane number as an additional argument. Call help_callback with
8460 two additional arguments: the pane number and the item number of
8461 the menu item associated with the help text.
8462 (help_echo_object, help_echo_pos): New variables.
8463 (syms_of_msdos): Initialize them and staticpro help_echo_object.
8464
8465 * msdos.h (XMenuActivate): Update prototype.
8466
8467 2000-07-19 Gerd Moellmann <gerd@gnu.org>
8468
8469 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
8470 Add some more prototypes.
8471
8472 * xterm.c, xterm.h: Add some more prototypes.
8473
8474 * lisp.h (Fnext_single_char_property_change): Add prototype.
8475
8476 * dispnew.c (direct_output_for_insert): Remove confusing
8477 outer local variable mouse_face_overwritten_p.
8478 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
8479
8480 * alloc.c (allocate_string_data): Don't copy old string contents.
8481
8482 2000-07-19 Kenichi Handa <handa@etl.go.jp>
8483
8484 * coding.c (code_convert_region): Delete text properties before
8485 shrinking the conversion region.
8486
8487 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8488
8489 * dispnew.c (update_text_area): Write the whole row if it
8490 has mouse-face in it.
8491
8492 * xfaces.c (face-alternative-font-family-alist): Remove
8493 DEFVAR_LISP; staticpro instead.
8494
8495 * xmenu.c (menu_help_callback): Call show_help_echo with
8496 new arguments.
8497
8498 * keyboard.c (show_help_echo): Add parameter WINDOW.
8499 (read_char): Call show_help_echo with window extracted from Lisp
8500 help event.
8501 (gen_help_event): Add parameter WINDOW.
8502
8503 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
8504
8505 * xterm.c (help_echo_window): New variable.
8506 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
8507 (XTread_socket): Pass help_echo_window to gen_help_event.
8508 (syms_of_xterm): Initialize and staticpro help_echo_window.
8509
8510 2000-07-18 Dave Love <fx@gnu.org>
8511
8512 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
8513
8514 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8515
8516 * alloc.c (allocate_string_data): If string had already data
8517 assigned, copy old contents to new string data.
8518
8519 * coding.c (syms_of_coding): Fix typo in spelling of variable
8520 `inhibit-iso-escape-detection'.
8521
8522 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
8523
8524 * Makefile.in: Add dependencies on dispextern.h.
8525 (alloca.o): Don't define malloc and define EMACS_FREE instead of
8526 `free'; both can conflict with system header files.
8527
8528 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8529
8530 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
8531 undefined.
8532
8533 2000-07-18 Dave Love <fx@gnu.org>
8534
8535 * window.c (Fwindow_list): Declare arg `window'.
8536
8537 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8538
8539 * coding.c (setup_coding_system): Don't override the explicitly
8540 specified designations.
8541
8542 2000-07-15 Miles Bader <miles@gnu.org>
8543
8544 * editfns.c (char_property_eq, char_property_stickiness): Renamed
8545 from `text_property_eq' and `text_property_stickiness', respectively.
8546 (find_field, Fconstrain_to_field, char_property_eq)
8547 (char_property_stickiness): Changed to call char-property functions
8548 instead of text-property-only ones.
8549
8550 * textprop.c (Fnext_single_char_property_change): Made a subr (was
8551 `next_single_char_property_change'). Do more error checking, and
8552 cleanup limit behavior.
8553 (Fprevious_single_char_property_change): New function.
8554 (syms_of_textprop): Initialize new subrs.
8555
8556 * xdisp.c (display_prop_end, invisible_text_between_p):
8557 Call Fnext_single_char_property_change instead of
8558 next_single_char_property_change.
8559
8560 2000-07-15 Jason Rumney <jasonr@gnu.org>
8561
8562 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
8563 after menu is finished with.
8564 (add_menu_item): Only consider wv->title as a menu title.
8565 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
8566
8567 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
8568 null title.
8569 (FONT_REGEXP): Remove unused macro, and its sub-components.
8570 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
8571
8572 * w32term.c (help_echo_object, help_echo_pos): New variables.
8573 (note_mode_line_highlight): Store additional information about the
8574 help-echo in help_echo_object and help_echo_pos. Check both
8575 `local-map' and `keymap' properties for changing the cursor
8576 (note_mouse_highlight): Store additional information about the
8577 help-echo in help_echo_object and help_echo_pos.
8578 (note_tool_bar_highlight): Set help_echo_object to nil and
8579 help_echo_pos to -1.
8580 (w32_read_socket): Use gen_help_event instead of filling
8581 input_events manually.
8582 (syms_of_w32term): Staticpro help_echo_object.
8583 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
8584 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
8585 (x_clear_mouse_face): New function.
8586 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
8587 (x_update_window_begin): No need to turn off the mouse
8588 highlight here.
8589 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8590 depending on whether they contain glyphs highlighted in mouse-face.
8591 (x_fill_stretch_glyph_string): Consume runs of stretch
8592 glyphs instead of a single one.
8593 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8594 with new argument list.
8595 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8596 (x_append_glyph, x_append_composite_glyph)
8597 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8598 changes in struct glyph starting 1999-12-27. See comments for
8599 xterm.c on 2000-07-05.
8600
8601 2000-07-14 Sam Steingold <sds@gnu.org>
8602
8603 * xfaces.c (realize_x_face): Fix the last patch:
8604 check `default_face' before dereferencing.
8605
8606 2000-07-14 Dave Love <fx@gnu.org>
8607
8608 * syntax.c (back_comment): Add null default in switch (for pcc).
8609
8610 2000-07-14 Kenichi Handa <handa@etl.go.jp>
8611
8612 * xfaces.c (realize_x_face): Make fontset using the base of the
8613 default_face's fontset, not using the default fontset.
8614
8615 * coding.c (inhibit_iso_escape_detection): New variable.
8616 (syms_of_coding): Make it a Lisp variable.
8617 (detect_coding_iso2022): If inhibit_iso_escape_detection is
8618 nonzero, ignore ISO2022's escape sequence.
8619
8620 2000-07-14 Gerd Moellmann <gerd@gnu.org>
8621
8622 * alloca.c (malloc) [emacs]: Define as xmalloc.
8623
8624 * xfns.c (Fx_show_tip): If frame parameters contain a position,
8625 use that instead of the mouse position. Add parameters DX and DY.
8626
8627 * dispextern.h (Fx_show_tip): Adjust number of parameters
8628 in prototype.
8629
8630 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
8631 if HELP is a function, call it with OBJECT and POS as parameters
8632 to get the help to display.
8633 (gen_help_event, kbd_buffer_store_help_event): New functions.
8634 (kbd_buffer_get_event): Construct the Lisp help-event differently.
8635 (read_char): Call show_help_echo with new parameters.
8636
8637 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
8638 Add prototypes.
8639
8640 * xterm.c (help_echo_object, help_echo_pos): New variables.
8641 (note_mode_line_highlight): Store additional information about the
8642 help-echo in help_echo_object and help_echo_pos. Check both
8643 `local-map' and `keymap' properties for changing the cursor
8644 (note_mouse_highlight): Store additional information about the
8645 help-echo in help_echo_object and help_echo_pos.
8646 (note_tool_bar_highlight): Set help_echo_object to nil and
8647 help_echo_pos to -1.
8648 (XTread_socket): Use gen_help_event instead of filling
8649 input_events manually.
8650 (syms_of_xterm): Staticpro help_echo_object.
8651
8652 * xmenu.c (menu_highlight_callback): Use
8653 kbd_buffer_store_help_event instead of setting up and input_event
8654 structure manually.
8655
8656 * xdisp.c (eval_form): GCPRO argument sexpr.
8657 (call_function): New function.
8658 (handle_single_display_prop): Use call_function and FUNCTIONP
8659 instead of checking whether if font_height is a symbol and
8660 using eval_form.
8661
8662 * eval.c (internal_condition_case_2): New function.
8663
8664 * lisp.h (FUNCTIONP): New macro.
8665 (internal_condition_case_2, call_function): Add prototypes.
8666
8667 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
8668 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
8669 Always set `arg' member of input_events.
8670 (construct_menu_click): Unused function removed.
8671
8672 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
8673
8674 * w32term.c (construct_mouse_click, construct_mouse_wheel)
8675 (construct_drag_n_drop, x_scroll_bar_handle_click)
8676 (w32_read_socket): Always set `arg' member of input_events.
8677
8678 * keyboard.c (show_help_echo): Use eval_form. Add comment.
8679
8680 * lisp.h (eval_form): Add prototype.
8681
8682 * xdisp.c (eval_form): Make it externally visible.
8683
8684 2000-07-13 Gerd Moellmann <gerd@gnu.org>
8685
8686 * xterm.c (x_handle_tool_bar_click): Store the frame in the
8687 frame_or_window slot of TOOL_BAR_EVENT input events instead of
8688 consing. For prefix events, store the frame in the `arg' slot of
8689 the event, otherwise store the key there.
8690 (XTread_socket): Instead of consing, use the frame_or_window slot
8691 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
8692
8693 * xmenu.c (menu_highlight_callback): Store help string in the
8694 `arg' member of the input event; don't cons.
8695 (menubar_selection_callback): Use the `arg' slot of input events
8696 to queue additional information, instead of consing.
8697
8698 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
8699
8700 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
8701 TOOL_BAR_EVENTs.
8702 (w32_read_socket): Adapt to changes in HELP_EVENTs.
8703
8704 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
8705 input events to queue additional information, instead of consing.
8706
8707 * keyboard.c (kbd_buffer_gcpro): Renamed from
8708 kbd_buffer_frame_or_window. Now used for all Lisp objects
8709 referenced from the input queue.
8710 (kbd_buffer_store_event): Always use structure assignment for
8711 copying input events. Record all Lisp objects referenced from
8712 events in kbd_buffer_gcpro.
8713 (kbd_buffer_get_event): Construct Lisp `help-echo' events
8714 differently from input events. Test for prefix menu_bar_events
8715 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
8716 event in kbd_buffer_gcpro to nil.
8717 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
8718 frame_or_window is equal to its arg member as prefix events.
8719 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
8720 used by an input event to nil.
8721 (init_keyboard): Use two times the size of the input queue
8722 for kbd_buffer_gcpro.
8723 (syms_of_keyboard): Likewise.
8724
8725 * emacs.c (handle_USR2_signal, handle_USR1_signal):
8726 Use USER_SIGNAL_EVENT.
8727
8728 * termhooks.h (struct input_event): Add member `arg'.
8729 (MENU_BAR_EVENT): Renamed from menu_bar_event.
8730 (USER_SIGNAL_EVENT): Renamed from user_signal.
8731
8732 * xfaces.c (ASET): Remove definition.
8733
8734 * lisp.h (AREF, ASET, ASIZE): New macros.
8735
8736 * fontset.c (AREF, ASIZE): Remove definitions.
8737
8738 * fns.c (AREF): Remove definition.
8739
8740 * composite.c (AREF): Remove definition.
8741
8742 2000-07-12 Gerd Moellmann <gerd@gnu.org>
8743
8744 * dispnew.c (redraw_overlapped_rows): Add missing local.
8745 (scrolling_window): Remove debug code.
8746
8747 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
8748 Before scrolling, turn off a mouse-highlight in the window
8749 being scrolled.
8750
8751 * xterm.c (x_update_window_end): Add parameter
8752 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
8753 redisplay in XTframe_up_to_date.
8754 (x_clear_mouse_face): New function.
8755 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
8756
8757 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
8758 current glyph row.
8759 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
8760 it when any row is written to that contains glyphs highlighted in
8761 mouse-face.
8762 (update_window): Call the window update end hook with new
8763 parameter MOUSE_FACE_OVERWRITTEN_P.
8764 (direct_output_for_insert): Give up if row contains mouse-face.
8765
8766 * dispextern.h (struct redisplay_interface): Add parameter
8767 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
8768 (clear_mouse_face): New function pointer member.
8769
8770 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
8771
8772 * syntax.c (back_comment): Use one switch rather than a few `if's.
8773 Obey open_paren_in_column_0_is_defun_start.
8774 When reverting to the `slow' method, try to nicely handle the case
8775 of nested comments by checking that the comment-starter we found
8776 does indeed match the comment-ender.
8777 (scan_sexps_forward, scan_sexps_forward):
8778 Ignore excessive opening parenthesis rather than throwing an error.
8779
8780 2000-07-11 Gerd Moellmann <gerd@gnu.org>
8781
8782 * doc.c (Fsubstitute_command_keys): Handle case that a GC
8783 in Fwhere_is_internal or get_keymap_1 relocates string contents.
8784
8785 * dispnew.c (direct_output_forward_char): Give up if currently
8786 displaying a message instead of the minibuffer contents.
8787
8788 * xterm.c (x_update_window_begin): No need to turn off the mouse
8789 highlight here.
8790 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8791 depending on whether they contain glyphs highlighted in mouse-face.
8792
8793 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
8794 compare the mouse_face_p flags of both rows.
8795
8796 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
8797
8798 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
8799
8800 * keyboard.c (show_help_echo): Accept additional parameter
8801 ok_to_overwrite_keystroke_echo.
8802 (read_char): Call show_help_echo with a zero
8803 ok_to_overwrite_keystroke_echo argument.
8804 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
8805 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
8806 ok_to_overwrite_keystroke_echo argument.
8807 * w32menu.c (w32_menu_display_help): Call show_help_echo with
8808 non-zero ok_to_overwrite_keystroke_echo argument.
8809
8810 2000-07-10 Gerd Moellmann <gerd@gnu.org>
8811
8812 * xdisp.c (try_window_id): If changes are all below what is
8813 displayed in the window, and point is in the window, we still
8814 might have to find point on the display.
8815
8816 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
8817 glyphs instead of a single one.
8818 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8819 with new argument list.
8820 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8821
8822 * keymap.c (get_keymap_1): Add comment that this function can GC.
8823 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
8824 comment that functions can GC.
8825 (Fset_keymap_parent): GCPRO arg KEYMAP.
8826
8827 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
8828
8829 * msdos.c (XMenuActivate): After exiting the menu, restore the
8830 echo area message and erase it.
8831
8832 2000-07-10 Kenichi Handa <handa@etl.go.jp>
8833
8834 * fontset.c (Ffontset_info): Make the return value more compatible
8835 with that of Emacs 20.
8836
8837 2000-07-07 Gerd Moellmann <gerd@gnu.org>
8838
8839 * eval.c (Fsignal): Handle case that backtrace_list is null.
8840
8841 2000-07-07 Kenichi Handa <handa@etl.go.jp>
8842
8843 * ccl.c (Fccl_execute): Typo fixed.
8844
8845 2000-07-06 Gerd Moellmann <gerd@gnu.org>
8846
8847 * window.c (window_loop): Add missing gcpro1 local variable.
8848
8849 * window.c (Fwindow_list): Reverse list at the end.
8850 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
8851 means allow windows on OWINDOW's frame, only.
8852 (window_loop): Simplified; use Fwindow_list.
8853
8854 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
8855
8856 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8857
8858 * xterm.c (XTread_socket): Increment handling_signal at the start,
8859 decrement it at the end.
8860
8861 * eval.c (handling_signal): New variable.
8862 (Fsignal): Abort if handling_signal is non-zero.
8863
8864 * lisp.h (handling_signal): External declaration.
8865
8866 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
8867
8868 2000-07-05 Ken Raeburn <raeburn@gnu.org>
8869
8870 Sound support for NetBSD through "Linux emulation" support:
8871 * config.in (HAVE_SOUNDCARD_H): Undef.
8872 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
8873 * Makefile.in (LIBSOUND): New variable.
8874 (LIBES): Include it.
8875 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
8876 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
8877 (vox_open): Use DEFAULT_SOUND_DEVICE.
8878 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
8879
8880 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8881
8882 * print.c (print_error_message): If Vsignaling_function is set,
8883 show it in *Messages*.
8884
8885 * lisp.h (Vsignaling_function): External declaration.
8886
8887 * eval.c (Vsignaling_function): New variable.
8888 (Fsignal): Compute it.
8889 (syms_of_eval): Staticpro it.
8890
8891 2000-07-05 Dave Love <fx@gnu.org>
8892
8893 * syswait.h: Use the autoconf recommended approach. Old code
8894 #if'd out in case we need to revert.
8895
8896 * config.in (HAVE_SYS_WAIT_H): Added.
8897
8898 2000-07-05 Andrew Innes <andrewi@gnu.org>
8899
8900 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
8901 when non-NULL instead of __morecore, to take account of buffer
8902 memory. This also solves a problem with spurious memory warnings
8903 on Windows.
8904
8905 * ralloc.c: Make real_morecore non-static.
8906
8907 * eval.c (internal_condition_case): Comment out abort if
8908 interrupt_input_blocked is not zero.
8909
8910 * makefile.nt: Add support for `bootstrap' and related targets.
8911 Include minimal debug info in emacs.exe in release build.
8912 Remove all dependencies on lisp.h, and fixup some others.
8913
8914 * w32.c (init_environment): Install code from 20.7 for providing
8915 default values for environment variables, based on the
8916 executable's own location.
8917 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
8918 (sys_socket): Install socket inheritance bug fix from 20.7.
8919
8920 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
8921 here via blockinput.h).
8922
8923 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
8924
8925 * w32menu.c (w32_menu_display_help):
8926 * xmenu.c (menu_help_callback): Use show_help_echo.
8927
8928 * keyboard.h (show_help_echo): Declare.
8929
8930 * keyboard.c (show_help_echo): New function, extracted from read_char.
8931 Feval its `msg' argument if it's a cons cell.
8932 (read_char): Use it.
8933 (follow_key): Pass `autoload' to get_keyelt.
8934
8935 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
8936 (note_tool_bar_highlight, XTread_socket):
8937 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
8938 (dos_rawgetc):
8939 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
8940 (note_tool_bar_highlight, w32_read_socket):
8941 Do not gratuitously ignore non-string `help-echo' properties.
8942
8943 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8944
8945 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
8946
8947 * window.c (delete_all_subwindows): Reset Vwindow_list.
8948
8949 * xterm.c (x_append_glyph, x_append_composite_glyph)
8950 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8951 changes in struct glyph starting 1999-12-27. Some bit-fields of
8952 struct glyph were not set, which made glyphs unequal when compared
8953 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
8954 effects were the result. This also depended on the contents of
8955 memory returned by xmalloc. If flickering happens again, activate
8956 the code in clear_glyph_row that's in #if 0. If the flickering is
8957 gone with that, chances are that it is caused by something similar.
8958
8959 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
8960
8961 * dispextern.h: Add some comments.
8962
8963 * window.c (add_window_to_list): Add parameter LIST.
8964 (window_list): Order list so that, for each frame, windows are
8965 in canonical order, and so that frames appear in the list in
8966 the order given by Vframe_list.
8967 (next_window): Reverse the handling of NEXT_P.
8968
8969 2000-07-04 Gerd Moellmann <gerd@gnu.org>
8970
8971 * window.c (Vwindow_list): New variable.
8972 (make_window, delete_window): Set Vwindow_list to nil.
8973 (check_window_containing): New function.
8974 (window_from_coordinates): Rewritten.
8975 (add_window_to_list, window_list, candidate_window_p)
8976 (decode_next_window_args, next_window): New functions.
8977 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
8978 (Fwindow_list): New function.
8979 (Fother_window): Cleaned up.
8980 (foreach_window): Add a longer "variable argument list". Let
8981 callback function return 0 to indicate that cycling over windows
8982 should stop.
8983 (foreach_window_1): Likewise.
8984 (freeze_window_start): Return int.
8985 (init_window): New function.
8986 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
8987
8988 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
8989 input_event with bzero.
8990 (main): Call init_window.
8991
8992 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
8993 a menu filter.
8994
8995 2000-07-04 Kenichi Handa <handa@etl.go.jp>
8996
8997 * composite.h (make_composition_value_copy): Extern it.
8998
8999 * composite.c (make_composition_value_copy): New function.
9000
9001 * editfns.c (Fformat): While copying text properties, make each
9002 composition property value a copy.
9003
9004 * fns.c (concat): While copying text properties, make each
9005 composition property value a copy.
9006
9007 2000-07-03 Gerd Moellmann <gerd@gnu.org>
9008
9009 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
9010
9011 * fns.c (sweep_weak_table): Mark only objects that are not
9012 marked already.
9013
9014 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
9015 include those frames as candidates which have their focus
9016 redirected to the minibuffer frame.
9017
9018 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
9019
9020 * fns.c (Fputhash): Return `value' rather than nil.
9021
9022 2000-06-30 Gerd Moellmann <gerd@gnu.org>
9023
9024 * frame.c (next_frame): Don't check focus redirection in case
9025 MINIBUF is a window. Doing so excludes frames using MINIBUF
9026 unless their focus is redirected, which contradicts the
9027 specification of next-frame, and leads to infinite loops in
9028 certain situations when cycling through windows with next-window.
9029
9030 2000-06-30 Kenichi Handa <handa@etl.go.jp>
9031
9032 * coding.c (code_convert_region): Even if the length of text is
9033 zero, try to convert it if coding->type is coding_type_ccl.
9034 (decode_coding_string, encode_coding_string): Likewise.
9035
9036 2000-06-28 Gerd Moellmann <gerd@gnu.org>
9037
9038 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
9039 the display if windows_or_buffers_changed.
9040
9041 * dispnew.c (struct row_entry): New structure.
9042 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
9043 (row_table_size, old_lines, new_lines, old_lines_size)
9044 (new_lines_size, run_pool, runs_size, runs): New variables.
9045 (add_row_entry): New function.
9046 (scrolling_window): Use data structures allocated with xmalloc and
9047 held in global variables, instead of allocating them with alloca and
9048 holding them in local variables. Use a larger hash table whose
9049 size depends on glyph matrix sizes. Don't use bzero to clear the
9050 hash table; instead, clear used slots only.
9051
9052 * fns.c (next_almost_prime): Make it externally visible.
9053
9054 * lisp.h (next_almost_prime): Add prototype.
9055
9056 * s/isc4-0.h (sigunblock): Define.
9057
9058 * s/sco5.h (sigunblock): Define.
9059
9060 2000-06-27 Dave Love <fx@gnu.org>
9061
9062 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
9063 (moved to osf5-0.h).
9064 [!NOT_C_CODE]: Protect string.h stuff.
9065
9066 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
9067 (sys_siglist, NSIG): Definitions moved here from osf1.h.
9068
9069 2000-06-27 Gerd Moellmann <gerd@gnu.org>
9070
9071 * xdisp.c (resize_mini_window): Subtract the extra line spacing
9072 below the last line from the needed window height.
9073
9074 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
9075
9076 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
9077 (Fwidget_get): Use it.
9078 (syms_of_fns): Defsubr it.
9079
9080 2000-06-26 Gerd Moellmann <gerd@gnu.org>
9081
9082 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
9083 display info for XIM.
9084 (xim_open_dpy): Likewise.
9085 (xim_close_dpy): Don't free the display info's XIM.
9086
9087 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
9088
9089 * config.in (USE_XIM): New define.
9090
9091 * keymap.c (get_keyelt): For menu-items containing a `:filter
9092 FILTER', apply FILTER to the menu-item's definition to get the
9093 real definition to use.
9094
9095 * lisp.h (QCfilter): External declaration.
9096
9097 * xfns.c (Fimage_size): New function.
9098 (syms_of_xfns): Defsubr it.
9099
9100 2000-06-26 Andreas Schwab <schwab@suse.de>
9101
9102 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
9103 Fstring_as_unibyte.
9104
9105 2000-06-25 Dave Love <fx@gnu.org>
9106
9107 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
9108
9109 * Makefile.in (blockinput.h): Depend on atimer.h.
9110 (atimer.h): Depend on systime.h.
9111
9112 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
9113
9114 * atimer.h: Protect against multiple inclusion. Include systime.h.
9115
9116 * lisp.h (swap_in_global_binding): Declare.
9117
9118 2000-06-24 Ken Raeburn <raeburn@gnu.org>
9119
9120 * process.c (Fopen_network_stream): Turn off atimers for duration
9121 of call to connect. (Patch from Gerd.)
9122
9123 2000-06-23 Dave Love <fx@gnu.org>
9124
9125 * ralloc.c: Maybe include unistd.h
9126
9127 * emacs.c (setgrp): Undefine before defining.
9128 (malloc_warning, set_time_zone_rule, index): Prototype.
9129
9130 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
9131 HAVE_STRUCT_TIMEZONE.
9132
9133 * s/osf1.h: Move string.h hack here from alpha.h and make it
9134 conditional.
9135 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
9136 _XOPEN_SOURCE.
9137 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
9138 (SOCKLEN_TYPE): Don't define.
9139
9140 * m/alpha.h: Remove string.h hack.
9141
9142 * s/osf5-0.h: New file.
9143
9144 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
9145 include time.h, done by systime.h.
9146 [__FreeBSD__]: Remove redundant includes.
9147
9148 * callproc.c (setpgrp): Undefine before defining.
9149 (delete_temp_file): Return Qnil to avoid warning.
9150
9151 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
9152
9153 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
9154 HAVE_X_WINDOWS.
9155
9156 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
9157
9158 * composite.h (compose_text): Declare.
9159
9160 * xterm.c: Don't include sys/types.h unconditionally. Don't
9161 protect its inclusion with !USG (following xmenu.c).
9162
9163 2000-06-23 Gerd Moellmann <gerd@gnu.org>
9164
9165 * xfns.c (x_create_tip_frame): Initialize frame's colors like
9166 in x_create_frame.
9167
9168 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
9169
9170 * coding.c (decode_eol_post_ccl): Special handling for undecided
9171 and inconsistent EOL types.
9172
9173 2000-06-22 Gerd Moellmann <gerd@gnu.org>
9174
9175 * xrdb.c (x_load_resources): Add default resource for scroll bar's
9176 trough color and main window's background color.
9177
9178 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
9179
9180 * xterm.h (Xt_app_con): External declaration.
9181
9182 * widget.c (EmacsFrameRealize): Fix typo.
9183
9184 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
9185
9186 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
9187 (handle_invisible_prop): Record the start of invisible text in
9188 it->add_overlay_start.
9189 (struct overlay_entry): Add member `overlay'.
9190 (handle_overlay_change): Simplify.
9191 (next_overlay_string): After having processed overlay strings at the
9192 end of the buffer, record that fact in
9193 it->overlay_strings_at_end_processed_p.
9194 (compare_overlay_entries): If before- and after-strings come
9195 from the same overlay, let before-strings come first.
9196 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
9197 (load_overlay_strings): Take it->add_overlay_start into account
9198 when adding overlay strings.
9199
9200 * dispextern.h (struct it): Add member add_overlay_start.
9201
9202 2000-06-22 Dave Love <fx@gnu.org>
9203
9204 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
9205
9206 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
9207
9208 2000-06-22 Kenichi Handa <handa@etl.go.jp>
9209
9210 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
9211 is greater than 0.
9212
9213 2000-06-21 Dave Love <fx@gnu.org>
9214
9215 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9216
9217 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
9218
9219 * syntax.c (back_comment): Simplify string-parity counting (with
9220 the added benefit of handling multiple string-styles as long as
9221 they are not intertwined).
9222 Jump to the slow code as soon as a comment starter is found in
9223 a "string_lossage" position. Fixes the case: " /* " /* " */.
9224
9225 2000-06-21 Dave Love <fx@gnu.org>
9226
9227 * Makefile.in: Use GETLOADAVG_LIBS.
9228
9229 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
9230 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
9231
9232 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9233
9234 * syntax.c (describe_syntax): Recognize the `n'estable bit.
9235 (Fforward_comment, scan_lists):
9236 Check the comstyle of single-char comment-starters.
9237 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
9238 we're just at the beginning of the comment (f.ex with (*) ... (*)).
9239 Check the comstyle of single-char comment-starters.
9240 Clarify control-flow around the Scomment case.
9241
9242 2000-06-20 Dave Love <fx@gnu.org>
9243
9244 * fns.c (make_hash_table, maybe_resize_hash_table):
9245 Cast arg of next_almost_prime.
9246
9247 * tparam.c [emacs]: Include lisp.h.
9248
9249 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
9250 and unistd.h.
9251
9252 2000-06-20 Gerd Moellmann <gerd@gnu.org>
9253
9254 * keyboard.c (adjust_point_for_property): Check if display
9255 property should be treated as intangible by looking at its value.
9256
9257 * xdisp.c (single_display_prop_intangible_p)
9258 (display_prop_intangible_p): New functions.
9259
9260 * dispextern.h (display_prop_intangible_p): Add prototype.
9261
9262 * xdisp.c (dump_glyph_row): Show type of glyph->object.
9263
9264 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
9265 argument to sigprocmask.
9266
9267 * s/sco5.h (sigblock): Redefined to pass a pointer as second
9268 argument to sigprocmask.
9269
9270 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
9271 sigprocmask_set, and pass a pointer to it to sigprocmask.
9272
9273 * sysdep.c (sigprocmask_set): New variable.
9274
9275 * fileio.c (make_temp_name): Don't use `%s' in string passed to
9276 report_file_error.
9277
9278 2000-06-20 Sam Steingold <sds@gnu.org>
9279
9280 * xrdb.c: Don't declare xmalloc, xrealloc.
9281
9282 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9283
9284 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
9285 (re_comp): Cast gettext return value to avoid complaints when
9286 !HAVE_LIBINTL.
9287
9288 2000-06-20 Dave Love <fx@gnu.org>
9289
9290 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
9291
9292 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
9293
9294 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
9295
9296 * m/alpha.h: Don't declare xmalloc, xrealloc.
9297
9298 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
9299
9300 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
9301
9302 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
9303
9304 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
9305 HAVE_GETWD.
9306
9307 * keyboard.h (poll_for_input_1): Declare.
9308
9309 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
9310
9311 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
9312
9313 * doprnt.c: Don't declare xmalloc, xrealloc.
9314
9315 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
9316 (getenv, ctime, getwd): Removed.
9317 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
9318
9319 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
9320 x_set_tool_bar_lines.
9321
9322 * config.in: Add HAVE_GETWD. Move some definitions above
9323 machine/system includes.
9324
9325 2000-06-20 Kenichi Handa <handa@etl.go.jp>
9326
9327 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
9328
9329 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
9330 contain information about ENCODING.
9331
9332 * fontset.c (FONTSET_ASCII): Use the first element of char table
9333 for an ASCII font, not defalt slot.
9334 (fontset_ref_via_base): If FONTSET doesn't contain information for
9335 C, try the default fontset.
9336 (make_fontset): Don't copy the default fontset.
9337 (fontset_font_pattern): Likewise.
9338 (accumulate_font_info): If ELT is nil, use the corresponding
9339 element in the default fontset.
9340
9341 2000-06-19 Dave Love <fx@gnu.org>
9342
9343 * syntax.c (Fparse_partial_sexp): Doc fix.
9344
9345 * regex.h: Test PROTOTYPES as well as __STDC__.
9346
9347 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
9348 errno, strerror. Put text after #endif in comment.
9349
9350 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
9351
9352 * xterm.c (x_frame_of_widget): Likewise.
9353
9354 2000-06-19 Gerd Moellmann <gerd@gnu.org>
9355
9356 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
9357 to Vfundamental_mode_abbrev_table.
9358
9359 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
9360 bogus objects are marked. This slows down GC by ~80 percent, but
9361 it might be worth trying when debugging GC-related problems.
9362 This feature requires conservative stack marking to be enabled.
9363
9364 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
9365 returns XLookupChars, reset `modifiers' to zero.
9366
9367 2000-06-19 Dave Love <fx@gnu.org>
9368
9369 * mktime.c: Unprotoized.
9370
9371 2000-06-19 Richard Stallman <rms@gnu.org>
9372
9373 * data.c (set_internal): If variable is frame-local,
9374 store the new value immediately into the frame parameter alist.
9375
9376 2000-06-19 Ken Raeburn <raeburn@gnu.org>
9377
9378 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
9379 in the custom handler pointer.
9380
9381 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
9382 value, or checks for CHAR_META can fail when Lisp_Object is a
9383 union type.
9384 * keymap.c (get_keyelt): Likewise.
9385
9386 2000-06-19 Kenichi Handa <handa@etl.go.jp>
9387
9388 * ccl.h (struct ccl_program): New member eol_type.
9389 (struct ccl_spec): New member cr_carryover.
9390
9391 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
9392 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
9393
9394 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
9395 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
9396 (decode_eol_post_ccl): New function.
9397 (decode_coding): Don't detect EOL format here for CCL based coding
9398 systems.
9399 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
9400 decode_eol_post_ccl after running the CCL program.
9401 (code_convert_region): Don't detect EOL format here for CCL based
9402 coding systems.
9403 (decode_coding_string): Likewise.
9404
9405 2000-06-18 Ken Raeburn <raeburn@gnu.org>
9406
9407 * charset.c (update_charset_table): Use XINT on "iso_final_char"
9408 when treating it as an integer.
9409
9410 * coding.h (encode_coding_string): Declare.
9411
9412 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
9413 it as an integer.
9414
9415 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
9416 "xkeymap" to avoid shadowing the "enum map_type" value that needs
9417 to be passed to get_local_map.
9418
9419 * sound.c (Fplay_sound): Don't call make_number on
9420 Frun_hook_with_args count argument.
9421
9422 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
9423 for lisp objects in X event structure data field, when lisp
9424 objects are represented with unions.
9425 (x_scroll_bar_to_input_event): Ditto.
9426
9427 2000-06-16 Ken Raeburn <raeburn@gnu.org>
9428
9429 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
9430 termination of string. Fix sense of test whether
9431 Vline_number_display_limit is an integer.
9432
9433 2000-06-16 Gerd Moellmann <gerd@gnu.org>
9434
9435 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
9436 only if HAVE_X_WINDOWS.
9437
9438 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
9439 of titles.
9440
9441 * dispnew.c (update_frame_1): Handle case that cursor vpos is
9442 out of bounds.
9443
9444 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
9445
9446 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
9447 of its headers.
9448
9449 2000-06-15 Kenichi Handa <handa@etl.go.jp>
9450
9451 * coding.c (decode_coding_emacs_mule): Always set src_base at the
9452 start of the while loop.
9453
9454 2000-06-15 Gerd Moellmann <gerd@gnu.org>
9455
9456 * atimer.c (alarm_signal_handler): Add forward declaration.
9457
9458 * data.c (set_internal): Remove debug code.
9459
9460 2000-06-14 Gerd Moellmann <gerd@gnu.org>
9461
9462 * Makefile.in (bootstrap-temacs): Add `-I../src'.
9463
9464 * unexec.c (toplevel) [COFF]: Include coff.h.
9465
9466 * s/lynxos.h: New file.
9467
9468 * keymap.c (Fsingle_key_description): Enclose function key and
9469 event symbol names in angle brackets.
9470
9471 * xdisp.c (setup_echo_area_for_printing): Call
9472 message_log_maybe_newline if message_buf_print is not set.
9473
9474 * print.c (printchar, strout): Don't check message_buf_print
9475 before calling setup_echo_area_for_printing because that
9476 function does something useful even when message_buf_print is
9477 already set.
9478
9479 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
9480 New variables.
9481 (ensure_echo_area_buffers): Initialize echo buffer's
9482 truncate lines setting to nil.
9483 (with_echo_area_buffer): Don't set the echo buffer's truncate
9484 lines setting here.
9485 (set_message_1): Set it here instead, based on the value
9486 of message_truncate_lines.
9487 (resize_mini_window): Handle case that lines are truncated.
9488 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
9489 DEFVAR_BOOL message-truncate-lines.
9490
9491 * keyboard.c (read_char): Bind message-truncate-lines to t
9492 while displaying a help-echo.
9493
9494 * lisp.h (Qmessage_truncate_lines): External declaration.
9495
9496 2000-06-13 Gerd Moellmann <gerd@gnu.org>
9497
9498 * xdisp.c (Vline_number_display_limit): Renamed from
9499 line_number_display_limit.
9500 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
9501 Extend documentation string. Initialize
9502 Vline_number_display_limit to nil meaning no limit.
9503 (decode_mode_spec): Use Vline_number_display_limit with its new
9504 meaning.
9505
9506 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
9507
9508 2000-06-13 Richard Stallman <rms@gnu.org>
9509
9510 * frame.c (Fmodify_frame_parameters): Doc fix.
9511
9512 * xfns.c (x_set_frame_parameters): Comment fix.
9513
9514 * frame.c (store_frame_param): Call swap_in_global_binding if the
9515 variable's current binding was chosen based on this frame.
9516
9517 * data.c (swap_in_global_binding): New function.
9518
9519 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9520
9521 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
9522 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
9523
9524 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9525
9526 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
9527
9528 2000-06-12 Jason Rumney <jasonr@gnu.org>
9529
9530 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
9531
9532 * w32.h (EMACS_W32_H): Renamed from _NT_H_
9533
9534 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
9535
9536 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
9537
9538 2000-06-12 Gerd Moellmann <gerd@gnu.org>
9539
9540 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
9541 (syms_of_xfaces): Defsubr Sdump_colors.
9542 (x_free_colors): Don't treat b&w specially on default visual.
9543 (x_free_dpy_colors): New function.
9544 (free_face_colors): Don't check visual class; it's done
9545 in x_free_colors.
9546
9547 * xterm.c (x_frame_of_widget): New function.
9548 (x_alloc_nearest_color_for_widget): Use it.
9549 (x_copy_dpy_color): New function.
9550 (x_destroy_window): Free various colors.
9551
9552 2000-06-12 Kenichi Handa <handa@etl.go.jp>
9553
9554 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
9555
9556 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
9557
9558 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
9559
9560 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
9561
9562 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
9563
9564 2000-06-11 Dave Love <fx@gnu.org>
9565
9566 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
9567
9568 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
9569
9570 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
9571
9572 2000-06-11 Gerd Moellmann <gerd@gnu.org>
9573
9574 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
9575 to `XEvent *'.
9576
9577 2000-06-10 Kenichi Handa <handa@etl.go.jp>
9578
9579 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
9580 (regex_compile): Fix the code for handling the case of single byte
9581 char and multibyte char being mixed in a range within [...].
9582
9583 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
9584 and dst_multibyte members of coding.
9585
9586 * charset.c (update_charset_table): Update the table
9587 bytes_by_char_head.
9588 (init_charset_once): Initialize elements of bytes_by_char_head to
9589 1 except for leading codes for private charases.
9590
9591 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
9592 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
9593
9594 2000-06-09 Ken Raeburn <raeburn@gnu.org>
9595
9596 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
9597 access the data it doesn't point to.
9598
9599 2000-06-08 Gerd Moellmann <gerd@gnu.org>
9600
9601 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
9602 will be translated to a switch-frame event when reading the
9603 event queue. This is necessary because Emacs otherwise won't
9604 perform a switch-frame to a new frame until some other event, for
9605 example a keystroke event, forces it to do so. This has various
9606 effects, one visible being that the cursor of a frame created with
9607 C-x 5 2 or switched to with a window manager key binding like
9608 A-TAB stays hollow because selected_window isn't on the newly
9609 focused frame until the switch-frame is performed.
9610
9611 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
9612 generating a switch-frame event if necessary.
9613
9614 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
9615
9616 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
9617 it's an integer.
9618
9619 2000-06-08 Kenichi Handa <handa@etl.go.jp>
9620
9621 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
9622
9623 2000-06-07 Gerd Moellmann <gerd@gnu.org>
9624
9625 * window.c (displayed_window_lines): Take empty lines at
9626 the bottom of a window into account.
9627
9628 * window.c (displayed_window_lines): New function.
9629 (Fmove_to_window_line): Use displayed_window_lines to determine
9630 the number of lines to move, instead of using the window's height.
9631
9632 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
9633 to stop reading, even if the form read sets point to a different
9634 value when evaluated.
9635
9636 * xdisp.c (display_line): Fix code deciding in which line to
9637 put the cursor.
9638
9639 2000-06-07 Kenichi Handa <handa@etl.go.jp>
9640
9641 * fileio.c (e_write): Free composition data if stored in
9642 coding->cmp_data.
9643
9644 2000-06-06 Gerd Moellmann <gerd@gnu.org>
9645
9646 * xdisp.c (display_line): Set row's and iterator's
9647 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
9648 Set cursor even if row ends in the middle of a character.
9649 (dump_glyph_row): Print values of new flags.
9650 (redisplay_window) <cursor movement in unchanged window>: When
9651 point has been moved forward, and PT is at the end of the cursor
9652 row, don't place the cursor in the next row if the cursor row ends
9653 in the middle of a character or at ZV.
9654
9655 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
9656 (struct glyph_row): Add starts_in_middle_of_char_p and
9657 ends_in_middle_of_char_p.
9658 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
9659 ends_in_middle_of_char_p flag.
9660 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
9661
9662 * term.c (append_glyph): Revert change of 2000-06-06.
9663
9664 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
9665 padding glyph not fitting on line as whole character not
9666 fitting on line.
9667
9668 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
9669 this isn't true for images with `:ascent 100'.
9670
9671 2000-06-06 Kenichi Handa <handa@etl.go.jp>
9672
9673 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
9674 as modified if it is originally unmodified.
9675
9676 * term.c (encode_terminal_code): Change the way to check if
9677 terminal coding does any conversion.
9678 (append_glyph): Set glyph->pixel_width correctly.
9679
9680 * xdisp.c (display_line): While checking line continuation, pay
9681 attention to a padding glyph.
9682
9683 2000-06-05 Gerd Moellmann <gerd@gnu.org>
9684
9685 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
9686
9687 2000-06-05 Dave Love <fx@gnu.org>
9688
9689 * xdisp.c: Include fontset.h.
9690
9691 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
9692
9693 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9694
9695 * dispnew.c: Conditionally include term.h.
9696
9697 * coding.h: Declare code_convert_string_norecord.
9698
9699 * frame.h (struct frame): Use volatile unconditionally.
9700
9701 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
9702
9703 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
9704
9705 * systime.h: Protect against multiple inclusion.
9706 (timezone) [USG5_4]: Define as time_t.
9707
9708 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9709 (Foptimize_char_table, make_temp_name): Declare.
9710
9711 * Makefile.in (xdisp.o): Depend on fontset.h.
9712
9713 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9714
9715 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9716 (Foptimize_char_table, make_temp_name): Declare.
9717
9718 * s/irix4-0.h:
9719 * s/irix5-0.h:
9720 * s/netbsd.h: Don't define autoconfiscated MATHERR.
9721
9722 2000-06-02 Dave Love <fx@gnu.org>
9723
9724 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
9725
9726 2000-06-02 Gerd Moellmann <gerd@gnu.org>
9727
9728 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
9729 result face, set flags in that face indicating that colors may not
9730 be freed.
9731
9732 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
9733 glyph, use the ASCII NUL character to determine the face.
9734
9735 2000-06-02 Dave Love <fx@gnu.org>
9736
9737 * sysdep.c: Conditionally include stdlib.h, unistd.h.
9738 (VFORK_RETURN_TYPE): Remove.
9739
9740 * config.in: Add NO_MATHERR.
9741
9742 2000-06-01 Dave Love <fx@gnu.org>
9743
9744 * cmds.c (internal_self_insert): Don't check
9745 Vbefore_change_function, Vafter_change_function.
9746
9747 * insdel.c (signal_before_change, signal_after_change): Likewise.
9748
9749 * buffer.c (Vbefore_change_function, Vafter_change_function):
9750 Variables and their initializations deleted.
9751
9752 * callint.c (Fcall_interactively): Doc fix.
9753
9754 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
9755
9756 2000-05-31 Dave Love <fx@gnu.org>
9757
9758 * textprop.c: Revert last change -- duplicated.
9759
9760 2000-05-31 Gerd Moellmann <gerd@gnu.org>
9761
9762 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
9763 in #if 0.
9764
9765 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
9766
9767 2000-05-31 Jason Rumney <jasonr@gnu.org>
9768
9769 * search.c (Fre_search_forward, Fre_search_backward)
9770 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
9771
9772 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
9773
9774 2000-05-30 Jason Rumney <jasonr@gnu.org>
9775
9776 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
9777 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
9778
9779 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
9780
9781 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
9782 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
9783 expand a nil default_filename.
9784
9785 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
9786 pointer to glyph_to_pixel_coords, not a frame.
9787
9788 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
9789 coding.h to dependencies.
9790
9791 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
9792
9793 * w32console.c (glyph_to_pixel_coords): Change first parameter to
9794 window pointer to be consistent with w32term.c and xterm.c.
9795
9796 * w32fns.c: Format and doc changes to bring closer to xfns.c.
9797 (VIETNAMESE_CHARSET): Define if not defined in system headers.
9798 (Qline_spacing, Qcenter): New variables.
9799 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
9800 (x_set_line_spacing): New function.
9801 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
9802 (x_specified_cursor_type): New function.
9803 (x_set_cursor_type): Use it.
9804 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
9805 and icon strings.
9806 (validate_x_resource_name, x_get_resource_string): Measure lengths
9807 of external strings in bytes.
9808 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
9809 GetTextExtentPoint32 with NULL title.
9810 (Fx_create_frame): Initialize Qline_spacing.
9811 (w32_load_system_font): Initialize font->double_byte_p.
9812 (x_to_w32_charset): Use Vw32_charset_info_alist.
9813 (Image, busy cursor, tooltip functions): Merged changes from
9814 xfns.c. Not yet functional on Windows.
9815
9816 * w32gui.h (W32FontStruct): Add double_byte_p member.
9817
9818 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
9819 (emacs_button_translation): Use it.
9820 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
9821 in `mask' to be set.
9822
9823 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
9824 menu strings.
9825
9826 * w32term.c: Format and doc changes to bring closer to xterm.c.
9827 (w32_char_font_type): New enum.
9828 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
9829 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
9830 (w32_encode_char): New function.
9831 (x_encode_char): Removed.
9832 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
9833 x_encode_char and w32_font_is_double_byte.
9834 (x_produce_image_glyph): Use image_ascent.
9835 (x_produce_glyphs): Use new version of w32_per_char_metric and
9836 handle NULL return value. Allow extra line spacing.
9837 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
9838 (w32_get_glyph_overhangs): Remove unicode_p param. Use
9839 w32_font_type member of glyph instead.
9840 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
9841 (fast_find_position): Make sure not to consider rows not visible
9842 in the window.
9843 (w32_read_socket) [WM_MENUSELECT]: Cannot call
9844 w32_menu_display_help with input blocked, as it can abort.
9845 (x_display_and_set_cursor): Choose cursor depending
9846 on buffer-local value of cursor_type.
9847 (x_draw_bar_cursor): Add parameter WIDTH.
9848
9849 * w32term.h (CP_DEFAULT): Define.
9850 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
9851
9852 2000-05-30 Gerd Moellmann <gerd@gnu.org>
9853
9854 * search.c (Fre_search_forward, Fre_search_backward)
9855 (Fposix_search_backward, Fposix_search_forward): Doc fix.
9856
9857 2000-05-30 Kenichi Handa <handa@etl.go.jp>
9858
9859 * coding.c (detect_coding_iso2022): Fix code for checking
9860 CODING_CATEGORY_MASK_ISO_8_2.
9861
9862 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
9863
9864 * regex.c (PREFETCH_NOLIMIT): New function.
9865 (re_match_2_internal): Use it and adjust the end_match_2 logic.
9866
9867 2000-05-29 Gerd Moellmann <gerd@gnu.org>
9868
9869 * syntax.c (find_defun_start): Move test for
9870 open_paren_in_column_0_is_defun_start outside of the loop.
9871
9872 * xdisp.c (redisplay_window): Really switch buffers when
9873 displaying mode lines, and temporarily set selected_frame to the
9874 frame of the window that's redisplayed.
9875
9876 * xfaces.c (free_realized_faces): Block/unblock input.
9877 (free_realized_multibyte_face): Ditto.
9878
9879 2000-05-29 Dave Love <fx@gnu.org>
9880
9881 * textprop.c (Qkeymap): New variable.
9882 (syms_of_textprop): Intern it.
9883
9884 * keymap.c: Include intervals.h.
9885 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
9886
9887 * Makefile.in (keymap.o): Depend on intervals.h.
9888
9889 * keyboard.c (menu_bar_items, tool_bar_items)
9890 (Fexecute_extended_command): Deal with `keymap' property.
9891 (read_key_sequence): Track map from `keymap' property as well as
9892 `local_map'.
9893
9894 * intervals.c (get_local_map): Extra arg to allow looking for
9895 `keymap' too.
9896
9897 * intervals.h (map_property): New enum.
9898 (get_local_map): Extra arg using it.
9899 (Qkeymap): Declare.
9900
9901 * lisp.h (get_local_map): Don't declare here.
9902
9903 2000-05-29 Kenichi Handa <handa@etl.go.jp>
9904
9905 * Makefile.in (callproc.o): Depend on composite.h.
9906
9907 * callproc.c: Include composite.h.
9908 (Fcall_process): Handle composition correctly.
9909
9910 * coding.h (coding_allocate_composition_data): Extern it.
9911 (coding_restore_composition): Likewise.
9912
9913 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
9914 yet allocated, finish decoding with result
9915 CODING_FINISH_INSUFFICIENT_CMP.
9916 (coding_allocate_composition_data): Make it non-static.
9917 (coding_restore_composition): Likewise.
9918
9919 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
9920
9921 * charset.c (syms_of_charset): Revert last change.
9922
9923 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9924
9925 * term.c (produce_glyphs): Treat characters from the eight-bit-*
9926 charsets as unibyte, with 1-column screen width. Sent by Kenichi
9927 Handa.
9928
9929 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9930
9931 * charset.c (syms_of_charset): Set width of character sets
9932 eight-bit-control and eight-bit-graphic to 1 column.
9933
9934 2000-05-26 Gerd Moellmann <gerd@gnu.org>
9935
9936 * config.in (HAVE_SPEED_T): New define.
9937
9938 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
9939 `extern speed_t'.
9940
9941 2000-05-26 Dave Love <fx@gnu.org>
9942
9943 * coding.c (shrink_decoding_region): Initialize eol_conversion.
9944
9945 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
9946 (Fsubr_arity): New function.
9947 (syms_of_data): Install them.
9948
9949 2000-05-26 Kenichi Handa <handa@etl.go.jp>
9950
9951 * charset.c (init_charset_once): Set the table bytes_by_char_head
9952 correctly.
9953
9954 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
9955 the default fontset to what Emacs uses by default.
9956 (check_registry_encoding): This function deleted.
9957 (Fset_fontset_font): Remove the adhoc condition for the default
9958 fontset. Allow cons in FONTNAME.
9959
9960 * fns.c (map_char_table): Ignore char-table entries for
9961 charsets eight-bit-control and eight-bit-graphic.
9962
9963 2000-05-25 Ken Raeburn <raeburn@gnu.org>
9964
9965 * emacs.c (main): Initialize keyboard syms before initializing
9966 window code, so face names are available.
9967
9968 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
9969
9970 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
9971 of an anchor at the beginning of a shy-group.
9972
9973 2000-05-25 Gerd Moellmann <gerd@gnu.org>
9974
9975 * xdisp.c (handle_invisible_prop): Don't try to skip over
9976 invisible text if end of text is already reached.
9977
9978 2000-05-25 Dave Love <fx@gnu.org>
9979
9980 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
9981
9982 * coding.c (encode_eol): Add null statement after label.
9983
9984 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
9985
9986 * w16select.c (Fw16_set_clipboard_data): Fix the change from
9987 2000-05-20.
9988
9989 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9990
9991 * ccl.c (ccl_driver): Fix previous change.
9992
9993 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9994
9995 * coding.c (run_pre_post_conversion_on_str): Set point to the
9996 beginning of buffer before calling coding->post_read_conversion.
9997 (decode_coding_string): Give correct args to
9998 run_pre_post_conversion_on_str.
9999 (encode_coding_string): Likewise.
10000
10001 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
10002 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
10003 eight-bit-graphic correctly.
10004
10005 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
10006
10007 * fileio.c (Finsert_file_contents): Even if a file is not found,
10008 execute codes for setting up coding system. Call
10009 after-insert-file-functions unconditionally.
10010
10011 2000-05-24 Gerd Moellmann <gerd@gnu.org>
10012
10013 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
10014 BSD_PGRPS are not defined.
10015
10016 2000-05-24 Kenichi Handa <handa@etl.go.jp>
10017
10018 * charset.c (update_charset_table): Accept nil in LONG_NAME and
10019 DESCRIPTION.
10020 (syms_of_charset): Avoid building same strings.
10021
10022 2000-05-23 Gerd Moellmann <gerd@gnu.org>
10023
10024 * lread.c (Fload): Add a comment about the meaning of
10025 Vuser_init_file being t.
10026
10027 * puresize.h (BASE_PURESIZE): Increase to 675000.
10028
10029 * s/gnu-linux.h (setpgrp): Don't define it here because this
10030 prevents compilation on GNU/Linux systems with glib 2.2.
10031
10032 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
10033 as setpgid.
10034
10035 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
10036
10037 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
10038 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
10039 version.
10040 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
10041
10042 2000-05-23 Kenichi Handa <handa@etl.go.jp>
10043
10044 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10045
10046 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
10047
10048 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
10049
10050 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
10051
10052 2000-05-22 Kenichi Handa <handa@etl.go.jp>
10053
10054 * keyboard.c (read_char): Allow character codes 128..255 to be
10055 handled by input-method-function.
10056
10057 * insdel.c (adjust_markers_for_replace): Fix previous change.
10058 (adjust_after_replace): If PREV_TEXT is nil, call
10059 adjust_markers_for_insert, not adjust_markers_for_replace.
10060
10061 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
10062
10063 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
10064 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
10065 [HAVE_GRANDPT]: Define.
10066 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
10067
10068 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
10069 like SYSV_PTYS.
10070
10071 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
10072
10073 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
10074
10075 2000-05-20 Kenichi Handa <handa@etl.go.jp>
10076
10077 The following changes are to handle 8-bit characters in a
10078 multibyte buffer/string without facing with byte combining
10079 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
10080 eight-bit-graphic (for 0xA0..0xFF) are introduced.
10081
10082 * Makefile.in (fns.o): Depend on charset.h.
10083
10084 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
10085 convert it to unibyte.
10086 (make_string): Use parse_str_as_multibyte, not chars_in_text.
10087
10088 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
10089 apparent char boundary.
10090 (Fset_buffer_multibyte): Convert 8-bit characters in the range
10091 0x80..0x9F to/from multibyte form.
10092
10093 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
10094 to unibyte.
10095
10096 * callproc.c (Fcall_process): Always encode an argument string if
10097 it is multibyte. Setup src_multibyte and dst_multibyte members of
10098 process_coding properly.
10099
10100 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
10101 SPLIT_NON_ASCII_CHAR.
10102
10103 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
10104 as is.
10105 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
10106
10107 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
10108 (SPLIT_CHARACTER_SEQ): This macro deleted.
10109 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
10110 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
10111 and eight-bit-graphic.
10112 (char_to_string): Likewise. Signal an error for too large
10113 character code.
10114 (char_printable_p): Return 0 for 8-bit characters.
10115 (update_charset_table): Update iso_charset_table only when a final
10116 character is non-negative.
10117 (find_charset_in_text): Renamed from find_charset_in_str.
10118 Arguments and return value changed. Callers changed.
10119 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
10120 be -1 if CHARSET is used only internally.
10121 (Fmake_char_internal): Handle new charsets; eight-bit-control and
10122 eight-bit-graphic.
10123 (Fcharset_after): Simplified.
10124 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
10125 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
10126 (multibyte_chars_in_text): Simplified by assuming there's no
10127 invalid multibyte sequence.
10128 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10129 (str_as_unibyte): New functions.
10130 (Fstring): Simpified by assuming that byte combining never happens.
10131 (init_charset_once): Initialization for
10132 LEADING_CODE_8_BIT_CONTROL.
10133 (syms_of_charset): Intern and staticpro Qeight_bit_control and
10134 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
10135 eight-bit-control and eight-bit-graphic.
10136
10137 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
10138 (CHARSET_8_BIT_GRAPHIC): New macros.
10139 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
10140 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
10141 (CHARSET_REVERSE_CHARSET): Likewise.
10142 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
10143 eight-bit-graphic.
10144 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
10145 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
10146 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
10147 encounter an invalid multibyte sequence.
10148 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
10149 sequence is always valid.
10150 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
10151 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
10152 (CHAR_STRING): For 8-bit characters, call char_to_string.
10153 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
10154 multibyte sequence is always valid.
10155 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
10156 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10157 (str_as_unibyte): Extern them.
10158 (BCOPY_SHORT): Fix a bug.
10159 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
10160 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
10161 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
10162 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
10163
10164 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
10165 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
10166 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
10167 (EMIT_BYTES): New macros.
10168 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
10169 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
10170 macros deleted.
10171 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
10172 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
10173 check the validity of multibyte sequence.
10174 (decode_coding_emacs_mule): New function.
10175 (encode_coding_emacs_mule): New macro.
10176 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
10177 the source.
10178 (DECODE_ISO_CHARACTER): Just return a character code.
10179 (DECODE_COMPOSITION_START): Set coding->result instead of result.
10180 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
10181 EMIT_CHAR to produced decoded characters. Exit the loop only by
10182 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
10183 block here.
10184 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
10185 only position codes for an invalid character.
10186 (encode_designation_at_bol): Return new destination pointer. 5th
10187 arg DSTP is changed to DST.
10188 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
10189 from the source by ONE_MORE_CHAR. Don't handle the case of last
10190 block here.
10191 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
10192 macros deleted.
10193 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
10194 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
10195 TWO_MORE_BYTES to fetch a byte from the source.
10196 (encode_eol): Pay attention to coding->src_multibyte.
10197 (detect_coding, detect_eol): Preserve members src_multibyte and
10198 dst_multibyte.
10199 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
10200 (encoding_buffer_size): Set magnification to 3 for all coding
10201 systems that require encoding.
10202 (ccl_coding_driver): For decoding, be sure that the result is
10203 valid multibyte sequence.
10204 (decode_coding): Initialize coding->errors and coding->result.
10205 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
10206 and raw-text, always call decode_eol. Handle the case of last
10207 block here. If not coding->dst_multibyte, convert the resulting
10208 sequence to unibyte.
10209 (encode_coding): Initialize coding->errors and coding->result.
10210 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
10211 and raw-text, always call encode_eol. Handle the case of last
10212 block here.
10213 (shrink_decoding_region, shrink_encoding_region): Detect cases
10214 that we can't skip data more rigidly.
10215 (code_convert_region): Setup src_multibyte and dst_multibyte
10216 members of coding. For decoding, if the buffer is multibyte,
10217 convert the source sequence to unibyte in advance. For encoding,
10218 if the buffer is multibyte, convert the resulting sequence to
10219 multibyte afterward.
10220 (run_pre_post_conversion_on_str): New function.
10221 (code_convert_string): Deleted and divided into the following two.
10222 (decode_coding_string, encode_coding_string): New functions.
10223 (code_convert_string1, code_convert_string_norecord): Call one of
10224 above.
10225 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
10226 MAKE_NON_ASCII_CHAR.
10227 (Fset_terminal_coding_system_internal)
10228 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
10229 and dst_multibyte members.
10230 (init_coding_once): Initialize iso_code_class with new enum
10231 ISO_control_0 and ISO_control_1.
10232
10233 * coding.h (enum iso_code_class_type): Member ISO_control_code is
10234 devided into ISO_control_0 and ISO_control_1.
10235 (struct coding_system): New members src_multibyte, dst_multibyte,
10236 errors, and result. Delete member fake_multibyte.
10237 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
10238 nonzero.
10239 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
10240 nonzero.
10241
10242 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10243 (Faset): Likewise.
10244
10245 * editfns.c (Fformat): Be sure to convert 8-bit characters to
10246 multibyte form.
10247 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
10248 combining occurs.
10249 (Ftranspose_region): Delete codes for handling byte combining.
10250
10251 * fileio.c (Finsert_file_contents): Setup src_multibyte and
10252 dst_multibyte members of coding. On handling REPLACE on unibyte
10253 buffer, convert the result of decode_coding to unibyte. On
10254 inserting into a mutibyte buffer, always call code_convert_region.
10255 (e_write): Setup coding->src_multibyte according to the
10256 multibyteness of the source (buffer or string).
10257
10258 * fns.c (concat): Handle 8-bit characters correctly.
10259 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
10260 unibyte in the result.
10261 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
10262 valid multibyte form in the result.
10263 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10264 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
10265 return -1, signal an error.
10266 (base64_encode_1): New arg MULTIBYTE. Get each character by
10267 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
10268 character is found, return -1.
10269 (Fbase64_decode_region): Delete codes for handling byte-combining.
10270 Treat each decoded byte as a unibyte character.
10271 (Fbase64_decode_string): Return unibyte string.
10272 (Fcompare_strings, concat, string_byte_to_char): Use
10273 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
10274 FETCH_STRING_CHAR_ADVANCE.
10275 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10276 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
10277
10278 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
10279 SPLIT_NON_ASCII_CHAR.
10280 (fontset_ref_via_base, fontset_set): Likewise
10281
10282 * insdel.c (adjust_markers_for_record_delete): Deleted.
10283 (adjust_markers_for_insert): Argument changed. Caller changed.
10284 (adjust_markers_for_replace): Likewise.
10285 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
10286 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
10287 (copy_text): Delete unused local varialbe c_save. For converting
10288 to multibyte, be sure to make all 8-bit characters in valid
10289 multibyte form.
10290 (count_size_as_multibyte): Handle 8-bit characters correctly.
10291 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10292 (adjust_after_replace, replace_range, del_range_2)
10293 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
10294 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10295 (adjust_after_replace, replace_range, del_range_2) Delete codes for
10296 handling byte combining.
10297 (adjust_before_replace): Deleted.
10298
10299 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
10300 SPLIT_NON_ASCII_CHAR.
10301 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10302 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10303 (Fkey_description): Likewise.
10304
10305 * lread.c (read1): On reading multibyte string, be sure to make
10306 all 8-bit chararacters in valid multibyte form.
10307 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10308
10309 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
10310 unconditionally.
10311
10312 * process.c (Fstart_process): GCPRO current_dir before calling
10313 Ffind_operation_coding_system. Encode arguments here.
10314 (create_process): Don't encode arguments here. Setup
10315 src_multibyte and dst_multibyte members of struct coding.
10316 (read_process_output): Setup src_multibyte and dst_multibyte
10317 members of struct coding. If the output is to multibyte buffer,
10318 always decode the output of the process. Adjust the
10319 representation of 8-bit characters to the multibyteness of the output.
10320 (send_process): Setup coding->src_multibyte according to the
10321 multibyteness of the source.
10322
10323 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10324 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
10325 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
10326
10327 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
10328
10329 * w16select.c (Fw16_set_clipboard_data): Setup members
10330 src_multibyte and dst_multibyte of coding. Adjusted for the
10331 change for find_charset_in_str.
10332 (Fw16_get_clipboard_data): Likewise.
10333
10334 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
10335 dst_multibyte of coding.
10336 (x_to_w32_font): Likewise.
10337
10338 * w32select.c (Fw32_set_clipboard_data): Setup members
10339 src_multibyte and dst_multibyte of coding. Adjusted for the
10340 change for find_charset_in_str.
10341 (Fw32_get_clipboard_data): Likewise.
10342
10343 * xdisp.c (get_next_display_element): Handle 8-bit characters
10344 correctly.
10345 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
10346 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10347
10348 * xselect.c (selection_data_to_lisp_data): Setup members
10349 src_multibyte and dst_multibyte of coding. Adjusted for the
10350 change for find_charset_in_str.
10351 (lisp_data_to_selection_data): Likewise.
10352
10353 2000-05-19 Gerd Moellmann <gerd@gnu.org>
10354
10355 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
10356
10357 * dispextern.h (Vimage_types): Add extern declaration.
10358
10359 * xdisp.c (Vimage_types): Moved here from xfns.c.
10360 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
10361
10362 * xfns.c (Vimages_types): Moved to xdisp.c.
10363 (syms_of_xfns): Move `image-types' to xdisp.c.
10364
10365 * w32fns.c (Vimage_types): Removed.
10366 (syms_of_w32fns): Remove `image-types'.
10367
10368 2000-05-18 Kenichi Handa <handa@etl.go.jp>
10369
10370 * fns.c (map_char_table): Pay attention to character number of
10371 charset. Check the validity of charset at the first level. For
10372 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
10373 the default value.
10374
10375 * fontset.c: Include "buffer.h".
10376 (fs_load_font): If the face has fontset, record the face ID in
10377 that fontset.
10378 (Finternal_char_font): New function.
10379 (accumulate_font_info): New function.
10380 (Ffontset_info): Rewritten for the new fontset implementation.
10381 (syms_of_fontset): Register Vdefault_fontset in the first element
10382 of Vfontset_table. Include Vdefault_fontset in
10383 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
10384 function.
10385
10386 2000-05-16 Dave Love <fx@gnu.org>
10387
10388 * m/iris5d.h: Deleted -- unused.
10389
10390 2000-05-16 Gerd Moellmann <gerd@gnu.org>
10391
10392 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
10393 `invalid' instead of `illegal'.
10394
10395 * indent.c (Fmove_to_column): When ending within a tab, insert
10396 spaces first so that markers at the end of the tab get adjusted.
10397
10398 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
10399 buffer list that wasn't selected in that frame.
10400
10401 * filelock.c (get_boot_time): To obtain an 8 char file name, which
10402 is needed on mescaline, use a 2 char prefix, and call
10403 make_temp_name with second arg non-zero.
10404
10405 * fileio.c (make_temp_name): New function, extracted from
10406 Fmake_temp_name.
10407 (Fmake_temp_name): Use it.
10408
10409 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
10410
10411 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
10412
10413 2000-05-15 Gerd Moellmann <gerd@gnu.org>
10414
10415 * Makefile.in (lisp): Add env.elc.
10416
10417 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
10418
10419 2000-05-12 Gerd Moellmann <gerd@gnu.org>
10420
10421 * search.c (Freplace_match): Handle case of `\N' in the
10422 replacement when there's no group N.
10423
10424 2000-05-11 Gerd Moellmann <gerd@gnu.org>
10425
10426 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
10427 of the message to message_dolog.
10428
10429 * keyboard.c (read_char): Don't clear current message for help
10430 events; let the code handling help events handle this. Change
10431 code detecting help events that should be ignored.
10432
10433 * xdisp.c (handle_single_display_prop): Don't try to set PT if
10434 we're interating over a string.
10435
10436 2000-05-09 Dave Love <fx@gnu.org>
10437
10438 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
10439 that offset before writing. Move gcpro region past call of
10440 Ffile_regular_p.
10441
10442 2000-05-04 Dave Love <fx@gnu.org>
10443
10444 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
10445
10446 2000-05-04 Gerd Moellmann <gerd@gnu.org>
10447
10448 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
10449 of inserted characters when BUF equals the current buffer, and PT
10450 is in front of or equal to FROM.
10451
10452 2000-05-03 Gerd Moellmann <gerd@gnu.org>
10453
10454 * xdisp.c (handle_single_display_prop): If display property value
10455 is invalid, or something not supported on the frame, restore
10456 iterator's position to what it was initially. Make sure to return
10457 0 for invalid and unsupported property values.
10458
10459 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
10460 that x_per_char_metric returns null.
10461
10462 2000-05-02 Gerd Moellmann <gerd@gnu.org>
10463
10464 * xterm.h (struct face): Add forward declaration.
10465 (struct image): Ditto.
10466 (image_ascent): Add prototype.
10467
10468 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
10469 (x_draw_image_relief, x_draw_image_foreground_1): Call function
10470 image_ascent instead of using IMAGE_ASCENT.
10471
10472 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
10473 (IMAGE_ASCENT): Removed.
10474
10475 * xfns.c (Qcenter): New variable.
10476 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
10477 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
10478 (image_ascent): New function.
10479 (lookup_image): Recognize `:ascent center'.
10480 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
10481 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
10482 (xbm_load): Don't set image's ascent here.
10483 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
10484 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
10485 check ascent values here.
10486 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
10487 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
10488 (syms_of_xfns): Initialize Qcenter.
10489
10490 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
10491 to the limits, increase the limits.
10492
10493 2000-05-01 Kenichi Handa <handa@etl.go.jp>
10494
10495 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
10496 Check Vfont_encoding_alist against the full name of the opened font.
10497
10498 2000-04-28 Gerd Moellmann <gerd@gnu.org>
10499
10500 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
10501 taller than the window.
10502
10503 2000-04-28 Kenichi Handa <handa@etl.go.jp>
10504
10505 * xfaces.c (realize_x_face): Fix the argument of the second
10506 xassert. BASE_FACE may not be a face for ASCII.
10507
10508 2000-04-27 Gerd Moellmann <gerd@gnu.org>
10509
10510 * print.c (print_object): Treat print-length < 0 as nil.
10511
10512 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
10513
10514 * s/freebsd.h (TERMCAP_OBJ): Removed.
10515 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
10516
10517 * lread.c (read1): Don't treat period followed by certain
10518 characters as symbol start.
10519
10520 * xfns.c (slurp_file): New function.
10521 (xbm_image_p): Handle case of in-memory XBM files.
10522 (xbm_scan): Rewritten to work on memory buffers instead of files.
10523 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
10524 Work on memory buffers instead of files. If DATA is null test
10525 if buffer looks like an in-memory XBM file.
10526 (xbm_load_image): Renamed from xbm_load_image_file. Work on
10527 memory buffers instead of files.
10528 (xbm_file_p): New function.
10529 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
10530
10531 * lread.c (end_of_file_error): New function.
10532 (read1): Call it instead of signaling `end-of-file' directly.
10533
10534 * print.c (print_error_message): Print data of `end-of-file'
10535 with Fprinc instead of Fprin1.
10536
10537 2000-04-26 Ken Raeburn <raeburn@gnu.org>
10538
10539 * window.c (freeze_window_start): Check that minibuffer scroll
10540 window isn't nil before extracting the window structure pointer
10541 from it.
10542
10543 * undo.c (record_delete): If we hit the end of the undo list, stop
10544 picking elements apart.
10545
10546 2000-04-26 Gerd Moellmann <gerd@gnu.org>
10547
10548 * xdisp.c (display_line): If lines are continued, restore
10549 iterator's ascent/descent information to the values before the
10550 first glyph not fitting on the line.
10551
10552 2000-04-25 Gerd Moellmann <gerd@gnu.org>
10553
10554 * xdisp.c (try_window_id) <all changes above window start>: Adjust
10555 positions in glyph matrix. Don't compute new window end positions.
10556
10557 * dispnew.c (increment_matrix_positions): Renamed from
10558 increment_glyph_matrix_buffer_positions.
10559 (increment_row_positions): Renamed from
10560 increment_glyph_row_buffer_positions.
10561
10562 * dispextern.h: Change names of renamed functions from dispnew.c
10563 in prototypes.
10564
10565 2000-04-24 Gerd Moellmann <gerd@gnu.org>
10566
10567 * fileio.c (Fdo_auto_save): Create directories for auto-save
10568 list file if necessary.
10569
10570 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
10571 from buffer or frame.
10572 (automatic_hscrolling_p): New variable.
10573 (hscroll_windows): Scroll windows horizontally only if automatic
10574 hscrolling is allowed.
10575 (syms_of_xdisp): New variable `automatic-hscrolling'.
10576
10577 * frame.h (struct frame): Add member extra_line_spacing.
10578
10579 * xfns.c (x_set_line_spacing): New function.
10580 (Fx_create_frame): Set line spacing from resources.
10581 (Qline_spacing): New variable.
10582 (syms_of_xfns): Initialize Qline_spacing.
10583
10584 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
10585
10586 * buffer.c (init_buffer_once): Handle extra_line_spacing.
10587 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
10588 (reset_buffer): Don't initialize extra2 and extra3. Initialize
10589 extra_line_spacing from default value.
10590 (init_buffer_once): Initialize default value of extra_line_spacing.
10591
10592 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
10593 and extra3.
10594
10595 * xterm.c (x_produce_glyphs): Remove reference to struct it's
10596 prompt_width. Add extra line spacing.
10597
10598 * term.c (produce_glyphs): Remove reference to struct it's
10599 prompt_width.
10600
10601 * dispextern.h (struct it): Remove member prompt_width, add
10602 extra_line_spacing.
10603
10604 2000-04-22 Gerd Moellmann <gerd@gnu.org>
10605
10606 * dispnew.c (update_frame_line): When writing a whole line, make
10607 sure cursor is in the right row afterwards, otherwise a use of
10608 capability `ch' in cmgoto might leave the cursor in the row below.
10609
10610 2000-04-21 Gerd Moellmann <gerd@gnu.org>
10611
10612 * lisp.h (struct Lisp_Buffer_Cons): Remove.
10613
10614 * keyboard.c (timer_check): Fix typo in comment.
10615
10616 2000-04-21 Kenichi Handa <handa@etl.go.jp>
10617
10618 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
10619 name change: ch -> character.
10620
10621 2000-04-20 Gerd Moellmann <gerd@gnu.org>
10622
10623 * keyboard.c (echo_message_buffer): New variable.
10624 (echo_now): Set echo_message_buffer to the echo area buffer used
10625 to display the echo.
10626 (cancel_echoing): Reset echo_message_buffer to nil.
10627 (read_char): Code rewritten that handles canceling an echo or
10628 echoing a dash, respectively.
10629
10630 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
10631 directory doesn't exist.
10632
10633 2000-04-19 Dave Love <fx@gnu.org>
10634
10635 * fns.c (syms_of_fns): Defsubr mapc.
10636 (concat): Don't allow numeric args.
10637 (Fconcat): Doc change.
10638
10639 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
10640
10641 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
10642 instead define end_match(1|2) more carefully.
10643 Use GET_CHAR_BEFORE_2 for `begline'.
10644
10645 2000-04-19 Gerd Moellmann <gerd@gnu.org>
10646
10647 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
10648 on 64-bit systems where NULL is defined as `0'.
10649
10650 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
10651 the `variable argument list' to make it work on Alpha.
10652
10653 * m/alpha.h (_LP64) [!_LP64]: Define.
10654 (ORDINARY_LINK): Define for NetBSD.
10655
10656 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
10657
10658 2000-04-19 Dave Love <fx@gnu.org>
10659
10660 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
10661 change.
10662
10663 * Makefile.in (LIBS): Don't use.
10664 (GETLOADAVG_OBJ): Define again.
10665 (otherobj): Add GETLOADAVG_OBJ.
10666
10667 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
10668
10669 2000-04-18 Gerd Moellmann <gerd@gnu.org>
10670
10671 * lread.c (read_filtered_event): Cancel and start busy cursor.
10672
10673 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
10674 that the per-character metrics may be null.
10675
10676 2000-04-17 Gerd Moellmann <gerd@gnu.org>
10677
10678 * buffer.c (clone_per_buffer_values): New function.
10679 (Fmake_indirect_buffer): Add optional argument CLONE. Call
10680 clone_per_buffer_values if CLONE is not nil.
10681
10682 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
10683
10684 2000-04-16 Dave Love <fx@gnu.org>
10685
10686 * Makefile.in: Remove obsolete localcpp stuff.
10687 (GETLOADAVG_OBJ): Don't define.
10688 (obj): Move LIBOBJS...
10689 (otherobj): ... to here.
10690 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
10691 whitespace-only lines after the continuation (Irix).
10692
10693 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10694
10695 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
10696
10697 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
10698
10699 2000-04-14 Dave Love <fx@gnu.org>
10700
10701 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
10702 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
10703 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
10704 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
10705 NLIST_STRUCT.
10706
10707 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
10708 autoconfiscated HAVE_GETLOADAVG.
10709
10710 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
10711 BROKEN_MKTIME.
10712
10713 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10714
10715 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
10716 (fill_in_lock_file_name): Avoid existing files that aren't links.
10717
10718 2000-04-14 Dave Love <fx@gnu.org>
10719
10720 * Makefile.in (LIBS, LIBOBJS): New variable.
10721 (INTERVAL_SRC): Convert to make variable.
10722 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
10723 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
10724 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
10725 add LIBOBJS.
10726 (SOME_MACHINE_OBJECTS): Remove interval stuff.
10727 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
10728 (shortlisp): Add facemenu, float-sup, frame.
10729 (SOME_MACHINE_LISP): Remove them from here.
10730 (LIBES): Change unused LDLIBS to autoconf LIBS.
10731
10732 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
10733
10734 2000-04-14 Kenichi Handa <handa@etl.go.jp>
10735
10736 * composite.c (update_compositions): If FROM and TO are not in a
10737 valid range, do nothing.
10738
10739 2000-04-13 Gerd Moellmann <gerd@gnu.org>
10740
10741 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
10742
10743 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
10744
10745 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
10746 as TERMCAP_OBJ.
10747
10748 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
10749
10750 * fileio.c (a_write): Remove redundant semi-colons.
10751 (e_write): Return -1 if failed to write all the data.
10752 This fixes the changes made at 1999-12-15.
10753
10754 2000-04-12 Dave Love <fx@gnu.org>
10755
10756 * fns.c (mapcar1): Test for null vals to support mapc.
10757 (Fmapc): New function.
10758
10759 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
10760
10761 * msdos.c (NUM_MOUSE_BUTTONS): Define.
10762 (IT_frame_up_to_date): Support the buffer local value of
10763 cursor-type, if defined.
10764
10765 2000-04-10 Dave Love <fx@gnu.org>
10766
10767 * editfns.c (preceding-char, following-char): Doc fix.
10768
10769 2000-04-10 Ken Raeburn <raeburn@gnu.org>
10770
10771 * Makefile.in (temacs): Revert 2000-03-12 change.
10772
10773 2000-04-10 Jason Rumney <jasonr@gnu.org>
10774
10775 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
10776
10777 2000-04-10 Gerd Moellmann <gerd@gnu.org>
10778
10779 * xdisp.c (setup_echo_area_for_printing): Choose an echo
10780 area buffer, if it's not set up yet.
10781
10782 * indent.c (compute_motion): Set immediate_quit.
10783
10784 2000-04-09 Gerd Moellmann <gerd@gnu.org>
10785
10786 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
10787 (realize_tty_face): Suppress boldness if colors are the inverse of
10788 the default colors, and tty_suppress_bold_inverse_default_colors_p
10789 is set.
10790 (Ftty_suppress_bold_inverse_default_colors): New function.
10791 (syms_of_xfaces): Defsubr it.
10792
10793 * buffer.c (Frestore_buffer_modified_p): New function.
10794 (syms_of_buffer): Defsubr it.
10795
10796 2000-04-08 Ken Raeburn <raeburn@gnu.org>
10797
10798 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
10799 charset id (int) argument, not a charset (Lisp_Object).
10800
10801 * coding.h (code_convert_string): Declare.
10802 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
10803 object, as the fourth argument to code_convert_string.
10804
10805 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
10806 (Fset_fontset_font): Use EQ to compare lisp objects.
10807
10808 2000-04-05 Ken Raeburn <raeburn@gnu.org>
10809
10810 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
10811 a pointer that looks like a lisp object.
10812 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
10813 zero, instead see whether it's an integer object, since they can't
10814 have intervals.
10815 (GET_INTERVAL_OBJECT): Simply assign to the destination.
10816
10817 * dispnew.c (allocate_matrices_for_frame_redisplay)
10818 (direct_output_forward_char): Use X(U)INT and make_number as needed
10819 to convert between (unsigned) int values and lisp integers.
10820 * keyboard.c (read_key_sequence): Likewise.
10821 * lread.c (substitute_object_recurse): Likewise.
10822 * fns.c (concat, hash_lookup, hash_remove): Likewise.
10823 * minibuf.c (do_completion, Fminibuffer_complete_word)
10824 (Fminibuffer_completion_help): Likewise.
10825 * term.c (produce_special_glyphs): Likewise.
10826
10827 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
10828 * print.c (print_preprocess, print_object): Likewise.
10829
10830 * search.c (compile_pattern): Use NILP when checking for nil.
10831
10832 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
10833 __OPTIMIZE__]: Provide a GNU C macro version that handles
10834 lisp-object unions.
10835 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
10836 field, to better cope with ENABLE_CHECKING and calls that modify a
10837 Lisp_Object using its old value.
10838
10839 2000-04-04 Gerd Moellmann <gerd@gnu.org>
10840
10841 * window.c (compare_window_configurations): Signal an error
10842 if parameters C1 or C2 aren't window configurations.
10843
10844 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
10845 AFTER_POTENTIAL_GC calls around calls to functions that can
10846 signal an error and thus invoke the debugger.
10847
10848 2000-04-03 Gerd Moellmann <gerd@gnu.org>
10849
10850 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
10851 an error if decoding fails.
10852
10853 * keyboard.c (lispy_mouse_names): Variable removed.
10854 (Vlispy_mouse_stem): New variable.
10855 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
10856 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
10857 for any mouse button number. Increase size of mouse_syms and
10858 button_down_location as needed. Call modify_event_symbol with
10859 different arguments.
10860 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
10861 Call modify_event_symbol with different arguments.
10862 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
10863 for any button number. Call modify_event_symbol with different
10864 arguments.
10865 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
10866 Accept a string for NAME_ALIST_OR_STEM.
10867
10868 * lisp.h (larger_vector): Add prototype.
10869
10870 * fns.c (larger_vector): Make externally visible.
10871
10872 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
10873
10874 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
10875
10876 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
10877 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
10878 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
10879 we are between str1 and str2.
10880 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
10881 (PATFETCH): Use `TRANSLATE'.
10882 (PATFETCH_RAW): Fetch multibyte char if applicable.
10883 (PATUNFETCH): Remove.
10884 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
10885 When writing a char, write it directly into the pattern buffer rather
10886 than going needlessly through a temp char-array.
10887 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
10888 multibyte magic and remove the useless `#ifdef emacs'.
10889 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
10890 buffer.
10891
10892 * regex.h (struct re_pattern_buffer): Make field `multibyte'
10893 conditional on `emacs'.
10894
10895 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
10896
10897 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10898
10899 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
10900 non-union-type versions of XMARK and friends here, because XMARK
10901 and friends won't work on an integer field if NO_UNION_TYPE is not
10902 defined.
10903 (make_number): Define as a function if it's not defined as a macro.
10904
10905 * composite.c (run_composite_function): Use NILP when checking for nil.
10906 (syms_of_composite): Delete local var NARGS, pass an int as first
10907 argument to Fmake_hash_table.
10908
10909 * editfns.c (text_property_stickiness): Use NILP to test
10910 Lisp_Object boolean value.
10911 (Fmessage_or_box): Don't use NILP to test int variable.
10912 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
10913 problems reading from and changing the same lisp value in an
10914 XSETSTRING call.
10915
10916 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10917
10918 * term.c (TN_no_color_video): New variable.
10919 (term_init): Intitialize TN_no_color_video.
10920 (enum no_color_bit): New enumeration.
10921 (MAY_USE_WITH_COLORS_P): New macro.
10922 (turn_on_face): Use it to determine if attributes may be used
10923 combined with colors.
10924
10925 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10926
10927 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
10928 with int lvalues via casts; instead, just yield lisp object lvalues.
10929 (enlarge_window): Variable sizep now points to Lisp_Object. Use
10930 proper accessor macros.
10931 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
10932 (grow_mini_window): Fix typo getting int value of root->height.
10933
10934 * xdisp.c (compute_string_pos): Fix order of arguments to
10935 string_pos_nchars_ahead.
10936 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
10937 count arg to variable-arg routines like Frun_hook_with_args and
10938 Fformat.
10939 (back_to_previous_visible_line_start)
10940 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
10941 fixed-arg routines like Fget_char_property and Fmake_string.
10942 (reconsider_clip_changes): Use XINT when comparing integer lisp
10943 objects, or passing them as int arguments.
10944 (mark_window_display_accurate, insert_left_trunc_glyphs)
10945 (append_space, extend_face_to_end_of_line): Use make_number when
10946 storing or passing integer values as lisp objects.
10947 (set_cursor_from_row, highlight_trailing_whitespace): Use
10948 INTEGERP, not implicit test against zero, for glyph object.
10949 (try_window_id): Don't use make_number when we want an int value.
10950
10951 * xfaces.c (xlfd_symbolic_value): Make last argument a
10952 Lisp_Object, to be consistent with callers.
10953 (Fbitmap_spec_p): Use XINT to get numeric value of height.
10954 (lface_hash): Apply XFASTINT to lisp values before folding in.
10955
10956 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
10957 fill in window width and height. Pass an int, not a lisp object,
10958 as first arg to Finsert.
10959
10960 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10961
10962 * xfaces.c (realize_basic_faces): Block input while realizing
10963 the faces.
10964
10965 * keyboard.c (lispy_mouse_names): Add additional mouse names.
10966
10967 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
10968
10969 2000-03-31 Gerd Moellmann <gerd@gnu.org>
10970
10971 * xterm.c (x_produce_glyphs): When displaying unibyte text
10972 or ASCII, handle case that per-char metric is null.
10973
10974 2000-03-30 Ken Raeburn <raeburn@gnu.org>
10975
10976 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
10977
10978 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
10979 (XSUBR, XBUFFER): Verify correct object type before returning
10980 pointer, using eassert.
10981 * frame.h (XFRAME): Likewise.
10982
10983 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
10984 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
10985 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
10986 * data.c (set_internal): Likewise.
10987 * dispextern.h (WINDOW_WANTS_MODELINE_P)
10988 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
10989 * fileio.c (auto_save_1): Likewise.
10990 * insdel.c (check_markers): Likewise.
10991 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
10992 * undo.c (record_insert): Likewise.
10993 * vmsproc.c (child_sig): Likewise.
10994 * window.c (unshow_buffer, window_loop): Likewise.
10995 * xterm.c (x_erase_phys_cursor): Likewise.
10996
10997 2000-03-30 Gerd Moellmann <gerd@gnu.org>
10998
10999 * xfns.c (free_image_cache): Free the cache structure itself
11000 last, after all its members have been freed.
11001
11002 * lisp.h (xstrdup): Add prototype.
11003
11004 * alloc.c (xstrdup): Moved here from xfaces.c.
11005 (allocating_for_lisp): Variable removed.
11006 (lisp_malloc): Block input around the calls to malloc and mem_insert.
11007
11008 * xfaces.c (realize_tty_face): Use find_symbol_value instead
11009 of Fsymbol_value.
11010 (xstrdup): Moved to alloc.c.
11011
11012 2000-03-29 Ken Raeburn <raeburn@gnu.org>
11013
11014 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
11015
11016 * emacs.c (main): Fix sense of no-loadup test.
11017
11018 * config.in (ENABLE_CHECKING): Undef.
11019
11020 * lisp.h (struct interval): Replace "parent" field with a union of
11021 interval pointer and Lisp_Object; add new bitfield to use as
11022 discriminant. Change other flag fields to bitfields.
11023 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
11024 is defined and the supplied test fails, print a message and abort.
11025 (eassert): New macro. Use CHECK to provide an assert-like facility.
11026
11027 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
11028 pointers; abort if the value looks like a lisp object.
11029 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
11030 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
11031 Modify for new interval parent definition.
11032
11033 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
11034 (UNMARK_BALANCE_INTERVALS): Update references that need an
11035 addressable lisp object in the interval structure.
11036 (die): New function.
11037 (suppress_checking): New variable.
11038
11039 * intervals.c (interval_start_pos): Just return 0 if there's no
11040 parent object.
11041
11042 2000-03-29 Gerd Moellmann <gerd@gnu.org>
11043
11044 * lread.c (read1): Accept `.' (period) as symbol start like in CL
11045 and earlier Emacs versions.
11046
11047 * keyboard.c (Ftop_level): Cancel busy-cursor.
11048
11049 * eval.c (call_debugger): Cancel busy-cursor.
11050
11051 2000-03-29 Kenichi Handa <handa@etl.go.jp>
11052
11053 * search.c (Freplace_match): Adjust multibyteness of the current
11054 buffer and NEWTEXT. Free allocated memory before signaling an error.
11055
11056 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
11057
11058 * regex.c (analyse_first): New function obtained by ripping out most
11059 of re_compile_fastmap and generalizing it a little bit so that it
11060 can also just return whether a given (sub)pattern can match the empty
11061 string or not.
11062 (regex_compile): Use `analyse_first' to decide whether the loop-check
11063 needs to be done or not for *, +, *? and +? (the loop check is costly
11064 for non-greedy repetition).
11065 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
11066
11067 2000-03-28 Dave Love <fx@gnu.org>
11068
11069 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
11070
11071 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
11072
11073 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
11074
11075 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
11076 an expression.
11077 (enum re_opcode_t): Update description of succeed_n.
11078 (PATFETCH): Always define.
11079 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
11080 operators, char classes, shy-groups and intervals).
11081 Optimize special cases of intervals so as to only use succeed_n and
11082 jump_n when really needed.
11083 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
11084 that we don't have to handle the special cases any more.
11085 Simplify on_failure_jump handling as well.
11086
11087 2000-03-28 Jason Rumney <jasonr@gnu.org>
11088
11089 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
11090
11091 2000-03-27 Gerd Moellmann <gerd@gnu.org>
11092
11093 * s/freebsd.h (GC_SETJMP_WORKS): Define.
11094
11095 * s/msdos.h (GC_SETJMP_WORKS): Define.
11096
11097 * alloc.c (mark_maybe_object): New function.
11098 (mark_memory): Use it.
11099 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
11100 (setjmp_tested_p, longjmp_done): New variables.
11101 (test_setjmp): New function.
11102 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
11103 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
11104
11105 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
11106 to DEC_TEXT_POS and INC_TEXT_POS.
11107
11108 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
11109 with parameter MULTIBYTE_P.
11110
11111 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
11112
11113 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
11114 buffers because it looks for multibyte character byte sequences
11115 which don't exist in unibyte text.
11116
11117 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
11118
11119 * xfaces.c (register_color, unregister_color, unregister_colors)
11120 [DEBUG_X_COLORS]: New functions.
11121 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
11122
11123 * xfns.c (x_set_cursor_color): Get color reference counts right.
11124
11125 * xterm.c (x_copy_color): New function.
11126 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
11127
11128 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
11129 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
11130 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
11131 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
11132 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
11133 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
11134 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
11135 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
11136 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
11137 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
11138
11139 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
11140 names for handling per-buffer variables.
11141
11142 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
11143 instead of MAX_BUFFER_LOCAL_VARS.
11144 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
11145
11146 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
11147
11148 * xfns.c (x_specified_cursor_type): New function.
11149 (x_set_cursor_type): Use it.
11150
11151 * buffer.h (struct buffer): Add cursor_type.
11152
11153 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
11154
11155 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
11156 (print_partial_compiled_pattern, re_compile_fastmap):
11157 Handle new opcode.
11158 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
11159 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
11160 executing it as well as when popping it off the stack to find infinite
11161 loops in non-greedy repetition operators.
11162
11163 2000-03-26 Gerd Moellmann <gerd@gnu.org>
11164
11165 * doc.c (Qfunction_documentation): New variable.
11166 (syms_of_doc): Initialize Qfunction_documentation.
11167 (Fdocumentation): If FUNCTION is a symbol with non-nil
11168 `function-documentation' property, return a documentation derived
11169 from that.
11170
11171 * buffer.c (syms_of_buffer): Add default-cursor-type.
11172 (init_buffer_once): Don't let cursor_type have a local value
11173 in every buffer.
11174
11175 * xterm.c (x_display_and_set_cursor): Choose cursor depending
11176 on buffer-local value of cursor_type.
11177 (x_draw_bar_cursor): Add parameter WIDTH.
11178
11179 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
11180 (init_buffer_once): Set default cursor_type value to t.
11181 Mark cursor_type as local everywhere.
11182 (syms_of_buffer): New per-buffer variable cursor-type.
11183
11184 * buffer.h (struct buffer): Remove member local_var_flags,
11185 add local_flags.
11186 (MAX_BUFFER_LOCAL_VARS): New macro.
11187 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
11188 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
11189 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
11190 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
11191
11192 * print.c (print_object): Use new macros for per-buffer variables.
11193
11194 * category.c (Fset_category_table): Use new macros for per-buffer
11195 variables.
11196
11197 * buffer.c (buffer_permanent_local_flags): Make a char array.
11198 (max_buffer_local_idx): New variable.
11199 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
11200 for new handling of per-buffer variables.
11201 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
11202 (init_buffer_once): Initialize per-buffer vars differently.
11203 Set max_buffer_local_idx.
11204
11205 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
11206 variables.
11207
11208 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
11209
11210 * data.c (do_symval_forwarding, store_symval_forwarding)
11211 (find_symbol_value, set_internal, default_value, Fset_default)
11212 (Fkill_local_variable, Flocal_variable_p): Use new macros for
11213 per-buffer variables.
11214
11215 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
11216
11217 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11218
11219 * xterm.c (x_term_init): Unblock input around call1 of
11220 Qvendor_specific_keysyms.
11221
11222 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
11223 (find_defun_start): Consider an open parenthesis in column 0
11224 a defun start only if open_paren_in_column_0_is_defun_start is set.
11225 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
11226
11227 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
11228
11229 * eval.c (Fautoload): Add entry in load-history (if after dump).
11230 * lread.c (load-history): Update docstring.
11231
11232 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11233
11234 * indent.c (Fvertical_motion): Always use the current buffer.
11235 Temporarily change the window's buffer, if necessary.
11236
11237 2000-03-23 Gerd Moellmann <gerd@gnu.org>
11238
11239 * xterm.c (fast_find_position): Make sure not to consider rows
11240 not visible in the window.
11241
11242 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
11243
11244 * regex.c (enum syntaxcode): Provide default for non-Emacs.
11245 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
11246
11247 2000-03-22 Jason Rumney <jasonr@gnu.org>
11248
11249 * w32menu.c (single_submenu): Set help string to NULL if none.
11250 (w32_menu_show): Set help string correctly.
11251 (add-menu-item): Set help string in MIIM_DATA for menu item.
11252 Load SetMenuItemInfoA explicitly.
11253 (w32_menu_display_help): New function.
11254
11255 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
11256 (QCdata): Moved to xdisp.c.
11257
11258 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
11259 (Vw32_charset_to_codepage_alist): Removed.
11260 (Vw32_charset_info_alist): New variable.
11261 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
11262 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
11263 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
11264 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
11265 with TODO comment.
11266 (w32_codepage_for_font): Use Vw32_charset_info_alist.
11267 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
11268 Define Vw32_charset_info_alist and w32_charset symbols.
11269
11270 2000-03-22 Jason Rumney <jasonr@gnu.org>
11271
11272 * makefile.nt (w32bdf.obj): Update dependencies.
11273
11274 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
11275
11276 * w32fns.c: Include fontset.h after dispextern.h.
11277 (Fx_create_frame): Do not create fontset.
11278 (w32_load_system_font): Doc fix.
11279 (Fx_close_connection): Free full_name if it is not shared.
11280
11281 * w32term.c: Include fontset.h after dispextern.h.
11282 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
11283 Callers updated.
11284 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
11285 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
11286 (w32_font_is_double_byte): New function, needs body.
11287 (x_append_glyph): Set glyph->glyph_not_available_p.
11288 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11289 it->charset. If it->multibyte_p is zero and it->c is a multibyte
11290 character, convert it to a unibyte character.
11291 (struct glyph_string): Delete member `charset'.
11292 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
11293 calculating it is found.
11294 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11295 the case that per char metric is not available correctly.
11296 (x_fill_glyph_string): Handle the case that the specific glyph is
11297 not available correctly.
11298 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11299 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11300 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11301 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11302 fontset. Don't call FS_LOAD_FONT.
11303
11304 2000-03-22 Ken Raeburn <raeburn@gnu.org>
11305
11306 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
11307 (INT_LISPLIKE): New macro.
11308 (NULL_INTERVAL_P): Use it.
11309 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
11310 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
11311 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
11312
11313 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
11314 explicit references to "parent" field of struct interval and
11315 associated unclean type conversions.
11316 * intervals.c (create_root_interval, root_interval, rotate_right)
11317 (rotate_left, balance_possible_root_interval, split_interval_right)
11318 (split_interval_left, interval_start_pos, find_interval)
11319 (next_interval, previous_interval, update_interval)
11320 (adjust_intervals_for_insertion, delete_node, delete_interval)
11321 (adjust_intervals_for_deletion, merge_interval_right)
11322 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
11323 (copy_intervals_to_string): Likewise.
11324 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
11325 Likewise.
11326 * syntax.c (update_syntax_table): Likewise.
11327
11328 * intervals.c (reproduce_tree_obj): New function, like
11329 reproduce_tree but takes a Lisp_Object for the parent. Declare
11330 with prototype.
11331 (graft_intervals_into_buffer): Use it when appropriate.
11332 (reproduce_tree): Declare with prototype.
11333 (balance_possible_root_interval): Check that the parent is a lisp
11334 object before trying to examine its type.
11335
11336 2000-03-22 Gerd Moellmann <gerd@gnu.org>
11337
11338 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
11339 as strings only if both are known to be strings.
11340
11341 * s/openbsd.h (LIBS_TERMCAP): Undef.
11342
11343 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
11344
11345 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
11346 definitions for non-Emacs compilation.
11347 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
11348 outside of `#ifdef emacs'.
11349 (print_partial_compiled_pattern): Update.
11350 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
11351 (re_compile_fastmap): Merge handling of charset and charset_not (for
11352 emacs and non-emacs compilation as well).
11353 Similarly for (not)categoryspec and (not)syntaxspec.
11354 Don't use the fastmap when reaching `anychar' since the added
11355 complexity is not justified.
11356 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
11357 and (not)syntaxspec. Merge (not)categoryspec.
11358
11359 2000-03-22 Kenichi Handa <handa@etl.go.jp>
11360
11361 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
11362 (FACE_FOR_CHAR): Define them differently for the configuration of
11363 --without-x.
11364
11365 2000-03-21 Dave Love <fx@gnu.org>
11366
11367 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
11368 doc string.
11369
11370 2000-03-21 Gerd Moellmann <gerd@gnu.org>
11371
11372 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
11373 (lface_fully_specified_p): Don't check contents of
11374 LFACE_FONT_INDEX because that attribute is optional.
11375 (realize_x_face): Remove now unwarranted xassert.
11376
11377 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
11378
11379 The following changes are to make font selection based on
11380 characters, not charset. In addition, they recover fontset
11381 facilities while utilizing the new font selection mechanism.
11382
11383 * Makefile.in (fontset.o): Depend on dispextern.h.
11384
11385 * alloc.c (mark_face_cache): Don't mark face->registry.
11386
11387 * dispextern.h (struct glyph): New member glyph_not_available_p.
11388 Use 22 bits for face_id.
11389 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
11390 (struct face): Delete member registry, new member ascii_face.
11391 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
11392 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
11393 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
11394 (struct it): Delete member charset, new member glyph_not_available_p.
11395
11396 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
11397 (struct fontset_info, struct fontset_data): Structs removed.
11398 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
11399 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
11400 (fs_load_font, fs_query_fontset): Adjusted for new argument.
11401 (fs_free_face_fontset, fontset_font_pattern)
11402 (face_suitable_for_char_p, face_for_char)
11403 (make_fontset_for_ascii_face): Extern them.
11404 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
11405 (FS_LOAD_FACE_FONT): New macro.
11406
11407 * fontset.c: All codes rewritten or adjusted for the change of
11408 fontset implementation. Now fontset is represented by char table.
11409 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
11410 Variables removed.
11411 (my_strcasecmp): Function removed.
11412 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
11413 (AREF, ASIZE): New macros.
11414 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
11415 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
11416 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
11417 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
11418 (fontset_id_valid_p, font_family_registry, fontset_name)
11419 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
11420 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
11421 New functions.
11422 (fs_load_font): New arg FACE. Caller changed.
11423 (fs_query_fontset): Argument changed. Caller changed.
11424 (Fquery_fontset): call fs_query_fontset.
11425 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
11426 Functions removed.
11427 (clear_fontset_elements, check_registry_encoding)
11428 (check_fontset_name): New functions.
11429 (syms_of_fontset): Set char-table-extra-slots property of fontset
11430 to 3. Staticpro and initialize Vfontset_table and
11431 Vdefault_fontset. Defsubr fontset_font and fontset_list.
11432
11433 * frame.h (struct frame): Member `fontset_data' removed.
11434 (FRAME_FONTSET_DATA): Macro removed.
11435
11436 * frame.c (make_frame): Don't allocate f->fontset_data.
11437 (Fdelete_frame): Don't free f->fontset_data.
11438
11439 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
11440
11441 * xdisp.c (charset_at_position): Function removed.
11442 (init_iterator): Don't set member charset of struct `it'.
11443 (handle_face_prop, reseat_to_string, set_iterator_to_next)
11444 (next_element_from_display_vector, insert_left_trunc_glyphs):
11445 Likewise.
11446 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
11447 FACE_FOR_CHARSET.
11448 (get_next_display_element, append_space)
11449 (extend_face_to_end_of_line): Likewise.
11450
11451 * xfaces.c (Qx_charset_registry, Vface_default_registry):
11452 Variables removed.
11453 (clear_font_table, frame_update_line_height, load_face_font):
11454 Adjusted for the change of fontset implementation.
11455 (load_face_fontset_font): Function removed.
11456 (pixel_point_size): New function.
11457 (font_list): Argument type changed. Caller changed.
11458 (LFACE_FONT): New macro.
11459 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
11460 (set_lface_from_font_name): Type of arg FONTNAME is changed to
11461 Lisp_Object. Determine the font name by actually loading a font
11462 by the specified pattern. Set LFACE_FONT (lface) to the specified
11463 pattern. Even if a font is not found, don't try alternatives.
11464 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
11465 (set_font_frame_param): If `font' is specified in lface, use it.
11466 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
11467 (lface_same_font_attributes_p): Likewise.
11468 (make_realized_face): Arguent changed. Caller changed. Set
11469 face->ascii_face to face itself.
11470 (free_realized_face): Free face->fontset if face is for ASCII.
11471 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
11472 (deduce_unibyte_registry, x_charset_registry): Functions removed.
11473 (free_realized_multibyte_face): New function.
11474 (lookup_face, lookup_named_face, lookup_derived_face): Argument
11475 changed. Caller changed.
11476 (try_font_list): Argument type changed.
11477 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
11478 (choose_face_font): Argument changed. Handle fontset properly.
11479 (choose_face_fontset_font): Function removed.
11480 (realize_default_face, realize_named_face): Don't remove the
11481 former face here.
11482 (realize_face): Argument changed. Caller changed. Remove face
11483 with the arg former_face_id in advance. Load font for the new face.
11484 (realize_x_face): Argument changed. Caller changed. For a
11485 multibyte character, share fontset with base_face. For a single
11486 byte character, make a new realized fontset. Don't load a font here.
11487 (realize_tty_face): Argument changed. Caller changed.
11488 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
11489 (face_at_buffer_position): Don't check multibyte_p for returning
11490 DEFAULT_FACE_ID.
11491 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
11492 FACE_SUITABLE_FOR_CHARSET_P.
11493 (syms_of_xfaces): Remove code for Qx_charset_registry and
11494 Vface_default_registry.
11495
11496 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
11497 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
11498 (x_per_char_metric): Don't try FONT->default_char. Even if
11499 pcm->width is zero, glyph bits may exist.
11500 (x_encode_char): Always initialize char2b->byte1.
11501 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
11502 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
11503 (x_append_glyph): Set glyph->glyph_not_available_p.
11504 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11505 it->charset. Handle the case that per char metric is not
11506 available. If it->multibyte_p is zero and it->c is a multibyte
11507 character, convert it to a unibyte character.
11508 (struct glyph_string): Delete member `charset'.
11509 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11510 the case that per char metric is not available correctly.
11511 (x_fill_glyph_string): Handle the case that the specific glyph is
11512 not available correctly.
11513 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11514 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11515 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11516 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11517 fontset. Don't call FS_LOAD_FONT.
11518
11519 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
11520 (x_create_tip_frame): Likewise.
11521 (Fx_close_connection): Free full_name of font_info.
11522
11523 * fns.c (optimize_sub_char_table): New function.
11524 (Foptimize_char_table): New function.
11525 (syms_of_fns): Defsubr Soptimize_char_table.
11526
11527 2000-03-20 Gerd Moellmann <gerd@gnu.org>
11528
11529 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
11530 only if buffer is displayed in some window.
11531
11532 * xdisp.c (handle_single_display_prop): Initialize local `value'.
11533 (try_window_reusing_current_matrix): Don't call scroll run
11534 function if run's current and desired position are the same;
11535 this prevents cursor flickering.
11536
11537 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
11538
11539 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
11540
11541 * regex.c (RE_STRING_CHAR): New macro.
11542 (GET_CHAR_AFER_2): Remove.
11543 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
11544 (enum re_opcode_t): Remove on_failure_jump_exclusive.
11545 (print_partial_compiled_pattern, re_compile_fastmap)
11546 (re_match_2_internal): Remove on_failure_jump_exclusive.
11547 (regex_compile): Turn optimizable P+ loops into PP*, so that the
11548 optimization only need to work for * (ie. can use of_keep_string_jump).
11549 Remove the special case for .*\n since it is now covered by the general
11550 optimization.
11551 (re_search_2): Don't bother with `room'.
11552 (skip_one_char): New function.
11553 (skip_noops): Simplify since `memory' is not needed any more.
11554 (mutually_exclusive_p): Restructure slightly to use `switch' and
11555 add handling for "all" remaining cases.
11556 (re_match_2_internal): Change on_failure_jump_smart to use
11557 on_failure_keep_string_jump (and redirect the end-of-loop jump)
11558 rather than on_failure_jump_exclusive.
11559
11560 2000-03-19 Gerd Moellmann <gerd@gnu.org>
11561
11562 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
11563 number of bits per RGB because it's everywhere used as the depth
11564 of the visual.
11565
11566 * term.c (calculate_costs): Remove code dealing with X frames.
11567
11568 2000-03-19 Richard M. Stallman <rms@gnu.org>
11569
11570 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
11571
11572 2000-03-18 Gerd Moellmann <gerd@gnu.org>
11573
11574 * lread.c (read_integer): Unread the last char not consumed.
11575
11576 2000-03-17 Gerd Moellmann <gerd@gnu.org>
11577
11578 * xterm.c (x_update_window_cursor): Don't update in frames
11579 which are in the process of being deleted.
11580
11581 2000-03-16 Gerd Moellmann <gerd@gnu.org>
11582
11583 * Makefile.in (mostlyclean): Add `*.core'.
11584 (clean): Add `bootstrap-emacs'.
11585
11586 * lread.c (read_integer): New function.
11587 (read1): Support read syntax #o, #x, #b, #r.
11588
11589 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
11590
11591 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
11592 make sure POINTER_TO_OFFSET gives the same value before and after
11593 PREFETCH. Use `dfail' to guarantee "atomic" matching.
11594 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
11595 (debug): Now only active if > 0 rather than if != 0.
11596 (DEBUG_*): Update for the new meaning of `debug'.
11597 (print_partial_compiled_pattern): Add missing `succeed' case. Use
11598 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
11599 in `succeed_n', `jump_n' and `set_number_at'.
11600 (store_op1, store_op2, insert_op1, insert_op2)
11601 (at_begline_loc_p, at_endline_loc_p): Add prototype.
11602 (group_in_compile_stack): Move to after its arg's types are
11603 declared and add a prototype.
11604 (PATFETCH): Define in terms of PATFETCH_RAW.
11605 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
11606 (QUIT): Redefine as a nop except for NTemacs.
11607 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
11608 indentation of the greedy-op and shy-group code.
11609 (at_(beg|end)line_loc_p): Fix argument's types.
11610 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
11611 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
11612 (MATCHING_IN_FIRST_STRING): Remove.
11613 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
11614 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
11615 QUIT unconditionally.
11616
11617 2000-03-15 Gerd Moellmann <gerd@gnu.org>
11618
11619 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
11620 a sole completion.
11621
11622 * process.c (send_process): Add a hint that the function
11623 can call Lisp code to its comment.
11624
11625 * lread.c (load_dangerous_libraries): New variable.
11626 (Vbytecomp_version_regexp): New variable.
11627 (safe_to_load_p): New function.
11628 (Fload): Handle files not compiled with Emacs specially.
11629 (syms_of_lread): New Lisp variable load-dangerous-libraries.
11630
11631 2000-03-14 Gerd Moellmann <gerd@gnu.org>
11632
11633 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
11634
11635 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
11636 support functions only if HAVE_X11R6_XIM is defined.
11637 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
11638
11639 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
11640
11641 * xfns.c (X_I18N_INHIBITED): Don't define.
11642 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
11643 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
11644
11645 * config.in (HAVE_X_I18N): Moved here from xterm.h.
11646 (HAVE_X11R6_XIM): Define.
11647
11648 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
11649
11650 * xterm.c (x_term_init): Add support for X resource `synchronous'.
11651 If set, call XSynchronize.
11652
11653 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
11654
11655 * regex.c: Declare a new type `re_char' used throughout the code
11656 for the string char type. It's `const unsigned char' to match the
11657 rest of Emacs. Consistently make sure all pointers to strings use
11658 it and make sure all pointers into the pattern use `unsigned char'.
11659 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
11660 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
11661 code duplication.
11662
11663 * charset.h (GET_CHAR_AFTER_2): Remove.
11664 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
11665
11666 2000-03-12 Ken Raeburn <raeburn@gnu.org>
11667
11668 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
11669 variable before the invocation of YMF_PASS_LDFLAGS, in case both
11670 of them try to use backquotes.
11671
11672 2000-03-12 Dave Love <fx@gnu.org>
11673
11674 * unexelf.c: Restore changes of 1999-10-19.
11675 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
11676 fix its type and alignment; copy it from current process.
11677
11678 2000-03-12 Gerd Moellmann <gerd@gnu.org>
11679
11680 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
11681 has been found. Fix bug not computing timer's predecessor.
11682
11683 * fileio.c (Fread_file_name): Handle case that DIR contains a
11684 file name.
11685
11686 * window.c (Fsave_window_excursion): Doc fix.
11687
11688 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
11689
11690 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
11691
11692 * msdos.c (vga_installed): New function, code moved from
11693 dos_set_window_size.
11694 (Qbar, Qcursor_type, outside_cursor): New variables.
11695 (syms_of_msdos): Intern and staticpro them.
11696 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
11697 shape used outside Emacs when called for the first time.
11698 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
11699 cursor shape used outside Emacs.
11700 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
11701 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
11702 type has changed.
11703 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
11704 parameters specify the cursor. Make qreverse a global
11705 variable (renamed to Qreverse).
11706
11707 2000-03-09 Gerd Moellmann <gerd@gnu.org>
11708
11709 * fns.c (Fy_or_n_p): Cancel busy-cursor.
11710
11711 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
11712
11713 This is a big redesign of failure-stack and register handling, prompted
11714 by bugs revealed when trying to add shy-groups. Overall, what happened
11715 is that loops are now structured a little differently, groups can be
11716 shy and the code is a little simpler.
11717
11718 * regex.h: Update the copyright.
11719 (RE_SHY_GROUPS): New value.
11720 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
11721 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
11722
11723 * regex.c (enum re_opcode_t): Remove jump_past_alt,
11724 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
11725 on_failure_jump_(exclusive, loop and smart). Also fix the comment
11726 for (start|stop)_memory since they now only take one argument (the
11727 second has becomes unnecessary).
11728 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
11729 (print_compiled_pattern): Use %ld to printf long ints and flush to
11730 make debugging a little easier.
11731 (union fail_stack_elt): Make the integer unsigned.
11732 (struct fail_stack_type): Add a `frame' element.
11733 (INIT_FAIL_STACK): Init `frame' as well.
11734 (POP_PATTERN_OP): New macro for re_compile_fastmap.
11735 (DEBUG_PUSH, DEBUG_POP): Remove.
11736 (NUM_REG_ITEMS): Remove.
11737 (NUM_NONREG_ITEMS): Adjust.
11738 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
11739 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
11740 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
11741 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
11742 New macros.
11743 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
11744 address pushed is not the destination of the jump but the source
11745 of it instead.
11746 (NUM_FAILURE_ITEMS): Remove.
11747 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
11748 registers before the actual failure point). Don't hardcode any
11749 meaning for str==NULL anymore.
11750 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
11751 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
11752 Remove.
11753 (REG_UNSET_VALUE): Use NULL (why not?).
11754 (compile_range): Remove declaration since it doesn't exist.
11755 (struct compile_stack_elt_t): Remove inner_group_offset.
11756 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
11757 (regex_grow_registers): Remove dead code.
11758 (FIXUP_ALT_JUMP): New macro.
11759 (regex_compile): Add shy-groups Change loops to use
11760 on_failure_jump_smart&jump instead of
11761 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
11762 initial (dummy_failure_)jump. Remove c1_base (looks like unused
11763 variable to me). Use `jump' instead of `jump_past_alt' and don't
11764 bother with push_dummy_failure in alternatives since it is now
11765 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
11766 emacs' for (re)allocating the stack.
11767 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
11768 from loop when bufp->can_be_null rather than jumping to `done'.
11769 Avoid jumping backwards so as to ensure termination. Use
11770 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
11771 backreferences. Remove dead code in handling of `anychar'.
11772 (skip_noops, mutually_exclusive_p): New functions taken from the
11773 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
11774 improve mutually_exclusive_p to handle ".+\n".
11775 (lowest_active_reg, highest_active_reg)
11776 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
11777 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
11778 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
11779 variables. Push register (in `start_memory') on the stack rather
11780 than storing it in old_reg(start|end). Remove the cycle detection
11781 from `stop_memory', replaced by the use of on_failure_jump_loop
11782 for greedy loops. Add code for the new on_failure_jump_<foo>.
11783 Remove ad-hoc code in `on_failure_jump' to push more registers in
11784 the case of a loop. Take out code from `maybe_pop_jump' into
11785 separate functions and adapt it to the semantics of
11786 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
11787 and push_dummy_failure. Remove dummy_failure handling and
11788 handling of `failures to jump to on_failure_jump' (this last one
11789 was already dead code, it seems).
11790 (group_match_null_string_p, alt_match_null_string_p)
11791 (common_op_match_null_string_p): Remove.
11792
11793 2000-03-08 Dave Love <fx@gnu.org>
11794
11795 * config.in: Don't depend on __STDC__ for volatile.
11796 Add POINTER_TYPE, PTR, PROTOTYPES.
11797
11798 * hftctl.c, strftime.c: Use PROTOTYPES.
11799 * eval.c (find_handler_clause): Likewise.
11800
11801 * mem-limits.h: Use POINTER_TYPE.
11802
11803 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
11804 (memory_warnings): Declare using POINTER_TYPE.
11805
11806 2000-03-08 Gerd Moellmann <gerd@gnu.org>
11807
11808 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
11809
11810 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
11811
11812 * xfns.c: Remove obsolete code in #if 0.
11813 (Fx_focus_frame): New function.
11814
11815 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11816
11817 * coding.c (coding_category_name): Add coding-category-utf-8,
11818 coding-category-utf-16-be, coding-category-utf-16-le.
11819 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
11820 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
11821 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
11822 (detect_coding_utf_8): New function.
11823 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
11824 UTF_16_LOW_SURROGATE_P): New macros.
11825 (detect_coding_utf_16): New function
11826 (detect_coding_mask): When priorities are specified, skip any
11827 categories that have `nil' coding-system. Fix bug of returning
11828 wrong mask when PRIORITIES is specified and detect_coding_XXX()
11829 returns a mask not set in PRIORITIES.
11830 (detect_eol_type_in_2_octet_form): New function.
11831 (detect_eol): selects detect_eol_type_XXX to call according to
11832 cooding->category_idx.
11833 (detect_coding_system): Remove `nil' coding-system in the result.
11834 (Fupdate_coding_systems_internal): Update all coding-categories.
11835
11836 * coding.h (CODING_CATEGORY_IDX_UTF_8)
11837 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
11838 New macros.
11839 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
11840 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
11841 (CODING_CATEGORY_IDX_UTF_16_LE)
11842 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
11843 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
11844 (CODING_CATEGORY_MASK_ANY): Include the above macros.
11845 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
11846
11847 2000-03-07 Gerd Moellmann <gerd@gnu.org>
11848
11849 * doc.c (Fdocumentation_property): If value is not a string,
11850 and doesn't refer to etc/DOC, evaluate it to obtain a string.
11851
11852 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
11853 close the display with XtCloseDisplay. This caused a bus error
11854 on OpenWindows.
11855
11856 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
11857 complete but not unique.
11858
11859 2000-03-06 Gerd Moellmann <gerd@gnu.org>
11860
11861 * process.c (send_process): Remove local variable `procname' that
11862 might become invalid when a GC happens. Instead, access the
11863 process name slot directly.
11864
11865 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
11866 orig_height if set.
11867
11868 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
11869 orig_height if set.
11870
11871 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
11872
11873 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
11874 glyph matrices have been freed.
11875
11876 2000-03-05 Gerd Moellmann <gerd@gnu.org>
11877
11878 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
11879 (bootstrap-temacs): Set LC_ALL to C like for temacs.
11880
11881 * xfns.c (QCdata): Moved to xdisp.c.
11882
11883 * xdisp.c (QCdata): Moved here from xfns.c.
11884 (syms_of_xdisp): Initialize QCdata.
11885
11886 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
11887
11888 * window.c (coordinates_in_window): Use
11889 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
11890 FRAME_INTERNAL_BORDER_WIDTH.
11891
11892 * xdisp.c (try_window_id): Recompute unchanged information if
11893 it is obviously invalid.
11894
11895 * xterm.c (x_term_init): Create a colormap if not using the
11896 default visual.
11897
11898 * xterm.h (select_visual): Change prototype.
11899
11900 * xfns.c (select_visual): Rewritten. Recognize user-specified
11901 visual classes.
11902 (visual_classes): New variable.
11903
11904 2000-03-04 Gerd Moellmann <gerd@gnu.org>
11905
11906 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
11907 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
11908 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
11909 (x_decode_color): Don't handle allocation of white and black specially.
11910 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
11911 XtNcolormap resources.
11912 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
11913 (Fx_create_frame): Initialize color members of x_output structure.
11914 (xpm_load): Pass colormap to XPM lib.
11915
11916 * xfaces.c (x_free_colors): Access colormap of frame using
11917 FRAME_X_COLORMAP. Be paranoid about freeing black and white
11918 when default colormap is used.
11919
11920 * xterm.c (x_term_init): Set Colormap member of x_display_info
11921 structure. Copy colormap if resource `privateColormap' is
11922 specified (PseudoColor only).
11923 (x_setup_relief_color): Access colormap of frame using
11924 FRAME_X_COLORMAP.
11925
11926 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
11927 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
11928
11929 2000-03-04 Jason Rumney <jasonr@gnu.org>
11930
11931 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
11932 other non-platform-specific equivalents.
11933 [WINDOWSNT]: Include w32term.h, fontset.h and define X
11934 specific functions and macros as their w32 equivalents where
11935 non-platform-specifics are not available.
11936 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
11937 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
11938 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
11939 (frame_update_line_height): Use macros to access f->output_data.
11940 (defined_color): Remove FIXME comments; fixed.
11941 (x_face_list_fonts, prepare_face_for_display): Put X specifics
11942 into #ifdef blocks. Add WINDOWSNT blocks.
11943 (Fx_list_fonts): Use macros for accessing font data.
11944 (set_lface_from_font_name): Different default fonts for X and
11945 WINDOWSNT.
11946 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
11947 scalable for backward compatibility.
11948 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
11949 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
11950
11951 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
11952 syms_of_w32faces.
11953
11954 * makefile.nt (w32faces.obj): Remove.
11955 (xfaces.obj): Add.
11956
11957 2000-03-03 Jason Rumney <jasonr@gnu.org>
11958
11959 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
11960 correct parameters.
11961
11962 2000-03-03 Ken Raeburn <raeburn@gnu.org>
11963
11964 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
11965 standard ELF definitions here if the system header does not.
11966
11967 2000-03-03 Gerd Moellmann <gerd@gnu.org>
11968
11969 * xterm.c (PER_CHAR_METRIC): Removed.
11970 (x_per_char_metric_1, x_default_char): New functions.
11971 (x_per_char_metric): If font's default char is invalid, return
11972 metrics of a suitably chosen usable default char.
11973 (x_draw_glyph_string_foreground): If font has an invalid default
11974 char, replace occurrences of unprintable chars with a suitably
11975 chosen usable default char.
11976
11977 2000-03-02 Gerd Moellmann <gerd@gnu.org>
11978
11979 * xterm.c (note_mouse_highlight): Return quickly if frame's
11980 glyph matrices have been freed.
11981
11982 * dispnew.c (free_glyphs): Block input while freeing matrices.
11983
11984 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
11985
11986 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
11987 Use x_free_colors.
11988
11989 * dispextern.h (x_free_colors): Add prototype.
11990
11991 * xfaces.c (x_free_colors): New function.
11992 (unload_color, free_face_colors): Use it.
11993
11994 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
11995
11996 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
11997
11998 * window.c [MSDOS]: Include msdos.h.
11999
12000 2000-03-02 Dave Love <fx@gnu.org>
12001
12002 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
12003
12004 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
12005 set C_OPTIMIZE_SWITCH for gcc.
12006
12007 2000-03-02 Kenichi Handa <handa@etl.go.jp>
12008
12009 * coding.c (coding_save_composition): Be sure to allocate
12010 composition data area in coding even if there's no composition in
12011 the current run.
12012
12013 2000-03-01 Jason Rumney <jasonr@gnu.org>
12014
12015 * w32term.c: Equivalent changes to those made to xterm.c on
12016 2000-02-25 and 2000-02-24.
12017
12018 * w32fns.c: Equivalent changes to those made to xfns.c on
12019 2000-02-25 and 2000-02-21.
12020
12021 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
12022 correct line-end convention is followed.
12023
12024 * w32menu.c [HAVE_BOXES]: Remove #undef.
12025 (single_keymap_panes): Remove code for simulating checkmarks.
12026 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
12027 Remove code for drawing simulated checkmarks.
12028 (w32_menu_show): make unibyte help string correctly.
12029 (add_menu_item): draw standard Windows checkmarks. Draw radio
12030 buttons as radio buttons if possible.
12031
12032 2000-03-01 Gerd Moellmann <gerd@gnu.org>
12033
12034 * sysdep.c (start_of_text): Don't define this function for NetBSD
12035 with ELF.
12036
12037 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
12038 Don't define.
12039 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
12040 (LINKER): Don't undef if __NetBSD__ is defined.
12041
12042 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
12043
12044 * fileio.c [__NetBSD__]: Define `unix'.
12045
12046 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
12047
12048 2000-02-29 Gerd Moellmann <gerd@gnu.org>
12049
12050 * atimer.c (start_atimer): Don't abort when timers are stopped.
12051 (append_atimer_lists): New function.
12052 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
12053 arbitrary lists of stopped and running atimers.
12054
12055 * atimer.c (cancel_atimer): Handle canceling an atimer when
12056 some timers are stopped.
12057
12058 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
12059 after canceling it.
12060
12061 * fns.c (maybe_resize_hash_table): Handle case of new size
12062 coming out as being the same as old size.
12063
12064 2000-02-27 Jason Rumney <jasonr@gnu.org>
12065
12066 * makefile.nt: Add atimer.h to dependencies.
12067 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
12068 * w32console.c: Only disable window system features for dispextern.h
12069 (initialize_w32_display): Build a display info for the console.
12070 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
12071 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
12072 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
12073 as 2 button mice.
12074 * w32gui.h (struct W32FontStruct): Revert last change after change
12075 to xdisp.c.
12076 * w32menu.c (single_submenu): Set up help string.
12077 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
12078 (w32_dialog_show): Set up help string.
12079 * w32term.c (w32_display_info_for_display): Remove unused function.
12080 (w32_draw_bitmap): Use pre-built bitmaps.
12081 (w32_initialize_display_info): New function to initialize parts of
12082 display info that are common to both GUI and console frames.
12083 (w32_term_init): Use w32_initialize_display_info. Do not set
12084 Vw32_num_mouse_buttons here, as it is not called for console
12085 frames. Build bitmaps for indicating truncated lines etc.
12086 (x_delete_display): Destroy pre-built bitmaps.
12087 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
12088 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
12089
12090 2000-02-27 Dave Love <fx@gnu.org>
12091
12092 * lisp.h: Add a bunch of prototypes.
12093
12094 2000-02-26 Kenichi Handa <handa@etl.go.jp>
12095
12096 * keyboard.c (read_char): Set `usec' correctly.
12097
12098 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12099
12100 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
12101 `lambda', set reg[RRR] to the map index.
12102 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
12103 reg[RRR] to 0. Otherwise, set it to -1.
12104
12105 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12106
12107 * emacs.c (main): Remove code snippet commented out with `//'.
12108
12109 2000-02-25 Richard M. Stallman <rms@gnu.org>
12110
12111 * fileio.c (Ffile_symlink_p): If result starts with a `/'
12112 and contains a `:', prepend `/:'.
12113
12114 * window.c (select_window_1): If selected_window is nil,
12115 don't "swap out" the buffer's point.
12116 (Fset_window_configuration): Set selected_window to nil
12117 before calling Fselect_window.
12118 (unshow_buffer): Don't set point in buffer from window's point
12119 if another more recently selected window also shows the buffer.
12120
12121 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12122
12123 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
12124
12125 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
12126 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
12127 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
12128 New variables.
12129 (DEFAULT_BUSY_CURSOR_DELAY): New define.
12130 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
12131 (hide_busy_cursor): New functions.
12132 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
12133
12134 * minibuf.c (read_minibuf): Cancel busy-cursor.
12135
12136 * keyboard.c (command_loop_1): Call start_busy_cursor before
12137 Fcommand_execute and cancel_busy_cursor after it.
12138 (timer_check): Remove busy-cursor code.
12139 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
12140 cursor timer.
12141
12142 * process.c (wait_reading_process_input): Remove busy-cursor code.
12143
12144 * eval.c (Fsignal): Call cancel_busy_cursor instead of
12145 Fx_hide_busy_cursor.
12146
12147 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
12148 Remove prototyoes.
12149 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
12150
12151 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
12152
12153 * xterm.c (XTread_socket): Remove busy-cursor code.
12154
12155 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
12156 (build_frame_matrix_from_leaf_window): Put code handling
12157 glyph row's not being a slice of a frame row in #if 0.
12158 (sync_window_with_frame_matrix_rows): New function.
12159 (frame_row_to_window): New function.
12160 (mirror_line_dance): Handle copies between windows.
12161
12162 * lread.c (Fload): Use `xfree' instead of `free'.
12163 (init_obarray): Use `xmalloc' instead of `malloc'.
12164
12165 * window.c (Fset_window_buffer): Set WINDOW to the window
12166 after decoding.
12167 (coordinates_in_window): Take frame's internal border width
12168 into account.
12169
12170 2000-02-24 Gerd Moellmann <gerd@gnu.org>
12171
12172 * xterm.c (x_display_and_set_cursor): Display cursor of
12173 non-selected windows depending on the setting of
12174 cursor_in_non_selected_windows.
12175
12176 * xdisp.c (cursor_in_non_selected_windows): New variable.
12177 (syms_of_xdisp): DEFVAR_BOOL it.
12178
12179 2000-02-23 Gerd Moellmann <gerd@gnu.org>
12180
12181 * data.c (Fstring_to_number): If number is greater than what
12182 fits into an integer, return a float.
12183
12184 * eval.c (specbind): Remove references to
12185 keyword_symbols_constant_flag.
12186
12187 * data.c (keyword_symbols_constant_flag): Removed.
12188 (Fmakunbound, set_internal, syms_of_data): Remove references to
12189 keyword_symbols_constant_flag.
12190
12191 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
12192
12193 2000-02-23 Kenichi Handa <handa@etl.go.jp>
12194
12195 * syntax.c (multibyte_syntax_as_symbol): New variable.
12196 (syms_of_syntax): Declare it as a Lisp variable.
12197 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
12198 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
12199 nonzero, treat all multibyte characters as symbol.
12200 (init_syntax_once): Give syntax `word' to all multibyte characters.
12201
12202 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
12203
12204 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
12205 a deleted frame.
12206
12207 2000-02-21 Gerd Moellmann <gerd@gnu.org>
12208
12209 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
12210
12211 * xfns.c (x_window_to_frame, x_any_window_to_frame)
12212 (x_non_menubar_window_to_frame): Check the busy-cursor window.
12213
12214 2000-02-21 Dave Love <fx@gnu.org>
12215
12216 * frame.c (Vmouse_position_function): New variable.
12217 (Fmouse_position): Use it.
12218 (syms_of_frame): Install it.
12219
12220 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
12221
12222 2000-02-20 Gerd Moellmann <gerd@gnu.org>
12223
12224 * fileio.c (Finsert_file_contents): Unbind the binding of
12225 standard-output done by temp_output_buffer_setup.
12226
12227 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
12228 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
12229 (specbind, unbind_to): Handle most common case of non-constant
12230 symbol with trivial value specially.
12231
12232 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
12233
12234 2000-02-20 Richard M. Stallman <rms@gnu.org>
12235
12236 * data.c (Fmake_variable_buffer_local): Doc fix.
12237 Init found_for_buffer to 0.
12238 (Fmake_variable_frame_local): If the variable has already
12239 been buffer-local, set the check_frame field.
12240
12241 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
12242
12243 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
12244 produced for CODING_MODE_LAST_BLOCK requires.
12245
12246 2000-02-18 Dave Love <fx@gnu.org>
12247
12248 * keyboard.c (echo_keystrokes): Remove declaration.
12249 (Vecho_keystrokes) New variable.
12250 (read_char, record_menu_key, read_key_sequence): Use it to allow
12251 use of float value.
12252 (syms_of_keyboard): Change Vecho_keystrokes declaration.
12253
12254 * lread.c: Undef feature selection macros before defining.
12255
12256 2000-02-18 Gerd Moellmann <gerd@gnu.org>
12257
12258 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
12259 for symbols other than the symbol in question.
12260
12261 2000-02-17 Dave Love <fx@gnu.org>
12262
12263 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
12264
12265 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12266
12267 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
12268
12269 * alloc.c (enum mem_type): Compile unconditionally.
12270
12271 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
12272
12273 * xfaces.c (tty_defined_color): Don't return faulire indication
12274 for unspecified-fg and unspecified-bg pseudo-colors.
12275
12276 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12277
12278 * alloc.c (mark_object): Don't mark symbol names in pure space.
12279 (gc_sweep): Don't unmark symbol names in pure space.
12280
12281 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
12282 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
12283 [GC_MARK_STACK]: New defines.
12284 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
12285 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
12286
12287 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
12288
12289 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
12290 allocate_buffer instead of xmalloc.
12291
12292 * alloc.c (toplevel): Include setjmp.h.
12293 (PURE_POINTER_P): New define.
12294 (enum mem_type) [GC_MARK_STACK]: New enumeration.
12295 (Vdead) [GC_MARK_STACK]: New variable.
12296 (lisp_malloc): Add parameter TYPE, call mem_insert if
12297 GC_MARK_STACK is defined.
12298 (allocate_buffer): New function.
12299 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
12300 (free_float) [GC_MARK_STACK]: Set type to Vdead.
12301 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
12302 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
12303 (MEM_NIL) [GC_MARK_STACK]: New define.
12304 (struct mem_node) [GC_MARK_STACK]: New structure.
12305 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
12306 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
12307 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
12308 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
12309 (mark_stack) [GC_MARK_STACK]: New functions.
12310 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
12311 (clear_marks): Removed.
12312 (gc_sweep): Set free conses' car, free floats' type, free
12313 symbols' function to Vdead. Use lisp_free to free buffers.
12314 (init_alloc_once): Initialize Vdead.
12315 (survives_gc_p): Return non-zero for pure objects.
12316
12317 * alloc.c: Add comments throughout the file.
12318
12319 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
12320 that unblocks alarms.
12321
12322 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
12323 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
12324 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
12325
12326 * frame.c (make_frame): Set frame initiallly to `garbaged'.
12327
12328 2000-02-17 Kenichi Handa <handa@etl.go.jp>
12329
12330 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
12331 avoid infinite error signaling. Allocate sufficient memory for
12332 eol_str in the case that eoltype is Lisp_Int.
12333
12334 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
12335
12336 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
12337 depends on the previous behavior.
12338
12339 2000-02-16 Gerd Moellmann <gerd@gnu.org>
12340
12341 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
12342
12343 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12344
12345 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
12346
12347 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
12348 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
12349 write(2).
12350
12351 2000-02-15 Richard M. Stallman <rms@gnu.org>
12352
12353 * data.c (set_internal): Don't make variable buffer-local
12354 if within a let-binding for the same buffer.
12355 (let_shadows_buffer_binding_p): New function.
12356
12357 * eval.c (specbind): For buffer-local value,
12358 record the current buffer also.
12359 (unbind_to): Cope with that change.
12360
12361 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12362
12363 * window.c (Fsave_window_excursion): Doc fix.
12364
12365 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
12366
12367 * syntax.c (back_comment): Make sure we only consider comment-starters
12368 of the relevant style and return -1 in case of a failure to find the
12369 beginning of the comment.
12370 (Fforward_comment): If back_comment fails, go back to the position just
12371 after the comment-end.
12372 (scan_lists): Add comment describing a very minor bug.
12373
12374 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12375
12376 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
12377 `completion-regexp-list' in the docstring.
12378
12379 2000-02-14 Dave Love <fx@gnu.org>
12380
12381 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
12382
12383 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12384
12385 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
12386 to Emacs' syntax. Also fix the comment about set/not-set meanings
12387 since Emacs syntax is not the value 0 any more.
12388 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
12389 since it's now part of RE_SYNTAX_EMACS.
12390
12391 2000-02-12 Dave Love <fx@gnu.org>
12392
12393 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
12394
12395 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12396
12397 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
12398
12399 2000-02-12 Dave Love <fx@gnu.org>
12400
12401 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
12402
12403 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
12404 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
12405 * s/hpux.h: Don't define HAVE_VFORK.
12406
12407 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
12408
12409 * s/nextstep.h: Don't define HAVE_ALLOCA.
12410
12411 * config.in: Add vfork bits.
12412
12413 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12414
12415 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
12416 unwind function to undo the effect of stopping atimers.
12417
12418 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
12419
12420 * atimer.c (stopped_atimers): New variable.
12421 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
12422 New functions.
12423
12424 * atimer.h (stop_other_atimers, run_all_atimers)
12425 (unwind_stop_other_atimers): Add function prototypes.
12426
12427 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
12428
12429 2000-02-11 Ken Raeburn <raeburn@gnu.org>
12430
12431 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
12432 library may depend on jpeg.
12433 (atimer.o): Depends on atimer.c.
12434
12435 2000-02-11 Kenichi Handa <handa@etl.go.jp>
12436
12437 * insdel.c (del_range_1): Call update_compositions.
12438 (del_range_both): Call update_compositions just once..
12439
12440 2000-02-10 Dave Love <fx@gnu.org>
12441
12442 * xfns.c (create_frame_xic): Fix initialization of automatic
12443 aggregates for pcc.
12444
12445 2000-02-09 Kenichi Handa <handa@etl.go.jp>
12446
12447 * ccl.c (CCL_MAKE_CHAR): New macro.
12448 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
12449 registers by CCL_MAKE_CHAR before calling translate_char.
12450 <CCL_TranslateCharacterConstTbl> Likewise.
12451
12452 2000-02-08 Dave Love <fx@gnu.org>
12453
12454 * lread.c (__EXTENSIONS__): Define.
12455
12456 2000-02-08 Gerd Moellmann <gerd@gnu.org>
12457
12458 * puresize.h (BASE_PURESIZE): Increase to 650000.
12459
12460 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12461
12462 * msdos.c (XMenuActivate): Turn off the cursor after displaying
12463 the help message.
12464
12465 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12466
12467 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
12468 md, mh, mb, mr, and me to the fake termcap entry.
12469
12470 2000-02-06 Ken Raeburn <raeburn@gnu.org>
12471
12472 * sound.c (sound_cleanup): Don't call device close routine if the
12473 function pointer is null.
12474
12475 2000-02-06 Andrew Innes <andrewi@gnu.org>
12476
12477 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
12478 around image definitions and prototypes.
12479 (gamma_correct) [WINDOWSNT]: New prototype.
12480
12481 * w32term.c (x_make_frame_visible): Replace call to
12482 input_poll_signal with poll_for_input.
12483
12484 * window.c [WINDOWSNT]: Include w32term.h.
12485
12486 * xdisp.c [WINDOWSNT]: Include w32term.h.
12487
12488 * makefile.nt: Add dependencies on w32gui.h.
12489 (OBJ1): Include atimer.obj.
12490 ($(BLD)\atimer.obj): New dependency rule.
12491
12492 * w32.c (sigmask): New function (does nothing).
12493 (sigunblock): Ditto.
12494
12495 * frame.c [WINDOWSNT]: Include w32term.h.
12496
12497 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
12498
12499 * lread.c (syms_of_lread): Fix literal newlines.
12500
12501 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
12502 the string constant limit (2048 bytes) in MSVC.
12503 (main): Ditto.
12504
12505 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
12506
12507 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
12508 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
12509 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
12510 dispatch the event.
12511
12512 2000-02-04 Dave Love <fx@gnu.org>
12513
12514 * fileio.c: Remove some unused vars.
12515 (_GNU_SOURCE): Define (for euidaccess).
12516
12517 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
12518
12519 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
12520 gcpro1, gcpro2.
12521 (read_minibuf): Deal with allow_props correctly.
12522
12523 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
12524
12525 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
12526
12527 2000-02-03 Ken Raeburn <raeburn@gnu.org>
12528
12529 * search.c (compile_pattern): If a cache entry has a nil regexp,
12530 fill in that entry instead of clobbering a previously cached
12531 string regexp.
12532
12533 2000-02-02 Ken Raeburn <raeburn@gnu.org>
12534
12535 * puresize.h (BASE_PURESIZE): Increase to 610000.
12536
12537 2000-02-02 Gerd Moellmann <gerd@gnu.org>
12538
12539 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
12540 can GC.
12541
12542 2000-02-02 Kenichi Handa <handa@etl.go.jp>
12543
12544 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
12545 instead of incrementing ic directly.
12546 <CCL_WriteExprConst> Likewise.
12547 <ccl_set_expr>: Set ic to jump_address.
12548
12549 * fileio.c (e_write): Fix the handling of
12550 CODING_FINISH_INSUFFICIENT_SRC.
12551
12552 2000-02-01 Dave Love <fx@gnu.org>
12553
12554 * editfns.c (Fpropertize): Doc fix.
12555
12556 * process.c (Fstart_process): Doc fix.
12557
12558 * eval.c: Fix various doc strings not to duplicate information
12559 from help-manyarg-func-alist.
12560
12561 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
12562
12563 * doc.c (Vhelp_manyarg_func_alist): New variable.
12564 (Fdocumentation): Use it.
12565 (syms_of_doc): Define it.
12566
12567 2000-01-31 Gerd Moellmann <gerd@gnu.org>
12568
12569 * xterm.c (xim_open_dpy): Remove unused local variable.
12570
12571 * emacs.c (USAGE): Use term `display options' instead of `X options'.
12572
12573 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
12574 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
12575
12576 * fns.c (sweep_weak_table): New function.
12577 (sweep_weak_hash_tables): Use it. Keep on marking until there
12578 is no more change.
12579
12580 2000-01-30 Gerd Moellmann <gerd@gnu.org>
12581
12582 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
12583 that XTread_socket does not crash by trying to call XNoOp on a
12584 closed display.
12585
12586 2000-01-30 Jason Rumney <jasonr@gnu.org>
12587
12588 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12589 Change selected_frame to SELECTED_FRAME ().
12590 (w32_console_mouse_position): Remove #ifndef MULE from around
12591 `insist' parameter.
12592
12593 * makefile.nt: Remove dosfns.obj.
12594
12595 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
12596
12597 * w32fns.c (w32_defined_color): Check for valid frame before
12598 applying gamma correction. Eliminate dependency on frame elsewhere.
12599 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
12600 (w32_to_x_font): Use resx and resy not height_in and width_in.
12601 (x_to_w32_font): Doc fix.
12602 (xlfd_strip_height): New function to strip and return font height.
12603 (w32_font_match): Compare height separately from rest of xlfd
12604 spec, using xlfd_strip_height.
12605
12606 * w32term.c (w32_term_init): Swap resx and height_in, resy and
12607 width_in. Use w32_defined_color in place of defined_color.
12608
12609 * w32faces.c: Merge more of DOS and X specifics in preparation for
12610 merge with xfaces.c.
12611 (defined_color): Remove FIXME comment.
12612 (tty_color_name): Provide w32-specific function.
12613 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
12614
12615 * w32console.c (turn_on_face, turn_off_face): Removed.
12616 (w32_face_attributes): New function.
12617 (Global_variables): Reduce scope where possible.
12618 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
12619 fill attribute.
12620 (hl_mode): Don't modify text attributes.
12621 (write_glyphs): Don't do anything if len <= 0. Use
12622 w32_face_attributes to get attributes for drawing. Write
12623 terminating codes using char_attr_normal.
12624 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
12625 (update_begin, update_end): Likewise.
12626 (vga_stdcolor_name): New function.
12627 (initialize_w32_display): Remove char_attr_reverse and char_attr.
12628 (Fset_screen_color): Remove char_attr_reverse.
12629
12630 2000-01-29 Gerd Moellmann <gerd@gnu.org>
12631
12632 * xfns.c (xic_set_preeditarea): Take window parameter and
12633 window-relative pixel-positions.
12634
12635 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
12636 is its frame's selected window.
12637 (xim_instantiate_callback): Likewise.
12638
12639 * xfns.c (x_create_im): Removed.
12640 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
12641 (supported_xim_styles): Renamed from supported_styles.
12642 (best_xim_style): Renamed from best_style.
12643 (create_frame_xic): Renamed from xic_create_frame.
12644 (free_frame_xic): Renamed from xic_destroy_frame.
12645
12646 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
12647
12648 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
12649 our frames, call XFilterEvent with 2nd parameter `None'.
12650 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
12651 returning XBufferOverflow.
12652 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
12653 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
12654 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
12655 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
12656 (xim_initialize, xim_close)
12657 [HAVE_X_I18N && HAVE_X11R6]: New functions.
12658 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
12659 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
12660 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
12661
12662 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
12663 and `xim_styles'.
12664 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
12665 `xic_style' and `xic_xfs'.
12666 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
12667 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
12668 (FRAME_XIM): Removed.
12669
12670 * xfns.c (supported_styles): New variable.
12671 (DEFAULT_STYLE, DEFAULT_FONT): New macros
12672 (xic_create_xfontset, best_style, xic_create_frame)
12673 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
12674 (xic_set_xfontset): New functions.
12675
12676 2000-01-28 Dave Love <fx@gnu.org>
12677
12678 * s/irix6-5.h: Revert last change after change to irix5-0.h.
12679
12680 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
12681
12682 2000-01-28 Gerd Moellmann <gerd@gnu.org>
12683
12684 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
12685 for *scratch* if it already existed.
12686
12687 * emacs.c (USAGE): New macro.
12688 (main): Use it to display usage information.
12689
12690 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12691
12692 Support for the menu-help feature:
12693
12694 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
12695
12696 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
12697 part of the line to the termscript file.
12698 (IT_clear_to_end): Clear the entire line, not just its beginning.
12699 (menu_help_message, prev_menu_help_message): New variables.
12700 (IT_menu_make_room): Make room for the help_text member.
12701 (IT_menu_display): New argument disp_help; all callers changed.
12702 If disp_help is non-zero, store the help text of the active menu
12703 item in menu_help_message.
12704 (XMenuAddPane): Initialize the help_text member to NULL.
12705 (XMenuAddSelection): New argument help_text. Store it in the
12706 XMenu structure.
12707 (XMenuActivate): New argument help_callback. If the value of
12708 menu_help_message has changed since the last time, display the
12709 menu help message text while waiting for the mouse to move. Clear
12710 the echo area before exiting.
12711 (XMenuDestroy): Free the help_text member.
12712
12713 2000-01-27 Gerd Moellmann <gerd@gnu.org>
12714
12715 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
12716 XMenuAddSelection. Pass help callback to XMenuActivate.
12717 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
12718
12719 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12720
12721 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
12722 and EMACS_SET_USECS.
12723
12724 2000-01-26 Dave Love <fx@gnu.org>
12725
12726 * editfns.c (Fchar_after, Fchar_before): Doc fix.
12727
12728 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
12729 an error may be signalled.
12730
12731 2000-01-26 Gerd Moellmann <gerd@gnu.org>
12732
12733 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
12734 LD_SWITCH_SYSTEM inherited from irix5-0.h.
12735
12736 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
12737
12738 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12739
12740 * charset.c (Fstring): If there is a multibyte char among
12741 the args, always return a multibyte string.
12742
12743 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12744
12745 * sysdep.c (sys_select): Turn atimers off and on instead of
12746 recording and restoring old alarm handler
12747
12748 * process.c (toplevel): Include atimer.h.
12749 (create_process_1): Rewritten.
12750 (create_process): Use atimers instead of alarm.
12751 (wait_reading_process_input) [hpux]: Turn atimers off instead
12752 of turning off SIGALRM.
12753 (wait_reading_process_input): Turn off atimers instead off
12754 calling stop_polling.
12755
12756 * emacs.c (main): Call init_atimer.
12757
12758 * keyboard.c (toplevel): Include systime.h and atimer.h.
12759 (polling_for_input): Removed because unused.
12760 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
12761 (poll_timer): New variable.
12762 (poll_for_input, poll_for_input_1): New functions.
12763 (start_polling, stop_polling): Rewritten.
12764
12765 * keyboard.h (polling_for_input): Removed.
12766
12767 * atimer.h, atimer.c: New files.
12768
12769 * Makefile.in (obj): Add atimer.o.
12770 (atimer.o): New target.
12771
12772 * blockinput.h (pending_atimers): Add extern declaration.
12773 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
12774
12775 * lisp.h (popup_activated_flag): Add extern declaration.
12776
12777 * xmenu.c (popup_activated_flag): Make externally visible.
12778 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
12779 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
12780
12781 * xterm.c (toplevel): Include atimer.h.
12782 (toolkit_scroll_bar_interaction): New variable.
12783 (Fxt_process_timeouts): Removed.
12784 (x_process_timeouts): New function.
12785 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
12786 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
12787 (x_make_frame_visible): Call poll_for_input_1 instead of
12788 input_poll_signal. Don't call alarm.
12789 (x_initialize): Install timer calling x_process_timeouts.
12790
12791 2000-01-24 Dave Love <fx@gnu.org>
12792
12793 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
12794 Don't use -cckr -- apparently not now necessary.
12795
12796 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
12797
12798 * msdos.c (IT_menu_display): Truncate long menu lines at the right
12799 screen boundary.
12800
12801 2000-01-23 Jason Rumney <jasonr@gnu.org>
12802
12803 * w32fns.c (w32_defined_color): Apply gamma correction before
12804 trying to map to the palette.
12805 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
12806 to w32_clear_rect.
12807
12808 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
12809 here. Callers changed to always pass real device context.
12810 (w32_draw_bitmap): Likewise.
12811 (w32_get_glyph_overhangs): Likewise.
12812 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
12813 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
12814 pfnSetScrollInfo and SetScrollRange.
12815 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
12816 back into MULE characters after decoding them.
12817 (x_get_glyph_face_and_encoding): Likewise.
12818 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
12819 GetCharABCWidthsW fails, since this is defined on Windows 9x.
12820 (x_produce_glyphs): Calculate per char metrics for a character
12821 that we know exists in default font when font_not_found_p is true.
12822
12823 2000-01-22 Jason Rumney <jasonr@gnu.org>
12824
12825 * makefile.nt (intervals.obj, composite.obj): New modules.
12826 (composite.h): Added as dependency where appropriate.
12827
12828 * w32gui.h (XGCValue): New struct for emulating X GCs.
12829
12830 * w32term.h (XCharStruct): New struct for emulating X.
12831
12832 * w32console.c (turn_on_face, turn_off_face): New functions.
12833 (change_line_highlight): New prototype for new redisplay.
12834 (write_glyphs): Support multibyte text. Support faces.
12835
12836 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
12837
12838 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
12839 throughout. struct frame * in place of FRAME_PTR.
12840 Skeleton support for images, toolbars, tooltips from xfns.c.
12841 (Fx_create_frame): Use system default for default scroll bar width.
12842 (w32_get_arg): Renamed from x_get_arg.
12843 (Fx_file_dialog): New function.
12844 (w32_list_fonts): Check cache before asking system.
12845 (Vw32_enable_synthesized_fonts): New variable.
12846 (Vw32_enable_italics): Obsolete, removed.
12847
12848 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12849 Use SELECTED_FRAME macro.
12850
12851 * w32menu.c: Add skeleton support for help strings on menus.
12852 (add_menu_item): Native checkbox and radio support added, but not
12853 yet enabled due to bugs.
12854 (push_menu_item): Add parameters type, selection and help.
12855 Callers updated.
12856 Formatting changes to reduce unnecessary diffs with xmenu.c.
12857
12858 * w32select.c (Fw32_set_clipboard_data): Update call to
12859 find_charset_in_str.
12860
12861 * w32term.c: Complete rewrite for new redisplay based on new
12862 xterm.c with necessary sections merged back in from old w32term.c.
12863
12864 2000-01-21 Richard M. Stallman <rms@gnu.org>
12865
12866 * data.c (set_internal): Further fix in same criterion.
12867
12868 2000-01-20 Richard M. Stallman <rms@gnu.org>
12869
12870 * data.c (set_internal): Fix the criteria for whether
12871 to swap out the old cached binding.
12872
12873 2000-01-19 Dave Love <fx@gnu.org>
12874
12875 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
12876
12877 2000-01-18 Kenichi Handa <handa@etl.go.jp>
12878
12879 * regex.c (re_compile_fastmap): While checking a range table for
12880 `charset', skip flag bits for a character class correctly.
12881
12882 2000-01-17 Gerd Moellmann <gerd@gnu.org>
12883
12884 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
12885
12886 * xfns.c (x_window): Call lw_create_widget with new parameter list.
12887
12888 * widget.c (EmacsFrameSetCharSize): Change size of children first
12889 because of problems with main window geometry management under Lesstif.
12890
12891 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
12892 MENU_ITEMS_ITEM_.*.
12893 (MENU_ITEMS_ITEM_HELP): New enumerator.
12894 (push_menu_item): Add parameter HELP. Record help in menu_items.
12895 (single_menu_item, single_submenu, list_of_items): Call
12896 push_menu_item with new parameter.
12897 (single_submenu): Set help string in widget value.
12898 (menu_highlight_callback): New function.
12899 (set_frame_menubar): Call lw_create_widget with new
12900 parameter list.
12901 (xmenu_show, xdialog_show): Ditto.
12902
12903 2000-01-13 Gerd Moellmann <gerd@gnu.org>
12904
12905 * sound.c (Fplay_sound): Improve doc string.
12906
12907 2000-01-11 Richard M. Stallman <rms@gnu.org>
12908
12909 * lisp.h (set_internal): Enter the new arg.
12910
12911 * eval.c (specbind): Record buffer-local variables specially,
12912 indicating which buffer's binding was saved.
12913 (unbind_to): Restore buffer-local variables specially
12914 in the proper buffer.
12915
12916 * data.c (set_internal): New arg BUF.
12917
12918 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
12919 * data.c (Fset): Pass new arg to set_internal.
12920 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
12921
12922 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12923
12924 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
12925
12926 2000-01-11 Richard M. Stallman <rms@gnu.org>
12927
12928 * minibuf.c (Ftry_completion): Doc fix.
12929
12930 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12931
12932 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
12933 vector, too.
12934
12935 2000-01-11 Andreas Schwab <schwab@suse.de>
12936
12937 * coding.c (code_convert_region): Initialize total_skip.
12938
12939 2000-01-08 Dave Love <fx@gnu.org>
12940
12941 * eval.c (Fuser_variable_p): Check customizability too.
12942
12943 2000-01-07 Gerd Moellmann <gerd@gnu.org>
12944
12945 * minibuf.c (Fcompleting_read): Doc fix.
12946
12947 2000-01-05 Gerd Moellmann <gerd@gnu.org>
12948
12949 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
12950 -L /usr/local/lib.
12951
12952 * xfns.c (x_create_im): New function to set IM and IC of a frame.
12953 Check that input style is supported before trying to create an
12954 IC for it.
12955 (x_window): Call x_create_im.
12956
12957 2000-01-04 Gerd Moellmann <gerd@gnu.org>
12958
12959 * xfns.c (current_gif_memory_src): New variable.
12960 (gif_load): Record the address of the current memory source
12961 in current_gif_memory_src.
12962 (gif_read_from_memory): Use current_gif_memory_src.
12963
12964 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
12965 macros statement form.
12966
12967 * sound.c (struct sound): Renamed from struct sound_file.
12968 (struct sound): Add members `data' and `header_size'.
12969 (enum sound_attr): Add SOUND_DATA.
12970 (current_sound, current_sound_device): Variables renamed from
12971 sound_file and sound_device.
12972 (parse_sound): Parse :data.
12973 (parse_sound): Handle sound data in strings.
12974 (find_sound_type): Function renamed from find_sound_file_type.
12975 (wav_init, au_init): Fail if sound's header_size is smaller than
12976 needed header size.
12977 (wav_play, au_play): Play sounds from string data.
12978
12979 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
12980
12981 * lisp.h: Add prototype for allocate_string_data.
12982
12983 * alloc.c (Fgarbage_collect): Return number of live and free strings.
12984
12985 * alloc.c (mark_buffer): Remove code in #if 0.
12986 (gc_sweep): Ditto.
12987 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
12988 (strings_consed): New variable.
12989 (allocate_string): Set it.
12990 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
12991 (Fmemory_use_counts): Return strings_consed. Use Flist.
12992
12993 * alloc.c: General cleanup in comments etc. Remove conditional
12994 compilation for `standalone'.
12995
12996 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
12997
12998 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
12999 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
13000 (DONT_COPY_FLAG): Removed.
13001 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
13002 (struct sdata, struct sblock): New
13003 (struct string_block): Rewritten.
13004 (STRINGS_IN_STRING_BLOCK): New macro.
13005 (oldest_sblock, current_sblock, total_strings, total_free_strings)
13006 (large_sblocks, string_blocks, string_free_list): New variables.
13007 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
13008 (init_strings): Rewritten.
13009 (allocate_string, allocate_string_data, compact_small_strings)
13010 (free_large_strings, sweep_strings): New functions.
13011 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
13012 (struct string_block_head, current_string_block)
13013 (first_string_block, large_string_blocks, STRING_FULLSIZE)
13014 (STRING_PAD): Removed.
13015 (make_uninit_multibyte_string, make_pure_string): Rewritten.
13016 (Fgarbage_collect): Don't set mark bit in large strings.
13017 (mark_object): Mark strings differently. Mark symbol names
13018 differently.
13019 (survives_gc_p): Test marked strings differently.
13020 (gc_sweep): Sweep strings differently, unmark strings in
13021 symbol names.
13022 (compact_strings): Removed.
13023
13024 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
13025
13026 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
13027 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
13028
13029 2000-01-04 Kenichi Handa <handa@etl.go.jp>
13030
13031 * fileio.c (Finsert_file_contents): Signal error if visiting file
13032 in a non-empty buffer.
13033
13034 * term.c (encode_terminal_code): Fix the previous change.
13035
13036 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13037
13038 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
13039 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
13040
13041 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
13042
13043 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13044
13045 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
13046 need to test for MSDOS frames.
13047
13048 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13049
13050 * dosfns.c (unspecified_colors): Remove.
13051 (msdos_stdcolor_idx): Use global variables unspecified_fg and
13052 unspecified_bg.
13053 (msdos_stdcolor_name): Return strings for unspecified fore- and
13054 back-ground colors.
13055
13056 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
13057 (syms_of_xfaces): Remove their staticpro's.
13058 (tty_color_name): Return Lisp strings for unspecified fore- and
13059 back-ground colors.
13060 (Finternal_set_lisp_face_attribute): Remove the special treatment
13061 for Qunspecified_{f,b}g.
13062 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
13063
13064 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13065
13066 * xdisp.c (reseat_at_next_visible_line_start): Position before
13067 newline only if ending up on a newline.
13068 (next_element_from_ellipsis): Return success. Handle case of
13069 displaying no ellipsis. Fix case of ellipsis defined in display table.
13070 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
13071 returns 0.
13072
13073 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13074
13075 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
13076 (Fcolor_supported_p): Renamed from face-color-supported-p.
13077
13078 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13079
13080 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
13081 list of colors renamed to tty-defined-color-alist.
13082 (tty_color_name): Pass the frame to tty-color-by-index.
13083 (realize_tty_face): tty-color-alist is now a function which
13084 accepts the frame as argument.
13085
13086 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
13087
13088 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13089
13090 * term.c (insert_glyphs): Pass glyph, not &glyph, to
13091 encode_terminal_code.
13092
13093 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13094
13095 * dispnew.c (mode_line_string): Support termcap frames as well.
13096
13097 2000-01-01 Gerd Moellmann <gerd@gnu.org>
13098
13099 * syntax.c (Fforward_word): Undo previous change.
13100
13101 * editfns.c (Fconstrain_to_field): Don't constrain if
13102 inhibit-field-text-motion is non-nil.
13103 (Fline_beginning_position): Undo previous change.
13104 (Fline_end_position): Ditto.
13105
13106 * syntax.c (Fforward_word): Notice field boundaries only if
13107 inhibit-field-text-motion is nil.
13108
13109 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
13110
13111 * editfns.c (Vinhibit_field_text_motion): New variable.
13112 (inhibit-field-text-motion): New DEFVAR_LISP.
13113 (Fline_beginning_position, Fline_end_position): Notice field
13114 boundaries only if inhibit-field-text-motion is nil.
13115
13116 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
13117 All calls adjusted.
13118 (x_build_heuristic_mask): Likewise.
13119 (xbm_load_image_from_file): Change error output.
13120 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
13121 (gif_load, gs_load, x_kill_gs_process): Ditto.
13122
13123 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
13124 color indices when accessing raster pixels.
13125 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
13126 one of :file or :data.
13127 (enum pbm_keyword_index): Add PBM_DATA.
13128 (pbm_format): Add :data.
13129 (pbm_image_p): Allow either :file or :data.
13130 (pbm_read_file): New function.
13131 (pbm_scan_number): Rewritten to read from string.
13132 (pbm_load): Support :data.
13133
13134 See ChangeLog.8 for earlier changes.
13135
13136 ;; Local Variables:
13137 ;; coding: iso-2022-7bit
13138 ;; End:
13139
13140 Copyright (C) 2001 Free Software Foundation, Inc.
13141 Copying and distribution of this file, with or without modification,
13142 are permitted provided the copyright notice and this notice are preserved.