Avoid (most) uses of XCAR/XCDR as lvalues, for flexibility in experimenting
[bpt/emacs.git] / src / ChangeLog
1 2001-10-16 Ken Raeburn <raeburn@gnu.org>
2
3 Avoid the assumption that car and cdr slots of cons cells are
4 addressable lvalues; this allows for easier experimentation with
5 other lisp implementations that may not permit such accesses for
6 various reasons. Not quite complete -- buffer.c still needs some
7 work, and w32/mac files need rechecking -- so compile-time
8 enforcement is left disabled for now.
9
10 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
11 gcc with a union-based Lisp object rep. Redefine as no-op for
12 now.
13 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
14 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
15 (XSETCAR, XSETCDR): New macros.
16 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
17 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
18 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
19 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
20 XSETCDR.
21 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
22 * buffer.c (record_buffer, Fbury_buffer,
23 swap_out_buffer_local_variables, recenter_overlay_lists,
24 Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
25 fields of a cons cell respectively.
26 * callint.c (quotify_args, Fcall_interactively): Likewise.
27 * ccl.c (Fregister_code_conversion_map): Likewise.
28 * coding.c (detect_coding_system): Likewise.
29 * composite.c (get_composition_id, make_composition_value_copy):
30 Likewise.
31 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding,
32 swap_in_symval_forwarding, set_internal, Fset_default,
33 Fmake_variable_buffer_local, Fmake_local_variable,
34 Fmake_variable_frame_local): Likewise.
35 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
36 * keymap.c (Fset_keymap_parent, store_in_keymap,
37 accessible_keymaps_1, where_is_internal_2, Fcopy_keymap):
38 Likewise.
39 * minibuf.c (get_minibuffer): Likewise.
40 * search.c (Fmatch_data): Likewise.
41 * textprop.c (extend_property_ranges): Likewise.
42 * undo.c (record_insert, Fundo_boundary, truncate_undo_list):
43 Likewise.
44 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
45 Likewise.
46 * w32term.c (x_delete_display): Likewise.
47 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
48 Likewise.
49 * xterm.c (x_list_fonts, x_load_font, x_delete_display):
50 Likewise.
51 * doc.c (store_function_docstring): Use XSETCARFASTINT.
52 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and
53 XSETCDRFASTINT.
54 (Fread_file_name): Use XSETCAR.
55 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
56 CHECK_NUMBER_CDR.
57 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
58 * frame.c (Fmake_terminal_frame): Use XSETCDR.
59 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
60 CHECK_NUMBER_CDR.
61 * keyboard.c (read_char): Alter list traversal to avoid taking the
62 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
63 (parse_menu_item): Use XSETCAR and XSETCDR.
64 (reach_char_x_menu_prompt): Use XSETCAR.
65 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
66 (Fcommand_execute): Use XSETCDR.
67 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
68 (openp): Change list traversal to avoid using XCAR as lvalue.
69 (read_list): Use XSETCDR.
70 * process.c (wait_reading_process_input): Change wait_for_cell
71 handling to avoid taking addresses of cons cell slots.
72 * xselect.c (x_own_selection, x_handle_selection_clear,
73 x_clear_frame_selections): Use XSETCDR.
74 (wait_for_property_change): Use XSETCARFASTINT and
75 XSETCDRFASTINT.
76 (x_handle_property_notify, x_get_foreign_selection,
77 x_handle_selection_notify): Use XSETCAR.
78
79 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
80
81 * buffer.c: Put doc strings in comments.
82
83 * sound.c: Include <sys/ioctl.h> also on systems without
84 <soundcard.h>.
85
86 2001-10-15 Sam Steingold <sds@gnu.org>
87
88 * fns.c (Vafter_load_alist): Declare extern (w32 build problem).
89
90 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
91
92 * process.c (process-inherit-coding-system-flag,
93 get-buffer-process): Do not confuse make-docfile with doc strings
94 in comment.
95
96 * editfns.c (Fchar_to_string): Make doc string consistent with
97 arguments.
98 Put doc strings in comments.
99
100 * abbrev.c, minibuf.c: Put doc strings in comments.
101
102 2001-10-15 Gerd Moellmann <gerd@gnu.org>
103
104 * window.c (window_loop): Don't check for Fother_buffer returning
105 nil.
106
107 * window.c (select_window_1): Unfreeze window start. Remove a
108 doubled test for WINDOW being live.
109
110 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
111
112 * fns.c (Fmapconcat): Fix typo in a doc string.
113
114 * dispnew.c (Fsleep_for): Fix typo in a doc string.
115
116 2001-10-15 Gerd Moellmann <gerd@gnu.org>
117
118 * xterm.c (x_draw_glyph_string): Restore clipping after
119 drawing box.
120
121 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
122
123 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc
124 string.
125
126 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
127
128 * indent.c (skip_invisible): Use new retval of
129 TEXT_PROP_MEANS_INVISIBLE.
130
131 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
132 If a parent is reached and noinherit is set, exit immediately.
133 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
134
135 * s/ms-w32.h (EXEC_SUFFIXES):
136 * s/msdos.h (EXEC_SUFFIXES):
137 * process.h (EXEC_SUFFIXES): Remove.
138
139 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
140 (decode_suffixes): Remove.
141
142 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
143 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
144 (invisible_ellipsis_p): Remove.
145
146 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
147 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
148 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
149 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
150 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
151
152 2001-10-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
153
154 * lisp.h (Ftop_level): Add prototype.
155
156 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
157 (XTread_socket): Improve style of comments to follow other
158 comments.
159
160 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
161 is already prototyped in included lisp.h).
162
163 * frame.c (Fset_mouse_position): Improve style of comment to
164 follow other comments.
165 (Fset_mouse_pixel_position): Improve style of comment to follow
166 other comments.
167 (Fmake_frame_visible): Doc fix and typo in comment.
168 (Fmake_frame_invisible): Doc fix and typo in comment.
169 (Ficonify_frame): Fix typo in comment.
170
171 2001-10-14 Gerd Moellmann <gerd@gnu.org>
172
173 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
174 * term.c, alloc.c: Put doc strings in comments.
175
176 2001-10-13 Gerd Moellmann <gerd@gnu.org>
177
178 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
179 Provide definitions for doc strings in comments.
180
181 * fns.c: Put doc strings in comments.
182
183 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
184
185 * dired.c (file_name_completion): Ignore a candidate directory if
186 it matches an element in completion-ignored-extensions that ends
187 in a slash.
188 (syms_of_dired) <completion-ignored-extensions>: Mention the above
189 feature in the doc string.
190 (Ffile_name_completion): Ditto.
191
192 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
193
194 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
195
196 * xfns.c (syms_of_xfns): Update calls to Fprovide.
197
198 * lisp.h (Fprovide): Update prototype.
199 (Ffeaturep, invisible_p): Remove.
200
201 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
202 (DOLIST, LOOP_PROPVAL): New macros.
203 (invisible_p, invisible_ellipsis_p): Use them.
204 (invisible_noellipsis_p): New function.
205 (syms_of_xdisp): Use empty_string.
206
207 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
208
209 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
210 (syms_of_lread) <Vafter_load_alist>: Update docstring.
211
212 * print.c (Fwith_output_to_temp_buffer): Align with
213 internal_with_output_to_temp_buffer.
214 (print_preprocess): Use traverse_intervals_noorder.
215 (print_object): Update call to traverse_intervals.
216
217 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
218 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
219
220 * intervals.c (traverse_intervals_noorder): New function.
221 (search_for_interval, count_intervals): Use it.
222 (traverse_intervals): Use less stack space and drop `depth' arg.
223
224 * fns.c (Ffeaturep): Add new `subfeature' arg.
225 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
226 (Qsubfeatures): New var.
227 (syms_of_fns): Initialize it.
228
229 * keymap.c (Fkey_description): Use empty_string.
230 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
231 (syms_of_keymap): Setup inheritance between maps.
232 Don't export Sdescribe_bindings_internal any more.
233
234 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
235
236 2001-10-12 Gerd Moellmann <gerd@gnu.org>
237
238 * xterm.c (notice_overwritten_cursor): Renamed from
239 note_overwritten_text_cursor. Rewritten to take glyph widths into
240 account.
241
242 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
243
244 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
245 multi-line strings without a trailing "\n\".
246
247 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
248
249 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
250 defined.
251
252 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
253
254 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
255
256 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
257 * w32proc.c (sys_spawnve):
258 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
259 * w32.c (check_windows_init_file):
260 * sound.c (Fplay_sound):
261 * emacs.c (init_cmdargs):
262 * process.c (Fstart_process): Update calls to openp.
263
264 * callproc.c (Vexec_suffixes): New var.
265 (Fcall_process): Update call to openp.
266 (decode_suffixes): New function.
267 (syms_of_callproc): Init exec-suffixes.
268
269 * lread.c (Vload_suffixes, default_suffixes): New vars.
270 (openp): Take a lisp list of suffixes.
271 Check for file-name-handlers even if the file was absolute already.
272 (syms_of_lread): Declare load-suffixes.
273 (Fload): Fix up call to openp.
274 Don't bother checking for file-name-handler at the very beginning.
275
276 * keymap.h (Fcopy_keymap): Don't export.
277
278 * lisp.h (empty_string): Declare.
279 (Vload_suffixes, Vexec_suffixes): Declare.
280 (openp): Update prototype.
281
282 * emacs.c (empty_string): New var.
283 (syms_of_emacs): Initialize it.
284
285 * search.c (wordify): Use it.
286
287 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
288 selected window if it's not displayed there. Handle the case
289 when the window is dedicated.
290 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
291
292 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
293
294 * syntax.h (struct gl_state_s): Change the meaning of b_property.
295 Remove left_ok and right_ok.
296 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
297 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
298 new meaning of b_property.
299
300 * syntax.c (update_syntax_table): Simplify.
301 (Fforward_comment): Don't skip quoted chars when going backward.
302
303 2001-10-11 Gerd Moellmann <gerd@gnu.org>
304
305 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
306 in case I is of some unsigned type, in which case
307 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
308 comparison becomes bogus.
309
310 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
311 (Fuser_full_name): Fix bug treating a float as a fixnum.
312
313 * data.c (Fstring_to_number): Use make_fixnum_or_float.
314
315 * lisp.h (make_fixnum_or_float): New macro.
316
317 * lisp.h (circular_list_error): Add prototype.
318
319 * data.c (Qcircular_list): New variable.
320 (circular_list_error): New function.
321 (syms_of_data): Initialize it Qcircular_list.
322
323 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
324
325 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
326 casefiddle.c, buffer.c: Include keymap.h.
327
328 2001-10-10 Gerd Moellmann <gerd@gnu.org>
329
330 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
331 options. From Dave Love <d.love@dl.ac.uk>.
332
333 2001-10-09 Gerd Moellmann <gerd@gnu.org>
334
335 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
336 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
337
338 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
339 unsigned char.
340 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
341
342 2001-10-08 Andrew Innes <andrewi@gnu.org>
343
344 * lisp.h [max]: Undef min and max before redefining them.
345
346 * w32gui.h: Do not undef min and max.
347
348 * w32heap.h: Do not undef min and max.
349
350 * s/ms-w32.h: Do not undef min and max.
351
352 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
353
354 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
355
356 2001-10-08 Sam Steingold <sds@gnu.org>
357
358 * keymap.c (current-active-maps): Quote newlines (compilation error).
359
360 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
361
362 * Makefile.in (lisp, shortlisp): Replace bindings.el with
363 bindings.elc, since otherwise doc strings in bindings.el get wrong
364 offsets in etc/DOC.
365
366 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
367
368 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
369
370 * keyboard.h (map_prompt): Remove.
371
372 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
373 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
374
375 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
376
377 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
378
379 * keyboard.c (map_prompt): Remove.
380 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
381 Use Fkeymap_prompt.
382
383 * keymap.h: New file. Extracted from lisp.h.
384
385 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
386 (accessible_keymaps_1): New function.
387 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
388 (Fwhere_is_internal): Use Fcurrent_active_maps.
389 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
390 Insert in current buffer rather than standard-output.
391 Don't call `help-mode'. Export to elisp.
392 (describe_buffer_bindings): New wrapper.
393 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
394 and Sdescribe_buffer_bindings.
395
396 2001-10-08 Gerd Moellmann <gerd@gnu.org>
397
398 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
399 Remove code setting signal handler.
400
401 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
402 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
403
404 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
405
406 * keyboard.c: Don't define min/max.
407
408 2001-10-08 Gerd Moellmann <gerd@gnu.org>
409
410 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
411 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
412 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
413 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
414 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
415 Don't define min/max.
416
417 * lisp.h (min, max): New macros.
418
419 * puresize.h (BASE_PURESIZE): Increase to 725000.
420
421 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
422
423 * xfaces.c (free_frame_menubar): Add prototype.
424
425 * lisp.h (init_window): Add prototype.
426
427 * editfns.c: Include ctype.h.
428
429 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
430 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
431 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
432 variable `sb'.
433
434 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
435 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
436 `popup_activated_flag' and `title'.
437
438 * doc.c (Fdocumentation_property): Fix typo in a doc string.
439
440 * emacs.c (main): Remove extra `;'.
441
442 * atimer.h (struct atimer): Fix typos in a comment.
443
444 * atimer.c: Fix typo.
445
446 * Makefile.in: Fix typo.
447
448 * README: Remove obsolete part mentioning removed VMS file.
449
450 2001-10-07 Miles Bader <miles@gnu.org>
451
452 * Makefile.in (lisp, shortlisp): Add `button.elc'.
453
454 2001-10-07 Ken Raeburn <raeburn@gnu.org>
455
456 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
457 Lisp_Object.
458
459 * lisp.h (Ffield_end): Declare.
460
461 2001-10-07 Gerd Moellmann <gerd@gnu.org>
462
463 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
464
465 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
466
467 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
468
469 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
470
471 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
472 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
473
474 * alloc.c (inhibit_garbage_collection): Simplify.
475 (Fmemory_use_counts): Ditto.
476
477 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
478 (syms_of_data): DEFVAR_INT most-positive-fixnum and
479 most-negative-fixnum.
480
481 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
482 (FIXNUM_OVERFLOW_P): New macros.
483
484 2001-10-06 Miles Bader <miles@gnu.org>
485
486 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
487 scroll_bar_bottom_shadow_pixel fields.
488 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
489 for the shadows, and tell the toolkit about them if we succeed.
490 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
491 Free scroll-bar shadow colors.
492 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
493 Free scroll-bar shadow colors when the background color changes.
494 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
495 Initialize scroll-bar shadow-color fields.
496
497 2001-10-05 Gerd Moellmann <gerd@gnu.org>
498
499 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
500
501 2001-10-05 Miles Bader <miles@gnu.org>
502
503 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
504 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
505 New functions (were in simple.el).
506 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
507 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
508 (syms_of_minibuf): Initialize them.
509
510 2001-10-05 Gerd Moellmann <gerd@gnu.org>
511
512 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
513 (tiff_load): Install them as error and warning handler.
514
515 2001-10-04 Andrew Innes <andrewi@gnu.org>
516
517 * w32fns.c (x_to_w32_color): Fix argument to alloca.
518 (w32_load_system_font): Don't believe what GetLanguageFontInfo
519 says; query codepage info directly to determine if font is double byte.
520 (x_to_w32_charset): Handle private format for unknown charsets.
521 Handle wildcards in charset spec, by ignoring them.
522 (w32_codepage_for_font): Fix argument to alloca. Don't remove
523 "*-" prefix from charset.
524 (x_to_w32_font): Enlarge remainder array for safety. Specifically
525 handle the truncated font spec form constructed by font_list_1, so
526 that we correctly identify the charset fields. Don't remove "*-"
527 prefix from charset.
528 (w32_list_synthesized_fonts): Fix argument to alloca.
529
530 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
531
532 * window.h (MINI_WINDOW_P): Use NILP.
533
534 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
535
536 * termhooks.h (struct input_event): Use proper type for `kind'.
537
538 2001-10-04 Gerd Moellmann <gerd@gnu.org>
539
540 This handles unknown keysyms better than before. For example,
541 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
542 Emacs formerly completely ignored F5. With the change, it derives
543 a key symbol from the name of the X keysym, `ccaron' in this case.
544 Reported by Martin Buchholz.
545
546 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
547 unknown keysyms.
548
549 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
550 that EVENT->code isn't a function key, use the keysym's name.
551
552 2001-10-04 Gerd Moellmann <gerd@gnu.org>
553
554 FOREACH is a macro that should make it easier to loop over Lisp
555 lists with checks for cycles and proper lists.
556
557 * lisp.h (LIST_END_P, FOREACH): New macros.
558
559 2001-10-04 Gerd Moellmann <gerd@gnu.org>
560
561 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
562 called for a lost connection. Prevent dumping core in this case.
563 Instead print the X error, and exit. On user request.
564
565 * xterm.c (error_msg): New variable.
566 (x_fatal_error_signal): New function.
567 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
568 as fatal_error_signal_hook around the call to XtCloseDisplay.
569
570 * emacs.c (fatal_error_signal_hook): New variable.
571 (fatal_error_signal): Call that function.
572
573 2001-10-04 Gerd Moellmann <gerd@gnu.org>
574
575 With this, Emacs prints how much pure storage it will
576 approximately need in case pure storage overflows while dumping.
577
578 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
579 New variables.
580 (init_alloc_once): Initialize new variables.
581 (PURE_POINTER_P): Use new variables.
582 (pure_alloc): If pure storage overflows, allocate from the heap.
583 (check_pure_size): New function.
584 (Fgarbage_collect): Don't GC if pure storage has overflowed.
585
586 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
587 (check_pure_size): Add prototype.
588
589 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
590
591 2001-10-04 Gerd Moellmann <gerd@gnu.org>
592
593 This adds a post-gc-hook that's run with GC inhibited.
594 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
595
596 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
597 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
598 (Fgarbage_collect): Run post-gc-hook.
599
600 2001-10-04 Gerd Moellmann <gerd@gnu.org>
601
602 This adds `defvaralias' and `indirect-variable'. Changes not
603 directly related to this feature are there to gain the same
604 performance again as before variable aliases.
605
606 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
607 code to get and set symbol values, to take defvaralias into account.
608
609 (Note: the new `constant' bit-flag in symbols would make it
610 possible to define arbitrary read-only variables, e.g. with
611 `defconst'.)
612
613 Documentation is in lispref/variables.texi. Added to NEWS.
614
615 * lisp.h (enum symbol_interned): New enumeration.
616 (struct Lisp_Symbol): Remove member `obarray', add
617 `indirect_variable', `constant', and `interned'.
618 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
619 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
620 (indirect_variable): Add prototype.
621
622 * print.c (print_preprocess, print_object): Test internedness of
623 symbols differently.
624
625 * lread.c (Fintern, Funintern): Set symbol's interned and constant
626 bit-fields.
627 (init_obarray): Likewise for t and nil.
628
629 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
630 (Fdefvaralias): New function.
631 (specbind): Simplify the test if symbol is a constant.
632 (syms_of_eval): Defsubr Fdefvaralias.
633
634 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
635 (Qcyclic_variable_indirection): New variable.
636 (Fkeywordp): Check for internedness differently.
637 (Fmakunbound): Simplify the test if symbol is a constant.
638 (indirect_variable, Findirect_variable): New functions.
639 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
640 aliased symbol.
641 (let_shadows_buffer_binding_p): Check for variable aliases.
642 (set_internal): Simplify the test if SYMBOL is a constant.
643 If SYMBOL has a buffer-local value and is an alias, use the aliased
644 symbol instead.
645 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
646 Sindirect_variable.
647
648 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
649 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
650 set directly.
651
652 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
653
654 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
655 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
656 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
657
658 2001-10-04 Gerd Moellmann <gerd@gnu.org>
659
660 * Branch for 21.1.
661
662 2001-10-03 Miles Bader <miles@gnu.org>
663
664 * callproc.c (syms_of_callproc): Explicitly state in the
665 documentation for `process-environment' that earlier entries take
666 precedence over later ones.
667
668 2001-10-02 Miles Bader <miles@gnu.org>
669
670 * textprop.c (Fnext_char_property_change)
671 (Fprevious_char_property_change): Remove reference to non-existant
672 argument OBJECT from doc-string.
673
674 2001-10-01 Gerd Moellmann <gerd@gnu.org>
675
676 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
677 (try_window_id): Skip back over lines ending in a newline from a
678 string.
679
680 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
681 New bit flag
682
683 2001-10-01 Richard M. Stallman <rms@gnu.org>
684
685 * search.c (Freplace_match): Doc fix.
686
687 2001-09-28 Andrew Innes <andrewi@gnu.org>
688
689 * w32menu.c (set_frame_menubar): Take into account that
690 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
691 <raeburn@gnu.org>.
692
693 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
694
695 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
696
697 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
698
699 * s/gnu-linux.h: Fix a typo in comment.
700
701 2001-09-28 Andreas Schwab <schwab@suse.de>
702
703 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
704 nocombreloc, in case -z combreloc is the default.
705
706 2001-09-28 Gerd Moellmann <gerd@gnu.org>
707
708 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
709 really going on here.
710
711 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
712
713 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
714
715 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
716
717 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
718 utf-8, menu-bar, and latin-N.
719 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
720 unconditionally now.
721 (lisp): Add latin-N, since they are preloaded.
722
723 2001-09-27 Gerd Moellmann <gerd@gnu.org>
724
725 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
726 to the left. Some cleanup.
727
728 * xdisp.c (display_mode_element): One more case where a string's
729 multibyteness should be used for display.
730
731 2001-09-26 Gerd Moellmann <gerd@gnu.org>
732
733 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
734 reading at EOF.
735
736 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
737 of the only temporarily set echoing flag for deciding when
738 the cancel echoing.
739
740 * keyboard.c (echo_kboard): Make externally visible.
741
742 * lisp.h (echo_kboard): Declare extern.
743
744 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
745 fonts_changed_p if we need larger matrices due to vscrolling.
746 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
747 this round of redisplay if make_cursor_line_fully_visible fails.
748 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
749 (try_cursor_movement, try_scrolling): Use them instead of integers.
750
751 * dispextern.h (required_matrix_width, required_matrix_height):
752 Add prototypes.
753
754 * dispnew.c (required_matrix_width, required_matrix_height):
755 New functions.
756 (allocate_matrices_for_window_redisplay)
757 (allocate_matrices_for_frame_redisplay: Use them.
758 Remove parameters CH_DIM.
759
760 * xdisp.c (display_mode_lines): Temporarily set selected_frame
761 and selected_window to the frame of the window whose mode-lines
762 are displayed, and to the window itself.
763 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
764 here.
765
766 2001-09-25 Gerd Moellmann <gerd@gnu.org>
767
768 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
769 the image cache under us.
770
771 * xdisp.c (display_mode_element): If the mode element is a symbol
772 with a string value, use that string's multibyteness for displaying.
773
774 * keyboard.c (read_char): Don't clear a message for a switch-frame
775 event. From Stefan Monnier <monnier@cs.yale.edu>.
776
777 * xterm.c (fast_find_position) [0]: Add a presumably more correct
778 version for after 21.1.
779
780 * xdisp.c (row_containing_pos): Make externally visible.
781
782 * dispextern.h (row_containing_pos): Add prototype.
783
784 * process.c (send_process): Disable composition if from_byte < 0.
785 From Kenichi Handa <handa@etl.go.jp>.
786
787 2001-09-24 Gerd Moellmann <gerd@gnu.org>
788
789 * xterm.c (refreshicon): Function removed.
790
791 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
792
793 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
794
795 * xterm.c (toplevel): Remove includes in #if 0.
796
797 * process.c (sigchld_handler) [LINUX]: Don't return from
798 the signal handler at the end of the loop.
799
800 2001-09-21 Gerd Moellmann <gerd@gnu.org>
801
802 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
803 Terminate only if kill returns -1, and errno is ESRCH.
804
805 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
806
807 * Makefile.in (shortlisp): Add ../lisp/env.elc.
808
809 2001-09-20 Gerd Moellmann <gerd@gnu.org>
810
811 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
812 since this function can be called during GC.
813
814 * callproc.c (Fcall_process): Handle errors from pipe(2).
815 (child_setup): Delete code in #ifdef vipc.
816
817 2001-09-19 Gerd Moellmann <gerd@gnu.org>
818
819 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
820 (display_mode_element): Display the string from decode_mode_spec
821 depending on its multibyteness.
822
823 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
824
825 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
826
827 2001-09-18 Gerd Moellmann <gerd@gnu.org>
828
829 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
830 recursive_edit_unwind.
831 (recursive_edit_unwind): Set kboard state according to
832 SINGLE-KBOARD.
833
834 * buffer.c (modify_overlay): Don't do nothing if START == END;
835 This can still be a modification, for example when an overlay has
836 a before-string or after-string.
837 (Fdelete_overlay): Prevent redisplay optimizations when deleting
838 an overlay with before-string or after-string.
839
840 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
841 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
842
843 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
844 first_unchanged_at_end_row is in front of
845 last_unchanged_at_beg_row. This code should be removed after the
846 release of 21.1.
847
848 2001-09-17 Gerd Moellmann <gerd@gnu.org>
849
850 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
851 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
852
853 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
854 versions >= 2.95.
855
856 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
857
858 * dired.c (Ffile_attributes): Doc fix.
859
860 2001-09-14 Gerd Moellmann <gerd@gnu.org>
861
862 * fileio.c (Ffile_symlink_p): Fix last change.
863
864 * filelock.c (current_lock_owner): Fix last change.
865
866 2001-09-13 Gerd Moellmann <gerd@gnu.org>
867
868 * filelock.c (current_lock_owner): If readlink returns ERANGE,
869 take that to mean that the buffer is too small.
870
871 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
872 that to mean that the buffer is too small.
873
874 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
875 current buffer's multibyteness when discarding the iterator's
876 stack.
877
878 * xfns.c (Fx_window_property): Handle case that property gets
879 deleted between the two calls to XGetWindowProperty.
880
881 2001-09-11 Gerd Moellmann <gerd@gnu.org>
882
883 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
884
885 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
886 in addition to read-only.
887
888 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
889 to t in addition to read-only.
890
891 * lisp.h (Qinhibit_modification_hooks): Declare.
892
893 * insdel.c (Qinhibit_modification_hooks): New variable.
894 (syms_of_insdel): Initialize and staticpro it.
895
896 * textprop.c (verify_interval_modification): Don't run
897 modification-hooks if inhibit_modification_hooks.
898
899 * dispnew.c (set_window_cursor_after_update): Fix code
900 finding glyph row containing cursor when cursor_in_echo_area
901 is >= 0.
902
903 * xdisp.c (init_from_display_pos): Put some code in #if 0.
904 (add_to_log): Use bcopy instead of strcpy.
905 (init_from_display_pos): Use an explicit loop over bytes in
906 overlay strings instead of calling index.
907
908 2001-09-10 Gerd Moellmann <gerd@gnu.org>
909
910 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
911
912 * dispnew.c (direct_output_for_insert): Don't change IT's
913 stop_charpos to something in front of its current position.
914
915 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
916 `format'.
917
918 2001-09-10 Richard M. Stallman <rms@gnu.org>
919
920 * frame.c (Fmouse_position): Doc fix.
921
922 2001-09-07 Gerd Moellmann <gerd@gnu.org>
923
924 * xdisp.c (init_from_display_pos): Don't compare the result
925 of calling index with NULL.
926
927 2001-09-06 Gerd Moellmann <gerd@gnu.org>
928
929 * xfns.c (x_set_background_color): Don't change the colors
930 of the X window of scroll bar widgets.
931
932 2001-09-05 Andrew Innes <andrewi@gnu.org>
933
934 * w32fns.c (w32_createwindow): Undo last change.
935
936 2001-09-05 Gerd Moellmann <gerd@gnu.org>
937
938 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
939
940 * xdisp.c (string_buffer_position): Use *single_char_property*
941 functions instead of the *single_property* functions.
942
943 2001-09-04 Andrew Innes <andrewi@gnu.org>
944
945 * w32term.c (w32_read_socket): Add more information to debugging
946 output.
947
948 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
949 from Emacs frames, so that calls to GetClipBox in w32term.c
950 correctly report when part of a frame is visible (including
951 scrollbars, etc). This prevents repeated redrawing of frames when
952 only a scrollbar is visible.
953 (w32_wnd_proc): Add more frame information to debugging output.
954
955 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
956
957 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
958
959 2001-09-03 Gerd Moellmann <gerd@gnu.org>
960
961 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
962 help-echo for a string which doesn't have help-echo itself, use
963 get-char-property to obtain the help-echo from the string's buffer
964 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
965 have mouse-face, look ``under'' the string for mouse-face from an
966 overlay.
967 (fast_find_position): Add parameter STOP. In the final row, stop
968 before glyphs having STOP as object. Don't consider glyphs that
969 are not from a buffer.
970
971 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
972
973 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
974
975 * fns.c (Fmd5): Doc fix.
976
977 2001-08-31 Gerd Moellmann <gerd@gnu.org>
978
979 * composite.c (update_compositions): Do nothing if
980 inhibit-modification-hooks is set.
981
982 2001-08-30 Gerd Moellmann <gerd@gnu.org>
983
984 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
985 and check_message_stack if terminating abnormally. We want
986 glyph matrices etc. in a core dump.
987
988 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
989 (syms_of_xdisp): Initialize them.
990 (handle_single_display_prop): Don't change point, bind `object',
991 `position', and `buffer-position' instead to the object having the
992 `display' property, position in the object and position in the buffer.
993
994 * fileio.c (Finsert_file_contents): Don't change the multibyteness
995 of the buffer if REPLACE is non-nil.
996
997 2001-08-29 Gerd Moellmann <gerd@gnu.org>
998
999 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
1000
1001 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
1002
1003 * w32term.c (x_set_glyph_string_background_width)
1004 (show_mouse_face): Track the last changes in xterm.c.
1005
1006 2001-08-28 Gerd Moellmann <gerd@gnu.org>
1007
1008 * xterm.c (x_set_glyph_string_background_width): Set the glyph
1009 string's background width so that multi-line mouse-face is drawn
1010 to the right edge of the window.
1011 (show_mouse_face): Set the row's mouse_face_p flag after drawing
1012 glyphs.
1013
1014 * dispnew.c (direct_output_for_insert): Set updated_area
1015 before inserting/writing glyphs.
1016
1017 * xdisp.c (display_mode_element): Use string_byte_to_char to
1018 determine character positions in strings, use chars_in_text
1019 instead of strwidth.
1020 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
1021 a matrix as parameter; this is easier to use from GDB.
1022
1023 2001-08-28 Miles Bader <miles@gnu.org>
1024
1025 * textprop.c (Fprevious_single_char_property_change)
1026 (Fnext_single_char_property_change): Doc fixes.
1027
1028 2001-08-27 Gerd Moellmann <gerd@gnu.org>
1029
1030 * fileio.c (Finsert_file_contents): Allocate, restore, and
1031 free composition data in the case of REPLACE not being nil.
1032
1033 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
1034 there exist overlay strings with newlines at POS.
1035 (text_outside_line_unchanged_p): Return 0 if changes start at
1036 START and overlays exist at START. Likewise for END.
1037 (try_window_id): Give up if init_to_row_end returns 0.
1038
1039 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
1040 unconditionally.
1041
1042 2001-08-24 Gerd Moellmann <gerd@gnu.org>
1043
1044 * keymap.c (access_keymap): Return the cdr of the binding of
1045 a generic character instead of its definition (KEY . BINDING).
1046
1047 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
1048 to 0 also in the REPLACE case.
1049
1050 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
1051
1052 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
1053 open to determine whether file is readable (as for DOS_NT).
1054
1055 2001-08-23 Gerd Moellmann <gerd@gnu.org>
1056
1057 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
1058 coding.type is coding_type_no_conversion or coding_type_raw_text,
1059 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
1060 non-nil instead of just setting enable_multibyte_characters in the
1061 buffer to nil.
1062
1063 2001-08-22 Gerd Moellmann <gerd@gnu.org>
1064
1065 * dispextern.h (struct face_cache): Add member
1066 menu_face_changed_p.
1067
1068 * xfaces.c (menu_face_changed_default): New variable.
1069 (menu_face_changed_count): Variable removed.
1070 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
1071 the menu_face_changed_default flag, otherwise set the FRAME's
1072 menu_face_changed_p flag if the `menu' face has been changed.
1073 Prevent calling set_font_frame_param if FRAME is t.
1074 (make_face_cache): Initialize cache's menu_face_changed_p
1075 from menu_face_changed_default.
1076 (realize_basic_faces): Look into the frame's face cache to
1077 determine if the menu appearance needs updating.
1078
1079 * keymap.c (access_keymap): Fix last change to not consider
1080 IDX when it has modifiers.
1081
1082 2001-08-21 Gerd Moellmann <gerd@gnu.org>
1083
1084 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
1085 . BINDING) exists, where GENERIC-CHAR is the generic character of
1086 the charset of IDX, return BINDING unless there exists a binding
1087 for IDX itself.
1088
1089 2001-08-16 Gerd Moellmann <gerd@gnu.org>
1090
1091 * xrdb.c (SYSV): Don't define on Solaris 2.
1092 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
1093
1094 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
1095 of the screen line, not text line, containing IT's current position.
1096
1097 2001-08-15 Gerd Moellmann <gerd@gnu.org>
1098
1099 * window.c (window_scroll_pixel_based): Don't recenter if
1100 PT is partially visible in the window.
1101
1102 * xterm.c (expose_window_tree, expose_window, expose_line):
1103 Return 1 when overwriting mouse-face.
1104 (expose_frame): If mouse-face was overwritten, redo it.
1105
1106 * xfaces.c (x_update_menu_appearance): Don't call
1107 set_frame_menubar, let the next redisplay do it.
1108
1109 2001-08-14 Andrew Innes <andrewi@gnu.org>
1110
1111 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
1112 drawing glyph string.
1113
1114 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
1115
1116 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
1117 running HI-UX/MPP.
1118
1119 2001-08-14 Gerd Moellmann <gerd@gnu.org>
1120
1121 * xfaces.c (x_update_menu_appearance): Save and restore value of
1122 interrupt_input_blocked.
1123
1124 2001-08-13 Gerd Moellmann <gerd@gnu.org>
1125
1126 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
1127 a line start, move back to the line start.
1128
1129 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
1130 exactly when a mini-buffer is active.
1131
1132 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
1133 in units of 1/8 character on non window-system frames.
1134 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
1135
1136 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
1137
1138 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
1139 a doc string.
1140
1141 2001-08-09 Gerd Moellmann <gerd@gnu.org>
1142
1143 * keyboard.c (Vpre_help_message): New variable.
1144 (syms_of_keyboard): Initialize and staticpro it.
1145 (show_help_echo): Record current message before displaying a
1146 help-echo, and restore that message when clearing the help.
1147
1148 * xfns.c (x_create_im): Remove prototype.
1149
1150 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
1151
1152 * dispnew.c (adjust_glyph_matrix): Undo last change.
1153
1154 2001-08-08 Gerd Moellmann <gerd@gnu.org>
1155
1156 * dispnew.c (adjust_glyph_matrix): In the optimization for
1157 windows whose height has changed, disable partially visible lines.
1158
1159 2001-08-07 Gerd Moellmann <gerd@gnu.org>
1160
1161 * window.c (Frecenter): If ARG < 0, and on a window system
1162 frame, count in some empty lines when we can't move -ARG lines down.
1163
1164 * xdisp.c (start_display): Don't try to determine the continuation
1165 lines width if lines are truncated. It's superfluous and leads to
1166 incorrect results if POS is not visible in the window after
1167 reseating the iterator at the previous line start.
1168
1169 2001-08-06 Gerd Moellmann <gerd@gnu.org>
1170
1171 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
1172
1173 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1174
1175 * alloc.c (init_stack): Remove declaration.
1176
1177 2001-08-03 Gerd Moellmann <gerd@gnu.org>
1178
1179 * keyboard.c (read_key_sequence): Check that key is an integer
1180 before comparing it with quit_char.
1181 (add_command_key): Use larger_vector.
1182 (read_char_x_menu_prompt): Instead of converting symbol and
1183 integer events into conses (EVENT . nil), use (EVENT . disabled)
1184 which cannot be confused with valid events.
1185 (read_char): When reading from Vunread_command_events, check for
1186 events of the form (EVENT . disabled) instead of
1187 (EVENT . nil).
1188
1189 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
1190 a float, determine the max height from the frame's height.
1191
1192 2001-08-02 Gerd Moellmann <gerd@gnu.org>
1193
1194 * xdisp.c (redisplay_internal): Take message_cleared_p into
1195 account only if minibuf_level == 0.
1196
1197 2001-08-01 Gerd Moellmann <gerd@gnu.org>
1198
1199 * xdisp.c (redisplay_internal): Add a check for the last
1200 displayed message.
1201
1202 * xdisp.c (message_cleared_p): New variable.
1203 (clear_message): Set message_cleared_p when clearing the current
1204 message.
1205 (redisplay_internal): Look at message_cleared_p to capture
1206 the case that the echo area should be cleared.
1207
1208 * keyboard.c (command_loop_1): Fix spelling of
1209 resize_echo_area_exactly.
1210
1211 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
1212
1213 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
1214
1215 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
1216 current matrix when the window gets smaller.
1217
1218 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
1219
1220 * print.c (strout): Cast the character passed to insert_char to
1221 unsigned char, to avoid sign extension when it is promoted to int.
1222
1223 2001-07-31 Gerd Moellmann <gerd@gnu.org>
1224
1225 * fileio.c (Finsert_file_contents): Don't treat a return value
1226 of 0 from emacs_read as an IO error.
1227
1228 2001-07-30 Gerd Moellmann <gerd@gnu.org>
1229
1230 * keyboard.c (abs): New macro.
1231 (double_click_fuzz): New variable.
1232 (make_lispy_event): Use it to determine what makes a double-click.
1233 (syms_of_keyboard): DEFVAR_INT it.
1234
1235 * xmenu.c (set_frame_menubar): Take into account that
1236 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
1237 <raeburn@gnu.org>.
1238
1239 2001-07-27 Gerd Moellmann <gerd@gnu.org>
1240
1241 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
1242
1243 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
1244 of row's visible height.
1245
1246 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
1247 deal with the first overlay string having an image `display' property.
1248 (try_window_reusing_current_matrix, compute_line_metrics):
1249 Fix computation of row's visible height for the case that part of the
1250 row is invisible above and part of the row is at the same time
1251 invisible below the window.
1252
1253 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1254
1255 * xfns.c (x-show-tip): Doc fix.
1256
1257 * xfns.c (Vx_max_tooltip_size): New variable.
1258 (syms_of_xfns): DEFVAR_LISP it.
1259 (Fx_show_tip): Set frame's window_width to the width of the
1260 window. Use a maximum tooltip size specified by
1261 Vx_max_tooltip_size, if that has valid contents.
1262 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
1263
1264 2001-07-26 Andrew Innes <andrewi@gnu.org>
1265
1266 * w32term.c (x_display_list): New variable.
1267 (w32_term_init): Set it.
1268
1269 * w32term.h (x_display_list): New extern.
1270
1271 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1272
1273 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
1274 is non-nil, instead of when redisplaying_p is non-zero.
1275 See comment there.
1276 (mark_window_display_accurate_1): Add an assertion.
1277
1278 2001-07-25 Gerd Moellmann <gerd@gnu.org>
1279
1280 * dispextern.h (struct it): Increase size of ctl_chars to 16.
1281
1282 * xfns.c (Fx_file_dialog): Block/unblock input while processing
1283 events so that we get a chance of processing expose events.
1284
1285 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
1286
1287 2001-07-24 Gerd Moellmann <gerd@gnu.org>
1288
1289 * xfns.c (valid_image_p): Protect better against invalid image
1290 specifications. Previous code could signal an error.
1291
1292 2001-07-23 Gerd Moellmann <gerd@gnu.org>
1293
1294 * indent.c (current_column): Fix column computation in the
1295 presence of display table entries.
1296 (current_column_1, Fmove_to_column, compute_motion): Likewise.
1297
1298 * dispnew.c (adjust_glyph_matrix): In the optimization for
1299 windows whose height has changed, use the new window height
1300 to compute which rows to invalidate.
1301
1302 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
1303 (MAX_10_EXP): New macro.
1304 (Fformat): Use it.
1305
1306 * coding.c (code_convert_region): Handle the multibyte case if
1307 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
1308
1309 2001-07-20 Gerd Moellmann <gerd@gnu.org>
1310
1311 * dispextern.h (struct face): Change type of `stipple' to
1312 int; it's an ID.
1313
1314 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
1315
1316 2001-07-19 Gerd Moellmann <gerd@gnu.org>
1317
1318 * dispnew.c (update_window): Don't set the cursor at the end
1319 of the update if display update has been paused.
1320
1321 * composite.h (syms_of_composite): Renamed from syms_of_composition.
1322
1323 2001-07-18 Ken Raeburn <raeburn@gnu.org>
1324
1325 * fns.c (Fset_char_table_default): Check that a charset is defined
1326 before checking its dimension.
1327
1328 2001-07-17 Ken Raeburn <raeburn@gnu.org>
1329
1330 * coding.c (setup_coding_system): Don't do any designation based
1331 on reg_bits if charset is not yet defined.
1332
1333 * lisp.h (XVECTOR): Verify correct object type before returning a
1334 pointer, using eassert.
1335
1336 2001-07-17 Gerd Moellmann <gerd@gnu.org>
1337
1338 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
1339 Increase to 4096 because of paste problems reported on GNU/Linux.
1340
1341 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
1342
1343 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
1344
1345 2001-07-16 Gerd Moellmann <gerd@gnu.org>
1346
1347 * fileio.c (unwind_read): Function removed.
1348 (read_non_regular, read_non_regular_quit): New functions.
1349 (Finsert_file_contents): When reading from non-regular files,
1350 arrange to catch a `quit' and terminate the loop. Rearrange
1351 code so that a `quit' when reading from a regular file doesn't
1352 insert text in the buffer.
1353
1354 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
1355 Clear faces afterwards.
1356 (clear_font_table): Take a x_display_info parameter. Don't free
1357 fonts being the default font of any frame on the given display.
1358
1359 2001-07-13 Gerd Moellmann <gerd@gnu.org>
1360
1361 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
1362 instead of CHAR_STRING which can signal an error.
1363
1364 * charset.c (char_to_string_1): Extracted from char_to_string.
1365 Return -1 instead of signaling an error.
1366 (char_to_string): Use it.
1367
1368 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
1369
1370 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
1371
1372 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
1373 is t, don't try to append anything to it.
1374
1375 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
1376
1377 * dired.c (file_name_completion): Pass dp->d_name to
1378 Fstring_match, not elt, which is always nil here.
1379
1380 2001-07-12 Gerd Moellmann <gerd@gnu.org>
1381
1382 * xselect.c (x_decline_selection_request): Handle errors
1383 caused by receivers that have vanished.
1384
1385 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
1386 ignoring events on foreign windows in #if 0. Always dispatch
1387 the event after checking it with x_handle_property_notify.
1388
1389 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
1390 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
1391 TRACE macros to facilitate debugging. Add additional trace statements.
1392 (toplevel): Add prototypes for file-local functions.
1393 (x_atom_to_symbol): Remove DPYINFO parameter.
1394
1395 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
1396
1397 * w32menu.c (menubar_selection_callback, w32_menu_show):
1398 Initialize `entry' to nil.
1399 (w32_dialog_show): Remove unused `save_wv' variable.
1400 (name_is_separator): Recognize "--:foo" and "--foo-bar".
1401
1402 2001-07-11 Gerd Moellmann <gerd@gnu.org>
1403
1404 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
1405
1406 * fileio.c (unwind_read): Print a message when discarding inserted
1407 text or switching the buffer to unibyte. Change parameter.
1408 (Finsert_file_contents): Don't pass VISIT to unwind_read.
1409
1410 * fileio.c (unwind_read): New function.
1411 (Finsert_file_contents): Record it as unwind-function for
1412 the case that reading is interrupted by C-g.
1413
1414 2001-07-10 Gerd Moellmann <gerd@gnu.org>
1415
1416 * dispnew.c (update_window): Don't skip the header-line
1417 update when scrolling_window returns 0.
1418
1419 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
1420
1421 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
1422 for the case that x_decode_color signals an error.
1423
1424 * xdisp.c (add_to_log): Do nothing if called asynchronously.
1425
1426 2001-07-09 Gerd Moellmann <gerd@gnu.org>
1427
1428 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
1429 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
1430 around ioctls.
1431
1432 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
1433
1434 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
1435 doc string line for dos-timezone-offset.
1436
1437 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
1438 inline assembly, to avoid compiler warnings.
1439 (syms_of_msdos): Add \n\ at the end of a line in the doc string
1440 line for dos-unsupported-char-glyph.
1441
1442 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
1443
1444 2001-07-05 Gerd Moellmann <gerd@gnu.org>
1445
1446 * sound.c: Include Emacs' header files with #include "...".
1447
1448 * eval.c (specbind): Additionally record the buffer that was
1449 current when a buffer-local or frame-local variable was bound.
1450
1451 2001-07-04 Gerd Moellmann <gerd@gnu.org>
1452
1453 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
1454 to unibyte characters in unibyte buffers.
1455
1456 2001-07-03 Gerd Moellmann <gerd@gnu.org>
1457
1458 * eval.c (specbind): If SYMBOL has a frame-local binding, record
1459 the frame on the binding stack. Change format of entries for
1460 local bindings on the binding stack to '(SYMBOL . WHERE)'.
1461 (unbind_to): Handle unbinding a frame-local variable.
1462
1463 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
1464 glyphs and truncation glyphs at the end of a row from its pixel width.
1465 (dump_glyph_row): Print row's continuation_lines_width.
1466 (try_window_id): Take the shortcut if ZV is visible in the
1467 window, but there are actually no changes at ZV.
1468
1469 2001-07-02 Gerd Moellmann <gerd@gnu.org>
1470
1471 * xterm.h (x_free_dpy_colors): Add prototype.
1472
1473 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
1474 right number of arguments.
1475
1476 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
1477 ($(lwlibdir)TAGS): New target.
1478 (TAGS): Fix dependency list.
1479
1480 * xterm.c (x_list_fonts): Make sure XFreeFont is called
1481 with input blocked.
1482
1483 2001-06-30 Gerd Moellmann <gerd@gnu.org>
1484
1485 * emacs.c (main): Remove extern declaration for sys_nerr, which
1486 isn't used and causes a compilation error with GCC 3.0 on
1487 FreeBSD 4.3.
1488
1489 2001-06-27 Gerd Moellmann <gerd@gnu.org>
1490
1491 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
1492 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
1493 (toplevel): Include <signal.h> and syssignal.h.
1494
1495 * sound.c (vox_configure, vox_close): Turn off atimers
1496 around ioctls.
1497
1498 2001-06-26 Gerd Moellmann <gerd@gnu.org>
1499
1500 * keyboard.c (read_char) <non_reread>: Record the previous idle
1501 start time before calling timer_stop_idle.
1502 (read_char) <reread_first>: After processing a help-echo event,
1503 restore the previous idle start time.
1504
1505 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
1506 the start of invisible text.
1507 (setup_for_ellipsis): New function.
1508 (next_overlay_string): After all overlay strings have been
1509 processed, display an ellipsis if necessary.
1510 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
1511 (push_it): Initialize display_ellipsis_p on the iterator's stack.
1512
1513 * dispextern.h (struct iterator_stack_entry): Add member
1514 display_ellipsis_p.
1515
1516 2001-06-25 Gerd Moellmann <gerd@gnu.org>
1517
1518 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
1519 on the value of the wait-for-wm frame parameter.
1520
1521 * xterm.h (struct x_output): Add member wait_for_wm.
1522
1523 * xfns.c (Qwait_for_wm): New variable.
1524 (x_frame_parms): Add entry for `wait-for-wm".
1525 (x_set_wait_for_wm): New function.
1526 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
1527 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
1528
1529 * xdisp.c (try_window_id) <all changes below window end>: Don't
1530 take this shortcut if ZV is visible in the window.
1531 (try_window_id): When checking for window start being in changed
1532 text, don't check that the buffer's size has changed.
1533
1534 2001-06-23 Richard M. Stallman <rms@gnu.org>
1535
1536 * minibuf.c (Fcompleting_read): Doc fix.
1537
1538 2001-06-19 Gerd Moellmann <gerd@gnu.org>
1539
1540 * composite.c (Ffind_composition_internal): Accept ZV
1541 and a string's end position as POS.
1542
1543 2001-06-18 Gerd Moellmann <gerd@gnu.org>
1544
1545 * composite.c (Ffind_composition_internal): Check POS
1546 for validity.
1547
1548 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1549
1550 * editfns.c (Fmessage_box): If the frame is not under a window
1551 system, output the message in the echo area.
1552
1553 2001-06-14 Richard M. Stallman <rms@gnu.org>
1554
1555 * xdisp.c (try_window_id): When EOB is visible, don't treat
1556 insertion at EOB as if it were "off the bottom of the screen."
1557
1558 2001-06-11 Andrew Innes <andrewi@gnu.org>
1559
1560 * w32proc.c (create_child): Add new parameter is_gui_app.
1561 (w32_executable_type): Add new parameter is_gui_app.
1562 (sys_spawnve): Use it.
1563 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
1564 SIGQUIT. This matches better how the signals are interpreted by
1565 MSVC compiled programs.
1566 (syms_of_ntproc): Update docstring.
1567
1568 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
1569
1570 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
1571 well otherwise note_mouse_highlight might optimize away highlighting
1572 if we pass over that same overlay again.
1573
1574 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
1575
1576 * lread.c (Fload): Document that the argument is run via
1577 substitute-in-file-name.
1578
1579 2001-05-31 Gerd Moellmann <gerd@gnu.org>
1580
1581 * Makefile.in (bootstrap-doc): New target.
1582 (bootstrap-emacs): Depend on it.
1583
1584 * fileio.c (Fdo_auto_save): Don't try to create the directory of
1585 auto-save-list-file-name when shutting down Emacs, because
1586 creating the directory might signal an error, and leaves
1587 Emacs in a strange state.
1588
1589 * term.c: (tty_cursor_hidden): New variable.
1590 (update_begin): Don't call tty_hide_cursor. Clean up.
1591 (update_end, set_terminal_window, set_scroll_region): Clean up.
1592 (ring_bell, reset_terminal_modes): Clean up.
1593 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
1594 on tty_cursor_hidden.
1595 (write_glyphs): Call tty_hide_cursor.
1596
1597 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
1598
1599 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
1600
1601 2001-05-30 Gerd Moellmann <gerd@gnu.org>
1602
1603 * xfns.c (enum image_value_type): New enumerator
1604 IMAGE_STRING_OR_NIL_VALUE.
1605 (parse_image_spec): Handle it.
1606 (xbm_format, pbm_format): Use it for :foreground and :background.
1607 (xbm_load, pbm_load): Check for nil color names.
1608
1609 * xterm.c (note_mouse_highlight): If an overlapping overlay
1610 exists, but we find that we highlight the same overlay as before,
1611 don't do the highlighting again.
1612
1613 2001-05-29 Gerd Moellmann <gerd@gnu.org>
1614
1615 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
1616 Protect unibyte strings created by replacing their multibyte
1617 equivalents in menu_items.
1618
1619 * keymap.c (Fsingle_key_description): NUL-terminate the string
1620 buffer before calling build_string.
1621
1622 * callproc.c (Fcall_process): Deal with decode_coding returning
1623 CODING_FINISH_INCONSISTENT_EOL.
1624
1625 2001-05-28 Gerd Moellmann <gerd@gnu.org>
1626
1627 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
1628 an item's name with its key description in case the description
1629 is a multibyte string.
1630
1631 * keymap.c (Fsingle_key_description): Create a multibyte string
1632 only if necessary.
1633
1634 * macros.c (Fstart_kbd_macro): Doc fix.
1635
1636 * xterm.c (cursor_in_mouse_face_p): New function.
1637 (x_draw_stretch_glyph_string): Use it to choose a different GC
1638 when drawing a cursor within highlighted text.
1639
1640 * editfns.c (char_property_eq): Put in #if 0.
1641
1642 * indent.c (string_display_width): Put in #if 0.
1643
1644 * lread.c (Fload): Remove unused label.
1645
1646 * termcap.c (speeds): Put in #if 0.
1647
1648 2001-05-18 Gerd Moellmann <gerd@gnu.org>
1649
1650 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
1651
1652 * xfaces.c (xlfd_point_size): Don't divide pixel size from
1653 transformation matrix by 10.
1654
1655 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1656
1657 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
1658 only if it's equal to the former foreground pixel color.
1659 (x_set_foreground_color, x_set_background_color)
1660 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
1661
1662 2001-05-16 Dave Love <fx@gnu.org>
1663
1664 * insdel.c (signal_before_change, signal_after_change): Consider a
1665 local change hook which changes the buffer.
1666
1667 * process.c (read_process_output): Don't call signal_after_change
1668 and update_compositions after insert_from_string_before_markers.
1669
1670 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1671
1672 * xfaces.c (split_font_name): Use the right field when
1673 checking for `[...]' syntax.
1674
1675 * buffer.c (copy_overlays): New function.
1676 (clone_per_buffer_values): Use it.
1677
1678 * buffer.h (OVERLAY_PLIST): New macro.
1679
1680 * keymap.c (Fsingle_key_description): Replace a build_string with
1681 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
1682
1683 * fontset.c (Ffontset_info): Check that face is non-null
1684 before accessing its fields.
1685
1686 2001-05-15 Gerd Moellmann <gerd@gnu.org>
1687
1688 * keyboard.c (read_key_sequence): Prevent generating a fake
1689 prefix key twice.
1690
1691 * xfaces.c (split_font_name): Handle `[...]' for the right
1692 font name fields.
1693
1694 * ccl.c (ccl_driver): Don't copy remaining bytes in case
1695 of CCL_STAT_INVALID_CMD.
1696
1697 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
1698
1699 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
1700 in <var> has no default value yet.
1701
1702 * xfaces.c (try_alternative_families): First try the FAMILY.
1703 And if nothing is found in the end, try again with scalable fonts.
1704 (try_font_list): Let try_alternative_families do a bit more of
1705 the work. Only use FAMILY if it is not nil.
1706 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
1707
1708 2001-05-14 Gerd Moellmann <gerd@gnu.org>
1709
1710 * xterm.c (note_mouse_highlight): Avoid changing the mouse
1711 pointer shape when show_mouse_face has already done it.
1712
1713 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
1714 full-width rows.
1715
1716 * xfaces.c (split_font_name): Make sure to leave the loop
1717 with the right value of `i'.
1718
1719 * xfaces.c (split_font_name): Handle matrix transformations
1720 in the pixel and point size fields of XLFD font names.
1721 (xlfd_point_size): Likewise.
1722
1723 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
1724
1725 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
1726 (x_to_w32_font): Add prototype.
1727
1728 * regex.c (malloc, realloc, free) [emacs]: Undefine before
1729 redefining, to avoid compiler warnings.
1730
1731 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
1732
1733 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
1734 (w32_get_bdf_glyph): Cast between unsigned char and char when
1735 passing arguments to subroutines, to shut up compiler warnings.
1736 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
1737 GET_HEX_VAL.
1738
1739 * xfaces.c: Include keyboard.h before frame.h, not after it.
1740
1741 * widget.c: Include keyboard.h before frame.h.
1742
1743 * w32term.h (struct image, struct face): Forward declaration, to
1744 avoid compiler warnings.
1745
1746 2001-05-11 Gerd Moellmann <gerd@gnu.org>
1747
1748 * keyboard.c (read_key_sequence): Don't modify events when
1749 generating fake prefix keys (mode-line, scroll-bar, ...) since
1750 this prevents proper processing of such events when pushed back
1751 into unread-command-events.
1752
1753 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
1754 actually redrawn. Make the function static.
1755 (note_mouse_highlight): Fix a case where the mouse cursor
1756 was changed back to the text cursor.
1757
1758 * xterm.h (clear_mouse_face): Remove prototype.
1759
1760 * xdisp.c (try_window_id): Fix the fix and set the right
1761 window_end_vpos.
1762
1763 * xdisp.c (try_window_id): Fix computation of window end in the
1764 case that lines were deleted at the end of the window. Add some
1765 more debug_method_adds.
1766
1767 * xfaces.c (try_alternative_families): New function.
1768 (try_font_list): Use it. If ATTRS specifies a family, check
1769 fonts from that family first.
1770 (choose_face_font): Remove code setting the family part of
1771 the pattern to nil.
1772
1773 2001-05-10 Gerd Moellmann <gerd@gnu.org>
1774
1775 * xdisp.c (try_window_id): Fix case of all changes before
1776 the window start.
1777
1778 * xdisp.c (try_window_id): Add some xasserts.
1779
1780 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1781
1782 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
1783
1784 2001-05-09 Dave Love <fx@gnu.org>
1785
1786 * xdisp.c (GIVE_UP): Fix for K&R C.
1787
1788 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1789
1790 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
1791
1792 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
1793 back to the text cursor shape without need.
1794
1795 2001-05-07 Gerd Moellmann <gerd@gnu.org>
1796
1797 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
1798
1799 * dispextern.h (inverse_video): Declare extern.
1800
1801 * keyboard.c (delete_kboard): Handle the case that selected_frame
1802 has been deleted in the course of x_connection_closed.
1803
1804 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
1805
1806 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
1807 Fix the change from 2001-04-30.
1808
1809 2001-05-03 Gerd Moellmann <gerd@gnu.org>
1810
1811 * xfns.c (file_dialog_unmap_cb): New function.
1812 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
1813 where a dialog is closed via the window manager.
1814
1815 * xdisp.c (try_window_id): Cases of changes all in front of
1816 the window start or all below the window end mostly rewritten.
1817 (redisplay_window): Move the tests if try_window_id is
1818 applicable to try_window_id.
1819 (GIVE_UP): New macro.
1820
1821 2001-05-02 Gerd Moellmann <gerd@gnu.org>
1822
1823 * xterm.c (expose_window): Return int. If W is the window
1824 currently being updated, mark the frame garbaged.
1825 Fix computation of rows intersecting the exposed rectangle.
1826 (expose_window_tree): Stop when expose_window returns 0.
1827
1828 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
1829 again if it has already been drawn.
1830
1831 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
1832
1833 * syntax.c (update_syntax_table): Check that oldi has the same
1834 properties as old_prop before deciding not to invalidate.
1835
1836 2001-04-30 Gerd Moellmann <gerd@gnu.org>
1837
1838 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
1839 read-only text that is so because of text properties.
1840
1841 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
1842 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
1843 windows that are components of a Lucid menu bar.
1844
1845 2001-04-27 Gerd Moellmann <gerd@gnu.org>
1846
1847 * term.c (turn_on_face): Fix reverse video handling on terminals
1848 that don't support colors.
1849
1850 2001-04-26 Gerd Moellmann <gerd@gnu.org>
1851
1852 * editfns.c (save_excursion_restore): Don't use XBUFFER on
1853 a non-buffer.
1854
1855 2001-04-25 Gerd Moellmann <gerd@gnu.org>
1856
1857 * term.c (toggle_highlight): New function.
1858 (turn_on_face): Change handling of reverse video.
1859
1860 * process.c (wait_reading_process_input):
1861 Call record_asynch_buffer_change only if a timer really changed buffers.
1862
1863 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
1864 of the number of overlays to check.
1865
1866 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
1867
1868 * xdisp.c (try_window_id): Fix a case where window_end_pos
1869 and window_end_bytepos were not adjusted.
1870
1871 2001-04-23 Gerd Moellmann <gerd@gnu.org>
1872
1873 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
1874 zero instead of -1.
1875
1876 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
1877
1878 * process.c (wait_reading_process_input) [!subprocesses]:
1879 Don't reference waiting_for_user_input_p, it's not defined in the
1880 branch without async subprocesses support.
1881
1882 2001-04-19 Gerd Moellmann <gerd@gnu.org>
1883
1884 * keyboard.c (delete_kboard): Prevent a dangling reference
1885 from current_kboard to KB, which is freed.
1886
1887 * process.c (wait_reading_process_input):
1888 Call record_asynch_buffer_change after running timers, to make
1889 read_key_sequence aware of buffer changes from under it.
1890
1891 2001-04-18 Gerd Moellmann <gerd@gnu.org>
1892
1893 * xfaces.c (Qscalable_fonts_allowed): New variable.
1894 (realizing_basic_faces_p): Removed.
1895 (x_face_list_fonts): Special handling for realizing_basic_faces_p
1896 removed.
1897 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
1898 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
1899 for scalable-fonts-allowed to t.
1900
1901 * fileio.c (Finsert_file_contents): If the file size returned from
1902 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
1903 read from files on a procfs whose contents are generated dynamically.
1904
1905 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
1906
1907 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
1908 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
1909 (__memalign_hook): Make the two prototypes consistent.
1910
1911 2001-04-17 Gerd Moellmann <gerd@gnu.org>
1912
1913 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
1914 matrix of mini-windows.
1915
1916 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
1917
1918 * intervals.c (find_interval): Don't rebalance during signal handling.
1919
1920 2001-04-11 Gerd Moellmann <gerd@gnu.org>
1921
1922 * fns.c: Include blockinput.h.
1923
1924 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
1925
1926 2001-04-10 Gerd Moellmann <gerd@gnu.org>
1927
1928 * fns.c (Fcompare_strings): Fix return values.
1929
1930 * window.c (window_scroll): Change the meaning of N to mean
1931 N screen-fulls or N lines.
1932 (window_scroll_pixel_based, window_scroll_line_based)
1933 (scroll_command, Fscroll_other_window): Change accordingly.
1934
1935 * window.c (window_scroll_pixel_based, Frecenter):
1936 Call window_box_height instead of using it.last_visible_y for the
1937 height of the window.
1938
1939 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
1940 instead of using it.last_visible_y for the height of the window.
1941
1942 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
1943 From Dan Holmsand <dan@eyebee.com>.
1944
1945 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
1946 able to write to hidden and system files. From Dan Holmsand
1947 <dan@eyebee.com>.
1948
1949 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
1950 Holmsand <dan@eyebee.com>.
1951
1952 2001-04-09 Gerd Moellmann <gerd@gnu.org>
1953
1954 * fns.c (Fplist_get, Fplist_put): Add QUITs.
1955
1956 * window.c (window_internal_height): Return 1 less if the
1957 window has a header line.
1958
1959 * xdisp.c (try_window_id): When scrolling on a terminal, take
1960 the change of window_internal_height into account.
1961
1962 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
1963
1964 * gmalloc.c (align): If the argument SIZE would overflow
1965 __malloc_ptrdiff_t, fail right away.
1966
1967 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1968
1969 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
1970 Make sure the tooltip is completely visible.
1971 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
1972
1973 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
1974
1975 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
1976
1977 2001-04-06 Dave Love <fx@gnu.org>
1978
1979 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
1980 Fix test of `from'.
1981
1982 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1983
1984 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
1985
1986 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
1987
1988 2001-04-05 Gerd Moellmann <gerd@gnu.org>
1989
1990 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
1991
1992 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
1993
1994 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
1995 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
1996
1997 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
1998 shell widget's position only if it is non-null.
1999
2000 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
2001 Set f->output_data.x->widget to null after destroying it.
2002
2003 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
2004 FILENAME to bring it in synch with the documentation.
2005
2006 * xfaces.c (realizing_basic_faces_p): Renamed from
2007 realize_default_face_p.
2008 (realize_basic_faces): Set/clear realizing_basic_faces_p.
2009 (realize_default_face): Don't set the flag.
2010
2011 2001-04-04 Gerd Moellmann <gerd@gnu.org>
2012
2013 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
2014
2015 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
2016
2017 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
2018 the buffer that was used for echoing.
2019
2020 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
2021 (first_font_matching): Removed unused function.
2022 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
2023 (may_use_scalable_font_p): Remove parameter FONT; rename
2024 parameter NAME to FONT.
2025 (x_face_list_fonts): Fix missing bounds check.
2026 (realizing_default_face_p): New variable.
2027 (realize_default_face): Set and clear that flag.
2028 (x_face_list_fonts): When called during the realization of the
2029 default face, and no matching fonts are found when ignoring
2030 scalable fonts and fonts matching a regexp from
2031 face-ignored-fonts, try without ignoring fonts.
2032
2033 2001-04-03 Gerd Moellmann <gerd@gnu.org>
2034
2035 * xfns.c (postprocess_image): New function.
2036 (lookup_image): Call it for all image types except PostScript.
2037 (x_kill_gs_process): Call postprocess_image.
2038
2039 * xterm.c (x_use_underline_position_properties): New variable.
2040 (x_draw_glyph_string): Use it.
2041 (syms_of_xterm): DEFVAR_BOOL it.
2042
2043 2001-04-02 Gerd Moellmann <gerd@gnu.org>
2044
2045 * xterm.c (x_alloc_nearest_color_1): New function.
2046 (x_alloc_nearest_color): Use it.
2047 (x_color_cells): Take a Display as argument, instead of a frame.
2048 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
2049 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
2050 (x_initialize): Register cvt_string_to_pixel as resource converter
2051 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
2052
2053 2001-03-30 Gerd Moellmann <gerd@gnu.org>
2054
2055 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
2056 (set_iterator_to_next): If a string from a display property ends,
2057 consider the case that this might also be the end of an
2058 overlay string having the display property.
2059
2060 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
2061
2062 * xdisp.c (reseat_to_string): Undo last change.
2063
2064 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
2065 matrix of a window when the header line changes, when
2066 new rows are allocated, or when the width changes.
2067
2068 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
2069
2070 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
2071
2072 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
2073
2074 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
2075 deprecated.
2076
2077 2001-03-29 Gerd Moellmann <gerd@gnu.org>
2078
2079 * data.c (Fsubr_interactive_form): New function.
2080 (syms_of_data): Defsubr it.
2081
2082 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
2083 (live_float_p, live_misc_p): Return 1 only if the offset of the
2084 pointer in its block is >= 0.
2085
2086 2001-03-28 Paul Eggert <eggert@twinsun.com>
2087
2088 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
2089 microseconds calcuation. Avoid double-rounding problem.
2090 In doc string, warn that the result is approximate.
2091
2092 2001-03-28 Gerd Moellmann <gerd@gnu.org>
2093
2094 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
2095 bind `inhibit-eval-during-redisplay' to t.
2096
2097 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
2098
2099 * xdisp.c (inhibit_eval_during_redisplay)
2100 (Qinhibit_eval_during_redisplay): New variables.
2101 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
2102 don't eval, return nil instead.
2103 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
2104 Initialize Qinhibit_eval_during_redisplay.
2105
2106 * xdisp.c (reseat_to_string): If STRING is multibyte, set
2107 the iterator's multibyte_p flag.
2108
2109 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
2110 instead of setting it to zero; it's incremented for each frame
2111 where the menu face is changed.
2112
2113 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
2114 change bottom shadow accordingly.
2115
2116 * xterm.c (expose_window_tree, expose_frame): Don't compute
2117 intersections here.
2118 (expose_window): Do it here instead.
2119 (x_draw_glyph_string): Fix a computation of the underline position.
2120
2121 * bytecode.c (BYTE_CODE_QUIT): New macro.
2122 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
2123
2124 2001-03-27 Gerd Moellmann <gerd@gnu.org>
2125
2126 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
2127 Give up if matrix starts in an ellipsis.
2128 (init_from_display_pos): Do nothing if POS doesn't specify
2129 a dpvec_index but the iterator has such a position.
2130
2131 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
2132
2133 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
2134 x/y position is (0, 0) after destroying the menu bar, restore
2135 its original position.
2136
2137 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
2138 (init_from_display_pos): Use it.
2139 (try_window_reusing_current_matrix): Don't use cursor_row_p.
2140
2141 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2142
2143 * xdisp.c (try_window_id): Undo last change.
2144
2145 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
2146
2147 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
2148
2149 * buffer.c (syms_of_buffer): Doc fix.
2150
2151 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2152
2153 * xfaces.c (x_update_menu_appearance): Use local variable
2154 popup_path for setting font resources.
2155
2156 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
2157
2158 * frame.c (Fframe_list): Don't reference tip_frame if
2159 HAVE_WINDOW_SYSTEM is not defined.
2160
2161 * emacs.c (main): Update the copyright year. From Werner LEMBERG
2162 <wl@gnu.org>.
2163
2164 2001-03-25 Gerd Moellmann <gerd@gnu.org>
2165
2166 * xdisp.c (init_from_display_pos): Test invisible property
2167 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
2168
2169 * xdisp.c (redisplay_internal) <update one window>: Make sure
2170 last_arrow_position and last_arrow_string are set.
2171
2172 * frame.c (Fframe_list): Don't return a tooltip frame.
2173
2174 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2175
2176 * xdisp.c (mark_window_display_accurate_1): New function,
2177 extracted from mark_window_display_accurate.
2178 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
2179 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
2180 (mark_window_display_accurate): Use it.
2181 (redisplay_internal): Use it for the selected window.
2182 (redisplay_internal): Avoid duplicate mark_window_display_accurate
2183 for the selected frame.
2184
2185 * xdisp.c Use make_number, for readability.
2186 (try_window_id): Disable rows below the window end.
2187 (try_window_reusing_current_matrix): Use cursor_row_p.
2188 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
2189 of rows.
2190 (init_from_display_pos): If POS specifies a position in a display
2191 vector, maybe get the iterator set up for that ellipsis.
2192
2193 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
2194
2195 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
2196
2197 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
2198
2199 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2200
2201 * xfaces.c (x_update_menu_appearance): Use a different path
2202 for Lucid popup menus.
2203
2204 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
2205
2206 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
2207
2208 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
2209 (string_buffer_position): Use `make_number'.
2210
2211 2001-03-22 Gerd Moellmann <gerd@gnu.org>
2212
2213 * xfaces.c (x_update_menu_appearance): Renamed from
2214 x_set_menu_face_resources. Use different resources for popups.
2215
2216 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
2217 (GC_CHECK_STRING_BYTES): Don't define.
2218
2219 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
2220 Removed, together with subroutines.
2221 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
2222 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
2223
2224 * dispextern.h (x_set_menu_resources_from_menu_face):
2225 Remove prototype.
2226
2227 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
2228 Remove calls to x_set_menu_resources_from_menu_face.
2229
2230 * xfaces.c (xm_set_menu_resources_from_menu_face):
2231 Remove #ifndef LESSTIF_VERSION.
2232
2233 * xmenu.c: Include widget.h.
2234 (single_submenu): Return int. Some cleanup.
2235 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
2236
2237 2001-03-21 Gerd Moellmann <gerd@gnu.org>
2238
2239 * xterm.c (x_update_window_end): Handle overwritten mouse face
2240 also for tool bar windows.
2241 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
2242 DRAW is DRAW_IMAGE_RAISED.
2243
2244 2001-03-20 Gerd Moellmann <gerd@gnu.org>
2245
2246 * print.c (syms_of_print): Doc fixes.
2247
2248 * fns.c (Fmd5): Doc fix.
2249
2250 2001-03-19 Gerd Moellmann <gerd@gnu.org>
2251
2252 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2253 Clear area of the frame not occupied by the scroll bar.
2254
2255 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
2256 tip frame's root window buffer to *tip* right after creating
2257 the frame.
2258
2259 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
2260 is an integer don't have to be for space characters.
2261
2262 2001-03-16 Gerd Moellmann <gerd@gnu.org>
2263
2264 * indent.c (current_column, current_column_1, Fmove_to_column)
2265 (compute_motion): Handle characters from display vectors differently.
2266
2267 2001-03-15 Kenichi Handa <handa@etl.go.jp>
2268
2269 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
2270 drawing glyph string.
2271
2272 2001-03-15 Gerd Moellmann <gerd@gnu.org>
2273
2274 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
2275 (command_loop_1): Undo last change.
2276
2277 * xterm.c (fast_find_position): Return the correct vpos.
2278
2279 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
2280 non-null, set a per-buffer value in BUF instead of the current buffer.
2281 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
2282 Call store_symval_forwarding with BUF null.
2283 (set_internal): Call store_symval_forwarding with the BUF
2284 parameter passed to set_internal. Formerly, the value was always
2285 set in the current buffer; the buffer recorded in specbind for
2286 this case wasn't used.
2287 (arith_driver): Reindent.
2288
2289 * buffer.c (swap_out_buffer_local_variables):
2290 Call store_symval_forwarding with BUF null.
2291
2292 * lisp.h (store_symval_forwarding): Change prototype.
2293
2294 * eval.c (specbind): Call store_symval_forwarding with BUF null.
2295
2296 2001-03-14 Gerd Moellmann <gerd@gnu.org>
2297
2298 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
2299 FOR_DELETION. Avoid resizing the mini-window of the selected
2300 frame if FOR_DELETION is set.
2301 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
2302 (Fmake_frame_invisible): Change calls to do_switch_frame for new
2303 signature.
2304
2305 * window.c (Fset_window_configuration): Change call to
2306 do_switch_frame to new format.
2307
2308 * keyboard.c (quit_throw_to_read_char): Change call to
2309 do_switch_frame to new format.
2310
2311 * lisp.h (do_switch_frame): Change prototype.
2312
2313 * frame.c (Fframe_parameters): In the `buffer-list' frame
2314 parameter, store the buffer list of FRAME, not the list of the
2315 selected frame.
2316
2317 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
2318 box just because the glyph row's full_width_p flag is set.
2319
2320 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
2321
2322 * xdisp.c (highlight_trailing_whitespace): On character terminals,
2323 skip the padding blanks inserted in extend_face_to_end_of_line,
2324 before checking for trailing whitespace.
2325
2326 2001-03-13 Gerd Moellmann <gerd@gnu.org>
2327
2328 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
2329 Remove special handling for LessTif/Motif.
2330 (toplevel): Don't include Xm/Xm.h.
2331
2332 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
2333 Remove workaround code for LessTif; it doesn't work anymore.
2334
2335 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
2336 Xm/ScrollBarP.h.
2337
2338 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
2339 Don't access private scroll bar data; it's no longer necessary with
2340 contemporary LessTif.
2341
2342 * xfaces.c (xm_set_menu_resources_from_menu_face):
2343 Change #if 0 to #ifndef LESSTIF_VERSION.
2344
2345 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
2346 removing button grabs.
2347
2348 2001-03-13 Kenichi Handa <handa@etl.go.jp>
2349
2350 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
2351 and clip-large-size-font as obsolete.
2352
2353 * lread.c (read_multibyte): Check the validity of multibyte
2354 sequence. If invalid, return the first byte.
2355
2356 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2357
2358 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
2359 before running the command; timer functions or process
2360 filters may have set it.
2361
2362 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2363
2364 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
2365 Doc fix.
2366
2367 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2368
2369 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
2370 to sprintf.
2371
2372 2001-03-09 Gerd Moellmann <gerd@gnu.org>
2373
2374 * dispextern.h (string_buffer_position): Add prototype.
2375
2376 * xdisp.c (string_buffer_position, display_prop_string_p)
2377 (single_display_prop_string_p): New functions.
2378
2379 * xterm.c (note_mouse_highlight): If there's no help-echo on
2380 a string, look at the buffer text ``under'' it.
2381
2382 * keyboard.c (make_lispy_event): Add string info to the event,
2383 analogous to what's done on mode lines.
2384 (read_key_sequence): For a click on a string, consider `local-map'
2385 and `keymap' of that string.
2386
2387 * keyboard.c (make_lispy_event, make_lispy_movement):
2388 Adjust calls to buffer_posn_from_coords to new format.
2389
2390 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
2391
2392 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
2393 POS; return void.
2394
2395 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
2396 flags argument to emacs_open; it seems to conflict with O_EXCL.
2397
2398 2001-03-09 Kenichi Handa <handa@etl.go.jp>
2399
2400 * composite.h (struct composition): Change types of members;
2401 glyph_len to unsigned, width to unsigned short.
2402
2403 2001-03-08 Andrew Innes <andrewi@gnu.org>
2404
2405 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
2406 menu titles.
2407
2408 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2409
2410 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
2411 instead of nil.
2412
2413 * xterm.c (note_mouse_highlight): Handle mouse-face and
2414 help-echo in strings.
2415 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
2416 (fast_find_string_pos): New function.
2417
2418 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
2419 (display_string): Call face_at_string_position with new parameter.
2420
2421 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
2422 Handle `mouse-face'.
2423
2424 * dispextern.h (face_at_string_position): Change prototype.
2425
2426 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
2427
2428 * keyboard.c (make_lispy_event): Avoid generating drag events
2429 if the mouse hasn't actually moved to another buffer position.
2430
2431 2001-03-08 Dave Love <fx@gnu.org>
2432
2433 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
2434
2435 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2436
2437 * process.c (Fset_process_window_size): Fix a typo.
2438
2439 2001-03-08 Kenichi Handa <handa@etl.go.jp>
2440
2441 * coding.c (detect_coding_sjis): Do more rigid check.
2442 (detect_coding_big5): Likewise.
2443 (decode_coding_sjis_big5): Likewise.
2444 (Fdetect_coding_region): Call detect_coding_system with tailing
2445 anchor byte `\0' for more rigid detection.
2446 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
2447 (Fdetect_coding_string): Likewise.
2448
2449 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
2450
2451 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
2452 a string before extracting its data.
2453
2454 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2455
2456 * window.c (Frecenter): Rewrite code handling negative values
2457 of ARG on graphical frames.
2458
2459 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
2460
2461 * window.c (displayed_window_lines): If W->start is outside the
2462 accessible portion of the buffer, call start_display with BEGV or
2463 ZV instead of W->start.
2464
2465 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2466
2467 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
2468
2469 * process.c (Fset_process_filter): Don't crash if the input
2470 file descriptor of PROCESS is closed.
2471 (Fset_process_window_size): Likewise.
2472
2473 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2474
2475 * xterm.c (XTflash): Make the timeout of select shorter, and call
2476 select repeatedly until the desired time expires.
2477
2478 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2479
2480 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
2481
2482 * xfns.c (Fx_create_frame): Clear Vwindow_list.
2483
2484 * lisp.h (Vwindow_list): Declare extern.
2485
2486 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2487
2488 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
2489
2490 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2491
2492 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
2493 to detect a case where we have to highlight a different region
2494 despite not having left the currently highlighted region.
2495 Set mouse_face_overlay in the x_display_info.
2496 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
2497
2498 * xterm.h (struct x_display_info): Add mouse_face_overlay.
2499
2500 * buffer.c (mouse_face_overlay_overlaps): New function.
2501
2502 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
2503 (Qmouse_face): Declare extern.
2504
2505 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
2506 if face_change_count is non-zero.
2507
2508 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2509
2510 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
2511 that the source is unibyte.
2512
2513 2001-03-05 Dave Love <fx@gnu.org>
2514
2515 * xterm.c (XTmouse_position): Fix typo.
2516
2517 2001-03-05 Gerd Moellmann <gerd@gnu.org>
2518
2519 * minibuf.c (read_minibuf): Clean up the binding stack if
2520 called noninteractively.
2521
2522 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2523
2524 * coding.c (syms_of_coding): Docstring modified.
2525
2526 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2527
2528 * charset.c (char_to_string): If a single byte char has modifier
2529 bits that can't be reflected to the character code, ignore them
2530 instead of signaling an error.
2531
2532 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
2533
2534 * s/msdos.h: Update copyright notice.
2535
2536 * dosfns.h: Update copyright notice.
2537
2538 * dosfns.c: Update copyright notice.
2539
2540 * msdos.c: Update copyright notice.
2541
2542 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2543
2544 * xterm.c (glyph_rect): New function.
2545 (XTmouse_position): Use it to raise the threshold for mouse
2546 movement event generation.
2547
2548 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2549
2550 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
2551 specifies (reverse . t), reverse the initial screen colors.
2552 (IT_set_frame_parameters): If the property is foreground-color,
2553 but we are reversing the colors, set bg_set, not fg_set.
2554 Likewise for setting background-color and reversing: set fg_set.
2555 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
2556 in effect.
2557
2558 * xfaces.c (Finternal_set_lisp_face_attribute)
2559 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
2560 parameters alist.
2561
2562 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2563
2564 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
2565 to a single slash in the middle of file names.
2566
2567 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
2568 Accept only alphanumeric time zone names.
2569
2570 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
2571 or width area.
2572 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
2573 a widget to zero height.
2574
2575 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2576
2577 * window.c (Fwindow_end): Call move_it_past_eol only if
2578 ending up on a partially visible line.
2579
2580 2001-03-01 Dave Love <fx@gnu.org>
2581
2582 * ccl.c (Fccl_execute): Doc fix.
2583
2584 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2585
2586 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
2587 of the tool bar before calling x_figure_window_size.
2588
2589 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
2590 NULL after destroying it, otherwise XTread_socket can access a
2591 destroyed widget when input is unblocked.
2592
2593 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
2594
2595 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
2596 same name as before, although there was a change in fontsets.
2597
2598 2001-02-28 Ken Raeburn <raeburn@gnu.org>
2599
2600 * lisp.h (Fframe_parameter): Declare.
2601
2602 * window.c (set_window_buffer): Field vscroll is an int, not a
2603 Lisp_Object.
2604
2605 2001-02-28 Gerd Moellmann <gerd@gnu.org>
2606
2607 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
2608 NULL instead.
2609
2610 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
2611 NULL instead.
2612
2613 * alloc.c (toplevel): Include process.h.
2614 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
2615 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
2616 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
2617 (allocate_vector, allocate_hash_table, allocate_window)
2618 (allocate_frame, allocate_process, allocate_other_vector):
2619 New functions.
2620 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
2621 (mark_maybe_pointer): New function.
2622 (mark_memory): Also mark Lisp data to which only pointers
2623 remain and not Lisp_Objects.
2624 (min_heap_address, max_heap_address): New variables.
2625 (mem_find): Return MEM_NIL if START is below min_heap_address or
2626 above max_heap_address.
2627 (mem_insert): Compute min_heap_address and max_heap_address.
2628
2629 * process.c (make_process): Use allocate_process.
2630
2631 * frame.c (make_frame): Use allocate_frame.
2632
2633 * window.c (make_window, make_dummy_parent): Use allocate_window.
2634 (Fcurrent_window_configuration): Use allocate_other_vector.
2635
2636 * lisp.h (allocate_vectorlike): Remove prototype.
2637 (allocate_vector, allocate_other_vector, allocate_frame)
2638 (allocate_window, allocate_process, allocate_hash_table):
2639 Add prototypes.
2640
2641 * fns.c (Fdelete, larger_vector): Use allocate_vector.
2642 (make_hash_table, copy_hash_table): Use allocate_hash_table.
2643
2644 2001-02-27 Kenichi Handa <handa@etl.go.jp>
2645
2646 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
2647 treat the produced bytes as a valid multibyte sequence.
2648
2649 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
2650 (ccl_driver) <CCL_WriteMultibyteChar2>:
2651 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
2652 <ccl_finish>: Set ccl->eight_bit_control properly.
2653
2654 * ccl.h (struct ccl_program): New member eight_bit_control.
2655
2656 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
2657
2658 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
2659 accessible_keymaps_char_table.
2660 (accessible_keymaps_char_table): Obey `is_metized'.
2661 (where_is_internal, Fwhere_is_internal): Don't confuse int and
2662 Lisp_Object.
2663
2664 2001-02-26 Gerd Moellmann <gerd@gnu.org>
2665
2666 * dispnew.c: Check HAVE_TERM_H before including term.h.
2667
2668 2001-02-24 Andrew Innes <andrewi@gnu.org>
2669
2670 * makefile.w32-in: Update copyright notice.
2671
2672 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
2673
2674 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
2675
2676 2001-02-24 Kenichi Handa <handa@etl.go.jp>
2677
2678 * Makefile.in (lisp): Add international/utf-8.elc.
2679
2680 * fontset.c (Fnew_fontset): Fix handling of the case that an
2681 element of FONTLIST is a cons of family and registry.
2682
2683 2001-02-23 Jason Rumney <jasonr@gnu.org>
2684
2685 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
2686 to height unconditionally.
2687
2688 * w32term.c (x_set_glyph_string_background_width): Extend the
2689 background face to the end of the drawing area in the text area, only.
2690 (x_insert_glyphs): Call window_box_left to obtain the left
2691 x-coordinate of the area to shift.
2692
2693 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
2694 safe_run_hooks.
2695
2696 2001-02-22 Andrew Innes <andrewi@gnu.org>
2697
2698 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
2699 ($(BLD)\dispnew.obj):
2700 ($(BLD)\editfns.obj):
2701 ($(BLD)\fileio.obj):
2702 ($(BLD)\filelock.obj):
2703 ($(BLD)\keyboard.obj):
2704 ($(BLD)\w32proc.obj):
2705 ($(BLD)\process.obj):
2706 ($(BLD)\sysdep.obj): Ditto.
2707
2708 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
2709 header files.
2710 ($(BLD)/dispnew.$(O)):
2711 ($(BLD)/editfns.$(O)):
2712 ($(BLD)/fileio.$(O)):
2713 ($(BLD)/filelock.$(O)):
2714 ($(BLD)/keyboard.$(O)):
2715 ($(BLD)/w32proc.$(O)):
2716 ($(BLD)/process.$(O)):
2717 ($(BLD)/sysdep.$(O)): Ditto.
2718
2719 2001-02-22 Gerd Moellmann <gerd@gnu.org>
2720
2721 * xdisp.c (forward_to_next_line_start): When taking the shortcut
2722 at the start of the function, check that the \n in it->c is
2723 from the iterator's current position.
2724
2725 * xdisp.c (handle_single_display_prop): Add parameter
2726 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
2727 properties which replace the display of text with something else.
2728 (handle_display_prop): Call handle_single_display_prop with
2729 additional argument saying if we already replaced text display
2730 with something else. Use AREF.
2731 (with_echo_area_buffer_unwind_data, display_menu_bar)
2732 (decode_mode_spec_coding): Use AREF and ASIZE.
2733
2734 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
2735 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
2736 * vmstime.h: Files removed.
2737
2738 * unexencap.c, unexfx2800.c: Files removed.
2739
2740 * dispnew.c (direct_output_for_insert): Give up if we are showing
2741 a message or just cleared the message because we might need to
2742 resize the echo area window or display an empty echo area.
2743
2744 2001-02-21 Gerd Moellmann <gerd@gnu.org>
2745
2746 * xdisp.c (redisplay_internal): Do the
2747 mark_window_display_accurate after all windows have been
2748 redisplayed because this call resets flags in buffers which are
2749 needed for proper redisplay.
2750
2751 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
2752 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
2753 the old names.
2754
2755 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2756 busy_window to hourglass_window, busy_p to hourglass_p.
2757
2758 * msdos.h (struct x_output): Rename busy_window to
2759 hourglass_window, busy_p to hourglass_p.
2760
2761 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2762 busy_window to hourglass_window, busy_p to hourglass_p.
2763
2764 * xfns.c: Rename everything containing *busy_cursor* and similar
2765 to *hourglass*.
2766 (syms_of_w32fns): Rename x-busy-pointer-shape to
2767 x-hourglass-pointer-shape, display-busy-cursor to
2768 display-hourglass, busy-cursor-delay to hourglass-delay.
2769
2770 * w32fns.c: Rename everything containing *busy_cursor* and similar
2771 to *hourglass*.
2772 (syms_of_w32fns): Rename x-busy-pointer-shape to
2773 x-hourglass-pointer-shape, display-busy-cursor to
2774 display-hourglass, busy-cursor-delay to hourglass-delay.
2775
2776 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
2777 of its busy_p flag.
2778
2779 * dispextern.h (start_hourglass, cancel_hourglass)
2780 (display_hourglass_p): Renamed from *busy_cursor*.
2781
2782 2001-02-20 Gerd Moellmann <gerd@gnu.org>
2783
2784 * keyboard.c (read_char): When an event from unread-command-events
2785 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
2786
2787 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
2788 equal to the current buffer.
2789
2790 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
2791 nil, otherwise we're left with truncate_lines t when a message
2792 is printed with message-truncate-lines bound to t.
2793
2794 2001-02-19 Gerd Moellmann <gerd@gnu.org>
2795
2796 * window.c (Fmove_to_window_line): Undo last change.
2797 (displayed_window_lines): Call line_bottom_y to determine
2798 the line's bottom position.
2799
2800 * dispextern.h (line_bottom_y): Add prototype.
2801
2802 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
2803 (pos_visible_p): Use it.
2804
2805 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
2806 set redisplaying_p to 0 here instead of in Frecursive_edit.
2807 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
2808 set redisplaying_p.
2809
2810 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
2811 New variables.
2812 (syms_of_xdisp): Initialize new variables.
2813 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
2814 Specbind `inhibit-menubar-update' when updating the menu bar.
2815
2816 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
2817 safe_run_hooks.
2818
2819 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
2820 safe_run_hooks.
2821
2822 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
2823 is null.
2824
2825 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
2826 to the start of the file.
2827
2828 2001-02-16 Gerd Moellmann <gerd@gnu.org>
2829
2830 * window.c (set_window_buffer): Fix last change.
2831
2832 * window.c (set_window_buffer): Set window's vscroll to 0.
2833
2834 * window.c (coordinates_in_window): Increase width of area
2835 where the vertical line can be dragged.
2836
2837 * xterm.c (x_set_glyph_string_background_width): Extend the
2838 background face to the end of the drawing area in the text
2839 area, only.
2840
2841 * xdisp.c (handle_single_display_prop): Set iterator's position
2842 to where the `display' property starts, like for images.
2843 (dump_glyph): New function.
2844 (dump_glyph_row): Use it. Dump info about marginal areas.
2845
2846 * dispnew.c (direct_output_for_insert): Recognize more cases where
2847 glyphs can be written instead of being inserted.
2848
2849 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
2850 the left x-coordinate of the area to shift.
2851
2852 * dired.c (directory_files_internal): Set result list to nil
2853 before retrying.
2854
2855 2001-02-15 Kenichi Handa <handa@etl.go.jp>
2856
2857 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
2858 invalid multibyte sequence, treat *SRC as a character of
2859 eight-bit-graphic.
2860
2861 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
2862
2863 * textprop.c (Fset_text_properties): Doc fix.
2864
2865 2001-02-15 Gerd Moellmann <gerd@gnu.org>
2866
2867 * dispnew.c (update_text_area): Undo change of 2001-01-12.
2868
2869 2001-02-14 Dave Love <fx@gnu.org>
2870
2871 * coding.c: Doc and message fixes.
2872
2873 2001-02-14 Andrew Innes <andrewi@gnu.org>
2874
2875 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
2876 Emacs frame above the screen size.
2877
2878 2001-02-14 Gerd Moellmann <gerd@gnu.org>
2879
2880 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
2881
2882 2001-02-13 Gerd Moellmann <gerd@gnu.org>
2883
2884 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
2885 case that TO ends up beyond ZV after running before-change-functions.
2886
2887 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
2888 the selected window if it is showing the buffer in question.
2889
2890 * dired.c (directory_files_internal): Initialize errno.
2891 (toplevel): Include errno.h.
2892
2893 2001-02-13 Kenichi Handa <handa@etl.go.jp>
2894
2895 * xfaces.c (best_matching_font): New parameter width_ratio.
2896 Multiply avgwidth by width_ratio.
2897 (choose_face_font): Call best_matching_font with width_ratio
2898 calculated from the column width of C.
2899
2900 2001-02-12 Andrew Innes <andrewi@gnu.org>
2901
2902 The following changes are to draw box lines inside characters area
2903 if line-width is negative.
2904
2905 * w32term.c (x_produce_image_glyph): Pay attention to the case that
2906 face->box_line_width is negative.
2907 (x_produce_stretch_glyph): Likewise.
2908 (x_produce_glyphs): Likewise.
2909 (x_estimate_mode_line_height): Likewise.
2910 (x_draw_glyph_string_background): Likewise.
2911 (x_draw_glyph_string_foreground): Likewise.
2912 (x_draw_composite_glyph_string_foreground): Likewise.
2913 (x_draw_glyph_string_box): Likewise.
2914 (x_draw_image_foreground): Likewise.
2915 (x_draw_image_relief): Likewise.
2916 (x_draw_image_foreground_1): Likewise.
2917 (x_draw_image_glyph_string): Likewise.
2918
2919 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2920
2921 The following changes are to draw box lines inside characters area
2922 if line-width is negative.
2923
2924 * xterm.c (x_produce_image_glyph): Pay attention to the case that
2925 face->box_line_width is negative.
2926 (x_produce_stretch_glyph): Likewise.
2927 (x_produce_glyphs): Likewise.
2928 (x_estimate_mode_line_height): Likewise.
2929 (x_draw_glyph_string_background): Likewise.
2930 (x_draw_glyph_string_foreground): Likewise.
2931 (x_draw_composite_glyph_string_foreground): Likewise.
2932 (x_draw_glyph_string_box): Likewise.
2933 (x_draw_image_foreground): Likewise.
2934 (x_draw_image_relief): Likewise.
2935 (x_draw_image_foreground_1): Likewise.
2936 (x_draw_image_glyph_string): Likewise.
2937
2938 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
2939 and :line-width can be negative.
2940 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
2941
2942 2001-02-09 Jason Rumney <jasonr@gnu.org>
2943
2944 * w32term.c (w32_encode_char): Treat eight bit graphic and control
2945 characters the same as ASCII and latin-1.
2946 (x_display_and_set_cursor): Check for the focus frame's selected
2947 window instead of selected_window.
2948 (x_after_update_window_line): Don't clear if frame's internal
2949 border width is zero.
2950 (x_new_font): Don't change a tooltip's size.
2951 (w32_initialize): Set char_ins_del_ok to 1.
2952
2953 * w32fns.c (Fx_show_tip): Fix calls to make_number.
2954 (x_set_font): If font hasn't changed, avoid recomputing
2955 faces and other things.
2956 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
2957 (Fx_create_frame): Add the tool bar height to the frame height.
2958 (x_create_tip_frame): Prevent changing the tooltip's
2959 background color by specifying a color for the default font
2960 in .Xdefaults.
2961 (Qcancel_timer): New variable.
2962 (syms_of_w32fns): Initialize and staticpro it.
2963 (Fx_hide_tip, Fx_show_tip): Use it.
2964 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
2965 the timer.
2966 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
2967
2968 * w32.c (init_environment): Duplicate local string before putenv.
2969
2970 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
2971
2972 * charset.c (Fstring): A typo.
2973
2974 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2975
2976 * charset.c (Fstring): If all arguments are less than 256, return
2977 a unibyte string.
2978
2979 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
2980 return a unibyte string.
2981
2982 * coding.c (code_convert_region): After detecting a coding, if
2983 nothing found, set coding->composing to COMPOSITION_NO.
2984 (decode_coding_string): Likewise.
2985
2986 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
2987
2988 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
2989 to avoid overflow.
2990
2991 2001-02-07 Kenichi Handa <handa@etl.go.jp>
2992
2993 * charset.c (parse_str_to_multibyte): New function.
2994
2995 * charset.h (parse_str_to_multibyte): Extern it.
2996
2997 * print.c (print_string): If we are going to print a unibyte
2998 string into a multibyte buffer, convert the string to multibyte by
2999 str_to_multibyte.
3000
3001 2001-02-06 Andrew Innes <andrewi@gnu.org>
3002
3003 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
3004 been created. It seems we can get sent window messages such as
3005 WM_ERASEBKGND before we properly update a frame.
3006
3007 2001-02-06 Gerd Moellmann <gerd@gnu.org>
3008
3009 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
3010 Avoid some unnecessary cursor positioning.
3011
3012 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3013
3014 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
3015 (LFACE_AVGWIDTH): New macro.
3016 (LFACEP): Use AREF.
3017 (check_lface_attrs): Check LFACE_AVGWIDTH.
3018 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
3019 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
3020 (merge_face_vectors): Check LFACE_AVGWIDTH.
3021 (Finternal_make_lisp_face): Use AREF.
3022 (xm_set_menu_resources_from_menu_face)
3023 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
3024 (Finternal_lisp_face_empty_p): Use AREF.
3025 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
3026 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
3027 Compare average widths..
3028 (best_matching_font): Arrange for comparing average widths.
3029
3030 * dispextern.h (enum lface_attribute_index):
3031 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
3032
3033 2001-02-05 Dave Love <fx@gnu.org>
3034
3035 * puresize.h: Revert last change following loadup.el change.
3036
3037 2001-02-05 Andrew Innes <andrewi@gnu.org>
3038
3039 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
3040 invocation of temacs, to work with Windows 2000.
3041 (bootstrap-emacs): Ditto.
3042
3043 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3044
3045 * xterm.c (x_display_and_set_cursor): Check for the focus
3046 frame's selected window instead of selected_window.
3047
3048 * xdisp.c (try_scrolling): If point is in the line below the
3049 window, make sure to move the iterator at least a canonical
3050 char height down.
3051
3052 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
3053
3054 2001-02-05 Kenichi Handa <handa@etl.go.jp>
3055
3056 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
3057 If invalid, execute CCL_INVALID_CMD.
3058 (ccl_driver): If the CCL program is terminated because of
3059 CCL_STAT_INVALID_CMD, copy the remaining source data to the
3060 destination instead of throwing them away.
3061
3062 2001-02-02 Gerd Moellmann <gerd@gnu.org>
3063
3064 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
3065 faces and other things.
3066
3067 * xdisp.c (get_next_display_element): Fix case of empty
3068 display table entry.
3069
3070 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
3071
3072 * editfns.c (Fconstrain_to_field): Doc fix.
3073
3074 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
3075 into `thoroughly', to make it consistent with the doc string.
3076
3077 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
3078
3079 2001-02-01 Gerd Moellmann <gerd@gnu.org>
3080
3081 * search.c (search_buffer): Call set_search_regs with a byte
3082 position, not a character position.
3083
3084 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
3085 minibuffer-only,
3086
3087 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
3088
3089 * frame.c (Fmodify_frame_parameters): Doc fix.
3090
3091 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3092
3093 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
3094 identifier which is not reserved by Standard C.
3095
3096 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
3097
3098 * window.c (enum window_part): New enumeration.
3099 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
3100 Qright_bitmap_area.
3101 (coordinates_in_window): Return an enumerator from enum
3102 window_part. Fix handling of right scroll bar.
3103 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
3104 `right-fringe' instead of `left-bitmap-area' and
3105 `right-bitmap-area'. Use enumerators from enum window_part
3106 instead of hard-coded integers.
3107 (check_window_containing, window_from_coordinates):
3108 Use enumerators from enum window_part instead of hard-coded integers.
3109 (syms_of_window): Replace Qleft_bitmap_area and
3110 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
3111
3112 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
3113
3114 * editfns.c (Fformat_time_string): Doc fix.
3115
3116 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
3117
3118 * keymap.c (Fwhere_is_internal): Use the first valid binding
3119 if no ascii binding is found (when firstonly is t).
3120
3121 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3122
3123 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
3124 instead of Finteractive_p.
3125
3126 * lisp.h (interactive_p): Add prototype.
3127
3128 * eval.c (interactive_p): New function.
3129 (Finteractive_p): Use it.
3130
3131 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
3132
3133 2001-01-31 Dave Love <fx@gnu.org>
3134
3135 * .gdbinit (hook-run): Define to run xreload.
3136
3137 * textprop.c (Fset_text_properties): Fix newline in doc string.
3138
3139 2001-01-30 Gerd Moellmann <gerd@gnu.org>
3140
3141 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
3142 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
3143
3144 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
3145 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
3146 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
3147
3148 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
3149 height.
3150
3151 2001-01-30 Dave Love <fx@gnu.org>
3152
3153 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
3154 AFTER_POTENTIAL_GC.
3155
3156 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3157
3158 * bytecode.c (Fbyte_code) <Bcurrent_column>:
3159 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
3160
3161 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
3162
3163 * textprop.c (Fset_text_properties): Doc fix.
3164
3165 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3166
3167 * xdisp.c (forward_to_next_line_start): Remove xassert.
3168
3169 2001-01-29 Jason Rumney <jasonr@gnu.org>
3170
3171 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
3172 returning without releasing it.
3173
3174 2001-01-29 Kenichi Handa <handa@etl.go.jp>
3175
3176 * w32fns.c (w32_font_match): Allocate three more bytes to regex
3177 for '^', '$', and '\0'.
3178
3179 2001-01-28 Andrew Choi <akochoi@i-cable.com>
3180
3181 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
3182 regex for '^', '$', and '\0'.
3183
3184 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
3185 only if current_sblock has been initialized.
3186
3187 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
3188 terminal frame even if it is the only visible frame.
3189
3190 2001-01-28 Kenichi Handa <handa@etl.go.jp>
3191
3192 * fontset.c (font_family_registry): Even if FONTNAME conform to
3193 XLFD, if it specifies other fields than family and registry,
3194 return FONTANME. New argument FORCE if nonzero cancel that feature.
3195 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
3196 a signle byte character. Don't set FAMILY part to nil here.
3197 It is handled by the caller choose_face_font.
3198 (Fnew_fontset): Call font_family_registry with FORCE 0.
3199 (Fset_fontset_font): Likewise.
3200
3201 2001-01-27 Gerd Moellmann <gerd@gnu.org>
3202
3203 * xdisp.c (display_line): Don't treat a newline as fitting
3204 on the line.
3205
3206 2001-01-26 Gerd Moellmann <gerd@gnu.org>
3207
3208 * window.c (size_window): Set the window's orig_top to nil when
3209 changing heights, so that a future shrink_mini_window won't
3210 restore a bogus height.
3211
3212 * frame.c (do_switch_frame): If selected frame has a mini-window,
3213 resize that to exact size.
3214
3215 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
3216
3217 * xdisp.c (display_line): Simplify check for glyphs fitting
3218 entirely in the line.
3219
3220 * xfns.c (xic_style): New variable.
3221 (create_frame_xic): Move static variable to global scope for
3222 the case that `static' gets defined away.
3223
3224 2001-01-26 Kenichi Handa <handa@etl.go.jp>
3225
3226 * coding.c (decode_coding): Set a flag for inhibiting
3227 inconsistent eol.
3228 (code_convert_region): Always set saved_coding_symbol.
3229 (decode_coding_string): Likewise. Update coding->symbol when we
3230 encounter a inconsistent eol by the same way as code_convert_region.
3231
3232 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3233
3234 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
3235 XClearArea.
3236
3237 * xterm.c (x_after_update_window_line): Don't clear if frame's
3238 internal border width is zero.
3239 (x_clear_area): New function.
3240 (x_after_update_window_line, x_clear_end_of_line)
3241 (x_scroll_bar_create, x_scroll_bar_set_handle)
3242 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
3243 instead of XClearArea.
3244
3245 * xterm.h (x_clear_area): Add prototype.
3246
3247 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
3248 which doesn't seem necessary anymore with Lesstif 0.92.
3249
3250 2001-01-25 Dave Love <fx@gnu.org>
3251
3252 * puresize.h (BASE_PURESIZE): Up to 720000.
3253
3254 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
3255
3256 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3257
3258 * xdisp.c (echo_area_display): Don't call redisplay_internal
3259 when Emacs is shutting down. We can't run hooks etc. that
3260 would be necessary to do a redisplay.
3261
3262 * lread.c (read_integer): Use type EMACS_INT instead of int.
3263
3264 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
3265
3266 * ccl.c (ccl_driver): Fix last change.
3267
3268 2001-01-25 Kenichi Handa <handa@etl.go.jp>
3269
3270 * ccl.h (sturct ccl_program): New member suppress_error.
3271
3272 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
3273 insert error message to the output.
3274 (setup_ccl_program): Initialize ccl->suppress_error to 0.
3275
3276 * coding.h (struct coding_system): New member suppress_error.
3277
3278 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
3279 (Fset_terminal_coding_system_internal): Set the member
3280 suppress_error to 1.
3281 (Fset_safe_terminal_coding_system_internal): Likewise.
3282
3283 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
3284
3285 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
3286 as if it was a `charset'.
3287
3288 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3289
3290 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
3291 value in where_is_cache; the next lookup in the cache returns
3292 something bogus if we do.
3293
3294 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3295
3296 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
3297 if HAVE_WINDOW_SYSTEM isn't defined.
3298
3299 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3300
3301 * fns.c (sweep_weak_table): Fix code taking items out of
3302 the hash collision chain. Some cleanup.
3303
3304 * xterm.c (x_new_font): Don't change a tooltip's size.
3305
3306 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
3307 background color by specifying a color for the default font
3308 in .Xdefaults.
3309
3310 2001-01-24 Kenichi Handa <handa@etl.go.jp>
3311
3312 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
3313 a workaround for SunOS 4's cc.
3314 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
3315 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
3316 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
3317 statement.
3318
3319 2001-01-23 Gerd Moellmann <gerd@gnu.org>
3320
3321 * xterm.c (x_set_window_size_1): New function extracted from
3322 x_set_window_size.
3323 (x_set_window_size): Use it.
3324 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
3325 doesn't have a widget, like tooltips.
3326
3327 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
3328
3329 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
3330
3331 2001-01-23 Kenichi Handa <handa@etl.go.jp>
3332
3333 * fns.c (Fset_char_table_default): Fix to make sub char-table
3334 correctly.
3335
3336 2001-01-22 Gerd Moellmann <gerd@gnu.org>
3337
3338 * xdisp.c (build_desired_tool_bar_string): Make sure we have
3339 a desired tool bar string, even if there are no tool bar items.
3340
3341 * xdisp.c (Ftool_bar_lines_needed): New function.
3342 (syms_of_xdisp): Defsubr it.
3343
3344 * editfns.c (Fformat): Don't extend text properties from arguments
3345 to padding chars in the result.
3346
3347 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
3348
3349 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
3350
3351 2001-01-20 Andrew Innes <andrewi@gnu.org>
3352
3353 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
3354 (w32_initialize): Don't set term hooks that aren't actually needed
3355 in windowed mode.
3356
3357 * xfaces.c (realize_default_face):
3358 (realize_face):
3359 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
3360
3361 * xdisp.c (handle_single_display_prop): Remove references to
3362 FRAME_W32_CONSOLE_P.
3363
3364 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
3365
3366 * frame.h (output_method): Remove output_w32_console method.
3367 (FRAME_W32_CONSOLE_P): Remove macro.
3368
3369 * frame.c (Qw32_console): Remove variable.
3370 (Fframep): Remove references to it.
3371 (syms_of_frame): Ditto.
3372 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
3373
3374 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
3375 redefinition.
3376
3377 2001-01-20 Kenichi Handa <handa@etl.go.jp>
3378
3379 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
3380
3381 2001-01-19 Andrew Innes <andrewi@gnu.org>
3382
3383 * w32.c (init_environment): Add a version-independent site-lisp
3384 directory to EMACSLOADPATH, after the version dependent one.
3385
3386 2001-01-19 Gerd Moellmann <gerd@gnu.org>
3387
3388 * editfns.c (Fbuffer_substring): Doc fix.
3389
3390 * xdisp.c (message_dolog, message2, message2_nolog):
3391 Rename parameter LEN to NBYTES.
3392
3393 2001-01-19 Kenichi Handa <handa@etl.go.jp>
3394
3395 * charset.c (strwidth): Use c_string_width.
3396 (c_string_width): New function.
3397 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
3398 Caller changed.
3399
3400 * charset.h (c_string_width, lisp_string_width): Extern them.
3401
3402 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
3403
3404 * indent.c (check_composition): Check validity of composition.
3405
3406 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
3407 characters by calling c_string_width.
3408 (x_consider_frame_title): Get byte length of frame tile string
3409 correctly.
3410 (display_mode_element): Pay attention to width of non-ASCII
3411 characters by calling strwidth.
3412
3413 2001-01-18 Gerd Moellmann <gerd@gnu.org>
3414
3415 * xfns.c (Qcancel_timer): New variable.
3416 (syms_of_xfns): Initialize and staticpro it.
3417 (Fx_hide_tip, Fx_show_tip): Use it.
3418 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3419 the timer.
3420 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
3421
3422 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
3423
3424 * window.h (WINDOW_LIVE_P): New macro.
3425
3426 * window.c (window_size_fixed): New variable.
3427 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
3428 the doc string.
3429
3430 * eval.c (specbind): If binding a per-buffer variable which
3431 doesn't have a buffer-local value in the current buffer, change
3432 the global value by changing the value of the symbol bound in all
3433 buffers not having their own value, to make it consistent with
3434 what happens with other buffer-local variables.
3435
3436 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
3437
3438 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
3439 when searching for a newline.
3440
3441 2001-01-18 Kenichi Handa <handa@etl.go.jp>
3442
3443 * xdisp.c (display_string): Fix previous change.
3444
3445 2001-01-18 Jason Rumney <jasonr@gnu.org>
3446
3447 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
3448 GLYPH_DEBUG is defined.
3449 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
3450 true for images with `:ascent 100'.
3451 (x_set_mouse_face_gc): If the last used mouse face has gone in the
3452 meantime, use face MOUSE_FACE_ID.
3453 If first glyph isn't a character glyph, use the ASCII NUL
3454 character to determine the face.
3455 (expose_area): Do not treat left margin specially.
3456 (note_mode_line_highlight): If no local_map, check global keymap.
3457 (note_mouse_highlight): Initialize overlay.
3458 (clear_mouse_face): Don't return if tip_frame is non-nil.
3459 (show_scroll_bars): Remove unused function.
3460 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
3461 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
3462 Clip to row.
3463 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
3464 (x_free_frame_resources): Unload relief colors.
3465
3466 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3467
3468 * xdisp.c (forward_to_next_line_start): Avoid calling
3469 get_next_display_element when the newline is already found.
3470 This may change the iterator's position, when its current position is
3471 equal to the iterator's stop_charpos.
3472
3473 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
3474 zero, use this method only at the end of a line.
3475
3476 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
3477 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
3478 if SCALABLE_FONTS_P is set.
3479
3480 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
3481 so that scalable fonts are included.
3482
3483 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
3484 In the cache, use a key containing the information if scalable
3485 fonts are included.
3486 (x_load_font): Adapt to change of keys in the font cache.
3487
3488 2001-01-17 Kim F. Storm <storm@filanet.dk>
3489
3490 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
3491 XListFonts to take advantage of font caching.
3492
3493 * xterm.c (x_list_fonts): Ensure caching font information when
3494 called for a null frame, which is the case frequently when Emacs
3495 starts.
3496
3497 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3498
3499 * xfns.c (QCconversion): Replaces QCalgorithm.
3500
3501 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
3502
3503 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
3504 of :algorithm.
3505
3506 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
3507 not everything could be displayed.
3508
3509 * line.h, x-list-font.c: Files removed because unused.
3510
3511 2001-01-17 Andrew Innes <andrewi@gnu.org>
3512
3513 * dired.c (directory_files_internal): Convert result from readdir
3514 to a unibyte string initially, to avoid possible misinterpretation
3515 of some bytes as the internal form of Emacs characters.
3516
3517 2001-01-17 Kenichi Handa <handa@etl.go.jp>
3518
3519 * fns.c (concat): Be sure to avoid putting the same `composition'
3520 property on the adjacent regions.
3521
3522 2001-01-16 Gerd Moellmann <gerd@gnu.org>
3523
3524 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
3525 (Fscroll_right, Fscroll_left): Set it here instead, if called
3526 interactively.
3527
3528 * buffer.c (Fset_buffer_modified_p): Set buffer's
3529 prevent_redisplay_optimizations_p flag.
3530
3531 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
3532 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
3533 with additional arg.
3534
3535 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
3536 Change prototype.
3537
3538 * xdisp.c (redisplay_preserve_echo_area): Add parameter
3539 FROM_WHERE, for debugging.
3540
3541 2001-01-16 Kenichi Handa <handa@etl.go.jp>
3542
3543 * ccl.c (Fregister_ccl_program): Handle the return value of
3544 resolve_symbol_ccl_program correctly.
3545 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
3546
3547 2001-01-15 Gerd Moellmann <gerd@gnu.org>
3548
3549 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
3550 has gone in the meantime, use face MOUSE_FACE_ID.
3551
3552 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
3553 If x_display_info_for_display returns null, don't try to close
3554 the display; we didn't open it.
3555
3556 * dispnew.c (save_or_restore_current_matrices): Function removed.
3557 (save_current_matrix, restore_current_matrix): New functions.
3558 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
3559 restore the frame's current matrix. Due to the glyph pointer
3560 setup done in adjust_glyph_matrix, there is no easy way to make
3561 saving the current matrix in the desired matrix generally correct,
3562 so don't try it.
3563
3564 2001-01-15 Kenichi Handa <handa@etl.go.jp>
3565
3566 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
3567 truncation glyphs.
3568 (display_line): Optimize for wide characters.
3569 (display_string): Don't try to display a multi-column character
3570 partially. On ttys, produce more than one truncation glyph for
3571 multi-column characters that don't fit on the line.
3572
3573 2001-01-13 Kenichi Handa <handa@etl.go.jp>
3574
3575 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
3576 Define it instead of WORDS_BIGENDIAN. Caller changed.
3577
3578 2001-01-13 Jason Rumney <jasonr@gnu.org>
3579
3580 * w32fns.c (Fimage_size, image_ascent, lookup_image)
3581 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
3582 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3583 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
3584
3585 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
3586 (x_draw_image_relief, x_draw_image_foreground_1)
3587 (x_draw_image_glyph_string): Adapt to change of image margins.
3588
3589 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
3590 variables.
3591
3592 * w32bdf.c (search_file_line, get_cached_font_char)
3593 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
3594
3595 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
3596
3597 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
3598 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
3599 (Fw32_send_sys_command): Remove unused variables.
3600 (w32_msg_pump): Add parentheses.
3601
3602 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
3603 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
3604 Add parentheses.
3605
3606 2001-01-12 Gerd Moellmann <gerd@gnu.org>
3607
3608 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
3609 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
3610 being a pair of margins.
3611 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
3612 to DEFVAR_LISP. Extend doc.
3613
3614 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
3615 margins.
3616 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
3617 pair of integers `(X . Y)', use X for the horizontal and Y for the
3618 vertical margin.
3619 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
3620 (parse_image_spec): Check it.
3621 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3622 (tiff_format, gif_format, gs_format):
3623 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
3624
3625 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
3626 (x_draw_image_relief, x_draw_image_foreground_1)
3627 (x_draw_image_glyph_string): Adapt to the change of image margins.
3628
3629 * dispextern.h (struct image): Replace member `margin' with
3630 `hmargin' and `vmargin'.
3631
3632 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
3633 and GLYPHS.
3634
3635 * dispnew.c (update_text_area): Put code which decrements the
3636 stop position when the row's face extends to the end of the
3637 line in #if 0.
3638
3639 * xfns.c (x_set_mouse_color): Fix color allocation.
3640
3641 * keyboard.c: Call get_local_map with new argument list.
3642
3643 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
3644
3645 * intervals.h (enum map_property): Removed.
3646 (get_local_map): Change prototype.
3647
3648 * keymap.c: Call get_local_map with new argument list.
3649 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
3650
3651 2001-01-11 Gerd Moellmann <gerd@gnu.org>
3652
3653 * xdisp.c (build_desired_tool_bar_string): Correct the computation
3654 of the size needed for the tool bar string. For the last image,
3655 use a `display' property that reaches to the end of the string.
3656
3657 * xselect.c (selection_request_dpyinfo): New variable.
3658 (x_handle_selection_request): Set it.
3659 (x_selection_request_lisp_error): Don't call
3660 x_decline_selection_request if selection request's display has
3661 been closed.
3662
3663 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
3664 Do the unregister_colors before calling XFreeColors.
3665
3666 2001-01-10 Dave Love <fx@gnu.org>
3667
3668 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
3669 ${SOME_MACHINE_LISP}, not ${lisp}.
3670
3671 2001-01-10 Gerd Moellmann <gerd@gnu.org>
3672
3673 * xdisp.c (display_line): On ttys, produce more than one truncation
3674 glyph for multi-column characters that don't fit on the line.
3675
3676 * xselect.c (x_reply_selection_request): Add a comment.
3677
3678 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
3679 XkbGetNames instead of XkbGetKeyboard.
3680
3681 2001-01-10 Dave Love <fx@gnu.org>
3682
3683 * sysdep.c (random): Revert the declaration.
3684
3685 2001-01-09 Gerd Moellmann <gerd@gnu.org>
3686
3687 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
3688 Call function string_bytes.
3689 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
3690
3691 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
3692 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
3693 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
3694 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
3695 the current sblock.
3696 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
3697 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
3698 after sweeping strings, and at the end.
3699 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
3700
3701 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
3702 ensure that pop_message is called.
3703
3704 * keyboard.c (Fexecute_extended_command): Use a
3705 record_unwind_protect to ensure that pop_message is called.
3706
3707 * lisp.h (push_message_unwind): Add prototype.
3708
3709 * xdisp.c (push_message_unwind): New function.
3710
3711 * fileio.c (do_auto_save_unwind): Do the pop_message here
3712 instead of in Fdo_auto_save.
3713 (Fdo_auto_save): Don't call pop_message.
3714
3715 2001-01-08 Ken Raeburn <raeburn@gnu.org>
3716
3717 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
3718 in inner block.
3719
3720 2001-01-08 Gerd Moellmann <gerd@gnu.org>
3721
3722 * window.c (window_scroll_pixel_based): Adjust glyph matrices
3723 when increasing window's vscroll.
3724
3725 * macros.c (Qkbd_macro_termination_hook): New variable.
3726 (syms_of_macros): Initialize and staticpro it.
3727 (pop_kbd_macro): Run kbd-macro-termination-hook.
3728
3729 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
3730
3731 2001-01-07 Dave Love <fx@gnu.org>
3732
3733 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
3734 arglist, for documentation's sake.
3735
3736 2001-01-06 Andrew Innes <andrewi@gnu.org>
3737
3738 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
3739 of *.pdb.
3740
3741 2001-01-05 Andrew Innes <andrewi@gnu.org>
3742
3743 * term.c (update_end): Don't check updating_frame; for some reason
3744 this can be 0 sometimes, such as after dismissing a popup menu,
3745 and isn't necessary given the explicit frame argument.
3746
3747 2001-01-05 Gerd Moellmann <gerd@gnu.org>
3748
3749 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
3750 on some systems, and an unsigned long on others, like FreeBSD 4.1.
3751
3752 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3753
3754 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
3755
3756 * xfns.c (x_create_tip_frame): Preserve the value of
3757 face_change_count around the creation of the tip frame.
3758
3759 * xfns.c (last_show_tip_args): New variable.
3760 (compute_tip_xy): New function.
3761 (Fx_show_tip): Reuse an existing tip frame, if possible.
3762 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
3763
3764 2001-01-04 Dave Love <fx@gnu.org>
3765
3766 * editfns.c (Fformat): Doc fix.
3767
3768 * systime.h (set_file_times): Prototype.
3769
3770 * widget.h (EmacsFrameSetCharSize_): Prototype.
3771
3772 * sysdep.c (random, srandom): Declare explicitly.
3773
3774 * dispextern.h (move_it_vertically_backward): Declare.
3775
3776 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3777
3778 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
3779 like in Fx_create_frame.
3780
3781 * xfaces.c (set_font_frame_param): Don't do anything for
3782 non-graphical frames.
3783
3784 * window.c (Fdelete_other_windows): Set window's window_end_valid
3785 to nil when changing the window's start. Don't change the
3786 window's start when its top position hasn't changed. If we do,
3787 this will set the window's optional_new_start, which act's like a
3788 force_start during redisplay with C-x 1 M-> under particular
3789 circumstances (see report from Per Starback to emacs-pretest-bug
3790 from 2000-12-13.).
3791
3792 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3793
3794 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
3795 short cut at the start of the function. Add an assertion.
3796 (reseat_at_next_visible_line_start): Add an assertion.
3797
3798 * window.c (Frecenter): When changing the window start, set the
3799 window's window_end_valid to nil.
3800 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
3801
3802 * dispextern.h (move_it_past_eol): Add prototype.
3803
3804 * xdisp.c (move_it_past_eol): New function.
3805
3806 * window.c (Fwindow_end): Doc fix.
3807
3808 2001-01-03 Dave Love <fx@gnu.org>
3809
3810 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
3811
3812 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3813
3814 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
3815 the enabled_p flag of the glyph row at window_end_vpos to 0.
3816 (handle_single_display_prop): Fix last change.
3817
3818 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3819
3820 * window.c (Frecenter): Doc fix.
3821
3822 2001-01-02 Andrew Innes <andrewi@gnu.org>
3823
3824 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
3825
3826 * frame.h (output_method): Add output_w32_console method.
3827 (FRAME_W32_CONSOLE_P): New macro.
3828
3829 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
3830 use output_w32_console method.
3831 (Qw32_console): New Lisp_Object.
3832 (Fframep): Return it.
3833 (syms_of_frame): Init it.
3834 (Fframe_parameters): Report w32console as font for w32_console frames.
3835
3836 * xfaces.c (realize_default_face): Set face foreground and
3837 background to unspecified for w32_console frames.
3838 (realize_face): Realize face cache for w32_console frames.
3839 (realize_tty_face): Accept w32_console frames.
3840
3841 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
3842 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
3843 necessary, even if running interactively.
3844
3845 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
3846 w32_console frames.
3847
3848 * w32term.c (x_update_begin):
3849 (x_update_end):
3850 (x_clear_frame):
3851 (x_ins_del_lines):
3852 (x_change_line_highlight):
3853 (x_delete_glyphs):
3854 (w32_ring_bell):
3855 (x_update_begin):
3856 (x_update_end):
3857 (w32_reassert_line_highlight):
3858 (w32_frame_rehighlight):
3859 (w32_frame_raise_lower): Do nothing if not w32 frame.
3860
3861 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
3862
3863 * w32fns.c (Fx_display_color_cells): Determine correct value, when
3864 system doesn't tell us directly.
3865 (Fx_display_visual_class): Implement properly.
3866
3867 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3868
3869 * window.c (Frecenter): Handle centering in graphical frames
3870 specially. Centering on the basis of line counts doesn't work
3871 reliably with variable-height lines.
3872
3873 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3874
3875 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
3876 and al[].
3877
3878 * composite.c (run_composition_function): Remove unused var `val'.
3879 (update_compositions): Remove unused variable `hook'.
3880
3881 * intervals.c (get_local_map): Remove unused variable `tem'.
3882
3883 * doprnt.c (doprnt1): Remove unused variable `size'.
3884
3885 * fns.c (Flength): Remove unused variable `tail'.
3886 (Fdelete): Remove unused variable `size'.
3887
3888 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
3889 and `gcpro2'.
3890
3891 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
3892
3893 * data.c (find_symbol_value): Remove extra 3rd argument in the
3894 call to swap_in_symval_forwarding.
3895
3896 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
3897
3898 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
3899 (trivial_regexp_p): Remove unused variable `c'.
3900 (boyer_moore): Remove unused variable `k'.
3901
3902 * indent.c (current_column): Remove unused variable `stopchar'.
3903 (Fcompute_motion): Remove unused variable `contin'.
3904
3905 * casefiddle.c (casify_object): Remove unused variable `tolen'.
3906
3907 * dired.c (directory_files_internal): Fix a typo in a comment.
3908 Remove an unused variable `handler'.
3909 (file_name_completion): Remove unused function-scope variable `dp'.
3910 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
3911 on BSD4_2.
3912
3913 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
3914
3915 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
3916 and `buf'.
3917 (Fmarker_insertion_type): Remove unused variable `buf'.
3918
3919 * insdel.c (make_gap): Remove unused variable `result'.
3920
3921 * keyboard.c (record_char): Remove unused function-scope var `help'.
3922 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
3923 (menu_bar_items): Remove unused function-scope variable `tem'.
3924
3925 * fontset.c (fontset_ref): Remove unused variable `i'.
3926 (fontset_set): Remove unused variables `j' and `tmp'.
3927 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
3928 (make_fontset_for_ascii_face): Remove unused variable `name'.
3929 (fs_load_font): Remove unused variable `font_idx'.
3930 (fs_query_fontset): Remove unused function-local variable `fontset'.
3931 (list_fontsets): Remove unused variable `tail'.
3932 (Fnew_fontset): Remove unused variables `family' and `registry'.
3933 (accumulate_font_info): Remove unused variable `tmp'.
3934 (Ffontset_font): Remove unused variable `id'.
3935 (syms_of_fontset): Remove unused variable `i'.
3936
3937 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
3938 to x_term_init.
3939 (lookup_image): Remove unused variable `file'.
3940 (xbm_load): Remove unused variables `bitmap_data', `height', and
3941 `width'. Remove function-local variable `i', leave the
3942 block-local one.
3943 (gif_load): Remove unused variable `inc'.
3944
3945 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
3946 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
3947 leave only the one in the inner block.
3948
3949 * xfaces.c (face_fontset, realize_default_face): Remove unused
3950 variable `fontset'.
3951 (face_at_buffer_position): Remove unused variable `multibyte_p'.
3952
3953 * term.c (encode_terminal_code): Remove unused variable `c'.
3954
3955 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
3956 char *' instead of `char *'.
3957
3958 * category.c (Fcategory_docstring): Remove unused variable `doc'.
3959 (Fget_unused_category): Remove unused variable `docstring_vector'.
3960 (Fchar_category_set): Remove unused variables `val', `charset',
3961 `c1' and `c2'.
3962
3963 * coding.c (detect_coding_iso2022, setup_coding_system):
3964 Remove unused variable `i'.
3965 (detect_coding_mask): Remove unused variable `idx'.
3966 (detect_coding): Remove unused variable `i'.
3967 (ccl_coding_driver): Remove unused variable `result'.
3968 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
3969 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
3970 (encode_coding_string): Remove unused variables `gcpro1' and
3971 `saved_coding_symbol'.
3972 (Ffind_coding_systems_region_internal): Remove function-local
3973 variable args[], leave only the block-local one.
3974 (code_convert_region1): Remove unused variable `len'.
3975
3976 * charset.c (char_printable_p): Remove unused variable `chars'.
3977 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
3978 (str_to_multibyte): Remove unused variable `c'.
3979
3980 * window.c (size_window): Remove block-local variable `min_size'.
3981
3982 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
3983 `header_line_height'.
3984 (append_space, extend_face_to_end_of_line): Declare `saved_what'
3985 enum display_element_type.
3986
3987 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3988
3989 * xterm.c (x_connection_closed): Catch X errors around all
3990 statements that call X. Save away the error message in a local copy.
3991
3992 * xterm.c (x_connection_closed): Set handling_signal to 0 at
3993 the start.
3994
3995 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
3996 in or at the start of invisible text.
3997
3998 * dispnew.c (update_window): Don't check_current_matrix_flags.
3999
4000 2001-01-01 Jason Rumney <jasonr@gnu.org>
4001
4002 * w32fns.c (x_figure_window_size): Do not allow new_height and
4003 new_width of frame to override specified values.
4004
4005 2000-12-30 Kenichi Handa <handa@etl.go.jp>
4006
4007 * composite.c (find_composition): Fix a code for searching backward.
4008
4009 2000-12-29 Gerd Moellmann <gerd@gnu.org>
4010
4011 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
4012 (update_window) [GLYPH_DEBUG]: Call it.
4013 (scrolling_window): Prevent including current rows which are below
4014 what's displayed in the window.
4015
4016 * xdisp.c (try_window_reusing_current_matrix)
4017 <new start <= old start>: Disable rows in the current matrix
4018 which are below the window after scrolling.
4019
4020 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
4021 is zero. It's not worth the complexity.
4022 (invisible_text_between_p): Put in #if 0 because unused.
4023
4024 2000-12-28 Gerd Moellmann <gerd@gnu.org>
4025
4026 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
4027 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
4028
4029 * keyboard.c (echo_char): If C is an integer, always call
4030 push_key_description. Former code could signal an invalid
4031 character error.
4032
4033 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
4034 If set, print multibyte text.
4035 (Fsingle_key_description): Call push_key_description with
4036 FORCE_MULTIBYTE set.
4037 (describe_buffer_bindings): Likewise.
4038
4039 * lisp.h (push_key_description): Add prototype.
4040
4041 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
4042 around the call to redisplay_internal.
4043
4044 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4045
4046 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4047
4048 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4049
4050 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
4051 (ccl_driver): New local variable `extra_bytes'.
4052
4053 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
4054
4055 * coding.c (setup_coding_system):
4056 Initialize coding->spec.ccl.eight_bit_carryover.
4057 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
4058
4059 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4060
4061 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
4062 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
4063 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
4064 (decode_composition_emacs_mule): New function.
4065 (decode_coding_emacs_mule): Decode composition sequence by calling
4066 decode_composition_emacs_mule.
4067 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
4068 (encode_coding_emacs_mule): Changed from macro to function.
4069 If a text contains compositions, encode them correctly.
4070 (setup_coding_system): Set coding->commong_flags for emacs-mule so
4071 that decoding and encoding are required.
4072
4073 2000-12-27 Gerd Moellmann <gerd@gnu.org>
4074
4075 * xfaces.c (PT_PER_INCH): New macro.
4076 (xlfd_point_size): Compute real point size from font's pixel size.
4077 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
4078 instead of 72.
4079
4080 * .gdbinit: Comment out the line pointing to the Lesstif source
4081 directory.
4082
4083 * window.c (Frecenter): Use displayed_window_lines instead
4084 of window_internal_height.
4085
4086 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4087 instead of x-toolkit-scroll-bars-p.
4088 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4089
4090 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4091 instead of x-toolkit-scroll-bars-p.
4092 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4093
4094 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
4095 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
4096 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
4097 New variables.
4098 (add_window_display_history, add_frame_display_history)
4099 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
4100 (build_frame_matrix_from_leaf_window): Remove unused code.
4101 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
4102 redisplay history.
4103 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
4104 (update_window) [GLYPH_DEBUG]: Likewise.
4105 (syms_of_display): Defsubr dump-redisplay-history.
4106
4107 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4108
4109 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
4110 the end of the prompt. Set echo_after_prompt to the offset
4111 of echoptr in echobuf.
4112
4113 * xdisp.c (init_from_display_pos): Pop until the iterator's
4114 stack is empty; there may be frames for stretch or images
4115 on the stack.
4116
4117 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
4118 (save_or_restore_current_matrix): New function for the same
4119 purpose, but more efficient.
4120 (adjust_frame_glyphs_for_frame_redisplay): Use it.
4121
4122 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
4123
4124 * xdisp.c (syms_of_xdisp): Fix last change.
4125
4126 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4127
4128 * xdisp.c (syms_of_xdisp): Doc fix.
4129
4130 * xdisp.c (redisplay_window): Remove label restore_buffers;
4131 use finish_scroll_bars instead to make sure that scroll bars
4132 are redeemed. If we don't do this, flickering can result from
4133 scroll bars being destroyed and recreated.
4134
4135 2000-12-22 Jason Rumney <jasonr@gnu.org>
4136
4137 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
4138 in the wrong colors when the foreground is not black.
4139 (expose_window): Don't redraw the window that's currently being
4140 updated.
4141
4142 2000-12-22 Gerd Moellmann <gerd@gnu.org>
4143
4144 * window.c (size_window): When setting the window's too_small_ok
4145 flag, compare old size with minimum size depending on WIDTH_P,
4146 don't compare with window_min_width.
4147
4148 * window.c (delete_window): Simplify somewhat.
4149 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
4150 freeing window matrices. The flag windows_or_buffers_changed is
4151 set, so the next redisplay will consider all windows; this should
4152 suffice.
4153
4154 2000-12-22 Kenichi Handa <handa@etl.go.jp>
4155
4156 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
4157
4158 * ccl.h (struct ccl_program): New member cr_consumed.
4159
4160 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
4161 (CCL_READ_CHAR): Handle EOL conversion here.
4162 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
4163
4164 2000-12-21 Gerd Moellmann <gerd@gnu.org>
4165
4166 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
4167
4168 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
4169 otherwise tabs of different size compare equal.
4170
4171 * callint.c (Fcall_interactively): Prevent a compiler warning.
4172
4173 * print.c (print_unwind): Return nil.
4174 (PRINTDECLARE): Initialize all local variables.
4175 (print_preprocess): Add a default case.
4176
4177 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
4178
4179 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
4180
4181 * window.c (delete_window, Fsplit_window)
4182 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
4183
4184 * dispextern.h (ensure_frame_matrix): Function declaration removed.
4185
4186 * dispnew.c (ensure_frame_matrix): Removed.
4187 (save_frame_matrix, restore_frame_matrix): New functions.
4188 (adjust_frame_glyphs_for_frame_redisplay): Use them.
4189
4190 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
4191 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
4192
4193 2000-12-21 Andrew Innes <andrewi@gnu.org>
4194
4195 * w32term.c (x_update_begin): Regenerate the palette here, rather
4196 than for each window.
4197
4198 * w32xfns.c (select_palette): Avoid calling SelectPalette if
4199 palette is NULL, since this corrupts memory! Also get
4200 display_info reference from frame.
4201
4202 2000-12-21 Jason Rumney <jasonr@gnu.org>
4203
4204 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
4205
4206 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
4207 to avoid returning without releasing it.
4208
4209 2000-12-21 Kenichi Handa <handa@etl.go.jp>
4210
4211 * keymap.c (push_key_description): Don't convert eight-bit-control
4212 and eight-bit-graphic to multibyte character.
4213
4214 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
4215 generic character and CODE1 is nil, return the smallest character
4216 in CHARSET.
4217
4218 2000-12-20 Dave Love <fx@gnu.org>
4219
4220 * s/osf5-0.h (NSIG): Don't redefine.
4221
4222 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
4223
4224 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
4225 excluding menu-bar and tool-bar.
4226 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
4227 (menu_item_p): Remove.
4228 (where_is_internal_1): Don't ignore menu-items.
4229
4230 2000-12-20 Gerd Moellmann <gerd@gnu.org>
4231
4232 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
4233 into account.
4234
4235 * window.c (make_window): Initialize window's min_hscroll.
4236 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
4237 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
4238 to zero.
4239 (struct saved_window): New member min_hscroll.
4240 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
4241 (Fset_window_configuration): Set window's min_hscroll.
4242 (save_window_save): Save window's min_hscroll.
4243 (compare_window_configurations): Compare min_hscroll values.
4244
4245 * window.h (struct window): New member min_hscroll.
4246
4247 * keyboard.c (echo_prompt): Prevent a compiler warning.
4248
4249 * xdisp.c (try_cursor_movement): Fix last change. The real
4250 condition is that PT is at the end of the row, and should
4251 be displayed at the start of the next row.
4252
4253 * xdisp.c (try_cursor_movement): If we end on a partially
4254 visible line, end we already decided to scroll, return -1.
4255
4256 * dispextern.h (ensure_frame_matrix): Add prototype.
4257
4258 * window.c (delete_window, Fsplit_window)
4259 (Fset_window_configuration): Call ensure_frame_matrix.
4260
4261 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
4262 New functions.
4263 (adjust_frame_glyphs_for_frame_redisplay): If display has been
4264 completed, call fake_current_matrices instead of marking frame
4265 garbaged.
4266
4267 2000-12-20 Jason Rumney <jasonr@gnu.org>
4268
4269 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
4270
4271 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4272
4273 * fns.c (Frequire): Doc fix.
4274
4275 2000-12-19 Gerd Moellmann <gerd@gnu.org>
4276
4277 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
4278
4279 * dispnew.c (direct_output_for_insert): Fix check for mini-window
4280 currently displaying a message.
4281
4282 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
4283 xterm.h.
4284 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
4285
4286 2000-12-18 Andrew Innes <andrewi@gnu.org>
4287
4288 * w32.c (w32_strerror): New function.
4289
4290 * w32.h (w32_strerror): New extern.
4291
4292 * w32fns.c (Fw32_shell_execute): Use it.
4293
4294 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4295
4296 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
4297
4298 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4299
4300 * msdos.c (IT_set_face): Obey inverse_video.
4301
4302 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4303
4304 * dired.c (directory_files_internal): Always return decoded filenames.
4305
4306 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4307
4308 * xterm.c (x_connection_closed): Prevent being called recursively
4309 because of an error condition in XtCloseDisplay.
4310
4311 * xdisp.c (init_iterator): If noninteractive, and the frame's
4312 face cache is null, make one.
4313
4314 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
4315
4316 * process.c (wait_reading_process_input): Check for pending
4317 input when running timers.
4318
4319 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4320
4321 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
4322
4323 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4324
4325 * process.c (read_process_output): Don't run a filter if the code
4326 decoder produces nothing but carryover.
4327
4328 2000-12-17 Andrew Innes <andrewi@gnu.org>
4329
4330 * w32.c (sys_rename): Only check errno against EEXIST, and not
4331 EACCES, when determining whether rename failed because the target
4332 exists. This was resulting in indefinite looping on Windows 9x if
4333 the source file was locked by another process.
4334
4335 * w32fns.c (Ffile_system_info): New function.
4336 (syms_of_w32fns): Defsubr it.
4337
4338 2000-12-17 Gerd Moellmann <gerd@gnu.org>
4339
4340 * window.c (coordinates_in_window): Fix computation for
4341 position on vertical line between mode lines.
4342
4343 * xfns.c (unwind_create_frame): Return t if frame was deleted.
4344 Don't alter tip_frame or tip_window.
4345 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4346 was deleted.
4347
4348 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
4349 Don't alter tip_frame or tip_window.
4350 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4351 was deleted.
4352
4353 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4354
4355 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
4356 be consistent with the doc string. Reported by NAKAJIMA Mikio
4357 <minakaji@osaka.email.ne.jp>.
4358
4359 2000-12-16 Kenichi Handa <handa@etl.go.jp>
4360
4361 * xfaces.c (Vface_ignored_fonts): New variable.
4362 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
4363 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
4364
4365 2000-12-15 Gerd Moellmann <gerd@gnu.org>
4366
4367 * dispnew.c (update_window): Detect pending input every nth line
4368 updated, i.e. do it depending on real work done, and not on the
4369 vpos of the line.
4370
4371 * xterm.c (expose_window): Don't redraw the window that's
4372 currently being updated.
4373
4374 * window.c (Fset_window_point): Remove test for
4375 cursor_in_non_selected_windows.
4376
4377 * lread.c (read1): Recognize end of file after `\\'.
4378
4379 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
4380 not unwind_create_frame.
4381
4382 2000-12-15 Dave Love <fx@gnu.org>
4383
4384 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
4385 bcopy & al.
4386
4387 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
4388
4389 2000-12-15 Kenichi Handa <handa@etl.go.jp>
4390
4391 * coding.c (setup_coding_system): Clear all members of the struct
4392 coding_system at first.
4393 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
4394 argument.
4395 (code_convert_region): Don't override coding->src_multibyte and
4396 coding->dst_multibyte.
4397
4398 * fns.c (Fmd5): Docstring improved.
4399
4400 2000-12-15 Miles Bader <miles@gnu.org>
4401
4402 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
4403 are actually marked as mode-lines; otherwise use
4404 estimate_mode_line_height.
4405
4406 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4407
4408 * editfns.c (Fformat): Prevent a buffer overrun when the format
4409 specifies a precision.
4410
4411 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
4412
4413 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
4414 argument is outside the range [2..3].
4415
4416 2000-12-14 Andrew Innes <andrewi@gnu.org>
4417
4418 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
4419 nothing to do. Bind inhibit-quit.
4420 (tip_frame): Make it a Lisp_Object.
4421 (x_create_tip_frame): Set tip_frame after it has been added to
4422 Vframe_list.
4423 (Fx_show_tip): Don't set tip_frame here.
4424 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
4425 (unwind_create_frame, unwind_create_tip_frame): New functions.
4426 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4427 while a frame is only partially constructed.
4428
4429 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4430 (x_free_frame_resources): New function.
4431 (x_destroy_window): Use it.
4432
4433 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4434
4435 * xfns.c (Fx_backspace_delete_keys_p): New function.
4436 (syms_of_xfns): Defsubr it.
4437
4438 * config.in (HAVE_XKBGETKEYBOARD): Add.
4439
4440 2000-12-14 Kenichi Handa <handa@etl.go.jp>
4441
4442 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
4443 Always store string in multibyte representation in echobuf.
4444 (echo_char): Always store string in multibyte representation in
4445 echobuf.
4446 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
4447 (read_key_sequence): Adjusted for the change of echo_prompt.
4448
4449 * fns.c (Fmd5): Docstring improved.
4450
4451 * lisp.h (detect_coding_system): Prototype adjusted.
4452
4453 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
4454 (detect_coding_emacs_mule, detect_coding_iso2022,)
4455 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
4456 (detect_coding_utf_16, detect_coding_ccl): Make them static.
4457 New argument MULTIBYTEP. Callers changed.
4458 (detect_coding_mask, detect_coding_system): New argument
4459 MULTIBYTEP. Callers changed.
4460 (decode_coding_string): Set coding->src_multibyte and
4461 coding->dst_multibyte before calling detect_coding and detect_eol.
4462 Update them after some coding system is detected.
4463
4464 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
4465
4466 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
4467
4468 * keyboard.c (menu_bar_items, tool_bar_items):
4469 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
4470
4471 2000-12-13 Gerd Moellmann <gerd@gnu.org>
4472
4473 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
4474 New variables.
4475 (unwind_create_frame, unwind_create_tip_frame): New functions.
4476 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4477 while a frame is only partially constructed.
4478
4479 * xterm.h (x_free_frame_resources): Declare.
4480
4481 * xterm.c (x_free_frame_resources): New function.
4482 (x_destroy_window): Use it.
4483
4484 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
4485 don't interrupt the update for pending input initially, i.e.
4486 update at least some lines.
4487
4488 * keyboard.c (do_mouse_tracking): Make externally visible.
4489
4490 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
4491
4492 * xfns.c (gray_bitmap_bits): Declare `char *'.
4493
4494 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4495
4496 * xdisp.c (display_tool_bar_line): Make sure that tool bar
4497 lines start with a relief line.
4498
4499 2000-12-12 Dave Love <fx@gnu.org>
4500
4501 * window.c (Fdisplay_buffer): Doc fix.
4502 (Fwindow_list): Remove unused var.
4503
4504 * buffer.h (mmap_set_vars): Declare.
4505
4506 * window.h (Fset_window_point): Declare.
4507
4508 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
4509
4510 * msdos.c (fast_find_position): Don't overstep the last window row.
4511 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
4512 variable `area'. When looking for a row under (X,Y), give up if some
4513 of the previous rows is not enabled.
4514
4515 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4516
4517 * window.c (Fset_window_point): If displaying cursors in windows
4518 other than the selected window, make sure redisplay updates
4519 other windows to show the new value of point in the window.
4520
4521 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
4522
4523 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
4524 the buffer is the sole visible buffer when in the mini-buffer.
4525
4526 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
4527 Bind `inhibit-read-only' to t.
4528 (unwind_with_echo_area_buffer): Use AREF.
4529
4530 * xfns.c (Fx_hide_tip): Simplified.
4531
4532 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
4533 instead of `1'.
4534
4535 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
4536
4537 2000-12-11 Gerd Moellmann <gerd@gnu.org>
4538
4539 * xfns.c (Fx_hide_tip): Fix last change.
4540
4541 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
4542 nothing to do. Bind inhibit-quit.
4543 (tip_frame): Make it a Lisp_Object.
4544 (x_create_tip_frame): Set tip_frame after it has been added to
4545 Vframe_list.
4546 (Fx_show_tip): Don't set tip_frame here.
4547
4548 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4549
4550 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
4551 Lisp_Object.
4552
4553 * dispextern.h: Change external declaration of tip_frame.
4554
4555 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
4556 return an empty string.
4557
4558 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
4559 of the window's update_mode_line flag, since the former is set by
4560 force-mode-line-update, not the latter. This makes
4561 column-number-mode slightly faster.
4562
4563 * xdisp.c (try_window_id) <all changes above window start>:
4564 Set the cursor.
4565
4566 2000-12-11 Paul Eggert <eggert@twinsun.com>
4567
4568 * config.in (HAVE_FTELLO): Remove.
4569 (HAVE_FSEEKO): Add.
4570 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
4571 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
4572 HAVE_FTELLO.
4573 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
4574 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
4575
4576 2000-12-11 Miles Bader <miles@gnu.org>
4577
4578 * window.c (displayed_window_lines): Don't round up when
4579 converting empty space at bottom to lines.
4580 Handle non-newline-terminated final lines properly.
4581 (Fwindow_text_height): New function (used to be in lisp).
4582 (syms_of_window): Initialize it.
4583
4584 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
4585
4586 * syntax.c (scan_lists): Check that the right quote char has the
4587 right Sstring syntax when jumping over strings.
4588 (init_syntax_once): Use Smax rather than 13.
4589
4590 2000-12-09 Miles Bader <miles@gnu.org>
4591
4592 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
4593 with PARTIALLY, inverting the sense.
4594 (window_scroll_pixel_based): Scroll partially visible lines into
4595 place if we hit the beginning or end of the buffer.
4596 (displayed_window_lines): Don't include partially visible lines.
4597 (Fmove_to_window_line): Skip past any partially visible first line.
4598
4599 2000-12-08 Gerd Moellmann <gerd@gnu.org>
4600
4601 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
4602
4603 * tparam.c (tparam1): Change the way buffers are reallocated to be
4604 portable and less obfuscated.
4605
4606 * termcap.c (tgetent): Change the way buffers are reallocated to
4607 be portable and less obfuscated.
4608
4609 * macros.c (store_kbd_macro_char): Change the way buffers are
4610 reallocated to be portable and less obfuscated.
4611
4612 * lread.c (read1): Change the way buffers are reallocated to be
4613 portable and less obfuscated.
4614
4615 * doc.c (Fsubstitute_command_keys): Change the way buffers
4616 are reallocated so that it is portable.
4617
4618 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
4619
4620 * dosfns.c (Ffile_system_info): New function.
4621 (syms_of_dosfns): Defsubr it.
4622
4623 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
4624
4625 * alloc.c (gc_sweep): Add comment.
4626
4627 2000-12-07 Gerd Moellmann <gerd@gnu.org>
4628
4629 * sound.c (vox_configure): Change order of ioctls.
4630 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
4631 Ignore errors when changing volume.
4632 (vox_close): Don't reset the device.
4633
4634 * process.c (read_process_output): Make sure the process marker's
4635 position is valid when the process buffer is changed in
4636 after-change functions. W3 does that.
4637
4638 * xfns.c (x_free_gcs): New function.
4639
4640 * xterm.h (x_free_gcs): Add prototype.
4641
4642 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
4643 freeing GCs here.
4644
4645 * xterm.c (x_destroy_window): Call x_free_gcs so that
4646 resources of non-toolkit X windows will be freed.
4647
4648 2000-12-07 Andrew Innes <andrewi@gnu.org>
4649
4650 * w32fns.c (xlfd_charset_of_font): Fix last change.
4651
4652 2000-12-06 Dave Love <fx@gnu.org>
4653
4654 * md5.h (__P): Don't define -- it comes from config.h.
4655
4656 * strftime.c: Change some #if foo to #ifdef foo.
4657
4658 2000-12-06 Andrew Innes <andrewi@gnu.org>
4659
4660 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
4661
4662 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
4663 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
4664 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
4665
4666 2000-12-06 Gerd Moellmann <gerd@gnu.org>
4667
4668 * alloc.c (gc_sweep): Prevent symbols read during loadup
4669 from being freed.
4670
4671 * xdisp.c (underlying_face_id): New function.
4672 (handle_face_prop, face_before_or_after_it_pos): Use it
4673 to determine the face ``under'' a string. Let strings inherit
4674 the face of the buffer under them.
4675
4676 * xfaces.c (face_at_string_position): Update function comment.
4677
4678 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
4679 matrix if the window's left position has changed; we need to
4680 redraw it in this case.
4681
4682 * dispextern.h (struct glyph_matrix): Add member window_left_x.
4683
4684 * window.c (coordinates_in_window): Check mouse on mode-line or
4685 header-line first.
4686
4687 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
4688 advertized by the function documentation.
4689
4690 * window.c (syms_of_window): Doc fix.
4691
4692 * sound.c (vox_configure): Set volume for left and right channel.
4693 (sound_cleanup): Return nil.
4694
4695 * xdisp.c (move_it_by_lines): Fix paren typo.
4696
4697 * xterm.c (x_load_font): Don't use the font's max_bounds for
4698 computing the height of the font. If max_bounds' ascent or
4699 descent are greater than the font's ascent or descent, this means
4700 glyphs overlap, which should be handled now by redisplay.
4701
4702 * window.c (Veven_window_heights): New variable.
4703 (syms_of_window): DEFVAR_LISP it.
4704 (Fdisplay_buffer): Check Veven_window_heights before evening the
4705 window heights.
4706
4707 2000-12-06 Miles Bader <miles@gnu.org>
4708
4709 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
4710 update `default-frame-alist' instead of setting no frame parameters.
4711
4712 2000-12-06 Kenichi Handa <handa@etl.go.jp>
4713
4714 * composite.c (update_compositions): Fix typo (use the correct
4715 variable).
4716
4717 2000-12-05 Jason Rumney <jasonr@gnu.org>
4718
4719 * md5.h: Remove underscores from function declarations.
4720 (__attribute__, __alignof__) [!__GNUC__]: Define.
4721
4722 * md5.c: Delay include of md5.h until after namespace cleaning.
4723
4724 * makefile.w32-in (fns.o): Depend on md5.h
4725 (md5.o): New target.
4726 (sunfns.o): Remove.
4727
4728 * makefile.nt: Likewise.
4729
4730 2000-12-05 Jason Rumney <jasonr@altavista.net>
4731
4732 * w32term.c (expose_area): Complete last change.
4733
4734 2000-12-05 Ken Raeburn <raeburn@gnu.org>
4735
4736 * minibuf.c: Include intervals.h.
4737
4738 2000-12-05 Jason Rumney <jasonr@gnu.org>
4739
4740 * w32term.c (x_produce_glyphs): If a font for a component of
4741 a composition is not found, use 1 pixel dot ascent and 0 dot
4742 descent value to avoid displaying terribly tall empty boxes.
4743 (expose_area): Pass x-coordinate relative to the exposed
4744 area to x_draw_glyphs instead of a window-relative coordinate.
4745
4746 2000-12-05 Gerd Moellmann <gerd@gnu.org>
4747
4748 * xdisp.c (next_element_from_ellipsis): Save face before selective
4749 display in saved_face_id, and set face_before_selective_p.
4750 (reseat_1): Reset face_before_selective_p.
4751 (append_space, extend_face_to_end_of_line): If iterator's
4752 face_before_selective_p is set, use the face from saved_face_id.
4753 (extend_face_to_end_of_line): For tty frames, make sure to
4754 use the right face id when producing spaces at the end of
4755 the line.
4756
4757 * dispextern.h (struct it): Add face_before_selective_p.
4758
4759 * keyboard.c (record_char): Don't record identical help-echo
4760 events in recent_keys.
4761
4762 * xterm.c [USE_X_TOOLKIT]: Close the display.
4763 (xim_close_dpy): Handle case that the display has been closed.
4764
4765 * xterm.c (x_destroy_window): Reset the frame's X window after
4766 destroying it.
4767
4768 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
4769 variable window_width.
4770 (line_draw_cost): Fix code skipping over spaces at the end of the
4771 line when must_write_spaces is not set.
4772 (scrolling_window): Fix code inserting runs in list of all runs.
4773
4774 2000-12-05 Kenichi Handa <handa@etl.go.jp>
4775
4776 * coding.c (setup_coding_system): Be sure to initialize
4777 coding->category_idx.
4778
4779 2000-12-04 Gerd Moellmann <gerd@gnu.org>
4780
4781 * xterm.c (PER_CHAR_METRIC): Removed because not used.
4782
4783 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
4784 area to x_draw_glyphs instead of a window-relative coordinate.
4785
4786 * fileio.c (auto_save_error): Add parameter ERROR. Show the
4787 error in the message.
4788
4789 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
4790 timer after having read a key. It's not good for code reading
4791 several keys in a loop, like an input method.
4792
4793 * fileio.c (Finsert_file_contents): When VISIT is t, don't
4794 record undo information for format-decode.
4795
4796 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
4797 current buffer is read-only, not if it isn't.
4798
4799 * keyboard.c (record_char): Record `help-echo' input events
4800 in recent_keys only if they display some help. Don't record
4801 `help-echo' events as macro char.
4802
4803 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4804
4805 * editfns.c (save_excursion_restore): Don't move point
4806 in another window if it is showing the wrong buffer.
4807 Avoid the call to Fwindow_live_p, for speed.
4808
4809 2000-12-04 Kenichi Handa <handa@etl.go.jp>
4810
4811 * xfaces.c (struct font_name): New member registry_priority.
4812 (split_font_name): Initialize the above member to zero.
4813 (concat_font_list): New function.
4814 (font_list): Include fonts of all alternative registries.
4815 (FONT_POINT_SIZE_QUANTUM): New macro.
4816 (better_font_p): Ignore point size difference less than
4817 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
4818
4819 * xterm.c (x_produce_glyphs): If a font for a component of
4820 a composition is not found, use 1 pixel dot ascent and 0 dot
4821 descent value to avoid displaying terribly tall empty boxes.
4822
4823 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
4824
4825 2000-12-03 Ken Raeburn <raeburn@gnu.org>
4826
4827 * coding.h (code_convert_string1): Declare.
4828
4829 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
4830
4831 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
4832
4833 2000-12-02 Jason Rumney <jasonr@gnu.org>
4834
4835 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
4836 correctly for single byte character case.
4837 (w32_per_char_metric): Do not try to make any assumptions about
4838 the metrics of BDF fonts.
4839 (x_estimate_mode_line_height): If `mode-line' face
4840 hasn't a font, use that of the frame, as drawing glyphs does.
4841 (note_mouse_highlight): Change the cursor shape on the vertical
4842 border between windows [not enabled].
4843
4844 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
4845
4846 * w32fns.c (Fx_create_frame): Reintroduce the call to
4847 face-set-after-frame-defaults.
4848 (Vx_window_horizontal_drag_shape): New variable.
4849 (syms_of_xfns): DEFVAR_LISP it.
4850 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
4851 enabled].
4852
4853 2000-12-02 Simon Josefsson <simon@josefsson.org>
4854
4855 * fns.c (Fmd5): Use a different logic to decide the coding system
4856 to use.
4857
4858 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
4859
4860 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
4861
4862 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
4863
4864 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4865
4866 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
4867 height for YNegative.
4868 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
4869 height; also see comment there.
4870
4871 * window.c (coordinates_in_window): Handle computations for
4872 positions on the vertical bar and fringes differently for
4873 window-system frames. Consider some pixels near the vertical bar
4874 as on the bar if the frame doesn't have vertical scroll bars.
4875 Associate positions between mode or header lines with the
4876 right window, the left one.
4877
4878 2000-12-01 Jason Rumney <jasonr@gnu.org>
4879
4880 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
4881
4882 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
4883 invalid frame.
4884
4885 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4886
4887 * window.c (struct saved_window): Add members orig_top and orig_height.
4888 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
4889 (save_window_save, Fset_window_configuration): Save/restore
4890 window's orig_top and orig_height.
4891
4892 2000-12-01 Jason Rumney <jasonr@gnu.org>
4893
4894 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
4895
4896 * w32fns.c (x_set_cursor_color): Fix last change.
4897
4898 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4899
4900 * xdisp.c (echo_area_display): If cursor is in the echo area, make
4901 sure that the next redisplay displays the minibuffer, so that
4902 the cursor will be replaced with what the minibuffer wants.
4903
4904 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
4905 #ifndef instead of using #if.
4906 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
4907 USE_TOOLKIT_SCROLL_BARS is defined.
4908
4909 2000-11-30 Jason Rumney <jasonr@gnu.org>
4910
4911 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
4912 x_display_cursor.
4913
4914 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4915
4916 * fns.c (Fmd5): Doc fix.
4917
4918 2000-11-30 Simon Josefsson <simon@josefsson.org>
4919
4920 * fns.c (Fmd5): New function.
4921 (syms_of_fns): Defsubr md5.
4922
4923 * Makefile.in (obj): Add md5.o
4924
4925 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4926
4927 * md5.h, md5.c: New files, taken from glibc.
4928
4929 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
4930
4931 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
4932 hasn't a font, use that of the frame, as drawing glyphs does.
4933
4934 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
4935
4936 * eval.c (Frun_hooks): Allow 0 arguments.
4937
4938 2000-11-29 Gerd Moellmann <gerd@gnu.org>
4939
4940 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
4941 is over the menu bar widget, say it's not on the frame.
4942
4943 * xfns.c (Fx_create_frame): Reintroduce the call to
4944 face-set-after-frame-defaults.
4945
4946 * eval.c (Fsignal): Reset handling_signal.
4947
4948 2000-11-28 Jason Rumney <jasonr@gnu.org>
4949
4950 * w32menu.c (add_menu_item): Reset menu item text when changing
4951 type to radio button.
4952
4953 2000-11-28 Gerd Moellmann <gerd@gnu.org>
4954
4955 * xselect.c: Update copyright.
4956
4957 * window.c (coordinates_in_window): If on a mode or header line,
4958 but sufficiently close to its start, return ``on vertical
4959 border''. This gives us a way to drag windows horizontally when
4960 using toolkit scroll bars.
4961
4962 * xterm.c (note_mouse_highlight): Change the cursor shape
4963 on the vertical border between windows.
4964
4965 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
4966
4967 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
4968 (syms_of_xfns): DEFVAR_LISP it.
4969 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
4970
4971 * textprop.c (text_read_only): New function.
4972 (verify_interval_modification): Use it instead of signaling
4973 `text-read-only'. This makes it easier to catch this error
4974 with a breakpoint.:
4975
4976 * xdisp.c (forward_to_next_line_start): Check for newlines,
4977 not end of line, which includes CR.
4978
4979 2000-11-28 Kenichi Handa <handa@etl.go.jp>
4980
4981 * coding.c (Ffind_coding_systems_region_internal): Be sure to
4982 include no-conversion.
4983
4984 2000-11-27 Jason Rumney <jasonr@gnu.org>
4985
4986 * w32fns.c (w32_load_system_font): Always mark font as double byte
4987 if codepage is unicode.
4988
4989 2000-11-27 Gerd Moellmann <gerd@gnu.org>
4990
4991 * xdisp.c (forward_to_next_line_start): If already on a newline,
4992 just consume it to avoid unintended skipping over invisible text below.
4993
4994 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
4995 `vertical-line', `mode-line' and `header-line' events.
4996
4997 * xdisp.c (try_window_id): Avoid starting to display in the middle
4998 of a character, a TAB for instance. This is easier than to set
4999 up the iterator exactly, and it's not a frequent case, so the
5000 additional effort wouldn't really pay off.
5001
5002 2000-11-26 Andrew Choi <akochoi@i-cable.com>
5003
5004 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
5005 init_window_once.
5006
5007 2000-11-25 Jason Rumney <jasonr@gnu.org>
5008
5009 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
5010 Args to window_from_coordinates should be pixel coordinates.
5011
5012 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
5013 redisplay handles them properly.
5014
5015 2000-11-25 Miles Bader <miles@gnu.org>
5016
5017 * indent.c (compute_motion): Keep pos_byte in sync with pos.
5018
5019 2000-11-24 Jason Rumney <jasonr@gnu.org>
5020
5021 * w32.c (init_environment): Set LANG environment variable based on
5022 locale settings, if not set.
5023
5024 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
5025 making tool bar smaller. When clearing the frame, also
5026 clear current matrices. Clear frame when tool bar disappears.
5027 Don't use more lines for the tool-bar than is available.
5028 (x_change_window_heights): New function.
5029
5030 2000-11-24 Gerd Moellmann <gerd@gnu.org>
5031
5032 * xdisp.c (init_from_display_pos): If POS says we're already after
5033 an overlay string ending at POS, make sure to pop the iterator
5034 because it will be in front of that overlay string. When POS is
5035 ZV, we've thereby also ``processed'' overlay strings at ZV.
5036
5037 * xfaces.c (lface_from_face_name): Function comment fix.
5038
5039 2000-11-24 Miles Bader <miles@gnu.org>
5040
5041 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
5042 apply `mode-line-inverse-video' -- zero means force display using
5043 the default face, non-zero means display using the specialized face.
5044 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
5045
5046 2000-11-23 Kenichi Handa <handa@etl.go.jp>
5047
5048 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
5049 hard coded `4'.
5050
5051 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
5052
5053 * coding.c (decode_coding_emacs_mule): Fix the case of
5054 CODING_EOL_LF, which used uninitialized value of c.
5055
5056 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
5057
5058 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
5059
5060 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5061
5062 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
5063 buffer object.
5064
5065 * frame.h (struct frame): Replace desired_tool_bar_items,
5066 current_tool_bar_items, n_desired_tool_bar_items,
5067 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
5068
5069 * frame.c (make_frame): Change initialization of tool bar
5070 items accordingly.
5071
5072 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
5073 Change references to members deleted from struct frame to use the
5074 new ones.
5075
5076 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
5077 references to members deleted from struct frame to use the new ones.
5078
5079 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
5080
5081 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
5082
5083 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
5084 (note_tool_bar_highlight): Change references to members deleted
5085 from struct frame to use the new ones.
5086
5087 2000-11-23 Miles Bader <miles@gnu.org>
5088
5089 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
5090 the face's inverse-video attribute, rather than overriding it.
5091
5092 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5093
5094 * xfns.c (x_set_tool_bar_lines): Clear internal border when
5095 making tool bar smaller.
5096
5097 2000-11-22 Dave Love <fx@gnu.org>
5098
5099 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
5100
5101 2000-11-22 Miles Bader <miles@gnu.org>
5102
5103 * keyboard.c (Vminibuffer_message_timeout): New variable.
5104 (command_loop_1): Use it to determine message timeout.
5105 (syms_of_keyboard): Initialize it.
5106
5107 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
5108
5109 2000-11-22 Kenichi Handa <handa@etl.go.jp>
5110
5111 * sysdep.c: Move the code for declaring h_errno after #include
5112 <netdb.h>.
5113
5114 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5115
5116 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
5117 the menu bar when the tooltip is unmapped.
5118
5119 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
5120 sole visible buffer when we're currently in the mini-buffer, and
5121 give up if so.
5122
5123 2000-11-21 Jason Rumney <jasonr@gnu.org>
5124
5125 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
5126 put on the clipboard.
5127 (Fw32_get_clipboard_data): Compare data on clipboard with saved
5128 copy of what Emacs last put there. If they are the same, do not
5129 use the clipboard copy to avoid losing data due to coding conversions.
5130
5131 2000-11-22 Miles Bader <miles@gnu.org>
5132
5133 * minibuf.c (Vminibuffer_prompt_properties): New variable.
5134 (syms_of_minibuf): Initialize it.
5135 (read_minibuf): Add properties from Vminibuffer_prompt_properties
5136 to prompt, don't make read-only.
5137
5138 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5139
5140 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
5141 Add BEFORE/AFTER_POTENTIAL_GC.
5142
5143 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
5144
5145 * buffer.c (mmap_free_1): Avoid a compiler warning.
5146
5147 * term.c, cm.c: Don't try to include termcap.h; see comment there.
5148
5149 2000-11-21 Kenichi Handa <handa@etl.go.jp>
5150
5151 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
5152 ... #endif scope.
5153
5154 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5155
5156 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
5157 screen supports it.
5158
5159 * s/gnu-linux.h: Don't use `#cpu'.
5160
5161 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
5162 not defined in mman.h.
5163
5164 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
5165 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
5166 and store an index in the XClientMessageEvent. Storing a
5167 Lisp_Object or pointer can fail on a 64 bit system, since X only
5168 transfers 32 bits.
5169 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
5170
5171 2000-11-20 Dave Love <fx@gnu.org>
5172
5173 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
5174
5175 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5176
5177 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
5178
5179 2000-11-20 Kenichi Handa <handa@etl.go.jp>
5180
5181 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
5182 by WIDTH.
5183
5184 * alloc.c (make_string): Fix previous change. Be sure to make
5185 unibyte string correctly.
5186
5187 2000-11-19 Gerd Moellmann <gerd@gnu.org>
5188
5189 * window.c (Fwindow_list): Change parameter list to be XEmacs
5190 compatible.
5191 (window_list_1): New function.
5192 (window_loop): Use it instead of Fwindow_list.
5193
5194 * sysdep.c (emacs_ospeed): New variable.
5195 (toplevel): Don't declare ospeed extern.
5196 (init_baud_rate): Use emacs_ospeed instead of ospeed.
5197
5198 * termcap.c (ospeed): Remove.
5199 (tputs) [!emacs]: Remove unused code.
5200 (tgetent): Avoid a compiler warning.
5201
5202 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
5203 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
5204 SCROLL_BAR_X_WIDGET with additional argument DPY.
5205
5206 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
5207 removed.
5208 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
5209 Take the X display as additional argument.
5210 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
5211 `Widget' is a pointer type that's not easily stored in Lisp_Object
5212 form in a portable way.
5213
5214 * dispnew.c (update_text_area): Fix last change.
5215
5216 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5217
5218 * xdisp.c: Use BINDING_STACK_SIZE throughout.
5219
5220 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
5221 clear current matrices.
5222
5223 * buffer.c (mmap_enlarge): Don't print a message on stderr
5224 if mapping new memory at the end of the existing region fails.
5225
5226 * dispnew.c (update_text_area): Don't skip over equal glyphs
5227 when the last current glyph overlaps the glyph to its right.
5228
5229 2000-11-18 Miles Bader <miles@gnu.org>
5230
5231 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
5232 lines that *end* with "..." too (that's the most common case!).
5233
5234 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5235
5236 * xdisp.c (resize_mini_window): Temporarily change to the
5237 mini-window's buffer if necessary.
5238
5239 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
5240 the tooltip obscures less text under it.
5241
5242 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5243
5244 * puresize.h (BASE_PURESIZE): Increase to 700000.
5245
5246 2000-11-18 Jason Rumney <jasonr@gnu.org>
5247
5248 * w32term.c (w32_draw_bitmap): Use face to set colors.
5249
5250 2000-11-17 Dave Love <fx@gnu.org>
5251
5252 * lread.c (Fload): Fix #ifdef for pcc.
5253
5254 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5255
5256 * xdisp.c (pos_visible_p): Compute the default character height
5257 differently.
5258
5259 2000-11-16 Gerd Moellmann <gerd@gnu.org>
5260
5261 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
5262 knowing the line's height; use the default font's height in that case.
5263
5264 * xfaces.c (weight_table): Add `demi' with the same meaning as
5265 `demibold'.
5266
5267 2000-11-16 Kenichi Handa <handa@etl.go.jp>
5268
5269 * dispnew.c (null_row): New global static variable.
5270 (clear_glyph_row): Delete local static variable null_row.
5271
5272 2000-11-15 Jason Rumney <jasonr@gnu.org>
5273
5274 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
5275 (w32_alloc_lighter_color): Use new brightness calculations from
5276 xterm.c. Scale delta to be in the range expected by W32.
5277 (w32_draw_relief_rect): Use frame relief colors.
5278
5279 2000-11-15 Gerd Moellmann <gerd@gnu.org>
5280
5281 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
5282 (Qinhibit_default_face_x_resources): New variable.
5283 (syms_of_frame): Initialize it.
5284 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
5285
5286 * xdisp.c (pos_visible_p): Improve function comment.
5287
5288 * lisp.h (BINDING_STACK_SIZE): New macro.
5289
5290 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
5291 reading the directory if readdir returns null and errno is EAGAIN
5292 or EINTR.
5293
5294 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
5295
5296 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
5297 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
5298 Set amount_to_scroll to max of dx and scroll_step so that
5299 scroll-conservatively doesn't defeat scroll-step>1.
5300 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
5301 scroll-conservatively for line-at-a-time scrolling.
5302
5303 2000-11-14 Gerd Moellmann <gerd@gnu.org>
5304
5305 * window.c (Fpos_visible_in_window_p): Call pos_visible with
5306 extra argument.
5307
5308 * xdisp.c (current_mode_line_height, current_header_line_height):
5309 New variables.
5310 (init_xdisp): Initialize them.
5311 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
5312 and use exact mode line heights if it is set.
5313
5314 * lisp.h (pos_visible_p): Change prototype.
5315
5316 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
5317 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
5318 and current_header_line_height first.
5319 (current_mode_line_height, current_header_line_height):
5320 Declare extern.
5321
5322 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
5323
5324 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
5325 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
5326 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
5327
5328 2000-11-14 Miles Bader <miles@gnu.org>
5329
5330 * xterm.c (x_alloc_lighter_color): Include an additive component
5331 too for dark colors, because FACTOR isn't enough.
5332 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
5333 New macros.
5334
5335 2000-11-13 Gerd Moellmann <gerd@gnu.org>
5336
5337 * keyboard.c (show_help_echo): Call message3_nolog with number of
5338 bytes in the help string as 2nd parameter, instead of the number
5339 of characters.
5340
5341 2000-11-13 Miles Bader <miles@gnu.org>
5342
5343 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
5344 (Fload): Use new openp return protocol.
5345 Don't try to use Vload_source_file_function to load .elc files.
5346 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
5347 openp return protocol.
5348 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
5349
5350 2000-11-11 Kenichi Handa <handa@etl.go.jp>
5351
5352 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
5353
5354 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
5355 Defined these macros.
5356 (NLIST_STRUCT): Avoid re-defining it.
5357
5358 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
5359 -I/usr/contrib/X11R6/include.
5360 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
5361
5362 2000-11-10 Jason Rumney <jasonr@gnu.org>
5363
5364 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
5365
5366 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
5367 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
5368
5369 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
5370 (Qw32_charset_vietnamese): New symbol.
5371 (xlfd_charset_of_font): New function.
5372 (w32_load_system_font): Use it.
5373 (x_to_w32_charset): Use Fassoc to find charset info. Special case
5374 when Vw32_charset_info_alist is nil to ensure default face always
5375 has font. Use Fcar and Fcdr for safety.
5376 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
5377 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
5378 pseudo-codepages for special cases.
5379 (w32_to_x_font): New parameter to allow charset portion to be
5380 specified where there is many to one mapping. Callers changed.
5381 (w32_list_fonts): Avoid listing fonts that won't display.
5382
5383 2000-11-10 Gerd Moellmann <gerd@gnu.org>
5384
5385 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
5386 (font_list_1): Renamed from font_list.
5387 (font_list): New function, trying alternative registries from
5388 Vface_alternative_font_registry_alist.
5389 (Finternal_set_alternative_font_registry_alist): New function.
5390 (syms_of_xfaces): Initialize and Staticpro
5391 Vface_alternative_font_registry_alist.
5392 Defsubr Finternal_set_alternative_font_registry_alist.
5393
5394 2000-11-09 Ken Raeburn <raeburn@gnu.org>
5395
5396 * lisp.h (Flooking_at): Declare.
5397
5398 2000-11-09 Gerd Moellmann <gerd@gnu.org>
5399
5400 * dired.c (directory_files_internal): Fix a braino.
5401
5402 * dired.c (directory_files_internal): Add missing GCPRO's.
5403 Some cleanup.
5404
5405 2000-11-08 Gerd Moellmann <gerd@gnu.org>
5406
5407 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
5408 (resize_mini_window): Return quickly if Vresize_mini_window is
5409 nil. Don't return if Vmax_mini_window_height is nil.
5410
5411 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
5412 (syms_of_xdisp): Initialize them.
5413 (resize_mini_window): Act according to the setting of
5414 Vresize_mini_window.
5415 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
5416
5417 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
5418 scroll bar widget after configuring it, so that it will appear at
5419 the right position from the start.
5420 (XTredeem_scroll_bar): Cleaned up.
5421
5422 2000-11-08 Kenichi Handa <handa@etl.go.jp>
5423
5424 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5425 font is taller than the frame line, we don't have to bias the
5426 division by two.
5427
5428 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
5429
5430 2000-11-07 Dave Love <fx@gnu.org>
5431
5432 * config.in (HAVE_MKSTEMP): Add.
5433
5434 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
5435
5436 2000-11-07 Gerd Moellmann <gerd@gnu.org>
5437
5438 * window.c (Fset_window_configuration): Don't try to preserve
5439 point in the current buffer, if that buffer is displayed in more
5440 than one window.
5441
5442 * xfaces.c (lookup_named_face): If default face isn't realized,
5443 try to realize it. Return -1 if not successful.
5444 (Fx_list_fonts): Handle case that face cannot be determined.
5445 (Fface_font): Likewise.
5446
5447 2000-11-06 Gerd Moellmann <gerd@gnu.org>
5448
5449 * window.c (displayed_window_lines): Detect partially
5450 visible lines at the bottom correctly.
5451
5452 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
5453
5454 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
5455 when ensuring we don't do visit in indirect buffer.
5456
5457 2000-11-06 Kenichi Handa <handa@etl.go.jp>
5458
5459 * composite.h (compose_chars_in_text): Add prototype.
5460
5461 * composite.c (Vcomposition_function_table): New variable.
5462 (Qcomposition_function_table): New variable.
5463 (run_composition_function): Call
5464 Vcompose_chars_after_function with three arguments.
5465 (compose_chars_in_text): New function.
5466 (syms_of_composite): Modified the doc-string of
5467 Vcompose_chars_after_function. Declare composition-function-table
5468 as a lisp variable, and initialize it.
5469
5470 * xfns.c (x_encode_text): Suppress producing escape sequences for
5471 composition.
5472
5473 * xselect.c: Include composite.h.
5474 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
5475
5476 2000-11-05 Andrew Innes <andrewi@gnu.org>
5477
5478 * w32term.c (x_produce_glyphs): Fix typo in enum name.
5479
5480 * sysdep.c (read_input_waiting): Remove extraneous argument to
5481 read_socket_hook.
5482
5483 * w32fns.c (Fx_server_version): Include w32_build_number in the
5484 return list.
5485
5486 * w32heap.c (w32_build_number): New variable.
5487 (cache_system_info): Set it.
5488
5489 * w32heap.h (w32_build_number): Add extern.
5490
5491 * emacs.c (syms_of_emacs): Update docstring for
5492 system-configuration, to reflect the actual usage on MS-Windows.
5493
5494 2000-10-31 Gerd Moellmann <gerd@gnu.org>
5495
5496 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
5497 process idle timers while waiting for another event.
5498
5499 * dispnew.c (update_frame_line): Handle case where spaces in
5500 the default face are colored.
5501
5502 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
5503 window height hasn't changed.
5504
5505 2000-10-31 Jason Rumney <jasonr@gnu.org>
5506
5507 * w32term.c (x_produce_glyphs): Handle composite characters.
5508 (x_draw_glyph_string_foreground)
5509 (x_draw_composite_glyph_string_foreground): Restore old font.
5510
5511 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
5512
5513 * minibuf.c (read_minibuf): Reset the undo history just before
5514 starting the recursive-edit.
5515
5516 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5517
5518 * xfaces.c (menu_face_change_count): New variable.
5519 (Finternal_set_lisp_face_attribute): Increment it for changes
5520 of the `menu' face.
5521 (realize_basic_faces): Reflect changes in the `menu' faces
5522 in menu bars.
5523
5524 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
5525 dy obtained from the iterator's y-position after moving from
5526 scroll_margin_pos to PT; see comment there.
5527
5528 * xdisp.c (safe_eval_handler): Call add_to_log.
5529
5530 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
5531 is not a symbol or string.
5532
5533 * xdisp.c (echo_area_display): Don't perform a display update from
5534 inside redisplay. The update will happen anyway at the end of
5535 redisplay, and it can confuse redisplay (GC messages while
5536 redisplaying, for instance.)
5537
5538 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
5539
5540 * xrdb.c (x_load_resources): Use the class name in the defaults.
5541
5542 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
5543 (regex_compile): Catch bogus \(\1\).
5544
5545 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5546
5547 * xterm.c (x_alloc_nearest_color): Fix last change to compare
5548 RGB values.
5549
5550 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
5551 we have a color cache, check that the cached color equals the
5552 allocated color. If not, clear the color cache.
5553
5554 * window.c (displayed_window_lines): Change buffers if necessary.
5555 Fix computation of displayed lines.
5556
5557 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
5558 update_menu_bindings to DEFVAR_BOOL.
5559
5560 2000-10-30 Kenichi Handa <handa@etl.go.jp>
5561
5562 * search.c (Fset_match_data): Be sure to make search_regs always sane.
5563
5564 * puresize.h (BASE_PURESIZE): Increase to 680000.
5565
5566 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
5567
5568 2000-10-29 Jason Rumney <jasonr@gnu.org>
5569
5570 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
5571
5572 * w32term.c (w32_bdf_per_char_metric): Negate descent.
5573 (w32_cache_char_metrics): Handle possibility that 'x' does not
5574 exist in a BDF font.
5575 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
5576
5577 * w32bdf.h (bdffont): Add nchars.
5578
5579 * w32bdf.c (set_bdf_font_info): Set it.
5580 (w32_BDF_TextOut): Swap byte order of double byte characters.
5581 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
5582
5583 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
5584
5585 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
5586 don't override the colors in frame's param_alist, unless they are
5587 unspecified.
5588
5589 * term.c (reassert_line_highlight): If inverse_video is non-zero,
5590 reverse the effect of the highlight flag.
5591
5592 2000-10-27 Ken Raeburn <raeburn@gnu.org>
5593
5594 * window.h (Fwindow_live_p): Declare.
5595
5596 * undo.c (record_delete): Check that last_undo_buffer is really a
5597 buffer before applying XBUFFER to it.
5598
5599 * keymap.c (where_is_internal): Pass lisp object, not integer, to
5600 Faref.
5601
5602 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5603
5604 * lisp.h (KEYMAPP): New macro.
5605 (get_keymap): Remove.
5606 (get_keymap_1): Rename get_keymap.
5607
5608 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
5609
5610 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
5611
5612 * xmenu.c (single_submenu): Use KEYMAPP.
5613 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5614 Use KEYMAPP rather than Fkeymapp.
5615
5616 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
5617
5618 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
5619 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5620 Use KEYMAPP rather than Fkeymapp.
5621 (single_submenu): Use KEYMAPP.
5622 (w32_menu_show, w32_dialog_show): Use TRUE.
5623
5624 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
5625
5626 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
5627 (Fkeymapp): Use KEYMAPP.
5628 (get_keymap): Rename from get_keymap_1. Remove old def.
5629 Return t when autoload=0 and error=0 and the keymap needs autoloading.
5630 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
5631 (Fminor_mode_key_binding): Don't raise an error if the binding
5632 is not a keymap.
5633 (Fuse_global_map, Fuse_local_map): Allow autoloading.
5634 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
5635
5636 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
5637 Allow Vspecial_event_map to be autoloaded.
5638 (menu_bar_items): Fetch the keymap rather than using keymapp.
5639 (menu_bar_one_keymap): No need to follow func-indirect any more.
5640 (parse_menu_item): get_keymap_1 -> get_keymap.
5641 (tool_bar_items): Fetch the keymap rather than using keymapp.
5642 (read_key_sequence): Use KEYMAPP.
5643
5644 * intervals.c (get_local_map): Use get_keymap rather than following
5645 function-indirections explicitly.
5646
5647 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
5648
5649 2000-10-27 Jason Rumney <jasonr@gnu.org>
5650
5651 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
5652 point, as Windows has oversized fonts.
5653
5654 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
5655
5656 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5657
5658 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
5659 (freehook, reallochook): Handle null pointer arguments.
5660 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
5661
5662 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5663
5664 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
5665 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
5666 Giving in to popular pressure to shut up the compiler with casts.
5667
5668 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5669
5670 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
5671 signed value, and use a default value computed from the font's
5672 maximum descent.
5673
5674 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
5675
5676 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
5677 that specify a negative underline position can still use underlines.
5678
5679 * window.c (Fpos_visible_in_window_p): Make POS default to
5680 WINDOW's point, not the current buffer's point.
5681
5682 2000-10-26 Dave Love <fx@gnu.org>
5683
5684 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
5685 when it's necessary.
5686
5687 2000-10-26 Gerd Moellmann <gerd@gnu.org>
5688
5689 * window.c (size_window): Compute size difference from sum of old
5690 child window sizes instead of from parent's size.
5691
5692 * xdisp.c (pos_visible_p): Change current buffer if necessary.
5693 Handle obscured lines at the top of the window.
5694
5695 * frame.c (Fdelete_frame): Doc fix. Move running the hook
5696 down after the last error condition check.
5697
5698 * frame.c (Fdelete_frame): Run delete-frame-hook.
5699
5700 2000-10-26 Kenichi Handa <handa@etl.go.jp>
5701
5702 * coding.c (decode_coding): Fix previous change (check also
5703 CODING_MODE_LAST_BLOCK).
5704
5705 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5706
5707 * regex.c: More `unsigned char' -> `re_char' changes.
5708 Also change several `int' into `re_wchar_t'.
5709 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
5710 (PUSH_FAILURE_POINTER): Don't cast any more.
5711 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
5712 We want GCC to complain, since this piece of code makes
5713 re_match non-reentrant, which *should* be fixed.
5714 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
5715 (EXTEND_BUFFER): Use RETALLOC.
5716 (SET_LIST_BIT): Don't cast.
5717 (re_wchar_t): New type.
5718 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
5719 that those two functions will always properly return.
5720 (IMMEDIATE_QUIT_CHECK): Cast to void.
5721 (analyse_first): Use recursion rather than an explicit stack.
5722 (re_compile_fastmap): Can't fail anymore.
5723 (re_search_2): Don't check re_compile_fastmap for failure.
5724 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
5725 Now also sets the new value (passed in a new argument).
5726 (re_match_2_internal): Use it.
5727 Also, use a new var `reg' of type size_t when looping through regs
5728 rather than reuse the inappropriate `mcnt'.
5729
5730 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
5731 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
5732 (where_is_internal): Renamed from Fwhere_is_internal.
5733 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
5734 (Fwhere_is_internal): New function wrapping where_is_internal.
5735 (where_is_internal_1): Handle the case where we're filling the cache.
5736 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
5737
5738 2000-10-25 Miles Bader <miles@gnu.org>
5739
5740 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
5741
5742 2000-10-25 Gerd Moellmann <gerd@gnu.org>
5743
5744 * window.c (pos_fully_visible_p): Removed.
5745 (Fpos_visible_in_window_p): Use pos_visible_p to determine
5746 if position is visible and/or fully visible.
5747
5748 * lisp.h (pos_visible_p): Add prototype.
5749
5750 * xdisp.c (pos_visible_p): New function.
5751
5752 2000-10-25 Kenichi Handa <handa@etl.go.jp>
5753
5754 * process.c (send_process): If OBJECT is t, it means that the data
5755 is from C string, but we should encode it. Before calling
5756 setup_raw_text_coding_system, be sure to flush out data by the
5757 previous coding system.
5758
5759 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
5760
5761 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
5762 assignment of startpos to prev when startpos == pos.
5763
5764 * editfns.c (find_field): Set the field stickiness correctly from
5765 overlay fields. Use renamed `text_property_stickiness'.
5766 (text_property_stickiness): Renamed from `char_property_stickiness'.
5767 Only check text properties, not overlays.
5768 * textprop.c (get_char_property_and_overlay): New function.
5769 (Fget_char_property): Use it.
5770 * intervals.h (get_char_property_and_overlay): Add declaration.
5771
5772 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5773
5774 * keymap.c: Use AREF, ASET and ASIZE macros.
5775 (Fmake_sparse_keymap): Docstring fix.
5776 (synkey): Remove.
5777 (shadow_lookup): Move up.
5778 Handle the case where lookup-key returns an integer.
5779 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
5780 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
5781 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
5782 Simplify/rewrite the keymap-finding code.
5783 Add check for command shadowing, using shadow_lookup.
5784
5785 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
5786
5787 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
5788 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
5789 a symbol.
5790
5791 2000-10-24 Andrew Innes <andrewi@gnu.org>
5792
5793 * dired.c (directory_files_internal_unwind): New function.
5794 (directory_files_internal): Use it to ensure closedir is called
5795 even if expand-file-name or file-attributes throw, eg. because of
5796 a user interrupt. Also enable immediate_quit while calling
5797 re_search, so that matching can be interrupted as well.
5798
5799 2000-10-24 Andrew Innes <andrewi@gnu.org>
5800
5801 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
5802 NT-Emacs only.
5803 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
5804 so that re_search functions only quit when callers expect them to.
5805
5806 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5807
5808 * regex.c (regex_compile): Change the way of handling a range from
5809 a char less than 256 to a char not less than 256.
5810
5811 2000-10-24 Gerd Moellmann <gerd@gnu.org>
5812
5813 * window.c (size_window): Prevent setting window's width or
5814 height to a negative value (esp. with XSETFASTINT).
5815
5816 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
5817 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
5818 (protect_malloc_state) [GC_MALLOC_CHECK &&
5819 GC_PROTECT_MALLOC_STATE]: New function.
5820 (PROTECT_MALLOC_STATE): New macro.
5821 (__malloc_initialize, morecore, _malloc_internal)
5822 (_free_internal) _realloc_internal): Use it to make _heapinfo
5823 read-only outside of gmalloc.
5824
5825 * keymap.c: Update copyright.
5826
5827 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
5828 a symbol.
5829
5830 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
5831
5832 * filelock.c (unlock_all_files): Use unlock_file to expand each
5833 buffer's file_truename before trying remove its lock file.
5834
5835 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
5836
5837 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
5838 or CRLF, decode EOLs.
5839
5840 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5841
5842 * window.c (Fdisplay_buffer): Fix doc.
5843
5844 2000-10-23 Jason Rumney <jasonr@gnu.org>
5845
5846 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
5847 ASCII font of default fontset on Windows.
5848
5849 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
5850 xterm.c comment below).
5851
5852 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
5853
5854 2000-10-23 Gerd Moellmann <gerd@gnu.org>
5855
5856 * xterm.c (x_connection_closed): Reset handling_signal.
5857
5858 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
5859
5860 2000-10-23 Miles Bader <miles@gnu.org>
5861
5862 * window.c (window_scroll_pixel_based, window_scroll_line_based):
5863 Pass nil for FULLY argument to Fpos_visible_in_window_p to
5864 maintain old behavior.
5865 * minibuf.c (Fminibuffer_complete): Likewise.
5866
5867 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
5868
5869 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
5870 that when a font can't be exactly centered, it errs up rather than
5871 down.
5872
5873 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
5874
5875 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
5876
5877 2000-10-23 Andrew Choi <akochoi@i-cable.com>
5878
5879 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
5880
5881 * dispnew.c [macintosh]: Include macterm.h.
5882 (init_display) [macintosh]: Initialization for window system.
5883
5884 * emacs.c (main) [macintosh]: Call syms_of_textprop,
5885 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
5886 syms_of_search, x_term_init, and init_keyboard before calling
5887 init_window_once. Also, call syms_of_xmenu.
5888
5889 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
5890 default fontset to Monaco.
5891
5892 * frame.c [macintosh]: Include macterm.h. Remove declarations of
5893 NewMacWindow and DisposeMacWindow.
5894 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
5895 instead of calling NewMacWindow and setting fields of
5896 f->output_data.mac directly. Call init_frame_faces.
5897 (Fdelete_frame) [macintosh]: Remove unused code.
5898 (Fmodify_frame_parameters) [macintosh]: Call
5899 x_set_frame_parameters instead of mac_set_frame_parameters.
5900
5901 * frame.h [macintosh]: Define menu_bar_lines field in struct
5902 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
5903
5904 * keyboard.c [macintosh]: Include macterm.h.
5905 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
5906 and menu_bar_activate_event type events as for X and NT.
5907 (make_lispy_event) [macintosh]: Construct lisp events of type
5908 MENU_BAR_EVENT as for X and NT.
5909
5910 * sysdep.c [macintosh]: Remove declaration for sys_signal.
5911 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
5912 (sys_subshell) [macintosh]: Remove definition entirely.
5913 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
5914 Vwindow_system_version here. Remove initialization of
5915 Vx_bitmap_file_path.
5916 (read_input_waiting): Correct the number of parameters passed to
5917 read_socket_hook.
5918 Move all Macintosh functions to mac/mac.c.
5919
5920 * term.c [macintosh]: Include macterm.h.
5921
5922 * window.c [macintosh]: Include macterm.h.
5923
5924 * xdisp.c [macintosh]: Include macterm.h. Declare
5925 set_frame_menubar and pending_menu_activation.
5926 (echo_area_display) [macintosh]: Do not return if terminal frame
5927 is the selected frame.
5928 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
5929 Allow only the selected frame to set menu bar.
5930 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
5931 calling FRAME_EXTERNAL_MENU_BAR (f).
5932 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
5933
5934 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
5935 and check_x. Declare XCreateGC. Define x_create_gc and
5936 x_free_gc. Initialize font_sort_order.
5937 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
5938 but call x_list_fonts instead of w32_list_fonts.
5939 (Finternal_face_x_get_resource) [macintosh]: Do not call
5940 display_x_get_resource.
5941 (prepare_face_for_display) [macintosh]: Set xgcv.font.
5942 (realize_x_face) [macintosh]: Load the font if it is specified in
5943 ATTRS.
5944 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
5945
5946 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
5947
5948 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
5949 is nil: since we go to the end of submap anyway, we'd end up
5950 setting nil to nil.
5951 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
5952 doesn't obey autoload.
5953
5954 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5955
5956 * msdos.c (dos_set_window_size): Update screen dimension variables.
5957
5958 2000-10-21 Jason Rumney <jasonr@gnu.org>
5959
5960 * w32term.c (w32_cache_char_metrics): Double check that font is
5961 really fixed pitch before trusting tmPitchAndFamily.
5962
5963 2000-10-21 Andrew Innes <andrewi@gnu.org>
5964
5965 * w32gui.h (w32_char_font_type): Move enum from w32term.c
5966
5967 * w32term.h: Extern decl for w32_cache_char_metrics.
5968
5969 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
5970
5971 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
5972 (w32_unload_font): Free per_char array if present.
5973
5974 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
5975 cached information in emulated XFontStruct to handle common cases
5976 quickly. Do not allocate XCharStruct for return.
5977 (w32_native_per_char_metric): New function.
5978 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
5979 allocating one.
5980 (x_produce_glyphs): Don't get an HDC. Change calls to
5981 w32_per_char_metric to match arg change above. Remove calls to
5982 free results.
5983 (w32_get_glyph_overhangs): Ditto.
5984 (w32_cache_char_metrics): New function.
5985
5986 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
5987 ($(BLD)/casefiddle.$(O)): Remove compile command.
5988 ($(BLD)/gmalloc.$(O)): Remove compile command.
5989 ($(BLD)/dispnew.obj):
5990 ($(BLD)/keyboard.obj):
5991 ($(BLD)/w32inevt.obj):
5992 ($(BLD)/w32bdf.obj):
5993 ($(BLD)/alloc.obj):
5994 ($(BLD)/buffer.obj):
5995 ($(BLD)/editfns.obj):
5996 ($(BLD)/emacs.obj):
5997 ($(BLD)/fileio.obj):
5998 ($(BLD)/fns.obj):
5999 ($(BLD)/indent.obj):
6000 ($(BLD)/insdel.obj):
6001 ($(BLD)/intervals.obj):
6002 ($(BLD)/minibuf.obj):
6003 ($(BLD)/print.obj):
6004 ($(BLD)/scroll.obj):
6005 ($(BLD)/sysdep.obj):
6006 ($(BLD)/textprop.obj):
6007 ($(BLD)/widget.obj):
6008 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
6009 ($(BLD)/term.obj): Add dependency on dispextern.h.
6010
6011 * makefile.nt ($(BLD)\dispnew.obj):
6012 ($(BLD)\keyboard.obj):
6013 ($(BLD)\w32inevt.obj):
6014 ($(BLD)\w32bdf.obj):
6015 ($(BLD)\alloc.obj):
6016 ($(BLD)\buffer.obj):
6017 ($(BLD)\editfns.obj):
6018 ($(BLD)\emacs.obj):
6019 ($(BLD)\fileio.obj):
6020 ($(BLD)\fns.obj):
6021 ($(BLD)\indent.obj):
6022 ($(BLD)\insdel.obj):
6023 ($(BLD)\intervals.obj):
6024 ($(BLD)\minibuf.obj):
6025 ($(BLD)\print.obj):
6026 ($(BLD)\scroll.obj):
6027 ($(BLD)\sysdep.obj):
6028 ($(BLD)\textprop.obj):
6029 ($(BLD)\widget.obj):
6030 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
6031 ($(BLD)\term.obj): Add dependency on dispextern.h
6032
6033 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6034
6035 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
6036 with an additional argument of Qt.
6037
6038 2000-10-21 Miles Bader <miles@gnu.org>
6039
6040 * window.c (pos_fully_visible_in_window_p): New function.
6041 (Fpos_visible_in_window_p): Add FULLY argument.
6042 Use pos_fully_visible_in_window_p.
6043 (window_scroll_pixel_based, window_scroll_line_based): Update
6044 calls to Fpos_visible_in_window_p.
6045 * lisp.h (Fpos_visible_in_window_p): Update prototype
6046
6047 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6048
6049 * alloc.c (toplevel): Conditionalize compilation of mem_*
6050 functions differently.
6051
6052 2000-10-20 Jason Rumney <jasonr@gnu.org>
6053
6054 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
6055 mem_init where it used to be. mem_z etc not defined otherwise.
6056
6057 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6058
6059 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
6060 GC_MALLOC_CHECK.
6061 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
6062 structure definition and related variabled to the top of the file.
6063 Include this code when GC_MALLOC_CHECK is defined.
6064 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
6065 register/unregister allocated region.
6066 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
6067 which isn't allocated.
6068 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
6069 something which is already in use.
6070 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
6071 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
6072 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
6073 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
6074
6075 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
6076 _malloc_internal instead of malloc.
6077 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
6078 of free.
6079
6080 2000-10-20 Andrew Innes <andrewi@gnu.org>
6081
6082 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
6083 Windows.
6084 (my_strftime) <macro>: Don't use macro arg list when redefining as
6085 _strftime_copytm.
6086 (my_strftime) <function>: Supply 0 as ut argument.
6087
6088 2000-10-19 Jason Rumney <jasonr@altavista.net>
6089
6090 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
6091 including dispextern.h, as it stops faces from working.
6092
6093 * w32fns.c (Fx_create_frame): Don't bother calling
6094 face-set-after-frame-default since the caller does it for us
6095 anyway. Clean up calls to x_get_arg to be consistent with X.
6096
6097 * w32term.c (x_produce_glyphs): Handle
6098 unibyte_display_via_language_environment correctly.
6099 (w32_draw_box_rect): Fix the calculation of width and height.
6100
6101 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
6102 as it has stopped working.
6103 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
6104 menu-bar.
6105
6106 2000-10-19 Gerd Moellmann <gerd@gnu.org>
6107
6108 * eval.c (skip_debugger): Prevent a compiler warning.
6109 (Fcondition_case): Likewise.
6110 (Fbacktrace_frame): Use a null interactive spec.
6111
6112 2000-10-19 Kenichi Handa <handa@etl.go.jp>
6113
6114 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
6115
6116 2000-10-18 Gerd Moellmann <gerd@gnu.org>
6117
6118 * strftime.c: Sync with glibc, file version 1.78.
6119 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
6120 should no longer be used according to ISO 8601.
6121
6122 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
6123 no map for meta_prefix_char, don't try to use it as a keymap.
6124 Instead, if T_OK is non-zero, look up a default binding, if any,
6125 otherwise, if T_OK is zero, return nil.
6126
6127 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
6128 (x_to_xcolors, png_load): Use x_query_color.
6129
6130 * xterm.c (x_color_cells, x_query_colors, x_query_color):
6131 New functions.
6132 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
6133 which can be slow.
6134 (x_copy_color, x_alloc_lighter_color): Likewise.
6135
6136 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
6137 (x_query_color, x_query_colors): Add prototype.
6138
6139 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
6140 check_string_bytes only if not noninteractive, increase count to 50.
6141
6142 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
6143
6144 * insdel.c (adjust_markers_for_delete): Handle before-insertion
6145 markers correctly.
6146
6147 2000-10-17 Gerd Moellmann <gerd@gnu.org>
6148
6149 * alloc.c (pure_bytes_used): Renamed from pureptr.
6150 (ALIGN): New macro.
6151 (pure_alloc): New function.
6152 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
6153 Use it.
6154 (Fpurecopy): Use PURE_POINTER_P.
6155
6156 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
6157 PT has moved backward.
6158
6159 * xdisp.c (cursor_row_p): Take continued lines into account.
6160
6161 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
6162 string's size_byte.
6163 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
6164 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
6165 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
6166 string allocated.
6167
6168 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
6169 of selective display off while searching for the next line start.
6170
6171 2000-10-17 Kenichi Handa <handa@etl.go.jp>
6172
6173 * Makefile.in (term.o): Depend on dispextern.h.
6174
6175 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
6176
6177 * keymap.c (keymap_memberp): Ensure that nil is not a member.
6178
6179 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6180
6181 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
6182 the iterator at the beginning, so that they can be set later on,
6183 for instance in reseat_at_next_visible_line_start, without being
6184 overwritten.
6185
6186 * xfns.c (pbm_format): Add :foreground and :background keywords.
6187 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
6188 (xbm_load): Recognize foreground and background color specifications.
6189
6190 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
6191
6192 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
6193
6194 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
6195
6196 * msdos.c (IT_set_face): Compare highlighted face with the default
6197 face, and invert colors if these faces' colors are identical.
6198 (Fmsdos_remember_default_colors): Don't swap foreground and
6199 background colors in initial_colors[].
6200 (IT_set_frame_parameters): Don't swap frame's foreground and
6201 background pixels. If ALIST includes "(reverse . t)", swap
6202 foreground-color and background-color properties in frame's
6203 param_alist. If the original frame's param_alist doesn't specify
6204 the colors, store unspecified-fg and unspecified-bg, reversed if
6205 required.
6206
6207 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
6208 the colors are unspecified and reversed, reverse fore- and back-
6209 ground in the returned value.
6210 (Fframe_parameter): Ditto.
6211
6212 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6213
6214 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
6215 get_last_unchanged_at_beg_row.
6216 (find_first_unchanged_at_end_row): Renamed from
6217 get_first_unchanged_at_end_row.
6218 (find_first_unchanged_at_end_row): Convert assertions to
6219 unconditional tests which abort. When looking for a row in
6220 unchanged text, don't go further back than first_text_row.
6221
6222 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
6223 Don't add in the last line's height when deciding if the new
6224 position is below the scroll margin.
6225
6226 2000-10-16 Miles Bader <miles@gnu.org>
6227
6228 * editfns.c (Fconstrain_to_field): Check carefully for field
6229 boundaries if either OLD_POS or NEW_POS has a non-nil field
6230 property, even if they're the same.
6231
6232 2000-10-16 Kenichi Handa <handa@etl.go.jp>
6233
6234 * xterm.c (x_draw_box_rect): Fix the calculation of width and
6235 height for XFillRectangle.
6236
6237 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
6238
6239 * syntax.c (Fstring_to_syntax): New function extracted from
6240 Fmodify_syntax_entry.
6241 (Fmodify_syntax_entry): Use it and document the ! and | fences.
6242 (skip_chars, Fforward_comment): Remove unused variables.
6243 (syms_of_syntax): Add defsubr for string-to-syntax.
6244 (describe_syntax): Add code for comment and string fences.
6245
6246 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
6247
6248 * keymap.c (access_keymap): Add AUTOLOAD parameter.
6249 Do the meta->esc mapping. Call get_keyelt before returning.
6250 Start scanning from the second element (the first is always `keymap')
6251 to make it easier to detect when we reach a parent map.
6252 Handle the case of inheriting from a symbol whose function is a map.
6253 (Fkeymap_parent): Also handle the `inherit from symbol' case.
6254 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
6255 (get_keyelt, Flookup_key): Update call to access_keymap.
6256 Remove the meta->esc mappings.
6257 (define_as_prefix): Delete old disabled code.
6258 (menu_item_p): New function.
6259 (where_is_internal_1): Skip over the few remaining menu items.
6260 * lisp.h (access_keymap): Update prototype.
6261 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
6262 Update call to access_keymap.
6263 (follow_key, read_key_sequence): Update calls to access_keymap.
6264 Remove the meta->esc mappings.
6265
6266 2000-10-13 Gerd Moellmann <gerd@gnu.org>
6267
6268 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
6269 with additional argument.
6270
6271 * xdisp.c (cursor_row_p): New function.
6272 (try_cursor_movement, display_line): Use it.
6273
6274 * xdisp.c (append_space): Also save/restore iterator's current
6275 character and its length.
6276
6277 * xdisp.c (init_from_display_pos): Add an assertion.
6278 (handle_stop): Don't set iterator's add_overlay_start.
6279 (handle_invisible_prop): Likewise.
6280 (load_overlay_strings): If text under an overlay is invisible,
6281 take both before- and after-strings into account when the iterator
6282 is positioned either at the start or at the end of the overlay.
6283 (forward_to_next_line_start): Rewritten.
6284 (reseat_at_next_visible_line_start): Rewritten.
6285 (set_iterator_to_next): Add parameter RESEAT_P.
6286
6287 * dispextern.h (struct it): Remove member add_overlay_start.
6288 (set_iterator_to_next): Change prototype.
6289
6290 2000-10-13 Kenichi Handa <handa@etl.go.jp>
6291
6292 * coding.c (code_convert_region): Be sure to initialize
6293 coding->category_idx.
6294 (decode_coding_string): Set coding->src_multibyte and
6295 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
6296 (encode_coding_string): Set coding->src_multibyte and
6297 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
6298
6299 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
6300
6301 * xfns.c (Fx_create_frame): Don't bother calling
6302 face-set-after-frame-default since the caller does it for us anyway.
6303
6304 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
6305
6306 * window.c (coordinates_in_window): Fix detection of vertical line
6307 on character terminals.
6308
6309 2000-10-12 Gerd Moellmann <gerd@gnu.org>
6310
6311 * editfns.c (save_excursion_save): Additionally record the
6312 selected window.
6313 (save_excursion_restore): If buffer was visible in a window, and a
6314 different window was selected, and the old selected window is
6315 still live, restore point in that window.
6316
6317 2000-10-12 Kenichi Handa <handa@etl.go.jp>
6318
6319 * xterm.c (x_produce_glyphs): Handle
6320 unibyte_display_via_language_environment correctly.
6321
6322 * regex.c (regex_compile): Change the way of handling a range from
6323 unibyte char to multibyte char.
6324
6325 * syntax.c (skip_chars): Change the way of handling a range from
6326 unibyte char to multibyte char.
6327
6328 * process.c (read_process_output): Cancel previous change.
6329
6330 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
6331
6332 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
6333
6334 * charset.c (Ffind_charset_string): Doc fix.
6335 (Ffind_charset_region): Doc fix.
6336
6337 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
6338
6339 * process.c (read_process_output): Fix previous change. Adjust
6340 multibyteness of text to insert in a buffer by
6341 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
6342
6343 2000-10-10 Andreas Schwab <schwab@suse.de>
6344
6345 * alloc.c (mark_object): Remove all workarounds installed on
6346 1993-08-08.
6347
6348 2000-10-10 Kenichi Handa <handa@etl.go.jp>
6349
6350 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
6351 (base64_encode_1): Make it work for a text of multibyte form.
6352 (Fbase64_decode_region): Allocate sufficient memory for multibyte
6353 case. Don't call str_to_multibyte because base64_decode_1
6354 produces correct multibyte form for eight-bit codes.
6355 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
6356 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
6357 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
6358 codes.
6359
6360 * charset.h (CHAR_STRING): Optimized for single byte characters.
6361
6362 2000-10-09 Andreas Schwab <schwab@suse.de>
6363
6364 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
6365 -1 after socket is closed, to fall through to error processing.
6366
6367 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
6368
6369 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
6370 variables. If ALIST includes foreground-color or
6371 background-color, change also the colors of the default face for
6372 this frame.
6373
6374 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
6375
6376 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
6377 them extern (they are defined on xfaces.c).
6378 (syms_of_msdos): Don't intern and don't staticpro
6379 Qbackground_color and Qforeground_color.
6380
6381 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
6382
6383 * frame.c (Fframe_parameter): For non-windowed frames, if
6384 f->param_alist says foreground or background color is unspecified,
6385 call tty_color_name to return the color name computed from the
6386 frame's current colors.
6387
6388 2000-10-06 Dave Love <fx@gnu.org>
6389
6390 * terminfo.c (ospeed): Don't declare.
6391
6392 * sysdep.c: Don't include string.h.
6393 (h_errno): Declare conditional also on TRY_AGAIN.
6394
6395 * charset.c (Ffind_charset_string): Doc fix.
6396
6397 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
6398 (Fbase64_decode_region, Fbase64_decode_string): More explicit
6399 error messages.
6400
6401 2000-10-05 Dave Love <fx@gnu.org>
6402
6403 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
6404 position like menu-bar.
6405
6406 2000-10-05 Gerd Moellmann <gerd@gnu.org>
6407
6408 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
6409
6410 * xdisp.c (handle_single_display_prop): Use safe_call1.
6411 (safe_call): Renamed from call_function.
6412 (safe_call1): New function.
6413 (handle_fontified_prop): Use safe_call1 instead of call1.
6414 (safe_eval): Renamed from eval_form.
6415 (safe_eval_handler): Renamed from eval_handler.
6416 (handle_single_display_prop, display_mode_element): Use safe_eval
6417 instead of eval_form.
6418
6419 * xfaces.c (merge_face_heights): Use safe_call instead of
6420 call_function.
6421
6422 * keyboard.c (show_help_echo): Use safe_call instead of
6423 call_function; use safe_eval instead of eval_form.
6424
6425 * lisp.h (safe_call): Renamed from call_function.
6426 (safe_eval): Renamed from eval_form.
6427 (safe_call1): Add prototype.
6428
6429 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
6430
6431 * xfns.c (image_ascent): Rearrange ascent calculation for the
6432 has-a-font case.
6433
6434 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
6435
6436 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
6437 (where_is_internal_1): Don't bother ignoring menu-items any more.
6438
6439 2000-10-04 Gerd Moellmann <gerd@gnu.org>
6440
6441 * keyboard.c (update_menu_bindings): New variable.
6442 (parse_menu_item): Use AREF. If update_menu_bindings
6443 is 0, don't update menu bindings.
6444 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
6445
6446 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
6447
6448 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
6449 to `mark_object'.
6450
6451 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
6452
6453 * syntax.c (forw_comment): Match nestedness of ender/starter.
6454 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
6455 (prev_char_comstart_first): Remove.
6456 (back_comment): Check two-char comment markers more carefully
6457 to better handle overlapping cases like *//* or /* */* */ ...
6458 Match nestedness of ender/starter.
6459
6460 2000-10-02 Dave Love <fx@gnu.org>
6461
6462 * config.in (HAVE_GAI_STRERROR): Add undef.
6463
6464 * process.c (Fopen_network_stream): Use it.
6465
6466 * m/alpha.h (NO_REMAP): Don't define.
6467
6468 2000-10-02 Gerd Moellmann <gerd@gnu.org>
6469
6470 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
6471 return with a string converted to an integer or vice versa when
6472 Vmocklisp_arguments is t.
6473 (Fsignal): Likewise. The function can return for `quit'.
6474 (struct gcpro): Declare member `var' to point to a volatile
6475 Lisp_Object.
6476
6477 * eval.c (error): Prevent compiler warning.
6478
6479 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
6480
6481 * keymap.c (keymap_memberp): New function.
6482 (Fset_keymap_parent): Use it.
6483 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
6484 Use keymap_memberp to avoid creating cycles.
6485 (access_keymap): Use KEYMAPP.
6486
6487 2000-09-30 Gerd Moellmann <gerd@gnu.org>
6488
6489 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
6490 gai_strerror. Make sure xerrno is set if connect fails. Improve
6491 error recovery.
6492
6493 2000-09-29 Jason Rumney <jasonr@gnu.org>
6494
6495 * w32term.c (w32_char_font_type, w32_encode_char)
6496 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
6497 (w32_bdf_per_char_metric): New function.
6498 (w32_per_char_metric): Use it.
6499 (x_draw_glyph_string_background): Always draw background for BDF
6500 glyphs.
6501
6502 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
6503 GDI object which is a scarce resource.
6504
6505 * w32bdf.c (search_file_line): Fix skipping of whitespace.
6506 (get_quoted_string): Fix limit on memchr search.
6507 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
6508 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
6509 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
6510 (get_cached_font_char, cache_char_offset): Use macro
6511 BDF_CODEPOINT_RANGE_COVER_P.
6512 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
6513 (clear_cached_bitmap_slots): New function.
6514 (GET_HEX_VALUE): G-Z, g-z are not hex.
6515 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
6516 (get_bitmap_with_cache): Use new cache implementation.
6517 (create_offscreen_bitmap): New function.
6518 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
6519
6520 * w32term.c (x_produce_glyphs): If the distance from the current
6521 position to the next tab stop is less than a canonical character
6522 width, use the tab stop after that.
6523 (x_draw_glyphs): Handle case START and END are out of bounds more
6524 carefully.
6525 (x_clear_mouse_face): Block/unblock input.
6526 (x_display_and_set_cursor): Don't show a hollow box cursor for
6527 buffers whose cursor_type is nil.
6528
6529 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6530
6531 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
6532
6533 * dispextern.h (updating_frame): Declare extern.
6534
6535 2000-09-29 Andreas Schwab <schwab@suse.de>
6536
6537 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
6538
6539 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6540
6541 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
6542 use its function definition.
6543 (tool_bar_items): Likewise.
6544
6545 * lisp.h (fatal): Declare NO_RETURN.
6546
6547 2000-09-29 Kenichi Handa <handa@etl.go.jp>
6548
6549 * keymap.c: Remove the line "#undef NULL".
6550
6551 2000-09-28 Gerd Moellmann <gerd@gnu.org>
6552
6553 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
6554
6555 2000-09-28 Dave Love <fx@gnu.org>
6556
6557 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
6558
6559 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
6560
6561 * .gdbinit (xreload): Note its need on GNU/Linux.
6562
6563 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
6564 r_alloc, r_alloc_free.
6565
6566 2000-09-28 Kenichi Handa <handa@etl.go.jp>
6567
6568 * syntax.c (skip_chars): Handle negation correctly.
6569
6570 2000-09-27 Gerd Moellmann <gerd@gnu.org>
6571
6572 * xfaces.c (realize_default_face): Call set_lface_from_font_name
6573 with non-zero FORCE_P argument.
6574
6575 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
6576 Add assertions.
6577
6578 * xdisp.c (window_box_height): Add an assertion.
6579
6580 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
6581 tool-bar than is available.
6582 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
6583
6584 2000-09-27 Dave Love <fx@gnu.org>
6585
6586 * s/irix6-5.h: Now works 64-bit. Tidied.
6587
6588 2000-09-26 Gerd Moellmann <gerd@gnu.org>
6589
6590 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
6591 instead of BITS_PER_INT.
6592 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
6593 EMACS_UINT, respectively.
6594 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
6595
6596 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
6597
6598 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
6599
6600 * window.c (freeze_window_starts): Construct last argument for
6601 foreach_window differently.
6602
6603 * xfns.c (x_decode_color): Don't return a Lisp_Object.
6604
6605 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
6606 EMACS_UINT instead of `int' and `unsigned int'.
6607 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
6608
6609 * frame.h (struct frame): Make the `nothing' member of union
6610 output_data an EMACS_INT.
6611
6612 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
6613 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
6614 size in the sdata structure.
6615 (SDATA_NBYTES, SDATA_DATA): New macros.
6616 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
6617 differently for the different layout of the sdata structure.
6618 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
6619 in sdata.
6620 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
6621 Check that size recorded in the string size and size recorded in
6622 the sdata structure agree.
6623
6624 2000-09-25 Dave Love <fx@gnu.org>
6625
6626 * buffer.c: Include stdio.h.
6627
6628 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
6629
6630 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
6631
6632 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
6633 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
6634 (__malloc_extra_blocks): Declare as __malloc_size_t.
6635
6636 2000-09-25 Gerd Moellmann <gerd@gnu.org>
6637
6638 * alloc.c (mark_image): Use GC_NILP instead of NILP.
6639
6640 * keyboard.c (show_help_echo): Set help_echo_showing_p.
6641 (read_char): If help-echo is showing, preserve the echo area
6642 when redisplaying.
6643
6644 * xdisp.c (help_echo_showing_p): New variable.
6645 (set_message): Reset it to 0.
6646 (init_xdisp): Initialize help_echo_showing_p.
6647
6648 * dispextern.h (help_echo_showing_p): Declare extern.
6649
6650 * config.in: Fix typo in __GNUC_MINOR__.
6651
6652 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
6653
6654 * s/freebsd.h (POSIX_SIGNALS): Define.
6655
6656 * xterm.c (x_clear_mouse_face): Block/unblock input.
6657
6658 2000-09-24 Dave Love <fx@gnu.org>
6659
6660 * fns.c (base64_encode_1): Fix last change.
6661
6662 2000-09-22 Gerd Moellmann <gerd@gnu.org>
6663
6664 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
6665
6666 * xdisp.c (try_window_reusing_current_matrix): More fixes
6667 for the case window has a header-line.
6668
6669 2000-09-22 Dave Love <fx@gnu.org>
6670
6671 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
6672 a doc string.
6673
6674 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
6675
6676 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
6677
6678 2000-09-21 Gerd Moellmann <gerd@gnu.org>
6679
6680 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
6681 for GCC >= 2.5.
6682
6683 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
6684 Declare NO_RETURN.
6685
6686 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
6687 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
6688 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
6689 warnings.
6690
6691 * marker.c (byte_char_debug_check): Return void.
6692
6693 * xfns.c (Fx_create_frame): Set default frame parameter value
6694 for tool-bar-lines to 1.
6695
6696 * dispnew.c (scrolling_window): Compare y-positions of rows
6697 equal at the start. Some simplification.
6698
6699 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
6700 reused rows' y-position in the case window has a header-line, and
6701 new window start is greater than old window start.
6702
6703 * process.c (process_sent_to): New variable.
6704 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
6705 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
6706 Declare more parameters volatile.
6707
6708 * lread.c (Vrecursive_load_depth_limit): New variable.
6709 (Fload): Check recursive loads whose recursion depth exceeds
6710 Vrecursive_load_depth_limit.
6711 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
6712
6713 2000-09-20 Gerd Moellmann <gerd@gnu.org>
6714
6715 * fileio.c (Fread_file_name): Doc fix.
6716
6717 * editfns.c (Fmessage_or_box): Doc fix.
6718
6719 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
6720
6721 * xfns.c (xbm_scan): Allow C-style comments.
6722
6723 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
6724 symbols are specified, add color translations to the cache.
6725 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
6726 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
6727 xpm_cache_color.
6728 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
6729 structures to xpm_init_color_cache.
6730
6731 2000-09-19 Gerd Moellmann <gerd@gnu.org>
6732
6733 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
6734
6735 2000-09-19 Andrew Innes <andrewi@gnu.org>
6736
6737 * makefile.nt (bootstrap-emacs): Don't change directory.
6738
6739 2000-09-19 Kenichi Handa <handa@etl.go.jp>
6740
6741 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
6742
6743 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
6744 If output buffer is too small, signal an appropriated error.
6745
6746 2000-09-18 Dave Love <fx@gnu.org>
6747
6748 * keyboard.c (menu_bar_items, tool_bar_items)
6749 (current_active_maps): Remove redundant get_local_map call.
6750
6751 2000-09-18 Gerd Moellmann <gerd@gnu.org>
6752
6753 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
6754 cursor for buffers whose cursor_type is nil.
6755
6756 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
6757 a feature to implement that is already implemented.
6758 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
6759 warnings.
6760
6761 * xfns.c (x_clear_image_1): New function.
6762 (x_clear_image): Use it.
6763 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
6764
6765 * dispnew.c (update_window): Move test for invisible lines
6766 at the top to update_window_line.
6767 (update_window_line): Handle invisible lines here.
6768
6769 * xfns.c (clear_image_cache): Clear current matrices of all
6770 frames sharing an image cache. Block input while freeing
6771 images. Fix timestamp comparison.
6772 (x_clear_image): Also free the mask.
6773
6774 * xfns.c (lookup_image): Block input while loading the image so
6775 that we won't get interrupted in a state where the image isn't yet
6776 set up completely.
6777 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
6778 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
6779 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
6780 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
6781
6782 2000-09-16 Gerd Moellmann <gerd@gnu.org>
6783
6784 * dispnew.c (update_window): Make sure to make desired rows
6785 current even if they are completely invisible at the top
6786 of a window.
6787
6788 2000-09-15 Gerd Moellmann <gerd@gnu.org>
6789
6790 * xfns.c (lookup_image): Build mask before applying an algorithm.
6791 Recognize algorithm `disabled'.
6792 (cross_disabled_images): New variable.
6793 (COLOR_INTENSITY): New macro.
6794 (x_detect_edges): Use COLOR_INTENSITY.
6795 (x_disable_image): New function.
6796 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
6797
6798 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
6799 disabled state, don't apply an image transformation algorithm if
6800 the user specified an image for the disabled state. Use
6801 `:algorithm disabled' for creating a disabled item's image if the
6802 user hasn't specified an image.
6803
6804 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
6805 allocation functions with the XPM lib.
6806 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
6807 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
6808 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
6809 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
6810 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
6811 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
6812 functions, if possible, because these handle color allocation
6813 failure more gracefully.
6814 (Fimage_mask_p): New function.
6815
6816 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
6817 (Qedge_detection, Qheuristic): New symbols.
6818 (syms_of_xfns): Initialize new symbols.
6819 (lookup_image): Handle `:mask X', `:algorithm emboss', and
6820 `algorithm (edge-detection ...)'.
6821 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
6822 (tiff_format, gif_format, gs_format): Add `:mask'.
6823 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
6824 (GIF_MASK, GS_MASK): New enumerators.
6825 (x_laplace_read_row, x_laplace_write_row): Functions removed.
6826 (emboss_matrix, laplace_matrix): New variables.
6827 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
6828 (x_edge_detection): New functions.
6829 (x_laplace): Rewritten in terms of x_detect_edges.
6830 (x_build_heuristic_mask): If image has a mask, free it.
6831
6832 2000-09-14 Andrew Innes <andrewi@gnu.org>
6833
6834 * makefile.w32-in: Revert to Unix line endings.
6835
6836 2000-09-14 Andrew Innes <andrewi@gnu.org>
6837
6838 * makefile.w32-in: Standardize indentation somewhat.
6839 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
6840 cater for differences between shells.
6841
6842 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
6843
6844 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6845
6846 * xterm.c (x_produce_glyphs): If the distance from the current
6847 position to the next tab stop is less than a canonical character
6848 width, use the tab stop after that.
6849
6850 2000-09-14 Dave Love <fx@gnu.org>
6851
6852 * buffer.c (alloc_buffer_text): Fix xmalloc call.
6853
6854 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6855
6856 * xdisp.c (handle_fontified_prop): While running fontification
6857 functions, bind `fontification-functions' and
6858 `after-change-functions' to nil.
6859
6860 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
6861 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
6862
6863 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
6864
6865 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
6866 USE_MMAP_FOR_BUFFERS.
6867
6868 * insdel.c (make_gap): Use enlarge_buffer_text.
6869
6870 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
6871 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
6872 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
6873 from former r_alloc_* functions in ralloc.c.
6874 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
6875 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
6876 (mmap_init) [REL_ALLOC_MMAP]: New function.
6877 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
6878 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
6879 BUFFER_FREE.
6880
6881 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
6882 (enlarge_buffer_text): Add prototype.
6883
6884 * ralloc.c: Remove everything having to do with the use of mmap.
6885
6886 2000-09-13 Gerd Moellmann <gerd@gnu.org>
6887
6888 * sound.c (Fplay_sound): Doc fix.
6889
6890 * keyboard.c: Avoid some more compiler warnings.
6891 (parse_tool_bar_item): Ignore cached key bindings.
6892
6893 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
6894 and allocation of Lisp data.
6895
6896 2000-09-12 Gerd Moellmann <gerd@gnu.org>
6897
6898 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
6899 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
6900 defaults first.
6901
6902 * lread.c (Fload): Put code checking for recursive loads in #if 0.
6903
6904 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
6905
6906 * ccl.c: Comment fixed.
6907 (MAX_MAP_SET_LEVEL): Increased to 30.
6908 (PUSH_MAPPING_STACK): Enclose with do-while block.
6909 (POP_MAPPING_STACK): Likewise.
6910 (stack_idx_of_map_multiple): New variable.
6911 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
6912 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
6913 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
6914 (ccl_driver) <CCL_MapSingle>: Likewise.
6915 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
6916 with the case where looking up process reaches to the end of
6917 map-set, and call CCL programs as the above change.
6918
6919 2000-09-11 Gerd Moellmann <gerd@gnu.org>
6920
6921 * xfns.c (png_load, jpeg_load): Declare some variables volatile
6922 that might be clobbered by longjmp.
6923 (check_x_display_info, x_decode_color, create_frame_xic)
6924 (Fx_display_backing_store, Fx_display_visual_class)
6925 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
6926
6927 * lread.c (init_lread): Set Vloads_in_progress to nil.
6928 (Fload): Show list of recursively loaded files, when signaling an
6929 error.
6930
6931 * lread.c (Vloads_in_progress): New variable.
6932 (record_load_unwind): New function.
6933 (Fload): Check for recursive loads.
6934 (syms_of_lread): Initialize Vloads_in_progress.
6935 (read_integer, read1): Avoid some compiler warnings.
6936
6937 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
6938 compiler warnings.
6939
6940 2000-09-11 Miles Bader <miles@gnu.org>
6941
6942 * editfns.c (Fbuffer_string): Doc fix.
6943
6944 2000-09-10 Gerd Moellmann <gerd@gnu.org>
6945
6946 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
6947
6948 2000-09-09 Ken Raeburn <raeburn@gnu.org>
6949
6950 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
6951 whether to include other header files.
6952
6953 2000-09-09 Gerd Moellmann <gerd@gnu.org>
6954
6955 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
6956 by Fmemq as a boolean.
6957
6958 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
6959
6960 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
6961
6962 2000-09-08 Gerd Moellmann <gerd@gnu.org>
6963
6964 * ralloc.c (mmap_fd): Remove initializer which can make it
6965 read-only in a dumped Emacs.
6966 (mmap_fd_1): New variable.
6967 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
6968 restore it from there.
6969 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
6970 unconditionally so that mmap_fd can be initialized there.
6971 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
6972 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
6973 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
6974
6975 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
6976
6977 * xdisp.c (dump_glyph_row): Fix printf format string.
6978 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
6979
6980 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
6981
6982 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
6983 inheritance.
6984
6985 * xdisp.c (try_window_id): When trying to locate cursor in
6986 unchanged rows at the top, handle the case that we can't find it.
6987
6988 * xterm.c (x_draw_glyphs): Handle case START and END are out
6989 of bounds more carefully.
6990
6991 2000-09-08 Dave Love <fx@gnu.org>
6992
6993 * s/sol2.h (REL_ALLOC_MMAP): Define.
6994 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
6995
6996 * ralloc.c: Don't include string.h (redundant).
6997 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
6998 [!MAP_ANON]: Include fcntl.h.
6999 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
7000 (r_alloc, r_re_alloc, r_alloc_free)
7001 (mmap_enlarge, mmap_set_vars): Use it.
7002 (r_alloc_init_fd): New function.
7003 (__morecore) [SYSTEM_MALLOC]: Don't declare.
7004 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
7005 malloc type.
7006
7007 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
7008 Remove vm-limit.o.
7009
7010 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
7011 change to __NetBSD__.
7012
7013 2000-09-08 Kenichi Handa <handa@etl.go.jp>
7014
7015 * search.c (compile_pattern): Check the multibyteness of cached
7016 string and PATTERN.
7017
7018 2000-09-08 Miles Bader <miles@gnu.org>
7019
7020 * xfaces.c (default_face_vector): Function removed.
7021 (Finternal_merge_in_global_face): Restore old global/local
7022 attribute override order. Use inline loop instead of calling
7023 default_face_vector.
7024
7025 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7026
7027 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
7028 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
7029 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
7030 where necessary, in case POINTER_TYPE is `void'.
7031
7032 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
7033
7034 * frame.c (make_terminal_frame): Initialize frame foreground and
7035 background colors to unspecified, for the initial instance of an
7036 MSDOS frame.
7037
7038 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7039
7040 * ralloc.c (mmap_find): Fix overlap computation.
7041 (mmap_enlarge): Compute nbytes before trying to find an
7042 overlapping region.
7043
7044 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
7045 instead of `!='.
7046
7047 * lread.c (syms_of_lread): Change value of regexp
7048 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
7049
7050 * xmenu.c (xdialog_show): When looking up the selection in
7051 menu_items, take `quote' boundaries into account; this corresponds
7052 to a nil ITEM in x-popup-dialog.
7053
7054 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7055
7056 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
7057 not 0x81.
7058 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
7059
7060 * coding.c (encode_coding_sjis_big5): Use translation table for
7061 encoding, not decoding. Fix the handling of latin-jisx0201.
7062 Check for the charset katakana-jisx0201 too.
7063 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
7064 (detect_coding_sjis): Check the byte sequence more rigidly.
7065
7066 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7067
7068 * xfaces.c (Vparam_value_alist): New variable.
7069 (syms_of_xfaces): Initialize it.
7070 (Finternal_set_lisp_face_attribute): Avoid more consing.
7071
7072 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
7073 specially.
7074 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
7075 (Qbackground_mode): New variable.
7076 (syms_of_frame_1): Initialize Qbackground_mode.
7077
7078 * lisp.h (Qdisplay): Declare extern.
7079
7080 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
7081 change face on all frames, and change the default for new frames.
7082
7083 2000-09-07 Dave Love <fx@gnu.org>
7084
7085 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
7086
7087 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7088
7089 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
7090
7091 * charset.c: Include composite.h
7092 (lisp_string_width): New function.
7093 (Fstring_width): Call lisp_string_width instead of strwidth.
7094
7095 * Makefile.in (charset.o): Depends on composite.h.
7096
7097 * process.c (read_process_output): Before inserting the decoded
7098 text in the buffer, adjust the multibyteness.
7099
7100 2000-09-06 Gerd Moellmann <gerd@gnu.org>
7101
7102 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
7103 buffer's text buffer is null, map new memory.
7104
7105 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
7106 POINTER_TYPE and size_t.
7107 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
7108 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
7109 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
7110 [REL_ALLOC_MMAP]: New macros.
7111 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
7112 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
7113 [REL_ALLOC_MMAP]: New functions.
7114
7115 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
7116 before and after unexec.
7117
7118 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
7119 text buffers if necessary.
7120
7121 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
7122 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
7123 in prototypes.
7124
7125 * config.in (HAVE_MMAP): Add #undef.
7126
7127 2000-09-05 Gerd Moellmann <gerd@gnu.org>
7128
7129 * frame.c (Qdisplay_type): New variable.
7130 (syms_of_frame_1): Initialize it.
7131 (Fframe_parameter): New function that avoids consing.
7132 (syms_of_frame): Defsubr it.
7133
7134 * buffer.c (Fother_buffer): Consider buffers as invisible when
7135 they are displayed in a window on an invisible frame.
7136
7137 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
7138 get-largest-window always return nil.
7139
7140 2000-09-04 Gerd Moellmann <gerd@gnu.org>
7141
7142 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
7143 variable; recognize Emacs 19 elc files.
7144
7145 2000-09-04 Miles Bader <miles@gnu.org>
7146
7147 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
7148 before initially popping up the menu, so the menu doesn't flash
7149 when the face settings are significantly different from the defaults.
7150
7151 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
7152
7153 * regex.c (WIDE_CHAR_SUPPORT): New macro.
7154 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
7155 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
7156 (BIT_UNIBYTE): Remove.
7157 (re_match_2_internal): Delete corresponding code and streamline the
7158 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
7159 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
7160 (re_wctype_t): New type.
7161 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
7162 (regex_compile): Use them and fix handling of overly long char classes.
7163
7164 2000-09-03 Andrew Innes <andrewi@gnu.org>
7165
7166 * makefile.w32-in: Change to DOS line endings.
7167
7168 * s/ms-w32.h (ORDINARY_LINK): New define.
7169
7170 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
7171 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
7172
7173 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
7174 (distclean): Delete them here instead.
7175
7176 * w32proc.c (compare_env): Convert to uppercase for comparison,
7177 not lowercase, to match how the native Windows shell works.
7178
7179 2000-09-03 Jason Rumney <jasonr@gnu.org>
7180
7181 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
7182 CVS changes the line-ends when checking in/out on DOS/Windows.
7183
7184 * makefile.nt (emacs): Do not change directory to run temacs, as
7185 the load-path is set relative to current directory.
7186
7187 2000-09-03 Miles Bader <miles@gnu.org>
7188
7189 * xterm.c (x_alloc_lighter_color_for_widget): New function.
7190
7191 2000-09-02 Gerd Moellmann <gerd@gnu.org>
7192
7193 * xdisp.c (redisplay_mode_lines): New function.
7194 (display_mode_lines): Return number of mode lines displayed.
7195 (echo_area_display): Use redisplay_mode_lines to draw garbaged
7196 mode lines. Don't temporarily bind redisplay-dont-pause to t.
7197
7198 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
7199 string.h and strings.h.
7200 (index) [HAVE_INDEX]: Add prototype.
7201
7202 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
7203 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
7204
7205 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
7206 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
7207
7208 2000-09-01 Gerd Moellmann <gerd@gnu.org>
7209
7210 * lread.c (read1): Accept `?' as symbol constituent, for
7211 compatiblity with XEmacs.
7212
7213 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
7214
7215 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
7216 (struct re_pattern_buffer): Remove newline_anchor.
7217 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
7218 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
7219 (re_max_failures, fail_stack): Use size_t rather than unsigned.
7220 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
7221 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
7222 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
7223 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
7224 Get rid of references to newline_anchor.
7225 (regcomp): Allocate and precompute a fastmap.
7226
7227 2000-08-31 Gerd Moellmann <gerd@gnu.org>
7228
7229 * lread.c (openp): GCPRO local variable `filename'.
7230
7231 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
7232
7233 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
7234
7235 * regex.c: Merge some changes from GNU libc. Add prototypes.
7236 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
7237 Use memcmp and memcpy instead of bcopy and bcmp.
7238 (init_syntax_once): Use ISALNUM.
7239 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
7240 (REG_UNSET_VALUE): Remove. Use NULL instead.
7241 (REG_UNSET, re_match_2_internal): Use NULL.
7242 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
7243 New macros.
7244 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
7245 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
7246 (regex_compile): In handle_interval, return an error rather than try to
7247 unfetch the interval if we can't find the closing brace.
7248 Obey the RE_NO_GNU_OPS syntax bit.
7249 (TOLOWER): New macro.
7250 (regcomp): Use it.
7251 (regexec): Allocate regs.start and regs.end as one block.
7252
7253 2000-08-30 Gerd Moellmann <gerd@gnu.org>
7254
7255 * xdisp.c (echo_area_display): Check display_completed instead
7256 of calling detect_input_pending.
7257
7258 * dispnew.c (update_frame): Only set display_completed here; move
7259 the update_begin and update_end calls here from update_frame_1.
7260 (update_frame_1): Don't set display_completed here, don't call
7261 update_begin/update_end.
7262
7263 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
7264 instead of store_frame_param.
7265
7266 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7267
7268 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
7269 desired window matrix hasn't been displayed, use the current row
7270 instead. Make sure that only those frame rows are updated for
7271 which there exists a corresponding enabled desired row.
7272
7273 2000-08-29 Miles Bader <miles@gnu.org>
7274
7275 * xfaces.c (default_face_vector): New function.
7276 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
7277
7278 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7279
7280 * lread.c (openp): Prevent temporary string passed to
7281 Ffile_readable_p from being garbage collected.
7282
7283 2000-08-28 Dave Love <fx@gnu.org>
7284
7285 * keymap.c (store_in_keymap): Add `static' to declaration.
7286
7287 2000-08-28 Gerd Moellmann <gerd@gnu.org>
7288
7289 * emacs.c, callint.c, doc.c, editfns.c
7290 (toplevel) [HAVE_STRING_H]: Include string.h.
7291 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
7292 (index): Remove prototypes which might conflict with non-standard
7293 definitions of index/strchr.
7294
7295 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
7296 (rindex): Define only if !HAVE_RINDEX.
7297
7298 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
7299
7300 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
7301
7302 2000-08-28 Miles Bader <miles@gnu.org>
7303
7304 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
7305 made inconsistent by a font-related attribute in FROM.
7306 (merge_face_inheritance): Add function comment.
7307
7308 2000-08-28 Kenichi Handa <handa@etl.go.jp>
7309
7310 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
7311 the 4th arg (PREV_EVENT) Qt to suppress input method.
7312
7313 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
7314
7315 * regex.c: Indent cpp directives and remove parens after `defined'.
7316 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
7317 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
7318 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
7319 (re_compile_pattern): Use size_t for length.
7320 (init_syntax_once): Move to a better place.
7321 * regex.h: Merge changes from GNU libc. Indent cpp directives.
7322 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
7323
7324 * syntax.c (back_comment): Detect cases where a comment-starter is
7325 actually inside another comment as in: /* a // b */ c // d \n.
7326 Make it clear that `comstart_pos' is unused for nested comments.
7327
7328 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
7329 (KEYMAPP): New macro.
7330 (Fkeymap_parent, Fset_keymap_parent): Use it.
7331 (fix_submap_inheritance): Mark it static.
7332 (define_as_prefix, describe_buffer_bindings, describe_command)
7333 (describe_translation, describe_map): Complete prototypes.
7334
7335 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
7336
7337 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
7338 to better match the key-lookup behavior.
7339
7340 2000-08-27 Gerd Moellmann <gerd@gnu.org>
7341
7342 * xfaces.c (lface_fully_specified_p): Handle :inherit.
7343 (Finternal_set_lisp_face_attribute): Fix typo in error message.
7344
7345 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
7346
7347 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
7348 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
7349 (xterm.o): Depend on coding.h
7350
7351 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7352
7353 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
7354 the corresponding '#endif'.
7355
7356 2000-08-26 Miles Bader <miles@gnu.org>
7357
7358 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
7359 * xfaces.c (QCinherit): New variable.
7360 (syms_of_xfaces): Initialize it.
7361 (LFACE_INHERIT): New macro.
7362 (Finternal_get_lisp_face_attribute)
7363 (merge_face_vector_with_property)
7364 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
7365 (check_lface_attrs): Allow new types of face height. Check
7366 inherit attribute.
7367 (CYCLE_CHECK): New macro.
7368 (merge_face_inheritance): New function.
7369 (merge_face_vectors): Merge inherited faces too. Add F and
7370 CYCLE_CHECK arguments.
7371 (merge_face_vector_with_property, Finternal_merge_in_global_face)
7372 (lookup_named_face, lookup_derived_face, realize_named_face)
7373 (face_at_string_position, face_at_buffer_position): Supply
7374 new F and CYCLE_CHECK arguments to merge_face_vectors.
7375 (merge_face_heights): New function.
7376 (merge_face_vectors, merge_face_vector_with_property)
7377 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
7378 handle relative face heights.
7379 (lface_same_font_attributes_p): Compare heights using EQ.
7380
7381 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7382
7383 * charset.c (char_to_string): Check the character validity.
7384 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
7385
7386 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
7387
7388 * regex.c (PUSH_FAILURE_COUNT): New macro.
7389 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
7390 Handle popping of a register's or a counter's data.
7391 (POP_FAILURE_POINT): Use the new name.
7392 (re_match_2_internal): Push counter data on the stack for succeed_n,
7393 jump_n and set_number_at and remove misleading dead code in succeed_n.
7394
7395 2000-08-25 Gerd Moellmann <gerd@gnu.org>
7396
7397 * xdisp.c (redisplay_internal): If considering all windows on all
7398 frames, update the display for each frame as soon as possible,
7399 instead of first building all desired matrices for all frames, and
7400 then updating them all.
7401 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
7402
7403 2000-08-24 Gerd Moellmann <gerd@gnu.org>
7404
7405 * bytecode.c (mark_byte_stack): Add a comment.
7406
7407 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
7408 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
7409 a graphical frame.
7410
7411 2000-08-24 Kenichi Handa <handa@etl.go.jp>
7412
7413 * minibuf.c (do_completion): Always use compare-string, not
7414 string-equal because the latter doesn't pay attention to
7415 multibyteness of strings.
7416
7417 * process.c (create_process): Don't setup raw-text coding here.
7418 (Fopen_network_stream): Don't set coding->src_multibyte and
7419 coding->dst_multibyte here.
7420 (read_process_output): For process filter, return unibyte string
7421 if default-enable-multibyte-characters is nil.
7422 (send_process): If OBJECT is multibyte text, be sure to encoded it
7423 by the specified coding system for the process. Otherwise, setup
7424 raw-text coding.
7425 (init_process): Don't initialize default-process-coding-system here.
7426
7427 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
7428
7429 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
7430 <scroll-down-aggressively>: Likewise.
7431
7432 2000-08-23 Kenichi Handa <handa@etl.go.jp>
7433
7434 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
7435 zero. Set coding->produced_char correctly.
7436
7437 2000-08-22 Andrew Innes <andrewi@gnu.org>
7438
7439 * makefile.w32-in: New file.
7440
7441 * unexw32.c (unexec): Ignore old_name, and use the actual location
7442 of the current executable instead. Base new_name on this.
7443
7444 * w32proc.c (create_child): Remove reference to security
7445 descriptor, which isn't needed and doesn't compile with mingw32.
7446
7447 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7448 up dllimport attributes.
7449 (x_update_window_end): Update prototype.
7450
7451 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
7452 extern, which screws up dllimport attributes.
7453
7454 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7455 up dllimport attributes.
7456
7457 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
7458 screws up dllimport attributes.
7459
7460 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7461 up dllimport attributes.
7462 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
7463 screws up dllimport attributes.
7464
7465 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7466 up dllimport attributes.
7467
7468 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
7469 screws up dllimport attributes.
7470
7471 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
7472 screws up dllimport attributes.
7473
7474 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7475 up dllimport attributes.
7476
7477 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
7478 unnecessary extern, which screws up dllimport attributes.
7479 (main): Ditto.
7480
7481 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7482 up dllimport attributes.
7483
7484 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
7485 unnecessary extern, which screws up dllimport attributes.
7486
7487 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
7488 screws up dllimport attributes.
7489
7490 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7491 up dllimport attributes.
7492
7493 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
7494
7495 * w32bdf.c (search_file_line):
7496 (set_bdf_font_info):
7497 (seek_char):
7498 (w32_get_bdf_glyph):
7499 (w32_BDF_to_x_font): Fix compile warnings.
7500
7501 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
7502
7503 * w32select.c: Include keyboard.h before frame.h.
7504
7505 * w32fns.c (max): Define macro.
7506 (JOHAB_CHARSET): Define if not known.
7507 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
7508 (Fx_show_tip): Synch with X version.
7509
7510 * w32xfns.c: Include keyboard.h before frame.h.
7511
7512 * w32fns.c: Include keyboard.h before frame.h.
7513
7514 * w32term.c: Include keyboard.h before frame.h.
7515
7516 * fontset.c: Include keyboard.h before frame.h.
7517
7518 * w32inevt.c: Include keyboard.h before frame.h.
7519 (MOUSE_MOVED): Define if not known.
7520
7521 * minibuf.c: Include keyboard.h before frame.h.
7522
7523 * keyboard.c: Include keyboard.h before frame.h.
7524
7525 * indent.c: Include keyboard.h before frame.h.
7526
7527 * dispnew.c: Include keyboard.h before frame.h.
7528
7529 * buffer.c: Include keyboard.h before frame.h.
7530
7531 * alloc.c: Include keyboard.h before frame.h.
7532
7533 * print.c: Include keyboard.h before frame.h.
7534
7535 * process.c: Include keyboard.h before frame.h.
7536
7537 * scroll.c: Include keyboard.h before frame.h.
7538
7539 * sysdep.c: Include keyboard.h before frame.h.
7540
7541 * term.c: Include keyboard.h before frame.h.
7542
7543 * window.c: Include keyboard.h before frame.h.
7544
7545 * xdisp.c: Include keyboard.h before frame.h.
7546 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
7547
7548 * frame.c: Include keyboard.h before frame.h.
7549
7550 * w32heap.h: Undefine min, max.
7551
7552 * w32gui.h: Undefine min, max.
7553
7554 * unexw32.c: Change PUCHAR to PCHAR.
7555 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
7556 (relocate_offset):
7557 (get_section_info):
7558 (copy_executable_and_dump_data): Remove unnecessary static defs.
7559 (copy_executable_and_dump_data): Fix compile warnings.
7560
7561 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
7562
7563 * w32console.c (min): Define macro.
7564 (clear_frame, write_glyphs): Fix compile warning.
7565
7566 * w32proc.c (compare_env):
7567 (find_child_console): Fix compile warning.
7568
7569 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
7570 sys_errlist instead of _sys_errlist.
7571 (get_emacs_configuration_options): New function.
7572
7573 * s/ms-w32.h (sys_nerr): Provide default definition.
7574 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
7575 name with _ prepended.
7576 (NSIG): Define if not known.
7577 (get_emacs_configuration): Provide extern declaration.
7578 (get_emacs_configuration_options): Provide extern declaration.
7579 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
7580
7581 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
7582 (map_w32_filename):
7583 (read_unc_volume): Fix compile warning.
7584
7585 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
7586 definitions from being used.
7587
7588 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
7589
7590 * w32.c (unc_volume_file_attributes):
7591 (open_unc_volume): Make arg const.
7592
7593 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
7594 (read_input_waiting): Remove excess parameter.
7595
7596 * w32.c (init_environment): Call _access.
7597 (check_windows_init_file): Call _close.
7598 (init_user_info): Call _putenv.
7599 (init_environment): Call _putenv and _strdup.
7600 (init_ntproc): Reset volume info cache on startup.
7601
7602 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
7603 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
7604 cannot override the CRT malloc.
7605
7606 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
7607 (LINK_FLAGS): Append to original value of LINK_FLAGS.
7608
7609 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
7610 unless we are linking with a static CRT.
7611 (RVA_TO_PTR): Cast result to unsigned char*.
7612
7613 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
7614 (add_volume_info): Use xstrdup.
7615
7616 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
7617
7618 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
7619 (do_completion, Fminibuffer_complete_word): Use it.
7620 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
7621 var so it can take non-boolean values.
7622
7623 2000-08-21 Gerd Moellmann <gerd@gnu.org>
7624
7625 * editfns.c (find_field): Formatting changes.
7626 (toplevel): Some old-style function forward declarations
7627 changed to prototypes, some new protypes added, some functions
7628 made static.
7629
7630 * lisp.h (set_time_zone_rule): Add prototype.
7631 (use_dialog_box): External declaration.
7632
7633 * keyboard.c (gen_help_event): Add parameter SIZE.
7634 (kbd_buffer_events_waiting): Slightly rewritten.
7635 (clear_event): New function.
7636 (kbd_buffer_get_event): Use it, and clear the input_events of
7637 HELP_EVENTs.
7638 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
7639 don't fill the newly created array with nils.
7640 (toplevel): Convert some old-style function forward declarations
7641 to prototypes.
7642
7643 * keyboard.h (gen_help_event): Change prototype.
7644
7645 * xterm.c (XTread_socket): Change calls to gen_help_event.
7646
7647 * w32term.c (w32_read_socket): Change calls to gen_help_event.
7648
7649 * eval.c (Fmacroexpand): Doc fix.
7650
7651 2000-08-20 Jason Rumney <jasonr@gnu.org>
7652
7653 * w32term.h (x_display_info_for_display): Remove as this function
7654 does not exist on W32.
7655
7656 * w32term.c (help_echo_window): New variable.
7657 (syms_of_w32term): staticpro it.
7658 (note_mode_line_highlight): Set it.
7659 (XTextExtents16): Removed as there is no equivalent on W32.
7660 (x_compute_glyph_string_overhangs): Incomplete body removed, as
7661 the X way of doing this will not work for W32.
7662 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
7663 (x_draw_image_foreground): Avoid drawing outside of the clip area
7664 when image doesn't have a mask.
7665 (note_mouse_highlight): Process overlays in the right order of
7666 priority. Set help_echo_window.
7667 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
7668 because that's more visible for large images.
7669
7670 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
7671 name to single_keymap_panes.
7672 (w32_menu_show): Set wv->title when dealing with titles.
7673 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
7674
7675 2000-08-21 Miles Bader <miles@gnu.org>
7676
7677 * minibuf.c (do_completion): Try again if we rewrite the input
7678 string, but no completion was done, so that any completion message
7679 will be correct.
7680
7681 2000-08-20 Gerd Moellmann <gerd@gnu.org>
7682
7683 * xfaces.c (lface_equal_p): Compare strings differently.
7684 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
7685 (realize_tty_face): Use them.
7686 (syms_of_xfaces): Initialize new variables.
7687 (map_tty_color): New function, extracted from realize_tty_face.
7688 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
7689 foreground or background color, store the new color name in the
7690 realized face; previous code trying to do this had no effect.
7691 (realize_tty_face): Use map_tty_color.
7692 (Fclear_face_cache): Set face_change_count and ensure thorough
7693 redisplay.
7694
7695 2000-08-19 Gerd Moellmann <gerd@gnu.org>
7696
7697 * undo.c (record_first_change, record_marker_adjustment): Don't
7698 use XBUFFER on last_undo_buffer which might not be a buffer.
7699
7700 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7701
7702 * coding.c (decode_coding_string): Set members consumed,
7703 consumed_char, produced, produced_char of *coding correctly. If
7704 decode_coding doesn't consume any byte, don't try anymore.
7705 (encode_coding_string): Likewise.
7706
7707 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7708
7709 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
7710 conditional have void type, for Standard C compilers.
7711
7712 * xdisp.c (redisplay_internal): Compare windows for equality with
7713 EQ, instead of applying XWINDOW to something that might not
7714 be a window.
7715
7716 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7717
7718 * fontset.c (Finternal_char_font): Search only the selected frame
7719 for a window of the current buffer.
7720
7721 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7722
7723 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
7724 Lisp_Objects.
7725
7726 * keyboard.c (kbd_buffer_get_event): Handle the case that the
7727 second half of a HELP_EVENT is found at the start of kbd_buffer.
7728
7729 2000-08-18 Miles Bader <miles@gnu.org>
7730
7731 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
7732
7733 * editfns.c (save_restriction_save): Rewrite to use markers.
7734 (save_restriction_restore): Rewrite to understand new form of data
7735 saved by save_restriction_save.
7736 (Fsave_restriction): Remove cautionary note in doc-string.
7737
7738 2000-08-17 Gerd Moellmann <gerd@gnu.org>
7739
7740 * fileio.c (build_annotations): Add a comment explaining the
7741 return value of format-annotate-function. Replace a spurious call
7742 to Flength with a CONSP test. Call format-annotate-function with
7743 a fifth arg specifying how many times the function is been called
7744 in a row, to let it choose temporary buffers appropriately.
7745
7746 2000-08-17 Dave Love <fx@gnu.org>
7747
7748 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
7749 declare make_temp_name twice.
7750
7751 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
7752 (unreadpure): Give it an arg.
7753
7754 * unexalpha.c: Prototype fatal_unexec, mark_x,
7755 update_dynamic_symbols. Declare unexec as void.
7756
7757 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
7758 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
7759
7760 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
7761 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
7762
7763 * alloca.c: Use #error.
7764 [POINTER_TYPE]: Use it.
7765
7766 * eval.c (Fdefvar): Doc fix.
7767
7768 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
7769 INITIALIZE_INTERVAL.
7770
7771 * buffer.h: Avoid DECLARE_INTERVALS.
7772
7773 * config.in: Add size_t.
7774
7775 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
7776
7777 * w16select.c (set_clipboard_data): If there's not enough memory
7778 to put text into clipboard, return 1, as Fw16_set_clipboard_data
7779 expects. In case of other failures, return 3.
7780 (system_error_msg): New error message.
7781 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
7782 system_error_msg.
7783
7784 2000-08-16 Gerd Moellmann <gerd@gnu.org>
7785
7786 * term.c (write_glyphs): Also turn off inverse video after turning
7787 off other appearances in case TS_exit_attribute_mode is not equal
7788 to TS_end_standout_mode.
7789 (insert_glyphs): Turn inverse video on/off for each run of glyphs
7790 with the same face.
7791 (turn_off_face): Reset standout_mode only if
7792 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
7793 is equal to TS_end_standout_mode.
7794
7795 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7796
7797 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
7798 sequence at the end of the source block.
7799
7800 * ccl.c (Fccl_program_p): Docstring modified.
7801 (Fccl_execute): Likewise.
7802 (Fccl_execute_on_string): Likewise.
7803
7804 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
7805
7806 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
7807
7808 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7809
7810 The following changes are mainly to fix bugs of
7811 encode/decode-coding-string failing if encoding/decoding return
7812 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
7813 variable conversion_buffer.
7814
7815 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
7816 decrement dst_end to avoid buffer overflow in the later call of
7817 string_as_multibyte
7818
7819 * coding.h (conversion_buffer_size, conversion_buffer)
7820 (get_conversion_buffer): Extern deleted.
7821
7822 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
7823 (conversion_buffer, conversion_buffer_size): Variables deleted.
7824 (get_conversion_buffer): Function deleted.
7825 (struct conversion_buffer): New structure.
7826 (MAX_ALLOCA): New macro.
7827 (allocate_conversion_buffer): New macro.
7828 (extend_conversion_buffer, free_conversion_buffer): New functions.
7829 (ccl_coding_driver): Set coding->result.
7830 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
7831 this is the last block of source.
7832 (encode_coding): Likewise. Handle the source block as the last
7833 one only when the whole source text is consumed.
7834 (decode_coding_string): Handle the case that the output buffer is
7835 too small to decode the whole source text. Use
7836 allocate_conversion_buffer, extend_conversion_buffer and
7837 free_conversion_buffer, not get_conversion_buffer.
7838 (encode_coding_string): Likewise.
7839 (init_coding): Function deleted.
7840 (init_coding_once): Delete code to initialize conversion_buffer_size.
7841
7842 * emacs.c (main): Don't call init_coding.
7843
7844 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
7845
7846 * term.c (write_glyphs): Use a locally declared conversion_buffer.
7847 (insert_glyphs): Likewise.
7848
7849 * w32console.c (write_glyphs): Use a locally declared
7850 conversion_buffer.
7851
7852 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
7853
7854 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
7855 member of display_info is NULL.
7856
7857 2000-08-15 Gerd Moellmann <gerd@gnu.org>
7858
7859 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
7860
7861 * term.c (turn_off_face): Reset standout_mode when resetting
7862 appearances with capability `me'.
7863 (write_glyphs): Switch on inverse video before each face change.
7864
7865 2000-08-14 Dave Love <fx@gnu.org>
7866
7867 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
7868 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
7869 (lisp_free): Declare and make static.
7870
7871 * window.c: Fix embedded comment.
7872 (syms_of_window): Fix doc string.
7873
7874 2000-08-14 Gerd Moellmann <gerd@gnu.org>
7875
7876 * keymap.c (push_key_description): If C without modifiers is < 32,
7877 make sure to print `C-' before `M-', like in the manual.
7878
7879 2000-08-11 Gerd Moellmann <gerd@gnu.org>
7880
7881 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
7882 since they aren't relocated anymore.
7883 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
7884
7885 * xdisp.c (try_cursor_movement): Fix handling of cursor in
7886 partially visible line which is smaller than the window's height.
7887
7888 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7889
7890 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
7891 the multibyte form of eight-bit-control characters.
7892 (Fccl_execute_on_string): Initialize ccl->multibyte.
7893
7894 * ccl.h (struct ccl_program): New member multibyte.
7895
7896 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
7897
7898 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7899
7900 * regex.c (regex_compile) <normal_char>: Pay attention to
7901 multibyteness.
7902 (analyse_first) <exactn>: Setup fastmap correctly for
7903 eight-bit-control characters.
7904
7905 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7906
7907 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
7908
7909 * keyboard.c (make_lispy_event): Handle the new event type
7910 multibyte_char_keystroke.
7911
7912 * xterm.c: Include coding.h.
7913 (XTread_socket): Work around a bug of XmbLookupString. If the
7914 input is from XIM, decode it according to the current locale. In
7915 that case, generate multibyte_char_keystroke events.
7916
7917 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7918
7919 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
7920 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
7921
7922 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7923
7924 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
7925 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
7926 (move_it_in_display_line_to): Record iterator's ascent and descent
7927 before producing glyphs, and restore them when we know the glyph
7928 doesn't fit on the line.
7929 (move_it_to): Restructured so that it's easier to debug. If
7930 moving to a vpos, and not moving to an x or character position,
7931 stop as soon as the specified vpos is reached; don't move further
7932 into that line because that might change the computed line height.
7933 (try_cursor_movement): New function, extracted from the cursor
7934 movement branch of redisplay_window. If ending on a partially
7935 visible line, don't try to scroll if the cursor line is taller
7936 than the window.
7937 (redisplay_window): Use try_cursor_movement.
7938
7939 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
7940 because that function doesn't cope with variable-height lines.
7941
7942 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
7943 box cursor because that's better visible for large images.
7944
7945 2000-08-10 Miles Bader <miles@gnu.org>
7946
7947 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
7948
7949 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7950
7951 * xdisp.c (Vmessages_buffer_name): New variable.
7952 (message_dolog): Use it.
7953 (syms_of_xdisp): Initialize it.
7954
7955 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
7956
7957 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
7958 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
7959 redundant now that keyboard.h is included.
7960
7961 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
7962
7963 * keyboard.c (kbd_buffer_events_waiting): New function.
7964
7965 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
7966
7967 * msdos.c: Include keyboard.h.
7968 (XMenuActivate): Empty no_event events from the event buffer. If
7969 no events are left after that, call clear_input_pending.
7970 (mouse_clear_clicks): New function, code moved from mouse_init.
7971 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
7972 mouse driver to ``forget'' any past clicks.
7973
7974 * Makefile.in (msdos.o): Depend on keyboard.h.
7975
7976 2000-08-09 Gerd Moellmann <gerd@gnu.org>
7977
7978 * lisp.h (input_pending): External declaration.
7979
7980 * dispextern.h (Qredisplay_dont_pause): Declare extern.
7981
7982 * xdisp.c (echo_area_display): Display thoroughly if input is
7983 pending. Bind redisplay-dont-pause to t during the redisplay.
7984 in case input is pending.
7985
7986 * dispnew.c (Qredisplay_dont_pause): New variable.
7987 (syms_of_display): Initialize and staticpro it.
7988 (update_frame_1): Don't interrupt the display for pending input if
7989 redisplay_dont_pause is set.
7990
7991 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
7992
7993 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
7994
7995 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
7996
7997 * callproc.c (Fcall_process): Terminate the unwind-protect around
7998 the post-read-conversion of coding system.
7999
8000 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
8001 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
8002 * buffer.h (overlays_at): Update prototype.
8003 * xdisp.c (next_overlay_change): Update call to overlays_at.
8004 * xfaces.c (face_at_buffer_position): Likewise.
8005 * textprop.c (Fget_char_property): Likewise.
8006 * xterm.c (note_mouse_highlight): Likewise.
8007
8008 * minibuf.c (do_completion): Don't consider a simple change of
8009 case as `completion'.
8010
8011 2000-08-08 Ken Raeburn <raeburn@gnu.org>
8012
8013 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
8014 * undo.c (record_delete): Make sure last_point_position_buffer is
8015 a buffer before comparing pointers.
8016
8017 * coding.h (decode_coding_string): Declare.
8018
8019 * intervals.h (Fprevious_single_char_property_change): Declare.
8020
8021 * textprop.c (Fprevious_single_char_property_change): Don't do
8022 arithmetic directly on lisp objects.
8023
8024 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
8025
8026 * keyboard.h (menu_item_eval_property): Declare.
8027
8028 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
8029 reuse as buffer name, instead of recreating (and discarding) every
8030 time a message is logged.
8031 (with_echo_area_buffer): Make callback arg A2 a lisp object.
8032 (current_message_1, truncate_message_1, set_message_1)
8033 (display_echo_area_1, resize_mini_window_1): Signatures changed.
8034 (current_message, truncate_echo_area, display_echo_area)
8035 (resize_echo_area_axactly): Changed calls.
8036
8037 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
8038 Lisp object.
8039 (Ffind_coding_systems_region_internal): First argument to Fappend
8040 must be an integer, not a Lisp object.
8041
8042 2000-08-08 Kenichi Handa <handa@etl.go.jp>
8043
8044 * charset.c (Fchar_width): Doc fix.
8045
8046 2000-08-08 Gerd Moellmann <gerd@gnu.org>
8047
8048 * charset.c (Fstring_width): Doc fix.
8049
8050 2000-08-07 Gerd Moellmann <gerd@gnu.org>
8051
8052 * xdisp.c (start_display): When starting display on a continuation
8053 line, clear ascent and descent members of the iterator structure;
8054 the height of the continued line does not affect the height of the
8055 continuation line.
8056 (make_cursor_line_fully_visible): Do nothing if cursor is on a
8057 line taller than the window.
8058 (redisplay_window) <forced window start>: Handle case that the
8059 middle of the window is not found in any row.
8060 (dump_glyph_row): Show more information.
8061 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
8062 first text line in a glyph matrix.
8063
8064 * xterm.c (x_draw_image_foreground): Avoid drawing outside
8065 of the clip area when image doesn't have a mask.
8066
8067 * fns.c (sweep_weak_table): Fix survival conditions for
8068 key-or-value and key-and-value weakness.
8069
8070 * .gdbinit (xhashtable): New command.
8071
8072 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
8073 tables out of the list of all weak hash tables.
8074
8075 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
8076 a new buffer is created, make sure echo_area_buffer[] references
8077 the new buffer.
8078
8079 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
8080
8081 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
8082 the doc string.
8083
8084 2000-08-07 Kenichi Handa <handa@etl.go.jp>
8085
8086 * syntax.c (skip_chars): Fix previous change. Make the handling
8087 of unibyte string consistent with that of regex search.
8088
8089 2000-08-05 Gerd Moellmann <gerd@gnu.org>
8090
8091 * xmenu.c (popup_get_selection): Use xfree instead of free.
8092
8093 * fileio.c (Finsert_file_contents): Use xfree instead of free.
8094
8095 * editfns.c (Ftranspose_regions): Use xfree instead of free.
8096
8097 * callproc.c (child_setup): Use xfree instead of free.
8098
8099 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
8100 instead of malloc.
8101 (run_mac_command, closedir): Use `xfree' instead of `free'.
8102
8103 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
8104
8105 * eval.c (error): Use xfree instead of free.
8106
8107 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
8108
8109 * fns.c: Replace `illegal' with `invalid'.
8110 (Fmake_hash_table, make_hash_table): Allow table size of 0.
8111
8112 2000-08-05 Kenichi Handa <handa@etl.go.jp>
8113
8114 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
8115 conversion.
8116
8117 2000-08-04 Noah Friedman <friedman@splode.com>
8118
8119 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
8120 docstring.
8121
8122 2000-08-04 Gerd Moellmann <gerd@gnu.org>
8123
8124 * syntax.c (skip_chars): Fix typo in error message.
8125
8126 2000-08-04 Andreas Schwab <schwab@suse.de>
8127
8128 * m/ia64.h: Moved from s/ia64.h.
8129
8130 2000-08-04 Kenichi Handa <handa@etl.go.jp>
8131
8132 * process.c (read_process_output): Big simplification. Handle
8133 composition and post-read-conversion of coding system correctly.
8134 (send_process): Handle composition correctly.
8135
8136 * callproc.c (Fcall_process): Handle post-read-conversion of
8137 coding system if any.
8138
8139 * coding.c (decode_coding_iso2022): More strict check for handling
8140 single shifting.
8141 (coding_restore_composition): Pay attention to the case that
8142 cmp_data is not set properly (because of invalid code in the
8143 source text).
8144 (run_pre_post_conversion_on_str): Include text properties in the
8145 resulting string.
8146 (decode_coding_string): Set members of coding correctly.
8147
8148 2000-08-03 Gerd Moellmann <gerd@gnu.org>
8149
8150 * s/ia64.h: New file.
8151
8152 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
8153 Use NULL instead of 0 at the end of variable argument list of
8154 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
8155 sizeof (int) < sizeof (void *).
8156
8157 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
8158 of variable argument lists of XtVaGetValues and XtVaSetValues.
8159
8160 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
8161 variable argument lists of XtVaGetValues and XtVaSetValues.
8162
8163 2000-08-02 Gerd Moellmann <gerd@gnu.org>
8164
8165 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
8166 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
8167
8168 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
8169 prototype.
8170
8171 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
8172 in call to Fsingle_key_description.
8173
8174 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
8175 Callers changed.
8176
8177 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
8178
8179 * window.c (display_buffer_reuse_frames): New variable.
8180 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
8181 frames displaying BUFFER.
8182 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
8183
8184 2000-08-01 Miles Bader <miles@gnu.org>
8185
8186 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
8187 when to constrain NEW_POS (they were pretty screwed up before).
8188
8189 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
8190
8191 * msdos.c (run_msdos_command): Save and restore the master
8192 environment, for the case that child_setup signals an error.
8193 When mirroring slashes in DOS shell commands, don't fail when
8194 argv[2] has embedded blanks.
8195 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
8196 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
8197 (dos_ttraw): Call mouse_setup_buttons.
8198
8199 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
8200 using alloca; free it after run_msdos_command returns.
8201
8202 2000-07-27 Dave Love <fx@gnu.org>
8203
8204 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
8205 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
8206
8207 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
8208
8209 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
8210
8211 * editfns.c (lisp_time_argument): Fix last change.
8212
8213 2000-07-27 Gerd Moellmann <gerd@gnu.org>
8214
8215 * fns.c (Fdelete): Make it work on vectors and strings in addition
8216 to lists.
8217
8218 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
8219 (syms_of_fns): Initialize new variables.
8220 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
8221 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
8222 weakness, with t meaning the same as `key-and-value'.
8223
8224 2000-07-27 Kenichi Handa <handa@etl.go.jp>
8225
8226 * coding.h (struct coding_system): Member safe_charset deleted.
8227
8228 * coding.c (Qsafe_charsets): This variable deleted.
8229 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
8230 New variables.
8231 (coding_safe_chars): New function.
8232 (CODING_SAFE_CHAR_P): New macro.
8233 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
8234 checking safe_charsets member of the coding system. Caller changed.
8235 (detect_coding_iso2022): New local variable safe_chars.
8236 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
8237 safe_charsets member of the coding system.
8238 (decode_coding_iso2022): New local variable safe_chars.
8239 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
8240 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
8241 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
8242 (ENCODE_UNSAFE_CHARACTER): New macro.
8243 (encode_coding_iso2022): New local variable safe_chars. Check
8244 unsafe chars.
8245 (setup_coding_system): Delete the code to initialize
8246 coding->safe_charses
8247 (intersection, find_safe_codings): New functions.
8248 (Ffind_coding_systems_region_internal): New function.
8249 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
8250 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
8251 variable and initialize it.
8252
8253 * fns.c (char_table_ref_and_index): New function.
8254
8255 * lisp.h (char_table_ref_and_index): Add prototype.
8256
8257 2000-07-26 Sam Steingold <sds@gnu.org>
8258
8259 * editfns.c (lisp_time_argument): Added third argument `usec'.
8260 (Ffloat_time): New built-in Lisp function.
8261
8262 2000-07-26 Gerd Moellmann <gerd@gnu.org>
8263
8264 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
8265 for the character code.
8266
8267 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
8268 GNU/Linux.
8269
8270 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
8271 if called for a popup menu.
8272 (xmenu_show): Store help string in widget values.
8273
8274 2000-07-26 Dave Love <fx@gnu.org>
8275
8276 * syswait.h: Move some definitions.
8277 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
8278 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
8279 perspicuous definitions.
8280 (WTERMSIG): Fix bit pattern used.
8281
8282 2000-07-26 Kenichi Handa <handa@etl.go.jp>
8283
8284 * print.c (print_object): If vector printing is truncated, print
8285 "..." to indicate it as well as the case of list printing.
8286
8287 2000-07-25 Gerd Moellmann <gerd@gnu.org>
8288
8289 * xdisp.c (next_element_from_display_vector): Improve comments.
8290
8291 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
8292 for the character code, and the rest for the face id as in 20.x.
8293 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
8294
8295 * window.c (window_display_table): Cleaned up.
8296
8297 * syntax.c (Fforward_word): Add last arg nil in call of
8298 Fconstrain_to_field.
8299
8300 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
8301
8302 * fileio.c (Frename_file) [DOS_NT]: If the file names are
8303 identical but for the letter-case, don't call
8304 barf_or_query_if_file_exists.
8305
8306 2000-07-25 Miles Bader <miles@gnu.org>
8307
8308 * editfns.c (find_field): Honor special `boundary' fields.
8309 (Qboundary): New variables.
8310 (syms_of_editfns): Initialize Qboundary.
8311 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
8312 Use scan_buffer instead of find_before_next_newline, because it
8313 allows us to detect the boundary case where there's a newline at
8314 the search limit.
8315 * lisp.h (Fconstrain_to_field): Update external declaration.
8316
8317 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8318
8319 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
8320 if that is nil.
8321
8322 2000-07-24 Dave Love <fx@gnu.org>
8323
8324 * s/sunos4-0.h, s/sol2.h:
8325 (LIBS_TERMCAP): Move from m/sparc.h.
8326
8327 * m/sparc.h (TERMINFO): Moved to system files (probably only
8328 relevant for sunos4 judging by its vintage).
8329 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
8330 __arch64__.
8331
8332 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
8333
8334 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
8335 name to single_keymap_panes.
8336
8337 2000-07-24 Andreas Schwab <schwab@suse.de>
8338
8339 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
8340
8341 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8342
8343 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
8344 parameters instead of using int parameters. Expect FN to accept
8345 EMACS_INT parameters.
8346 (display_echo_area, resize_echo_area_axactly, current_message)
8347 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
8348 with new argument list.
8349 (resize_mini_window_1): New callback function.
8350 (current_message_1, truncate_message_1, set_message_1): Change
8351 parameter lists to the new format expected by with_echo_area_buffer.
8352
8353 2000-07-24 Kenichi Handa <handa@etl.go.jp>
8354
8355 * fontset.c (fontset_ref): Remove INLINE declaration.
8356 (fontset_ref_via_base): Likewise.
8357 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
8358 to downcase.
8359
8360 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
8361
8362 * msdos.c (IT_note_mouse_highlight): Process overlays in the
8363 correct order of priority. If help echo was found in an overlay,
8364 use that overlay as the object in which the help echo was found.
8365
8366 2000-07-22 Miles Bader <miles@gnu.org>
8367
8368 * textprop.c (Fprevious_single_char_property_change): The initial
8369 property value should be from the position preceding POSITION, not
8370 following it.
8371
8372 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
8373
8374 * coding.c (syms_of_coding): Doc fix for
8375 inhibit-iso-escape-detection.
8376
8377 2000-07-21 Gerd Moellmann <gerd@gnu.org>
8378
8379 * xterm.c (note_mouse_highlight): Process overlays in the right
8380 order of priority.
8381
8382 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
8383
8384 * xterm.c (note_mouse_highlight): If help-echo was found in an
8385 overlay, use that overlay as the object in which the help was found.
8386
8387 * window.c (foreach_window_1): Fix typo reversing an if-condition.
8388
8389 * window.c (foreach_window): Instead of a fake variable argument
8390 list, take one USER_DATA argument.
8391 (foreach_window_1): Likewise, and call callback functions with two
8392 args, the window and USER_DATA.
8393 (struct check_window_data): New struct.
8394 (check_window_containing): Use it.
8395 (window_from_coordinates): Set up a struct check_window_data for
8396 foreach_window.
8397 (add_window_to_list, freeze_window_start): Change parameters
8398 according to new calling convention.
8399
8400 * window.h (foreach_window): Change prototype.
8401
8402 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
8403
8404 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
8405
8406 * xmenu.c (menu_help_callback): Call show_help_echo with
8407 additional arguments OBJECT and POS.
8408
8409 2000-07-21 Kenichi Handa <handa@etl.go.jp>
8410
8411 * data.c (Faset): Allow storing any multibyte character in a
8412 string. Convert unibyte string to multibyte if necessary.
8413
8414 * xfns.c (x_encode_text): New function.
8415 (x_set_name): Use x_encode_text.
8416 (x_set_title): Likewise.
8417
8418 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
8419
8420 * xterm.h (x_encode_text): Add prototype.
8421
8422 2000-07-20 Dave Love <fx@gnu.org>
8423
8424 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
8425 xfree, not free.
8426
8427 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
8428
8429 * msdos.c (help_echo_window): New variable.
8430 (syms_of_msdos): Initialize and staticpro it.
8431 (IT_note_mode_line_highlight): Set help_echo_window.
8432 (IT_note_mouse_highlight): Ditto.
8433 (dos_rawgetc): Store help_echo_window in the second event produced
8434 for HELP_EVENTs.
8435
8436 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
8437 Record the object that generated the help echo and the position of
8438 that object in help_echo_object and help_echo_pos. Record that
8439 some glyphs in a row are displayed in mouse-face.
8440 (IT_update_begin): Don't clear mouse highlight unless one of the
8441 enabled glyph rows is marked as being displayed in mouse-face.
8442 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
8443 and position recorded in help_echo_object and help_echo_pos to the
8444 event queue.
8445 (IT_menu_display): Accept a new argument PN: the pane number of
8446 the current menu pane. Record the pane number and the item
8447 number of the item which has associated help string.
8448 (XMenuActivate): Update the prototype for help_callback in
8449 function declaration. Call IT_menu_display with the current menu
8450 pane number as an additional argument. Call help_callback with
8451 two additional arguments: the pane number and the item number of
8452 the menu item associated with the help text.
8453 (help_echo_object, help_echo_pos): New variables.
8454 (syms_of_msdos): Initialize them and staticpro help_echo_object.
8455
8456 * msdos.h (XMenuActivate): Update prototype.
8457
8458 2000-07-19 Gerd Moellmann <gerd@gnu.org>
8459
8460 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
8461 Add some more prototypes.
8462
8463 * xterm.c, xterm.h: Add some more prototypes.
8464
8465 * lisp.h (Fnext_single_char_property_change): Add prototype.
8466
8467 * dispnew.c (direct_output_for_insert): Remove confusing
8468 outer local variable mouse_face_overwritten_p.
8469 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
8470
8471 * alloc.c (allocate_string_data): Don't copy old string contents.
8472
8473 2000-07-19 Kenichi Handa <handa@etl.go.jp>
8474
8475 * coding.c (code_convert_region): Delete text properties before
8476 shrinking the conversion region.
8477
8478 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8479
8480 * dispnew.c (update_text_area): Write the whole row if it
8481 has mouse-face in it.
8482
8483 * xfaces.c (face-alternative-font-family-alist): Remove
8484 DEFVAR_LISP; staticpro instead.
8485
8486 * xmenu.c (menu_help_callback): Call show_help_echo with
8487 new arguments.
8488
8489 * keyboard.c (show_help_echo): Add parameter WINDOW.
8490 (read_char): Call show_help_echo with window extracted from Lisp
8491 help event.
8492 (gen_help_event): Add parameter WINDOW.
8493
8494 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
8495
8496 * xterm.c (help_echo_window): New variable.
8497 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
8498 (XTread_socket): Pass help_echo_window to gen_help_event.
8499 (syms_of_xterm): Initialize and staticpro help_echo_window.
8500
8501 2000-07-18 Dave Love <fx@gnu.org>
8502
8503 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
8504
8505 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8506
8507 * alloc.c (allocate_string_data): If string had already data
8508 assigned, copy old contents to new string data.
8509
8510 * coding.c (syms_of_coding): Fix typo in spelling of variable
8511 `inhibit-iso-escape-detection'.
8512
8513 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
8514
8515 * Makefile.in: Add dependencies on dispextern.h.
8516 (alloca.o): Don't define malloc and define EMACS_FREE instead of
8517 `free'; both can conflict with system header files.
8518
8519 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8520
8521 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
8522 undefined.
8523
8524 2000-07-18 Dave Love <fx@gnu.org>
8525
8526 * window.c (Fwindow_list): Declare arg `window'.
8527
8528 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8529
8530 * coding.c (setup_coding_system): Don't override the explicitly
8531 specified designations.
8532
8533 2000-07-15 Miles Bader <miles@gnu.org>
8534
8535 * editfns.c (char_property_eq, char_property_stickiness): Renamed
8536 from `text_property_eq' and `text_property_stickiness', respectively.
8537 (find_field, Fconstrain_to_field, char_property_eq)
8538 (char_property_stickiness): Changed to call char-property functions
8539 instead of text-property-only ones.
8540
8541 * textprop.c (Fnext_single_char_property_change): Made a subr (was
8542 `next_single_char_property_change'). Do more error checking, and
8543 cleanup limit behavior.
8544 (Fprevious_single_char_property_change): New function.
8545 (syms_of_textprop): Initialize new subrs.
8546
8547 * xdisp.c (display_prop_end, invisible_text_between_p):
8548 Call Fnext_single_char_property_change instead of
8549 next_single_char_property_change.
8550
8551 2000-07-15 Jason Rumney <jasonr@gnu.org>
8552
8553 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
8554 after menu is finished with.
8555 (add_menu_item): Only consider wv->title as a menu title.
8556 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
8557
8558 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
8559 null title.
8560 (FONT_REGEXP): Remove unused macro, and its sub-components.
8561 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
8562
8563 * w32term.c (help_echo_object, help_echo_pos): New variables.
8564 (note_mode_line_highlight): Store additional information about the
8565 help-echo in help_echo_object and help_echo_pos. Check both
8566 `local-map' and `keymap' properties for changing the cursor
8567 (note_mouse_highlight): Store additional information about the
8568 help-echo in help_echo_object and help_echo_pos.
8569 (note_tool_bar_highlight): Set help_echo_object to nil and
8570 help_echo_pos to -1.
8571 (w32_read_socket): Use gen_help_event instead of filling
8572 input_events manually.
8573 (syms_of_w32term): Staticpro help_echo_object.
8574 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
8575 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
8576 (x_clear_mouse_face): New function.
8577 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
8578 (x_update_window_begin): No need to turn off the mouse
8579 highlight here.
8580 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8581 depending on whether they contain glyphs highlighted in mouse-face.
8582 (x_fill_stretch_glyph_string): Consume runs of stretch
8583 glyphs instead of a single one.
8584 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8585 with new argument list.
8586 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8587 (x_append_glyph, x_append_composite_glyph)
8588 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8589 changes in struct glyph starting 1999-12-27. See comments for
8590 xterm.c on 2000-07-05.
8591
8592 2000-07-14 Sam Steingold <sds@gnu.org>
8593
8594 * xfaces.c (realize_x_face): Fix the last patch:
8595 check `default_face' before dereferencing.
8596
8597 2000-07-14 Dave Love <fx@gnu.org>
8598
8599 * syntax.c (back_comment): Add null default in switch (for pcc).
8600
8601 2000-07-14 Kenichi Handa <handa@etl.go.jp>
8602
8603 * xfaces.c (realize_x_face): Make fontset using the base of the
8604 default_face's fontset, not using the default fontset.
8605
8606 * coding.c (inhibit_iso_escape_detection): New variable.
8607 (syms_of_coding): Make it a Lisp variable.
8608 (detect_coding_iso2022): If inhibit_iso_escape_detection is
8609 nonzero, ignore ISO2022's escape sequence.
8610
8611 2000-07-14 Gerd Moellmann <gerd@gnu.org>
8612
8613 * alloca.c (malloc) [emacs]: Define as xmalloc.
8614
8615 * xfns.c (Fx_show_tip): If frame parameters contain a position,
8616 use that instead of the mouse position. Add parameters DX and DY.
8617
8618 * dispextern.h (Fx_show_tip): Adjust number of parameters
8619 in prototype.
8620
8621 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
8622 if HELP is a function, call it with OBJECT and POS as parameters
8623 to get the help to display.
8624 (gen_help_event, kbd_buffer_store_help_event): New functions.
8625 (kbd_buffer_get_event): Construct the Lisp help-event differently.
8626 (read_char): Call show_help_echo with new parameters.
8627
8628 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
8629 Add prototypes.
8630
8631 * xterm.c (help_echo_object, help_echo_pos): New variables.
8632 (note_mode_line_highlight): Store additional information about the
8633 help-echo in help_echo_object and help_echo_pos. Check both
8634 `local-map' and `keymap' properties for changing the cursor
8635 (note_mouse_highlight): Store additional information about the
8636 help-echo in help_echo_object and help_echo_pos.
8637 (note_tool_bar_highlight): Set help_echo_object to nil and
8638 help_echo_pos to -1.
8639 (XTread_socket): Use gen_help_event instead of filling
8640 input_events manually.
8641 (syms_of_xterm): Staticpro help_echo_object.
8642
8643 * xmenu.c (menu_highlight_callback): Use
8644 kbd_buffer_store_help_event instead of setting up and input_event
8645 structure manually.
8646
8647 * xdisp.c (eval_form): GCPRO argument sexpr.
8648 (call_function): New function.
8649 (handle_single_display_prop): Use call_function and FUNCTIONP
8650 instead of checking whether if font_height is a symbol and
8651 using eval_form.
8652
8653 * eval.c (internal_condition_case_2): New function.
8654
8655 * lisp.h (FUNCTIONP): New macro.
8656 (internal_condition_case_2, call_function): Add prototypes.
8657
8658 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
8659 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
8660 Always set `arg' member of input_events.
8661 (construct_menu_click): Unused function removed.
8662
8663 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
8664
8665 * w32term.c (construct_mouse_click, construct_mouse_wheel)
8666 (construct_drag_n_drop, x_scroll_bar_handle_click)
8667 (w32_read_socket): Always set `arg' member of input_events.
8668
8669 * keyboard.c (show_help_echo): Use eval_form. Add comment.
8670
8671 * lisp.h (eval_form): Add prototype.
8672
8673 * xdisp.c (eval_form): Make it externally visible.
8674
8675 2000-07-13 Gerd Moellmann <gerd@gnu.org>
8676
8677 * xterm.c (x_handle_tool_bar_click): Store the frame in the
8678 frame_or_window slot of TOOL_BAR_EVENT input events instead of
8679 consing. For prefix events, store the frame in the `arg' slot of
8680 the event, otherwise store the key there.
8681 (XTread_socket): Instead of consing, use the frame_or_window slot
8682 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
8683
8684 * xmenu.c (menu_highlight_callback): Store help string in the
8685 `arg' member of the input event; don't cons.
8686 (menubar_selection_callback): Use the `arg' slot of input events
8687 to queue additional information, instead of consing.
8688
8689 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
8690
8691 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
8692 TOOL_BAR_EVENTs.
8693 (w32_read_socket): Adapt to changes in HELP_EVENTs.
8694
8695 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
8696 input events to queue additional information, instead of consing.
8697
8698 * keyboard.c (kbd_buffer_gcpro): Renamed from
8699 kbd_buffer_frame_or_window. Now used for all Lisp objects
8700 referenced from the input queue.
8701 (kbd_buffer_store_event): Always use structure assignment for
8702 copying input events. Record all Lisp objects referenced from
8703 events in kbd_buffer_gcpro.
8704 (kbd_buffer_get_event): Construct Lisp `help-echo' events
8705 differently from input events. Test for prefix menu_bar_events
8706 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
8707 event in kbd_buffer_gcpro to nil.
8708 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
8709 frame_or_window is equal to its arg member as prefix events.
8710 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
8711 used by an input event to nil.
8712 (init_keyboard): Use two times the size of the input queue
8713 for kbd_buffer_gcpro.
8714 (syms_of_keyboard): Likewise.
8715
8716 * emacs.c (handle_USR2_signal, handle_USR1_signal):
8717 Use USER_SIGNAL_EVENT.
8718
8719 * termhooks.h (struct input_event): Add member `arg'.
8720 (MENU_BAR_EVENT): Renamed from menu_bar_event.
8721 (USER_SIGNAL_EVENT): Renamed from user_signal.
8722
8723 * xfaces.c (ASET): Remove definition.
8724
8725 * lisp.h (AREF, ASET, ASIZE): New macros.
8726
8727 * fontset.c (AREF, ASIZE): Remove definitions.
8728
8729 * fns.c (AREF): Remove definition.
8730
8731 * composite.c (AREF): Remove definition.
8732
8733 2000-07-12 Gerd Moellmann <gerd@gnu.org>
8734
8735 * dispnew.c (redraw_overlapped_rows): Add missing local.
8736 (scrolling_window): Remove debug code.
8737
8738 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
8739 Before scrolling, turn off a mouse-highlight in the window
8740 being scrolled.
8741
8742 * xterm.c (x_update_window_end): Add parameter
8743 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
8744 redisplay in XTframe_up_to_date.
8745 (x_clear_mouse_face): New function.
8746 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
8747
8748 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
8749 current glyph row.
8750 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
8751 it when any row is written to that contains glyphs highlighted in
8752 mouse-face.
8753 (update_window): Call the window update end hook with new
8754 parameter MOUSE_FACE_OVERWRITTEN_P.
8755 (direct_output_for_insert): Give up if row contains mouse-face.
8756
8757 * dispextern.h (struct redisplay_interface): Add parameter
8758 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
8759 (clear_mouse_face): New function pointer member.
8760
8761 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
8762
8763 * syntax.c (back_comment): Use one switch rather than a few `if's.
8764 Obey open_paren_in_column_0_is_defun_start.
8765 When reverting to the `slow' method, try to nicely handle the case
8766 of nested comments by checking that the comment-starter we found
8767 does indeed match the comment-ender.
8768 (scan_sexps_forward, scan_sexps_forward):
8769 Ignore excessive opening parenthesis rather than throwing an error.
8770
8771 2000-07-11 Gerd Moellmann <gerd@gnu.org>
8772
8773 * doc.c (Fsubstitute_command_keys): Handle case that a GC
8774 in Fwhere_is_internal or get_keymap_1 relocates string contents.
8775
8776 * dispnew.c (direct_output_forward_char): Give up if currently
8777 displaying a message instead of the minibuffer contents.
8778
8779 * xterm.c (x_update_window_begin): No need to turn off the mouse
8780 highlight here.
8781 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8782 depending on whether they contain glyphs highlighted in mouse-face.
8783
8784 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
8785 compare the mouse_face_p flags of both rows.
8786
8787 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
8788
8789 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
8790
8791 * keyboard.c (show_help_echo): Accept additional parameter
8792 ok_to_overwrite_keystroke_echo.
8793 (read_char): Call show_help_echo with a zero
8794 ok_to_overwrite_keystroke_echo argument.
8795 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
8796 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
8797 ok_to_overwrite_keystroke_echo argument.
8798 * w32menu.c (w32_menu_display_help): Call show_help_echo with
8799 non-zero ok_to_overwrite_keystroke_echo argument.
8800
8801 2000-07-10 Gerd Moellmann <gerd@gnu.org>
8802
8803 * xdisp.c (try_window_id): If changes are all below what is
8804 displayed in the window, and point is in the window, we still
8805 might have to find point on the display.
8806
8807 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
8808 glyphs instead of a single one.
8809 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8810 with new argument list.
8811 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8812
8813 * keymap.c (get_keymap_1): Add comment that this function can GC.
8814 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
8815 comment that functions can GC.
8816 (Fset_keymap_parent): GCPRO arg KEYMAP.
8817
8818 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
8819
8820 * msdos.c (XMenuActivate): After exiting the menu, restore the
8821 echo area message and erase it.
8822
8823 2000-07-10 Kenichi Handa <handa@etl.go.jp>
8824
8825 * fontset.c (Ffontset_info): Make the return value more compatible
8826 with that of Emacs 20.
8827
8828 2000-07-07 Gerd Moellmann <gerd@gnu.org>
8829
8830 * eval.c (Fsignal): Handle case that backtrace_list is null.
8831
8832 2000-07-07 Kenichi Handa <handa@etl.go.jp>
8833
8834 * ccl.c (Fccl_execute): Typo fixed.
8835
8836 2000-07-06 Gerd Moellmann <gerd@gnu.org>
8837
8838 * window.c (window_loop): Add missing gcpro1 local variable.
8839
8840 * window.c (Fwindow_list): Reverse list at the end.
8841 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
8842 means allow windows on OWINDOW's frame, only.
8843 (window_loop): Simplified; use Fwindow_list.
8844
8845 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
8846
8847 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8848
8849 * xterm.c (XTread_socket): Increment handling_signal at the start,
8850 decrement it at the end.
8851
8852 * eval.c (handling_signal): New variable.
8853 (Fsignal): Abort if handling_signal is non-zero.
8854
8855 * lisp.h (handling_signal): External declaration.
8856
8857 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
8858
8859 2000-07-05 Ken Raeburn <raeburn@gnu.org>
8860
8861 Sound support for NetBSD through "Linux emulation" support:
8862 * config.in (HAVE_SOUNDCARD_H): Undef.
8863 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
8864 * Makefile.in (LIBSOUND): New variable.
8865 (LIBES): Include it.
8866 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
8867 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
8868 (vox_open): Use DEFAULT_SOUND_DEVICE.
8869 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
8870
8871 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8872
8873 * print.c (print_error_message): If Vsignaling_function is set,
8874 show it in *Messages*.
8875
8876 * lisp.h (Vsignaling_function): External declaration.
8877
8878 * eval.c (Vsignaling_function): New variable.
8879 (Fsignal): Compute it.
8880 (syms_of_eval): Staticpro it.
8881
8882 2000-07-05 Dave Love <fx@gnu.org>
8883
8884 * syswait.h: Use the autoconf recommended approach. Old code
8885 #if'd out in case we need to revert.
8886
8887 * config.in (HAVE_SYS_WAIT_H): Added.
8888
8889 2000-07-05 Andrew Innes <andrewi@gnu.org>
8890
8891 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
8892 when non-NULL instead of __morecore, to take account of buffer
8893 memory. This also solves a problem with spurious memory warnings
8894 on Windows.
8895
8896 * ralloc.c: Make real_morecore non-static.
8897
8898 * eval.c (internal_condition_case): Comment out abort if
8899 interrupt_input_blocked is not zero.
8900
8901 * makefile.nt: Add support for `bootstrap' and related targets.
8902 Include minimal debug info in emacs.exe in release build.
8903 Remove all dependencies on lisp.h, and fixup some others.
8904
8905 * w32.c (init_environment): Install code from 20.7 for providing
8906 default values for environment variables, based on the
8907 executable's own location.
8908 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
8909 (sys_socket): Install socket inheritance bug fix from 20.7.
8910
8911 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
8912 here via blockinput.h).
8913
8914 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
8915
8916 * w32menu.c (w32_menu_display_help):
8917 * xmenu.c (menu_help_callback): Use show_help_echo.
8918
8919 * keyboard.h (show_help_echo): Declare.
8920
8921 * keyboard.c (show_help_echo): New function, extracted from read_char.
8922 Feval its `msg' argument if it's a cons cell.
8923 (read_char): Use it.
8924 (follow_key): Pass `autoload' to get_keyelt.
8925
8926 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
8927 (note_tool_bar_highlight, XTread_socket):
8928 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
8929 (dos_rawgetc):
8930 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
8931 (note_tool_bar_highlight, w32_read_socket):
8932 Do not gratuitously ignore non-string `help-echo' properties.
8933
8934 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8935
8936 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
8937
8938 * window.c (delete_all_subwindows): Reset Vwindow_list.
8939
8940 * xterm.c (x_append_glyph, x_append_composite_glyph)
8941 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8942 changes in struct glyph starting 1999-12-27. Some bit-fields of
8943 struct glyph were not set, which made glyphs unequal when compared
8944 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
8945 effects were the result. This also depended on the contents of
8946 memory returned by xmalloc. If flickering happens again, activate
8947 the code in clear_glyph_row that's in #if 0. If the flickering is
8948 gone with that, chances are that it is caused by something similar.
8949
8950 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
8951
8952 * dispextern.h: Add some comments.
8953
8954 * window.c (add_window_to_list): Add parameter LIST.
8955 (window_list): Order list so that, for each frame, windows are
8956 in canonical order, and so that frames appear in the list in
8957 the order given by Vframe_list.
8958 (next_window): Reverse the handling of NEXT_P.
8959
8960 2000-07-04 Gerd Moellmann <gerd@gnu.org>
8961
8962 * window.c (Vwindow_list): New variable.
8963 (make_window, delete_window): Set Vwindow_list to nil.
8964 (check_window_containing): New function.
8965 (window_from_coordinates): Rewritten.
8966 (add_window_to_list, window_list, candidate_window_p)
8967 (decode_next_window_args, next_window): New functions.
8968 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
8969 (Fwindow_list): New function.
8970 (Fother_window): Cleaned up.
8971 (foreach_window): Add a longer "variable argument list". Let
8972 callback function return 0 to indicate that cycling over windows
8973 should stop.
8974 (foreach_window_1): Likewise.
8975 (freeze_window_start): Return int.
8976 (init_window): New function.
8977 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
8978
8979 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
8980 input_event with bzero.
8981 (main): Call init_window.
8982
8983 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
8984 a menu filter.
8985
8986 2000-07-04 Kenichi Handa <handa@etl.go.jp>
8987
8988 * composite.h (make_composition_value_copy): Extern it.
8989
8990 * composite.c (make_composition_value_copy): New function.
8991
8992 * editfns.c (Fformat): While copying text properties, make each
8993 composition property value a copy.
8994
8995 * fns.c (concat): While copying text properties, make each
8996 composition property value a copy.
8997
8998 2000-07-03 Gerd Moellmann <gerd@gnu.org>
8999
9000 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
9001
9002 * fns.c (sweep_weak_table): Mark only objects that are not
9003 marked already.
9004
9005 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
9006 include those frames as candidates which have their focus
9007 redirected to the minibuffer frame.
9008
9009 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
9010
9011 * fns.c (Fputhash): Return `value' rather than nil.
9012
9013 2000-06-30 Gerd Moellmann <gerd@gnu.org>
9014
9015 * frame.c (next_frame): Don't check focus redirection in case
9016 MINIBUF is a window. Doing so excludes frames using MINIBUF
9017 unless their focus is redirected, which contradicts the
9018 specification of next-frame, and leads to infinite loops in
9019 certain situations when cycling through windows with next-window.
9020
9021 2000-06-30 Kenichi Handa <handa@etl.go.jp>
9022
9023 * coding.c (code_convert_region): Even if the length of text is
9024 zero, try to convert it if coding->type is coding_type_ccl.
9025 (decode_coding_string, encode_coding_string): Likewise.
9026
9027 2000-06-28 Gerd Moellmann <gerd@gnu.org>
9028
9029 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
9030 the display if windows_or_buffers_changed.
9031
9032 * dispnew.c (struct row_entry): New structure.
9033 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
9034 (row_table_size, old_lines, new_lines, old_lines_size)
9035 (new_lines_size, run_pool, runs_size, runs): New variables.
9036 (add_row_entry): New function.
9037 (scrolling_window): Use data structures allocated with xmalloc and
9038 held in global variables, instead of allocating them with alloca and
9039 holding them in local variables. Use a larger hash table whose
9040 size depends on glyph matrix sizes. Don't use bzero to clear the
9041 hash table; instead, clear used slots only.
9042
9043 * fns.c (next_almost_prime): Make it externally visible.
9044
9045 * lisp.h (next_almost_prime): Add prototype.
9046
9047 * s/isc4-0.h (sigunblock): Define.
9048
9049 * s/sco5.h (sigunblock): Define.
9050
9051 2000-06-27 Dave Love <fx@gnu.org>
9052
9053 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
9054 (moved to osf5-0.h).
9055 [!NOT_C_CODE]: Protect string.h stuff.
9056
9057 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
9058 (sys_siglist, NSIG): Definitions moved here from osf1.h.
9059
9060 2000-06-27 Gerd Moellmann <gerd@gnu.org>
9061
9062 * xdisp.c (resize_mini_window): Subtract the extra line spacing
9063 below the last line from the needed window height.
9064
9065 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
9066
9067 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
9068 (Fwidget_get): Use it.
9069 (syms_of_fns): Defsubr it.
9070
9071 2000-06-26 Gerd Moellmann <gerd@gnu.org>
9072
9073 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
9074 display info for XIM.
9075 (xim_open_dpy): Likewise.
9076 (xim_close_dpy): Don't free the display info's XIM.
9077
9078 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
9079
9080 * config.in (USE_XIM): New define.
9081
9082 * keymap.c (get_keyelt): For menu-items containing a `:filter
9083 FILTER', apply FILTER to the menu-item's definition to get the
9084 real definition to use.
9085
9086 * lisp.h (QCfilter): External declaration.
9087
9088 * xfns.c (Fimage_size): New function.
9089 (syms_of_xfns): Defsubr it.
9090
9091 2000-06-26 Andreas Schwab <schwab@suse.de>
9092
9093 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
9094 Fstring_as_unibyte.
9095
9096 2000-06-25 Dave Love <fx@gnu.org>
9097
9098 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
9099
9100 * Makefile.in (blockinput.h): Depend on atimer.h.
9101 (atimer.h): Depend on systime.h.
9102
9103 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
9104
9105 * atimer.h: Protect against multiple inclusion. Include systime.h.
9106
9107 * lisp.h (swap_in_global_binding): Declare.
9108
9109 2000-06-24 Ken Raeburn <raeburn@gnu.org>
9110
9111 * process.c (Fopen_network_stream): Turn off atimers for duration
9112 of call to connect. (Patch from Gerd.)
9113
9114 2000-06-23 Dave Love <fx@gnu.org>
9115
9116 * ralloc.c: Maybe include unistd.h
9117
9118 * emacs.c (setgrp): Undefine before defining.
9119 (malloc_warning, set_time_zone_rule, index): Prototype.
9120
9121 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
9122 HAVE_STRUCT_TIMEZONE.
9123
9124 * s/osf1.h: Move string.h hack here from alpha.h and make it
9125 conditional.
9126 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
9127 _XOPEN_SOURCE.
9128 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
9129 (SOCKLEN_TYPE): Don't define.
9130
9131 * m/alpha.h: Remove string.h hack.
9132
9133 * s/osf5-0.h: New file.
9134
9135 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
9136 include time.h, done by systime.h.
9137 [__FreeBSD__]: Remove redundant includes.
9138
9139 * callproc.c (setpgrp): Undefine before defining.
9140 (delete_temp_file): Return Qnil to avoid warning.
9141
9142 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
9143
9144 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
9145 HAVE_X_WINDOWS.
9146
9147 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
9148
9149 * composite.h (compose_text): Declare.
9150
9151 * xterm.c: Don't include sys/types.h unconditionally. Don't
9152 protect its inclusion with !USG (following xmenu.c).
9153
9154 2000-06-23 Gerd Moellmann <gerd@gnu.org>
9155
9156 * xfns.c (x_create_tip_frame): Initialize frame's colors like
9157 in x_create_frame.
9158
9159 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
9160
9161 * coding.c (decode_eol_post_ccl): Special handling for undecided
9162 and inconsistent EOL types.
9163
9164 2000-06-22 Gerd Moellmann <gerd@gnu.org>
9165
9166 * xrdb.c (x_load_resources): Add default resource for scroll bar's
9167 trough color and main window's background color.
9168
9169 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
9170
9171 * xterm.h (Xt_app_con): External declaration.
9172
9173 * widget.c (EmacsFrameRealize): Fix typo.
9174
9175 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
9176
9177 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
9178 (handle_invisible_prop): Record the start of invisible text in
9179 it->add_overlay_start.
9180 (struct overlay_entry): Add member `overlay'.
9181 (handle_overlay_change): Simplify.
9182 (next_overlay_string): After having processed overlay strings at the
9183 end of the buffer, record that fact in
9184 it->overlay_strings_at_end_processed_p.
9185 (compare_overlay_entries): If before- and after-strings come
9186 from the same overlay, let before-strings come first.
9187 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
9188 (load_overlay_strings): Take it->add_overlay_start into account
9189 when adding overlay strings.
9190
9191 * dispextern.h (struct it): Add member add_overlay_start.
9192
9193 2000-06-22 Dave Love <fx@gnu.org>
9194
9195 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
9196
9197 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
9198
9199 2000-06-22 Kenichi Handa <handa@etl.go.jp>
9200
9201 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
9202 is greater than 0.
9203
9204 2000-06-21 Dave Love <fx@gnu.org>
9205
9206 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9207
9208 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
9209
9210 * syntax.c (back_comment): Simplify string-parity counting (with
9211 the added benefit of handling multiple string-styles as long as
9212 they are not intertwined).
9213 Jump to the slow code as soon as a comment starter is found in
9214 a "string_lossage" position. Fixes the case: " /* " /* " */.
9215
9216 2000-06-21 Dave Love <fx@gnu.org>
9217
9218 * Makefile.in: Use GETLOADAVG_LIBS.
9219
9220 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
9221 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
9222
9223 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9224
9225 * syntax.c (describe_syntax): Recognize the `n'estable bit.
9226 (Fforward_comment, scan_lists):
9227 Check the comstyle of single-char comment-starters.
9228 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
9229 we're just at the beginning of the comment (f.ex with (*) ... (*)).
9230 Check the comstyle of single-char comment-starters.
9231 Clarify control-flow around the Scomment case.
9232
9233 2000-06-20 Dave Love <fx@gnu.org>
9234
9235 * fns.c (make_hash_table, maybe_resize_hash_table):
9236 Cast arg of next_almost_prime.
9237
9238 * tparam.c [emacs]: Include lisp.h.
9239
9240 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
9241 and unistd.h.
9242
9243 2000-06-20 Gerd Moellmann <gerd@gnu.org>
9244
9245 * keyboard.c (adjust_point_for_property): Check if display
9246 property should be treated as intangible by looking at its value.
9247
9248 * xdisp.c (single_display_prop_intangible_p)
9249 (display_prop_intangible_p): New functions.
9250
9251 * dispextern.h (display_prop_intangible_p): Add prototype.
9252
9253 * xdisp.c (dump_glyph_row): Show type of glyph->object.
9254
9255 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
9256 argument to sigprocmask.
9257
9258 * s/sco5.h (sigblock): Redefined to pass a pointer as second
9259 argument to sigprocmask.
9260
9261 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
9262 sigprocmask_set, and pass a pointer to it to sigprocmask.
9263
9264 * sysdep.c (sigprocmask_set): New variable.
9265
9266 * fileio.c (make_temp_name): Don't use `%s' in string passed to
9267 report_file_error.
9268
9269 2000-06-20 Sam Steingold <sds@gnu.org>
9270
9271 * xrdb.c: Don't declare xmalloc, xrealloc.
9272
9273 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9274
9275 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
9276 (re_comp): Cast gettext return value to avoid complaints when
9277 !HAVE_LIBINTL.
9278
9279 2000-06-20 Dave Love <fx@gnu.org>
9280
9281 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
9282
9283 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
9284
9285 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
9286
9287 * m/alpha.h: Don't declare xmalloc, xrealloc.
9288
9289 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
9290
9291 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
9292
9293 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
9294
9295 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
9296 HAVE_GETWD.
9297
9298 * keyboard.h (poll_for_input_1): Declare.
9299
9300 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
9301
9302 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
9303
9304 * doprnt.c: Don't declare xmalloc, xrealloc.
9305
9306 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
9307 (getenv, ctime, getwd): Removed.
9308 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
9309
9310 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
9311 x_set_tool_bar_lines.
9312
9313 * config.in: Add HAVE_GETWD. Move some definitions above
9314 machine/system includes.
9315
9316 2000-06-20 Kenichi Handa <handa@etl.go.jp>
9317
9318 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
9319
9320 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
9321 contain information about ENCODING.
9322
9323 * fontset.c (FONTSET_ASCII): Use the first element of char table
9324 for an ASCII font, not defalt slot.
9325 (fontset_ref_via_base): If FONTSET doesn't contain information for
9326 C, try the default fontset.
9327 (make_fontset): Don't copy the default fontset.
9328 (fontset_font_pattern): Likewise.
9329 (accumulate_font_info): If ELT is nil, use the corresponding
9330 element in the default fontset.
9331
9332 2000-06-19 Dave Love <fx@gnu.org>
9333
9334 * syntax.c (Fparse_partial_sexp): Doc fix.
9335
9336 * regex.h: Test PROTOTYPES as well as __STDC__.
9337
9338 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
9339 errno, strerror. Put text after #endif in comment.
9340
9341 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
9342
9343 * xterm.c (x_frame_of_widget): Likewise.
9344
9345 2000-06-19 Gerd Moellmann <gerd@gnu.org>
9346
9347 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
9348 to Vfundamental_mode_abbrev_table.
9349
9350 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
9351 bogus objects are marked. This slows down GC by ~80 percent, but
9352 it might be worth trying when debugging GC-related problems.
9353 This feature requires conservative stack marking to be enabled.
9354
9355 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
9356 returns XLookupChars, reset `modifiers' to zero.
9357
9358 2000-06-19 Dave Love <fx@gnu.org>
9359
9360 * mktime.c: Unprotoized.
9361
9362 2000-06-19 Richard Stallman <rms@gnu.org>
9363
9364 * data.c (set_internal): If variable is frame-local,
9365 store the new value immediately into the frame parameter alist.
9366
9367 2000-06-19 Ken Raeburn <raeburn@gnu.org>
9368
9369 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
9370 in the custom handler pointer.
9371
9372 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
9373 value, or checks for CHAR_META can fail when Lisp_Object is a
9374 union type.
9375 * keymap.c (get_keyelt): Likewise.
9376
9377 2000-06-19 Kenichi Handa <handa@etl.go.jp>
9378
9379 * ccl.h (struct ccl_program): New member eol_type.
9380 (struct ccl_spec): New member cr_carryover.
9381
9382 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
9383 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
9384
9385 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
9386 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
9387 (decode_eol_post_ccl): New function.
9388 (decode_coding): Don't detect EOL format here for CCL based coding
9389 systems.
9390 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
9391 decode_eol_post_ccl after running the CCL program.
9392 (code_convert_region): Don't detect EOL format here for CCL based
9393 coding systems.
9394 (decode_coding_string): Likewise.
9395
9396 2000-06-18 Ken Raeburn <raeburn@gnu.org>
9397
9398 * charset.c (update_charset_table): Use XINT on "iso_final_char"
9399 when treating it as an integer.
9400
9401 * coding.h (encode_coding_string): Declare.
9402
9403 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
9404 it as an integer.
9405
9406 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
9407 "xkeymap" to avoid shadowing the "enum map_type" value that needs
9408 to be passed to get_local_map.
9409
9410 * sound.c (Fplay_sound): Don't call make_number on
9411 Frun_hook_with_args count argument.
9412
9413 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
9414 for lisp objects in X event structure data field, when lisp
9415 objects are represented with unions.
9416 (x_scroll_bar_to_input_event): Ditto.
9417
9418 2000-06-16 Ken Raeburn <raeburn@gnu.org>
9419
9420 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
9421 termination of string. Fix sense of test whether
9422 Vline_number_display_limit is an integer.
9423
9424 2000-06-16 Gerd Moellmann <gerd@gnu.org>
9425
9426 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
9427 only if HAVE_X_WINDOWS.
9428
9429 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
9430 of titles.
9431
9432 * dispnew.c (update_frame_1): Handle case that cursor vpos is
9433 out of bounds.
9434
9435 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
9436
9437 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
9438 of its headers.
9439
9440 2000-06-15 Kenichi Handa <handa@etl.go.jp>
9441
9442 * coding.c (decode_coding_emacs_mule): Always set src_base at the
9443 start of the while loop.
9444
9445 2000-06-15 Gerd Moellmann <gerd@gnu.org>
9446
9447 * atimer.c (alarm_signal_handler): Add forward declaration.
9448
9449 * data.c (set_internal): Remove debug code.
9450
9451 2000-06-14 Gerd Moellmann <gerd@gnu.org>
9452
9453 * Makefile.in (bootstrap-temacs): Add `-I../src'.
9454
9455 * unexec.c (toplevel) [COFF]: Include coff.h.
9456
9457 * s/lynxos.h: New file.
9458
9459 * keymap.c (Fsingle_key_description): Enclose function key and
9460 event symbol names in angle brackets.
9461
9462 * xdisp.c (setup_echo_area_for_printing): Call
9463 message_log_maybe_newline if message_buf_print is not set.
9464
9465 * print.c (printchar, strout): Don't check message_buf_print
9466 before calling setup_echo_area_for_printing because that
9467 function does something useful even when message_buf_print is
9468 already set.
9469
9470 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
9471 New variables.
9472 (ensure_echo_area_buffers): Initialize echo buffer's
9473 truncate lines setting to nil.
9474 (with_echo_area_buffer): Don't set the echo buffer's truncate
9475 lines setting here.
9476 (set_message_1): Set it here instead, based on the value
9477 of message_truncate_lines.
9478 (resize_mini_window): Handle case that lines are truncated.
9479 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
9480 DEFVAR_BOOL message-truncate-lines.
9481
9482 * keyboard.c (read_char): Bind message-truncate-lines to t
9483 while displaying a help-echo.
9484
9485 * lisp.h (Qmessage_truncate_lines): External declaration.
9486
9487 2000-06-13 Gerd Moellmann <gerd@gnu.org>
9488
9489 * xdisp.c (Vline_number_display_limit): Renamed from
9490 line_number_display_limit.
9491 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
9492 Extend documentation string. Initialize
9493 Vline_number_display_limit to nil meaning no limit.
9494 (decode_mode_spec): Use Vline_number_display_limit with its new
9495 meaning.
9496
9497 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
9498
9499 2000-06-13 Richard Stallman <rms@gnu.org>
9500
9501 * frame.c (Fmodify_frame_parameters): Doc fix.
9502
9503 * xfns.c (x_set_frame_parameters): Comment fix.
9504
9505 * frame.c (store_frame_param): Call swap_in_global_binding if the
9506 variable's current binding was chosen based on this frame.
9507
9508 * data.c (swap_in_global_binding): New function.
9509
9510 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9511
9512 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
9513 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
9514
9515 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9516
9517 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
9518
9519 2000-06-12 Jason Rumney <jasonr@gnu.org>
9520
9521 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
9522
9523 * w32.h (EMACS_W32_H): Renamed from _NT_H_
9524
9525 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
9526
9527 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
9528
9529 2000-06-12 Gerd Moellmann <gerd@gnu.org>
9530
9531 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
9532 (syms_of_xfaces): Defsubr Sdump_colors.
9533 (x_free_colors): Don't treat b&w specially on default visual.
9534 (x_free_dpy_colors): New function.
9535 (free_face_colors): Don't check visual class; it's done
9536 in x_free_colors.
9537
9538 * xterm.c (x_frame_of_widget): New function.
9539 (x_alloc_nearest_color_for_widget): Use it.
9540 (x_copy_dpy_color): New function.
9541 (x_destroy_window): Free various colors.
9542
9543 2000-06-12 Kenichi Handa <handa@etl.go.jp>
9544
9545 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
9546
9547 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
9548
9549 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
9550
9551 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
9552
9553 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
9554
9555 2000-06-11 Dave Love <fx@gnu.org>
9556
9557 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
9558
9559 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
9560
9561 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
9562
9563 2000-06-11 Gerd Moellmann <gerd@gnu.org>
9564
9565 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
9566 to `XEvent *'.
9567
9568 2000-06-10 Kenichi Handa <handa@etl.go.jp>
9569
9570 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
9571 (regex_compile): Fix the code for handling the case of single byte
9572 char and multibyte char being mixed in a range within [...].
9573
9574 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
9575 and dst_multibyte members of coding.
9576
9577 * charset.c (update_charset_table): Update the table
9578 bytes_by_char_head.
9579 (init_charset_once): Initialize elements of bytes_by_char_head to
9580 1 except for leading codes for private charases.
9581
9582 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
9583 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
9584
9585 2000-06-09 Ken Raeburn <raeburn@gnu.org>
9586
9587 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
9588 access the data it doesn't point to.
9589
9590 2000-06-08 Gerd Moellmann <gerd@gnu.org>
9591
9592 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
9593 will be translated to a switch-frame event when reading the
9594 event queue. This is necessary because Emacs otherwise won't
9595 perform a switch-frame to a new frame until some other event, for
9596 example a keystroke event, forces it to do so. This has various
9597 effects, one visible being that the cursor of a frame created with
9598 C-x 5 2 or switched to with a window manager key binding like
9599 A-TAB stays hollow because selected_window isn't on the newly
9600 focused frame until the switch-frame is performed.
9601
9602 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
9603 generating a switch-frame event if necessary.
9604
9605 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
9606
9607 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
9608 it's an integer.
9609
9610 2000-06-08 Kenichi Handa <handa@etl.go.jp>
9611
9612 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
9613
9614 2000-06-07 Gerd Moellmann <gerd@gnu.org>
9615
9616 * window.c (displayed_window_lines): Take empty lines at
9617 the bottom of a window into account.
9618
9619 * window.c (displayed_window_lines): New function.
9620 (Fmove_to_window_line): Use displayed_window_lines to determine
9621 the number of lines to move, instead of using the window's height.
9622
9623 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
9624 to stop reading, even if the form read sets point to a different
9625 value when evaluated.
9626
9627 * xdisp.c (display_line): Fix code deciding in which line to
9628 put the cursor.
9629
9630 2000-06-07 Kenichi Handa <handa@etl.go.jp>
9631
9632 * fileio.c (e_write): Free composition data if stored in
9633 coding->cmp_data.
9634
9635 2000-06-06 Gerd Moellmann <gerd@gnu.org>
9636
9637 * xdisp.c (display_line): Set row's and iterator's
9638 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
9639 Set cursor even if row ends in the middle of a character.
9640 (dump_glyph_row): Print values of new flags.
9641 (redisplay_window) <cursor movement in unchanged window>: When
9642 point has been moved forward, and PT is at the end of the cursor
9643 row, don't place the cursor in the next row if the cursor row ends
9644 in the middle of a character or at ZV.
9645
9646 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
9647 (struct glyph_row): Add starts_in_middle_of_char_p and
9648 ends_in_middle_of_char_p.
9649 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
9650 ends_in_middle_of_char_p flag.
9651 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
9652
9653 * term.c (append_glyph): Revert change of 2000-06-06.
9654
9655 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
9656 padding glyph not fitting on line as whole character not
9657 fitting on line.
9658
9659 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
9660 this isn't true for images with `:ascent 100'.
9661
9662 2000-06-06 Kenichi Handa <handa@etl.go.jp>
9663
9664 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
9665 as modified if it is originally unmodified.
9666
9667 * term.c (encode_terminal_code): Change the way to check if
9668 terminal coding does any conversion.
9669 (append_glyph): Set glyph->pixel_width correctly.
9670
9671 * xdisp.c (display_line): While checking line continuation, pay
9672 attention to a padding glyph.
9673
9674 2000-06-05 Gerd Moellmann <gerd@gnu.org>
9675
9676 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
9677
9678 2000-06-05 Dave Love <fx@gnu.org>
9679
9680 * xdisp.c: Include fontset.h.
9681
9682 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
9683
9684 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9685
9686 * dispnew.c: Conditionally include term.h.
9687
9688 * coding.h: Declare code_convert_string_norecord.
9689
9690 * frame.h (struct frame): Use volatile unconditionally.
9691
9692 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
9693
9694 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
9695
9696 * systime.h: Protect against multiple inclusion.
9697 (timezone) [USG5_4]: Define as time_t.
9698
9699 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9700 (Foptimize_char_table, make_temp_name): Declare.
9701
9702 * Makefile.in (xdisp.o): Depend on fontset.h.
9703
9704 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9705
9706 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9707 (Foptimize_char_table, make_temp_name): Declare.
9708
9709 * s/irix4-0.h:
9710 * s/irix5-0.h:
9711 * s/netbsd.h: Don't define autoconfiscated MATHERR.
9712
9713 2000-06-02 Dave Love <fx@gnu.org>
9714
9715 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
9716
9717 2000-06-02 Gerd Moellmann <gerd@gnu.org>
9718
9719 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
9720 result face, set flags in that face indicating that colors may not
9721 be freed.
9722
9723 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
9724 glyph, use the ASCII NUL character to determine the face.
9725
9726 2000-06-02 Dave Love <fx@gnu.org>
9727
9728 * sysdep.c: Conditionally include stdlib.h, unistd.h.
9729 (VFORK_RETURN_TYPE): Remove.
9730
9731 * config.in: Add NO_MATHERR.
9732
9733 2000-06-01 Dave Love <fx@gnu.org>
9734
9735 * cmds.c (internal_self_insert): Don't check
9736 Vbefore_change_function, Vafter_change_function.
9737
9738 * insdel.c (signal_before_change, signal_after_change): Likewise.
9739
9740 * buffer.c (Vbefore_change_function, Vafter_change_function):
9741 Variables and their initializations deleted.
9742
9743 * callint.c (Fcall_interactively): Doc fix.
9744
9745 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
9746
9747 2000-05-31 Dave Love <fx@gnu.org>
9748
9749 * textprop.c: Revert last change -- duplicated.
9750
9751 2000-05-31 Gerd Moellmann <gerd@gnu.org>
9752
9753 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
9754 in #if 0.
9755
9756 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
9757
9758 2000-05-31 Jason Rumney <jasonr@gnu.org>
9759
9760 * search.c (Fre_search_forward, Fre_search_backward)
9761 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
9762
9763 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
9764
9765 2000-05-30 Jason Rumney <jasonr@gnu.org>
9766
9767 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
9768 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
9769
9770 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
9771
9772 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
9773 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
9774 expand a nil default_filename.
9775
9776 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
9777 pointer to glyph_to_pixel_coords, not a frame.
9778
9779 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
9780 coding.h to dependencies.
9781
9782 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
9783
9784 * w32console.c (glyph_to_pixel_coords): Change first parameter to
9785 window pointer to be consistent with w32term.c and xterm.c.
9786
9787 * w32fns.c: Format and doc changes to bring closer to xfns.c.
9788 (VIETNAMESE_CHARSET): Define if not defined in system headers.
9789 (Qline_spacing, Qcenter): New variables.
9790 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
9791 (x_set_line_spacing): New function.
9792 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
9793 (x_specified_cursor_type): New function.
9794 (x_set_cursor_type): Use it.
9795 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
9796 and icon strings.
9797 (validate_x_resource_name, x_get_resource_string): Measure lengths
9798 of external strings in bytes.
9799 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
9800 GetTextExtentPoint32 with NULL title.
9801 (Fx_create_frame): Initialize Qline_spacing.
9802 (w32_load_system_font): Initialize font->double_byte_p.
9803 (x_to_w32_charset): Use Vw32_charset_info_alist.
9804 (Image, busy cursor, tooltip functions): Merged changes from
9805 xfns.c. Not yet functional on Windows.
9806
9807 * w32gui.h (W32FontStruct): Add double_byte_p member.
9808
9809 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
9810 (emacs_button_translation): Use it.
9811 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
9812 in `mask' to be set.
9813
9814 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
9815 menu strings.
9816
9817 * w32term.c: Format and doc changes to bring closer to xterm.c.
9818 (w32_char_font_type): New enum.
9819 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
9820 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
9821 (w32_encode_char): New function.
9822 (x_encode_char): Removed.
9823 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
9824 x_encode_char and w32_font_is_double_byte.
9825 (x_produce_image_glyph): Use image_ascent.
9826 (x_produce_glyphs): Use new version of w32_per_char_metric and
9827 handle NULL return value. Allow extra line spacing.
9828 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
9829 (w32_get_glyph_overhangs): Remove unicode_p param. Use
9830 w32_font_type member of glyph instead.
9831 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
9832 (fast_find_position): Make sure not to consider rows not visible
9833 in the window.
9834 (w32_read_socket) [WM_MENUSELECT]: Cannot call
9835 w32_menu_display_help with input blocked, as it can abort.
9836 (x_display_and_set_cursor): Choose cursor depending
9837 on buffer-local value of cursor_type.
9838 (x_draw_bar_cursor): Add parameter WIDTH.
9839
9840 * w32term.h (CP_DEFAULT): Define.
9841 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
9842
9843 2000-05-30 Gerd Moellmann <gerd@gnu.org>
9844
9845 * search.c (Fre_search_forward, Fre_search_backward)
9846 (Fposix_search_backward, Fposix_search_forward): Doc fix.
9847
9848 2000-05-30 Kenichi Handa <handa@etl.go.jp>
9849
9850 * coding.c (detect_coding_iso2022): Fix code for checking
9851 CODING_CATEGORY_MASK_ISO_8_2.
9852
9853 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
9854
9855 * regex.c (PREFETCH_NOLIMIT): New function.
9856 (re_match_2_internal): Use it and adjust the end_match_2 logic.
9857
9858 2000-05-29 Gerd Moellmann <gerd@gnu.org>
9859
9860 * syntax.c (find_defun_start): Move test for
9861 open_paren_in_column_0_is_defun_start outside of the loop.
9862
9863 * xdisp.c (redisplay_window): Really switch buffers when
9864 displaying mode lines, and temporarily set selected_frame to the
9865 frame of the window that's redisplayed.
9866
9867 * xfaces.c (free_realized_faces): Block/unblock input.
9868 (free_realized_multibyte_face): Ditto.
9869
9870 2000-05-29 Dave Love <fx@gnu.org>
9871
9872 * textprop.c (Qkeymap): New variable.
9873 (syms_of_textprop): Intern it.
9874
9875 * keymap.c: Include intervals.h.
9876 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
9877
9878 * Makefile.in (keymap.o): Depend on intervals.h.
9879
9880 * keyboard.c (menu_bar_items, tool_bar_items)
9881 (Fexecute_extended_command): Deal with `keymap' property.
9882 (read_key_sequence): Track map from `keymap' property as well as
9883 `local_map'.
9884
9885 * intervals.c (get_local_map): Extra arg to allow looking for
9886 `keymap' too.
9887
9888 * intervals.h (map_property): New enum.
9889 (get_local_map): Extra arg using it.
9890 (Qkeymap): Declare.
9891
9892 * lisp.h (get_local_map): Don't declare here.
9893
9894 2000-05-29 Kenichi Handa <handa@etl.go.jp>
9895
9896 * Makefile.in (callproc.o): Depend on composite.h.
9897
9898 * callproc.c: Include composite.h.
9899 (Fcall_process): Handle composition correctly.
9900
9901 * coding.h (coding_allocate_composition_data): Extern it.
9902 (coding_restore_composition): Likewise.
9903
9904 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
9905 yet allocated, finish decoding with result
9906 CODING_FINISH_INSUFFICIENT_CMP.
9907 (coding_allocate_composition_data): Make it non-static.
9908 (coding_restore_composition): Likewise.
9909
9910 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
9911
9912 * charset.c (syms_of_charset): Revert last change.
9913
9914 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9915
9916 * term.c (produce_glyphs): Treat characters from the eight-bit-*
9917 charsets as unibyte, with 1-column screen width. Sent by Kenichi
9918 Handa.
9919
9920 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9921
9922 * charset.c (syms_of_charset): Set width of character sets
9923 eight-bit-control and eight-bit-graphic to 1 column.
9924
9925 2000-05-26 Gerd Moellmann <gerd@gnu.org>
9926
9927 * config.in (HAVE_SPEED_T): New define.
9928
9929 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
9930 `extern speed_t'.
9931
9932 2000-05-26 Dave Love <fx@gnu.org>
9933
9934 * coding.c (shrink_decoding_region): Initialize eol_conversion.
9935
9936 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
9937 (Fsubr_arity): New function.
9938 (syms_of_data): Install them.
9939
9940 2000-05-26 Kenichi Handa <handa@etl.go.jp>
9941
9942 * charset.c (init_charset_once): Set the table bytes_by_char_head
9943 correctly.
9944
9945 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
9946 the default fontset to what Emacs uses by default.
9947 (check_registry_encoding): This function deleted.
9948 (Fset_fontset_font): Remove the adhoc condition for the default
9949 fontset. Allow cons in FONTNAME.
9950
9951 * fns.c (map_char_table): Ignore char-table entries for
9952 charsets eight-bit-control and eight-bit-graphic.
9953
9954 2000-05-25 Ken Raeburn <raeburn@gnu.org>
9955
9956 * emacs.c (main): Initialize keyboard syms before initializing
9957 window code, so face names are available.
9958
9959 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
9960
9961 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
9962 of an anchor at the beginning of a shy-group.
9963
9964 2000-05-25 Gerd Moellmann <gerd@gnu.org>
9965
9966 * xdisp.c (handle_invisible_prop): Don't try to skip over
9967 invisible text if end of text is already reached.
9968
9969 2000-05-25 Dave Love <fx@gnu.org>
9970
9971 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
9972
9973 * coding.c (encode_eol): Add null statement after label.
9974
9975 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
9976
9977 * w16select.c (Fw16_set_clipboard_data): Fix the change from
9978 2000-05-20.
9979
9980 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9981
9982 * ccl.c (ccl_driver): Fix previous change.
9983
9984 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9985
9986 * coding.c (run_pre_post_conversion_on_str): Set point to the
9987 beginning of buffer before calling coding->post_read_conversion.
9988 (decode_coding_string): Give correct args to
9989 run_pre_post_conversion_on_str.
9990 (encode_coding_string): Likewise.
9991
9992 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
9993 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
9994 eight-bit-graphic correctly.
9995
9996 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
9997
9998 * fileio.c (Finsert_file_contents): Even if a file is not found,
9999 execute codes for setting up coding system. Call
10000 after-insert-file-functions unconditionally.
10001
10002 2000-05-24 Gerd Moellmann <gerd@gnu.org>
10003
10004 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
10005 BSD_PGRPS are not defined.
10006
10007 2000-05-24 Kenichi Handa <handa@etl.go.jp>
10008
10009 * charset.c (update_charset_table): Accept nil in LONG_NAME and
10010 DESCRIPTION.
10011 (syms_of_charset): Avoid building same strings.
10012
10013 2000-05-23 Gerd Moellmann <gerd@gnu.org>
10014
10015 * lread.c (Fload): Add a comment about the meaning of
10016 Vuser_init_file being t.
10017
10018 * puresize.h (BASE_PURESIZE): Increase to 675000.
10019
10020 * s/gnu-linux.h (setpgrp): Don't define it here because this
10021 prevents compilation on GNU/Linux systems with glib 2.2.
10022
10023 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
10024 as setpgid.
10025
10026 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
10027
10028 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
10029 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
10030 version.
10031 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
10032
10033 2000-05-23 Kenichi Handa <handa@etl.go.jp>
10034
10035 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10036
10037 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
10038
10039 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
10040
10041 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
10042
10043 2000-05-22 Kenichi Handa <handa@etl.go.jp>
10044
10045 * keyboard.c (read_char): Allow character codes 128..255 to be
10046 handled by input-method-function.
10047
10048 * insdel.c (adjust_markers_for_replace): Fix previous change.
10049 (adjust_after_replace): If PREV_TEXT is nil, call
10050 adjust_markers_for_insert, not adjust_markers_for_replace.
10051
10052 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
10053
10054 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
10055 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
10056 [HAVE_GRANDPT]: Define.
10057 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
10058
10059 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
10060 like SYSV_PTYS.
10061
10062 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
10063
10064 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
10065
10066 2000-05-20 Kenichi Handa <handa@etl.go.jp>
10067
10068 The following changes are to handle 8-bit characters in a
10069 multibyte buffer/string without facing with byte combining
10070 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
10071 eight-bit-graphic (for 0xA0..0xFF) are introduced.
10072
10073 * Makefile.in (fns.o): Depend on charset.h.
10074
10075 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
10076 convert it to unibyte.
10077 (make_string): Use parse_str_as_multibyte, not chars_in_text.
10078
10079 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
10080 apparent char boundary.
10081 (Fset_buffer_multibyte): Convert 8-bit characters in the range
10082 0x80..0x9F to/from multibyte form.
10083
10084 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
10085 to unibyte.
10086
10087 * callproc.c (Fcall_process): Always encode an argument string if
10088 it is multibyte. Setup src_multibyte and dst_multibyte members of
10089 process_coding properly.
10090
10091 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
10092 SPLIT_NON_ASCII_CHAR.
10093
10094 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
10095 as is.
10096 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
10097
10098 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
10099 (SPLIT_CHARACTER_SEQ): This macro deleted.
10100 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
10101 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
10102 and eight-bit-graphic.
10103 (char_to_string): Likewise. Signal an error for too large
10104 character code.
10105 (char_printable_p): Return 0 for 8-bit characters.
10106 (update_charset_table): Update iso_charset_table only when a final
10107 character is non-negative.
10108 (find_charset_in_text): Renamed from find_charset_in_str.
10109 Arguments and return value changed. Callers changed.
10110 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
10111 be -1 if CHARSET is used only internally.
10112 (Fmake_char_internal): Handle new charsets; eight-bit-control and
10113 eight-bit-graphic.
10114 (Fcharset_after): Simplified.
10115 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
10116 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
10117 (multibyte_chars_in_text): Simplified by assuming there's no
10118 invalid multibyte sequence.
10119 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10120 (str_as_unibyte): New functions.
10121 (Fstring): Simpified by assuming that byte combining never happens.
10122 (init_charset_once): Initialization for
10123 LEADING_CODE_8_BIT_CONTROL.
10124 (syms_of_charset): Intern and staticpro Qeight_bit_control and
10125 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
10126 eight-bit-control and eight-bit-graphic.
10127
10128 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
10129 (CHARSET_8_BIT_GRAPHIC): New macros.
10130 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
10131 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
10132 (CHARSET_REVERSE_CHARSET): Likewise.
10133 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
10134 eight-bit-graphic.
10135 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
10136 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
10137 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
10138 encounter an invalid multibyte sequence.
10139 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
10140 sequence is always valid.
10141 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
10142 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
10143 (CHAR_STRING): For 8-bit characters, call char_to_string.
10144 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
10145 multibyte sequence is always valid.
10146 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
10147 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10148 (str_as_unibyte): Extern them.
10149 (BCOPY_SHORT): Fix a bug.
10150 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
10151 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
10152 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
10153 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
10154
10155 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
10156 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
10157 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
10158 (EMIT_BYTES): New macros.
10159 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
10160 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
10161 macros deleted.
10162 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
10163 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
10164 check the validity of multibyte sequence.
10165 (decode_coding_emacs_mule): New function.
10166 (encode_coding_emacs_mule): New macro.
10167 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
10168 the source.
10169 (DECODE_ISO_CHARACTER): Just return a character code.
10170 (DECODE_COMPOSITION_START): Set coding->result instead of result.
10171 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
10172 EMIT_CHAR to produced decoded characters. Exit the loop only by
10173 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
10174 block here.
10175 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
10176 only position codes for an invalid character.
10177 (encode_designation_at_bol): Return new destination pointer. 5th
10178 arg DSTP is changed to DST.
10179 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
10180 from the source by ONE_MORE_CHAR. Don't handle the case of last
10181 block here.
10182 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
10183 macros deleted.
10184 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
10185 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
10186 TWO_MORE_BYTES to fetch a byte from the source.
10187 (encode_eol): Pay attention to coding->src_multibyte.
10188 (detect_coding, detect_eol): Preserve members src_multibyte and
10189 dst_multibyte.
10190 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
10191 (encoding_buffer_size): Set magnification to 3 for all coding
10192 systems that require encoding.
10193 (ccl_coding_driver): For decoding, be sure that the result is
10194 valid multibyte sequence.
10195 (decode_coding): Initialize coding->errors and coding->result.
10196 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
10197 and raw-text, always call decode_eol. Handle the case of last
10198 block here. If not coding->dst_multibyte, convert the resulting
10199 sequence to unibyte.
10200 (encode_coding): Initialize coding->errors and coding->result.
10201 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
10202 and raw-text, always call encode_eol. Handle the case of last
10203 block here.
10204 (shrink_decoding_region, shrink_encoding_region): Detect cases
10205 that we can't skip data more rigidly.
10206 (code_convert_region): Setup src_multibyte and dst_multibyte
10207 members of coding. For decoding, if the buffer is multibyte,
10208 convert the source sequence to unibyte in advance. For encoding,
10209 if the buffer is multibyte, convert the resulting sequence to
10210 multibyte afterward.
10211 (run_pre_post_conversion_on_str): New function.
10212 (code_convert_string): Deleted and divided into the following two.
10213 (decode_coding_string, encode_coding_string): New functions.
10214 (code_convert_string1, code_convert_string_norecord): Call one of
10215 above.
10216 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
10217 MAKE_NON_ASCII_CHAR.
10218 (Fset_terminal_coding_system_internal)
10219 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
10220 and dst_multibyte members.
10221 (init_coding_once): Initialize iso_code_class with new enum
10222 ISO_control_0 and ISO_control_1.
10223
10224 * coding.h (enum iso_code_class_type): Member ISO_control_code is
10225 devided into ISO_control_0 and ISO_control_1.
10226 (struct coding_system): New members src_multibyte, dst_multibyte,
10227 errors, and result. Delete member fake_multibyte.
10228 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
10229 nonzero.
10230 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
10231 nonzero.
10232
10233 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10234 (Faset): Likewise.
10235
10236 * editfns.c (Fformat): Be sure to convert 8-bit characters to
10237 multibyte form.
10238 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
10239 combining occurs.
10240 (Ftranspose_region): Delete codes for handling byte combining.
10241
10242 * fileio.c (Finsert_file_contents): Setup src_multibyte and
10243 dst_multibyte members of coding. On handling REPLACE on unibyte
10244 buffer, convert the result of decode_coding to unibyte. On
10245 inserting into a mutibyte buffer, always call code_convert_region.
10246 (e_write): Setup coding->src_multibyte according to the
10247 multibyteness of the source (buffer or string).
10248
10249 * fns.c (concat): Handle 8-bit characters correctly.
10250 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
10251 unibyte in the result.
10252 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
10253 valid multibyte form in the result.
10254 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10255 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
10256 return -1, signal an error.
10257 (base64_encode_1): New arg MULTIBYTE. Get each character by
10258 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
10259 character is found, return -1.
10260 (Fbase64_decode_region): Delete codes for handling byte-combining.
10261 Treat each decoded byte as a unibyte character.
10262 (Fbase64_decode_string): Return unibyte string.
10263 (Fcompare_strings, concat, string_byte_to_char): Use
10264 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
10265 FETCH_STRING_CHAR_ADVANCE.
10266 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10267 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
10268
10269 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
10270 SPLIT_NON_ASCII_CHAR.
10271 (fontset_ref_via_base, fontset_set): Likewise
10272
10273 * insdel.c (adjust_markers_for_record_delete): Deleted.
10274 (adjust_markers_for_insert): Argument changed. Caller changed.
10275 (adjust_markers_for_replace): Likewise.
10276 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
10277 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
10278 (copy_text): Delete unused local varialbe c_save. For converting
10279 to multibyte, be sure to make all 8-bit characters in valid
10280 multibyte form.
10281 (count_size_as_multibyte): Handle 8-bit characters correctly.
10282 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10283 (adjust_after_replace, replace_range, del_range_2)
10284 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
10285 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10286 (adjust_after_replace, replace_range, del_range_2) Delete codes for
10287 handling byte combining.
10288 (adjust_before_replace): Deleted.
10289
10290 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
10291 SPLIT_NON_ASCII_CHAR.
10292 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10293 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10294 (Fkey_description): Likewise.
10295
10296 * lread.c (read1): On reading multibyte string, be sure to make
10297 all 8-bit chararacters in valid multibyte form.
10298 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10299
10300 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
10301 unconditionally.
10302
10303 * process.c (Fstart_process): GCPRO current_dir before calling
10304 Ffind_operation_coding_system. Encode arguments here.
10305 (create_process): Don't encode arguments here. Setup
10306 src_multibyte and dst_multibyte members of struct coding.
10307 (read_process_output): Setup src_multibyte and dst_multibyte
10308 members of struct coding. If the output is to multibyte buffer,
10309 always decode the output of the process. Adjust the
10310 representation of 8-bit characters to the multibyteness of the output.
10311 (send_process): Setup coding->src_multibyte according to the
10312 multibyteness of the source.
10313
10314 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10315 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
10316 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
10317
10318 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
10319
10320 * w16select.c (Fw16_set_clipboard_data): Setup members
10321 src_multibyte and dst_multibyte of coding. Adjusted for the
10322 change for find_charset_in_str.
10323 (Fw16_get_clipboard_data): Likewise.
10324
10325 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
10326 dst_multibyte of coding.
10327 (x_to_w32_font): Likewise.
10328
10329 * w32select.c (Fw32_set_clipboard_data): Setup members
10330 src_multibyte and dst_multibyte of coding. Adjusted for the
10331 change for find_charset_in_str.
10332 (Fw32_get_clipboard_data): Likewise.
10333
10334 * xdisp.c (get_next_display_element): Handle 8-bit characters
10335 correctly.
10336 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
10337 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10338
10339 * xselect.c (selection_data_to_lisp_data): Setup members
10340 src_multibyte and dst_multibyte of coding. Adjusted for the
10341 change for find_charset_in_str.
10342 (lisp_data_to_selection_data): Likewise.
10343
10344 2000-05-19 Gerd Moellmann <gerd@gnu.org>
10345
10346 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
10347
10348 * dispextern.h (Vimage_types): Add extern declaration.
10349
10350 * xdisp.c (Vimage_types): Moved here from xfns.c.
10351 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
10352
10353 * xfns.c (Vimages_types): Moved to xdisp.c.
10354 (syms_of_xfns): Move `image-types' to xdisp.c.
10355
10356 * w32fns.c (Vimage_types): Removed.
10357 (syms_of_w32fns): Remove `image-types'.
10358
10359 2000-05-18 Kenichi Handa <handa@etl.go.jp>
10360
10361 * fns.c (map_char_table): Pay attention to character number of
10362 charset. Check the validity of charset at the first level. For
10363 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
10364 the default value.
10365
10366 * fontset.c: Include "buffer.h".
10367 (fs_load_font): If the face has fontset, record the face ID in
10368 that fontset.
10369 (Finternal_char_font): New function.
10370 (accumulate_font_info): New function.
10371 (Ffontset_info): Rewritten for the new fontset implementation.
10372 (syms_of_fontset): Register Vdefault_fontset in the first element
10373 of Vfontset_table. Include Vdefault_fontset in
10374 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
10375 function.
10376
10377 2000-05-16 Dave Love <fx@gnu.org>
10378
10379 * m/iris5d.h: Deleted -- unused.
10380
10381 2000-05-16 Gerd Moellmann <gerd@gnu.org>
10382
10383 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
10384 `invalid' instead of `illegal'.
10385
10386 * indent.c (Fmove_to_column): When ending within a tab, insert
10387 spaces first so that markers at the end of the tab get adjusted.
10388
10389 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
10390 buffer list that wasn't selected in that frame.
10391
10392 * filelock.c (get_boot_time): To obtain an 8 char file name, which
10393 is needed on mescaline, use a 2 char prefix, and call
10394 make_temp_name with second arg non-zero.
10395
10396 * fileio.c (make_temp_name): New function, extracted from
10397 Fmake_temp_name.
10398 (Fmake_temp_name): Use it.
10399
10400 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
10401
10402 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
10403
10404 2000-05-15 Gerd Moellmann <gerd@gnu.org>
10405
10406 * Makefile.in (lisp): Add env.elc.
10407
10408 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
10409
10410 2000-05-12 Gerd Moellmann <gerd@gnu.org>
10411
10412 * search.c (Freplace_match): Handle case of `\N' in the
10413 replacement when there's no group N.
10414
10415 2000-05-11 Gerd Moellmann <gerd@gnu.org>
10416
10417 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
10418 of the message to message_dolog.
10419
10420 * keyboard.c (read_char): Don't clear current message for help
10421 events; let the code handling help events handle this. Change
10422 code detecting help events that should be ignored.
10423
10424 * xdisp.c (handle_single_display_prop): Don't try to set PT if
10425 we're interating over a string.
10426
10427 2000-05-09 Dave Love <fx@gnu.org>
10428
10429 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
10430 that offset before writing. Move gcpro region past call of
10431 Ffile_regular_p.
10432
10433 2000-05-04 Dave Love <fx@gnu.org>
10434
10435 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
10436
10437 2000-05-04 Gerd Moellmann <gerd@gnu.org>
10438
10439 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
10440 of inserted characters when BUF equals the current buffer, and PT
10441 is in front of or equal to FROM.
10442
10443 2000-05-03 Gerd Moellmann <gerd@gnu.org>
10444
10445 * xdisp.c (handle_single_display_prop): If display property value
10446 is invalid, or something not supported on the frame, restore
10447 iterator's position to what it was initially. Make sure to return
10448 0 for invalid and unsupported property values.
10449
10450 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
10451 that x_per_char_metric returns null.
10452
10453 2000-05-02 Gerd Moellmann <gerd@gnu.org>
10454
10455 * xterm.h (struct face): Add forward declaration.
10456 (struct image): Ditto.
10457 (image_ascent): Add prototype.
10458
10459 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
10460 (x_draw_image_relief, x_draw_image_foreground_1): Call function
10461 image_ascent instead of using IMAGE_ASCENT.
10462
10463 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
10464 (IMAGE_ASCENT): Removed.
10465
10466 * xfns.c (Qcenter): New variable.
10467 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
10468 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
10469 (image_ascent): New function.
10470 (lookup_image): Recognize `:ascent center'.
10471 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
10472 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
10473 (xbm_load): Don't set image's ascent here.
10474 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
10475 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
10476 check ascent values here.
10477 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
10478 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
10479 (syms_of_xfns): Initialize Qcenter.
10480
10481 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
10482 to the limits, increase the limits.
10483
10484 2000-05-01 Kenichi Handa <handa@etl.go.jp>
10485
10486 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
10487 Check Vfont_encoding_alist against the full name of the opened font.
10488
10489 2000-04-28 Gerd Moellmann <gerd@gnu.org>
10490
10491 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
10492 taller than the window.
10493
10494 2000-04-28 Kenichi Handa <handa@etl.go.jp>
10495
10496 * xfaces.c (realize_x_face): Fix the argument of the second
10497 xassert. BASE_FACE may not be a face for ASCII.
10498
10499 2000-04-27 Gerd Moellmann <gerd@gnu.org>
10500
10501 * print.c (print_object): Treat print-length < 0 as nil.
10502
10503 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
10504
10505 * s/freebsd.h (TERMCAP_OBJ): Removed.
10506 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
10507
10508 * lread.c (read1): Don't treat period followed by certain
10509 characters as symbol start.
10510
10511 * xfns.c (slurp_file): New function.
10512 (xbm_image_p): Handle case of in-memory XBM files.
10513 (xbm_scan): Rewritten to work on memory buffers instead of files.
10514 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
10515 Work on memory buffers instead of files. If DATA is null test
10516 if buffer looks like an in-memory XBM file.
10517 (xbm_load_image): Renamed from xbm_load_image_file. Work on
10518 memory buffers instead of files.
10519 (xbm_file_p): New function.
10520 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
10521
10522 * lread.c (end_of_file_error): New function.
10523 (read1): Call it instead of signaling `end-of-file' directly.
10524
10525 * print.c (print_error_message): Print data of `end-of-file'
10526 with Fprinc instead of Fprin1.
10527
10528 2000-04-26 Ken Raeburn <raeburn@gnu.org>
10529
10530 * window.c (freeze_window_start): Check that minibuffer scroll
10531 window isn't nil before extracting the window structure pointer
10532 from it.
10533
10534 * undo.c (record_delete): If we hit the end of the undo list, stop
10535 picking elements apart.
10536
10537 2000-04-26 Gerd Moellmann <gerd@gnu.org>
10538
10539 * xdisp.c (display_line): If lines are continued, restore
10540 iterator's ascent/descent information to the values before the
10541 first glyph not fitting on the line.
10542
10543 2000-04-25 Gerd Moellmann <gerd@gnu.org>
10544
10545 * xdisp.c (try_window_id) <all changes above window start>: Adjust
10546 positions in glyph matrix. Don't compute new window end positions.
10547
10548 * dispnew.c (increment_matrix_positions): Renamed from
10549 increment_glyph_matrix_buffer_positions.
10550 (increment_row_positions): Renamed from
10551 increment_glyph_row_buffer_positions.
10552
10553 * dispextern.h: Change names of renamed functions from dispnew.c
10554 in prototypes.
10555
10556 2000-04-24 Gerd Moellmann <gerd@gnu.org>
10557
10558 * fileio.c (Fdo_auto_save): Create directories for auto-save
10559 list file if necessary.
10560
10561 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
10562 from buffer or frame.
10563 (automatic_hscrolling_p): New variable.
10564 (hscroll_windows): Scroll windows horizontally only if automatic
10565 hscrolling is allowed.
10566 (syms_of_xdisp): New variable `automatic-hscrolling'.
10567
10568 * frame.h (struct frame): Add member extra_line_spacing.
10569
10570 * xfns.c (x_set_line_spacing): New function.
10571 (Fx_create_frame): Set line spacing from resources.
10572 (Qline_spacing): New variable.
10573 (syms_of_xfns): Initialize Qline_spacing.
10574
10575 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
10576
10577 * buffer.c (init_buffer_once): Handle extra_line_spacing.
10578 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
10579 (reset_buffer): Don't initialize extra2 and extra3. Initialize
10580 extra_line_spacing from default value.
10581 (init_buffer_once): Initialize default value of extra_line_spacing.
10582
10583 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
10584 and extra3.
10585
10586 * xterm.c (x_produce_glyphs): Remove reference to struct it's
10587 prompt_width. Add extra line spacing.
10588
10589 * term.c (produce_glyphs): Remove reference to struct it's
10590 prompt_width.
10591
10592 * dispextern.h (struct it): Remove member prompt_width, add
10593 extra_line_spacing.
10594
10595 2000-04-22 Gerd Moellmann <gerd@gnu.org>
10596
10597 * dispnew.c (update_frame_line): When writing a whole line, make
10598 sure cursor is in the right row afterwards, otherwise a use of
10599 capability `ch' in cmgoto might leave the cursor in the row below.
10600
10601 2000-04-21 Gerd Moellmann <gerd@gnu.org>
10602
10603 * lisp.h (struct Lisp_Buffer_Cons): Remove.
10604
10605 * keyboard.c (timer_check): Fix typo in comment.
10606
10607 2000-04-21 Kenichi Handa <handa@etl.go.jp>
10608
10609 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
10610 name change: ch -> character.
10611
10612 2000-04-20 Gerd Moellmann <gerd@gnu.org>
10613
10614 * keyboard.c (echo_message_buffer): New variable.
10615 (echo_now): Set echo_message_buffer to the echo area buffer used
10616 to display the echo.
10617 (cancel_echoing): Reset echo_message_buffer to nil.
10618 (read_char): Code rewritten that handles canceling an echo or
10619 echoing a dash, respectively.
10620
10621 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
10622 directory doesn't exist.
10623
10624 2000-04-19 Dave Love <fx@gnu.org>
10625
10626 * fns.c (syms_of_fns): Defsubr mapc.
10627 (concat): Don't allow numeric args.
10628 (Fconcat): Doc change.
10629
10630 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
10631
10632 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
10633 instead define end_match(1|2) more carefully.
10634 Use GET_CHAR_BEFORE_2 for `begline'.
10635
10636 2000-04-19 Gerd Moellmann <gerd@gnu.org>
10637
10638 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
10639 on 64-bit systems where NULL is defined as `0'.
10640
10641 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
10642 the `variable argument list' to make it work on Alpha.
10643
10644 * m/alpha.h (_LP64) [!_LP64]: Define.
10645 (ORDINARY_LINK): Define for NetBSD.
10646
10647 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
10648
10649 2000-04-19 Dave Love <fx@gnu.org>
10650
10651 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
10652 change.
10653
10654 * Makefile.in (LIBS): Don't use.
10655 (GETLOADAVG_OBJ): Define again.
10656 (otherobj): Add GETLOADAVG_OBJ.
10657
10658 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
10659
10660 2000-04-18 Gerd Moellmann <gerd@gnu.org>
10661
10662 * lread.c (read_filtered_event): Cancel and start busy cursor.
10663
10664 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
10665 that the per-character metrics may be null.
10666
10667 2000-04-17 Gerd Moellmann <gerd@gnu.org>
10668
10669 * buffer.c (clone_per_buffer_values): New function.
10670 (Fmake_indirect_buffer): Add optional argument CLONE. Call
10671 clone_per_buffer_values if CLONE is not nil.
10672
10673 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
10674
10675 2000-04-16 Dave Love <fx@gnu.org>
10676
10677 * Makefile.in: Remove obsolete localcpp stuff.
10678 (GETLOADAVG_OBJ): Don't define.
10679 (obj): Move LIBOBJS...
10680 (otherobj): ... to here.
10681 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
10682 whitespace-only lines after the continuation (Irix).
10683
10684 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10685
10686 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
10687
10688 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
10689
10690 2000-04-14 Dave Love <fx@gnu.org>
10691
10692 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
10693 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
10694 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
10695 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
10696 NLIST_STRUCT.
10697
10698 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
10699 autoconfiscated HAVE_GETLOADAVG.
10700
10701 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
10702 BROKEN_MKTIME.
10703
10704 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10705
10706 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
10707 (fill_in_lock_file_name): Avoid existing files that aren't links.
10708
10709 2000-04-14 Dave Love <fx@gnu.org>
10710
10711 * Makefile.in (LIBS, LIBOBJS): New variable.
10712 (INTERVAL_SRC): Convert to make variable.
10713 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
10714 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
10715 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
10716 add LIBOBJS.
10717 (SOME_MACHINE_OBJECTS): Remove interval stuff.
10718 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
10719 (shortlisp): Add facemenu, float-sup, frame.
10720 (SOME_MACHINE_LISP): Remove them from here.
10721 (LIBES): Change unused LDLIBS to autoconf LIBS.
10722
10723 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
10724
10725 2000-04-14 Kenichi Handa <handa@etl.go.jp>
10726
10727 * composite.c (update_compositions): If FROM and TO are not in a
10728 valid range, do nothing.
10729
10730 2000-04-13 Gerd Moellmann <gerd@gnu.org>
10731
10732 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
10733
10734 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
10735
10736 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
10737 as TERMCAP_OBJ.
10738
10739 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
10740
10741 * fileio.c (a_write): Remove redundant semi-colons.
10742 (e_write): Return -1 if failed to write all the data.
10743 This fixes the changes made at 1999-12-15.
10744
10745 2000-04-12 Dave Love <fx@gnu.org>
10746
10747 * fns.c (mapcar1): Test for null vals to support mapc.
10748 (Fmapc): New function.
10749
10750 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
10751
10752 * msdos.c (NUM_MOUSE_BUTTONS): Define.
10753 (IT_frame_up_to_date): Support the buffer local value of
10754 cursor-type, if defined.
10755
10756 2000-04-10 Dave Love <fx@gnu.org>
10757
10758 * editfns.c (preceding-char, following-char): Doc fix.
10759
10760 2000-04-10 Ken Raeburn <raeburn@gnu.org>
10761
10762 * Makefile.in (temacs): Revert 2000-03-12 change.
10763
10764 2000-04-10 Jason Rumney <jasonr@gnu.org>
10765
10766 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
10767
10768 2000-04-10 Gerd Moellmann <gerd@gnu.org>
10769
10770 * xdisp.c (setup_echo_area_for_printing): Choose an echo
10771 area buffer, if it's not set up yet.
10772
10773 * indent.c (compute_motion): Set immediate_quit.
10774
10775 2000-04-09 Gerd Moellmann <gerd@gnu.org>
10776
10777 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
10778 (realize_tty_face): Suppress boldness if colors are the inverse of
10779 the default colors, and tty_suppress_bold_inverse_default_colors_p
10780 is set.
10781 (Ftty_suppress_bold_inverse_default_colors): New function.
10782 (syms_of_xfaces): Defsubr it.
10783
10784 * buffer.c (Frestore_buffer_modified_p): New function.
10785 (syms_of_buffer): Defsubr it.
10786
10787 2000-04-08 Ken Raeburn <raeburn@gnu.org>
10788
10789 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
10790 charset id (int) argument, not a charset (Lisp_Object).
10791
10792 * coding.h (code_convert_string): Declare.
10793 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
10794 object, as the fourth argument to code_convert_string.
10795
10796 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
10797 (Fset_fontset_font): Use EQ to compare lisp objects.
10798
10799 2000-04-05 Ken Raeburn <raeburn@gnu.org>
10800
10801 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
10802 a pointer that looks like a lisp object.
10803 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
10804 zero, instead see whether it's an integer object, since they can't
10805 have intervals.
10806 (GET_INTERVAL_OBJECT): Simply assign to the destination.
10807
10808 * dispnew.c (allocate_matrices_for_frame_redisplay)
10809 (direct_output_forward_char): Use X(U)INT and make_number as needed
10810 to convert between (unsigned) int values and lisp integers.
10811 * keyboard.c (read_key_sequence): Likewise.
10812 * lread.c (substitute_object_recurse): Likewise.
10813 * fns.c (concat, hash_lookup, hash_remove): Likewise.
10814 * minibuf.c (do_completion, Fminibuffer_complete_word)
10815 (Fminibuffer_completion_help): Likewise.
10816 * term.c (produce_special_glyphs): Likewise.
10817
10818 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
10819 * print.c (print_preprocess, print_object): Likewise.
10820
10821 * search.c (compile_pattern): Use NILP when checking for nil.
10822
10823 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
10824 __OPTIMIZE__]: Provide a GNU C macro version that handles
10825 lisp-object unions.
10826 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
10827 field, to better cope with ENABLE_CHECKING and calls that modify a
10828 Lisp_Object using its old value.
10829
10830 2000-04-04 Gerd Moellmann <gerd@gnu.org>
10831
10832 * window.c (compare_window_configurations): Signal an error
10833 if parameters C1 or C2 aren't window configurations.
10834
10835 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
10836 AFTER_POTENTIAL_GC calls around calls to functions that can
10837 signal an error and thus invoke the debugger.
10838
10839 2000-04-03 Gerd Moellmann <gerd@gnu.org>
10840
10841 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
10842 an error if decoding fails.
10843
10844 * keyboard.c (lispy_mouse_names): Variable removed.
10845 (Vlispy_mouse_stem): New variable.
10846 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
10847 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
10848 for any mouse button number. Increase size of mouse_syms and
10849 button_down_location as needed. Call modify_event_symbol with
10850 different arguments.
10851 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
10852 Call modify_event_symbol with different arguments.
10853 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
10854 for any button number. Call modify_event_symbol with different
10855 arguments.
10856 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
10857 Accept a string for NAME_ALIST_OR_STEM.
10858
10859 * lisp.h (larger_vector): Add prototype.
10860
10861 * fns.c (larger_vector): Make externally visible.
10862
10863 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
10864
10865 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
10866
10867 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
10868 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
10869 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
10870 we are between str1 and str2.
10871 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
10872 (PATFETCH): Use `TRANSLATE'.
10873 (PATFETCH_RAW): Fetch multibyte char if applicable.
10874 (PATUNFETCH): Remove.
10875 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
10876 When writing a char, write it directly into the pattern buffer rather
10877 than going needlessly through a temp char-array.
10878 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
10879 multibyte magic and remove the useless `#ifdef emacs'.
10880 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
10881 buffer.
10882
10883 * regex.h (struct re_pattern_buffer): Make field `multibyte'
10884 conditional on `emacs'.
10885
10886 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
10887
10888 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10889
10890 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
10891 non-union-type versions of XMARK and friends here, because XMARK
10892 and friends won't work on an integer field if NO_UNION_TYPE is not
10893 defined.
10894 (make_number): Define as a function if it's not defined as a macro.
10895
10896 * composite.c (run_composite_function): Use NILP when checking for nil.
10897 (syms_of_composite): Delete local var NARGS, pass an int as first
10898 argument to Fmake_hash_table.
10899
10900 * editfns.c (text_property_stickiness): Use NILP to test
10901 Lisp_Object boolean value.
10902 (Fmessage_or_box): Don't use NILP to test int variable.
10903 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
10904 problems reading from and changing the same lisp value in an
10905 XSETSTRING call.
10906
10907 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10908
10909 * term.c (TN_no_color_video): New variable.
10910 (term_init): Intitialize TN_no_color_video.
10911 (enum no_color_bit): New enumeration.
10912 (MAY_USE_WITH_COLORS_P): New macro.
10913 (turn_on_face): Use it to determine if attributes may be used
10914 combined with colors.
10915
10916 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10917
10918 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
10919 with int lvalues via casts; instead, just yield lisp object lvalues.
10920 (enlarge_window): Variable sizep now points to Lisp_Object. Use
10921 proper accessor macros.
10922 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
10923 (grow_mini_window): Fix typo getting int value of root->height.
10924
10925 * xdisp.c (compute_string_pos): Fix order of arguments to
10926 string_pos_nchars_ahead.
10927 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
10928 count arg to variable-arg routines like Frun_hook_with_args and
10929 Fformat.
10930 (back_to_previous_visible_line_start)
10931 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
10932 fixed-arg routines like Fget_char_property and Fmake_string.
10933 (reconsider_clip_changes): Use XINT when comparing integer lisp
10934 objects, or passing them as int arguments.
10935 (mark_window_display_accurate, insert_left_trunc_glyphs)
10936 (append_space, extend_face_to_end_of_line): Use make_number when
10937 storing or passing integer values as lisp objects.
10938 (set_cursor_from_row, highlight_trailing_whitespace): Use
10939 INTEGERP, not implicit test against zero, for glyph object.
10940 (try_window_id): Don't use make_number when we want an int value.
10941
10942 * xfaces.c (xlfd_symbolic_value): Make last argument a
10943 Lisp_Object, to be consistent with callers.
10944 (Fbitmap_spec_p): Use XINT to get numeric value of height.
10945 (lface_hash): Apply XFASTINT to lisp values before folding in.
10946
10947 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
10948 fill in window width and height. Pass an int, not a lisp object,
10949 as first arg to Finsert.
10950
10951 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10952
10953 * xfaces.c (realize_basic_faces): Block input while realizing
10954 the faces.
10955
10956 * keyboard.c (lispy_mouse_names): Add additional mouse names.
10957
10958 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
10959
10960 2000-03-31 Gerd Moellmann <gerd@gnu.org>
10961
10962 * xterm.c (x_produce_glyphs): When displaying unibyte text
10963 or ASCII, handle case that per-char metric is null.
10964
10965 2000-03-30 Ken Raeburn <raeburn@gnu.org>
10966
10967 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
10968
10969 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
10970 (XSUBR, XBUFFER): Verify correct object type before returning
10971 pointer, using eassert.
10972 * frame.h (XFRAME): Likewise.
10973
10974 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
10975 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
10976 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
10977 * data.c (set_internal): Likewise.
10978 * dispextern.h (WINDOW_WANTS_MODELINE_P)
10979 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
10980 * fileio.c (auto_save_1): Likewise.
10981 * insdel.c (check_markers): Likewise.
10982 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
10983 * undo.c (record_insert): Likewise.
10984 * vmsproc.c (child_sig): Likewise.
10985 * window.c (unshow_buffer, window_loop): Likewise.
10986 * xterm.c (x_erase_phys_cursor): Likewise.
10987
10988 2000-03-30 Gerd Moellmann <gerd@gnu.org>
10989
10990 * xfns.c (free_image_cache): Free the cache structure itself
10991 last, after all its members have been freed.
10992
10993 * lisp.h (xstrdup): Add prototype.
10994
10995 * alloc.c (xstrdup): Moved here from xfaces.c.
10996 (allocating_for_lisp): Variable removed.
10997 (lisp_malloc): Block input around the calls to malloc and mem_insert.
10998
10999 * xfaces.c (realize_tty_face): Use find_symbol_value instead
11000 of Fsymbol_value.
11001 (xstrdup): Moved to alloc.c.
11002
11003 2000-03-29 Ken Raeburn <raeburn@gnu.org>
11004
11005 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
11006
11007 * emacs.c (main): Fix sense of no-loadup test.
11008
11009 * config.in (ENABLE_CHECKING): Undef.
11010
11011 * lisp.h (struct interval): Replace "parent" field with a union of
11012 interval pointer and Lisp_Object; add new bitfield to use as
11013 discriminant. Change other flag fields to bitfields.
11014 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
11015 is defined and the supplied test fails, print a message and abort.
11016 (eassert): New macro. Use CHECK to provide an assert-like facility.
11017
11018 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
11019 pointers; abort if the value looks like a lisp object.
11020 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
11021 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
11022 Modify for new interval parent definition.
11023
11024 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
11025 (UNMARK_BALANCE_INTERVALS): Update references that need an
11026 addressable lisp object in the interval structure.
11027 (die): New function.
11028 (suppress_checking): New variable.
11029
11030 * intervals.c (interval_start_pos): Just return 0 if there's no
11031 parent object.
11032
11033 2000-03-29 Gerd Moellmann <gerd@gnu.org>
11034
11035 * lread.c (read1): Accept `.' (period) as symbol start like in CL
11036 and earlier Emacs versions.
11037
11038 * keyboard.c (Ftop_level): Cancel busy-cursor.
11039
11040 * eval.c (call_debugger): Cancel busy-cursor.
11041
11042 2000-03-29 Kenichi Handa <handa@etl.go.jp>
11043
11044 * search.c (Freplace_match): Adjust multibyteness of the current
11045 buffer and NEWTEXT. Free allocated memory before signaling an error.
11046
11047 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
11048
11049 * regex.c (analyse_first): New function obtained by ripping out most
11050 of re_compile_fastmap and generalizing it a little bit so that it
11051 can also just return whether a given (sub)pattern can match the empty
11052 string or not.
11053 (regex_compile): Use `analyse_first' to decide whether the loop-check
11054 needs to be done or not for *, +, *? and +? (the loop check is costly
11055 for non-greedy repetition).
11056 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
11057
11058 2000-03-28 Dave Love <fx@gnu.org>
11059
11060 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
11061
11062 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
11063
11064 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
11065
11066 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
11067 an expression.
11068 (enum re_opcode_t): Update description of succeed_n.
11069 (PATFETCH): Always define.
11070 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
11071 operators, char classes, shy-groups and intervals).
11072 Optimize special cases of intervals so as to only use succeed_n and
11073 jump_n when really needed.
11074 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
11075 that we don't have to handle the special cases any more.
11076 Simplify on_failure_jump handling as well.
11077
11078 2000-03-28 Jason Rumney <jasonr@gnu.org>
11079
11080 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
11081
11082 2000-03-27 Gerd Moellmann <gerd@gnu.org>
11083
11084 * s/freebsd.h (GC_SETJMP_WORKS): Define.
11085
11086 * s/msdos.h (GC_SETJMP_WORKS): Define.
11087
11088 * alloc.c (mark_maybe_object): New function.
11089 (mark_memory): Use it.
11090 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
11091 (setjmp_tested_p, longjmp_done): New variables.
11092 (test_setjmp): New function.
11093 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
11094 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
11095
11096 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
11097 to DEC_TEXT_POS and INC_TEXT_POS.
11098
11099 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
11100 with parameter MULTIBYTE_P.
11101
11102 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
11103
11104 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
11105 buffers because it looks for multibyte character byte sequences
11106 which don't exist in unibyte text.
11107
11108 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
11109
11110 * xfaces.c (register_color, unregister_color, unregister_colors)
11111 [DEBUG_X_COLORS]: New functions.
11112 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
11113
11114 * xfns.c (x_set_cursor_color): Get color reference counts right.
11115
11116 * xterm.c (x_copy_color): New function.
11117 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
11118
11119 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
11120 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
11121 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
11122 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
11123 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
11124 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
11125 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
11126 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
11127 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
11128 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
11129
11130 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
11131 names for handling per-buffer variables.
11132
11133 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
11134 instead of MAX_BUFFER_LOCAL_VARS.
11135 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
11136
11137 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
11138
11139 * xfns.c (x_specified_cursor_type): New function.
11140 (x_set_cursor_type): Use it.
11141
11142 * buffer.h (struct buffer): Add cursor_type.
11143
11144 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
11145
11146 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
11147 (print_partial_compiled_pattern, re_compile_fastmap):
11148 Handle new opcode.
11149 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
11150 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
11151 executing it as well as when popping it off the stack to find infinite
11152 loops in non-greedy repetition operators.
11153
11154 2000-03-26 Gerd Moellmann <gerd@gnu.org>
11155
11156 * doc.c (Qfunction_documentation): New variable.
11157 (syms_of_doc): Initialize Qfunction_documentation.
11158 (Fdocumentation): If FUNCTION is a symbol with non-nil
11159 `function-documentation' property, return a documentation derived
11160 from that.
11161
11162 * buffer.c (syms_of_buffer): Add default-cursor-type.
11163 (init_buffer_once): Don't let cursor_type have a local value
11164 in every buffer.
11165
11166 * xterm.c (x_display_and_set_cursor): Choose cursor depending
11167 on buffer-local value of cursor_type.
11168 (x_draw_bar_cursor): Add parameter WIDTH.
11169
11170 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
11171 (init_buffer_once): Set default cursor_type value to t.
11172 Mark cursor_type as local everywhere.
11173 (syms_of_buffer): New per-buffer variable cursor-type.
11174
11175 * buffer.h (struct buffer): Remove member local_var_flags,
11176 add local_flags.
11177 (MAX_BUFFER_LOCAL_VARS): New macro.
11178 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
11179 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
11180 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
11181 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
11182
11183 * print.c (print_object): Use new macros for per-buffer variables.
11184
11185 * category.c (Fset_category_table): Use new macros for per-buffer
11186 variables.
11187
11188 * buffer.c (buffer_permanent_local_flags): Make a char array.
11189 (max_buffer_local_idx): New variable.
11190 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
11191 for new handling of per-buffer variables.
11192 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
11193 (init_buffer_once): Initialize per-buffer vars differently.
11194 Set max_buffer_local_idx.
11195
11196 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
11197 variables.
11198
11199 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
11200
11201 * data.c (do_symval_forwarding, store_symval_forwarding)
11202 (find_symbol_value, set_internal, default_value, Fset_default)
11203 (Fkill_local_variable, Flocal_variable_p): Use new macros for
11204 per-buffer variables.
11205
11206 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
11207
11208 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11209
11210 * xterm.c (x_term_init): Unblock input around call1 of
11211 Qvendor_specific_keysyms.
11212
11213 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
11214 (find_defun_start): Consider an open parenthesis in column 0
11215 a defun start only if open_paren_in_column_0_is_defun_start is set.
11216 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
11217
11218 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
11219
11220 * eval.c (Fautoload): Add entry in load-history (if after dump).
11221 * lread.c (load-history): Update docstring.
11222
11223 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11224
11225 * indent.c (Fvertical_motion): Always use the current buffer.
11226 Temporarily change the window's buffer, if necessary.
11227
11228 2000-03-23 Gerd Moellmann <gerd@gnu.org>
11229
11230 * xterm.c (fast_find_position): Make sure not to consider rows
11231 not visible in the window.
11232
11233 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
11234
11235 * regex.c (enum syntaxcode): Provide default for non-Emacs.
11236 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
11237
11238 2000-03-22 Jason Rumney <jasonr@gnu.org>
11239
11240 * w32menu.c (single_submenu): Set help string to NULL if none.
11241 (w32_menu_show): Set help string correctly.
11242 (add-menu-item): Set help string in MIIM_DATA for menu item.
11243 Load SetMenuItemInfoA explicitly.
11244 (w32_menu_display_help): New function.
11245
11246 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
11247 (QCdata): Moved to xdisp.c.
11248
11249 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
11250 (Vw32_charset_to_codepage_alist): Removed.
11251 (Vw32_charset_info_alist): New variable.
11252 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
11253 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
11254 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
11255 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
11256 with TODO comment.
11257 (w32_codepage_for_font): Use Vw32_charset_info_alist.
11258 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
11259 Define Vw32_charset_info_alist and w32_charset symbols.
11260
11261 2000-03-22 Jason Rumney <jasonr@gnu.org>
11262
11263 * makefile.nt (w32bdf.obj): Update dependencies.
11264
11265 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
11266
11267 * w32fns.c: Include fontset.h after dispextern.h.
11268 (Fx_create_frame): Do not create fontset.
11269 (w32_load_system_font): Doc fix.
11270 (Fx_close_connection): Free full_name if it is not shared.
11271
11272 * w32term.c: Include fontset.h after dispextern.h.
11273 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
11274 Callers updated.
11275 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
11276 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
11277 (w32_font_is_double_byte): New function, needs body.
11278 (x_append_glyph): Set glyph->glyph_not_available_p.
11279 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11280 it->charset. If it->multibyte_p is zero and it->c is a multibyte
11281 character, convert it to a unibyte character.
11282 (struct glyph_string): Delete member `charset'.
11283 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
11284 calculating it is found.
11285 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11286 the case that per char metric is not available correctly.
11287 (x_fill_glyph_string): Handle the case that the specific glyph is
11288 not available correctly.
11289 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11290 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11291 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11292 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11293 fontset. Don't call FS_LOAD_FONT.
11294
11295 2000-03-22 Ken Raeburn <raeburn@gnu.org>
11296
11297 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
11298 (INT_LISPLIKE): New macro.
11299 (NULL_INTERVAL_P): Use it.
11300 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
11301 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
11302 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
11303
11304 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
11305 explicit references to "parent" field of struct interval and
11306 associated unclean type conversions.
11307 * intervals.c (create_root_interval, root_interval, rotate_right)
11308 (rotate_left, balance_possible_root_interval, split_interval_right)
11309 (split_interval_left, interval_start_pos, find_interval)
11310 (next_interval, previous_interval, update_interval)
11311 (adjust_intervals_for_insertion, delete_node, delete_interval)
11312 (adjust_intervals_for_deletion, merge_interval_right)
11313 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
11314 (copy_intervals_to_string): Likewise.
11315 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
11316 Likewise.
11317 * syntax.c (update_syntax_table): Likewise.
11318
11319 * intervals.c (reproduce_tree_obj): New function, like
11320 reproduce_tree but takes a Lisp_Object for the parent. Declare
11321 with prototype.
11322 (graft_intervals_into_buffer): Use it when appropriate.
11323 (reproduce_tree): Declare with prototype.
11324 (balance_possible_root_interval): Check that the parent is a lisp
11325 object before trying to examine its type.
11326
11327 2000-03-22 Gerd Moellmann <gerd@gnu.org>
11328
11329 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
11330 as strings only if both are known to be strings.
11331
11332 * s/openbsd.h (LIBS_TERMCAP): Undef.
11333
11334 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
11335
11336 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
11337 definitions for non-Emacs compilation.
11338 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
11339 outside of `#ifdef emacs'.
11340 (print_partial_compiled_pattern): Update.
11341 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
11342 (re_compile_fastmap): Merge handling of charset and charset_not (for
11343 emacs and non-emacs compilation as well).
11344 Similarly for (not)categoryspec and (not)syntaxspec.
11345 Don't use the fastmap when reaching `anychar' since the added
11346 complexity is not justified.
11347 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
11348 and (not)syntaxspec. Merge (not)categoryspec.
11349
11350 2000-03-22 Kenichi Handa <handa@etl.go.jp>
11351
11352 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
11353 (FACE_FOR_CHAR): Define them differently for the configuration of
11354 --without-x.
11355
11356 2000-03-21 Dave Love <fx@gnu.org>
11357
11358 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
11359 doc string.
11360
11361 2000-03-21 Gerd Moellmann <gerd@gnu.org>
11362
11363 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
11364 (lface_fully_specified_p): Don't check contents of
11365 LFACE_FONT_INDEX because that attribute is optional.
11366 (realize_x_face): Remove now unwarranted xassert.
11367
11368 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
11369
11370 The following changes are to make font selection based on
11371 characters, not charset. In addition, they recover fontset
11372 facilities while utilizing the new font selection mechanism.
11373
11374 * Makefile.in (fontset.o): Depend on dispextern.h.
11375
11376 * alloc.c (mark_face_cache): Don't mark face->registry.
11377
11378 * dispextern.h (struct glyph): New member glyph_not_available_p.
11379 Use 22 bits for face_id.
11380 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
11381 (struct face): Delete member registry, new member ascii_face.
11382 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
11383 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
11384 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
11385 (struct it): Delete member charset, new member glyph_not_available_p.
11386
11387 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
11388 (struct fontset_info, struct fontset_data): Structs removed.
11389 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
11390 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
11391 (fs_load_font, fs_query_fontset): Adjusted for new argument.
11392 (fs_free_face_fontset, fontset_font_pattern)
11393 (face_suitable_for_char_p, face_for_char)
11394 (make_fontset_for_ascii_face): Extern them.
11395 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
11396 (FS_LOAD_FACE_FONT): New macro.
11397
11398 * fontset.c: All codes rewritten or adjusted for the change of
11399 fontset implementation. Now fontset is represented by char table.
11400 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
11401 Variables removed.
11402 (my_strcasecmp): Function removed.
11403 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
11404 (AREF, ASIZE): New macros.
11405 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
11406 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
11407 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
11408 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
11409 (fontset_id_valid_p, font_family_registry, fontset_name)
11410 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
11411 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
11412 New functions.
11413 (fs_load_font): New arg FACE. Caller changed.
11414 (fs_query_fontset): Argument changed. Caller changed.
11415 (Fquery_fontset): call fs_query_fontset.
11416 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
11417 Functions removed.
11418 (clear_fontset_elements, check_registry_encoding)
11419 (check_fontset_name): New functions.
11420 (syms_of_fontset): Set char-table-extra-slots property of fontset
11421 to 3. Staticpro and initialize Vfontset_table and
11422 Vdefault_fontset. Defsubr fontset_font and fontset_list.
11423
11424 * frame.h (struct frame): Member `fontset_data' removed.
11425 (FRAME_FONTSET_DATA): Macro removed.
11426
11427 * frame.c (make_frame): Don't allocate f->fontset_data.
11428 (Fdelete_frame): Don't free f->fontset_data.
11429
11430 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
11431
11432 * xdisp.c (charset_at_position): Function removed.
11433 (init_iterator): Don't set member charset of struct `it'.
11434 (handle_face_prop, reseat_to_string, set_iterator_to_next)
11435 (next_element_from_display_vector, insert_left_trunc_glyphs):
11436 Likewise.
11437 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
11438 FACE_FOR_CHARSET.
11439 (get_next_display_element, append_space)
11440 (extend_face_to_end_of_line): Likewise.
11441
11442 * xfaces.c (Qx_charset_registry, Vface_default_registry):
11443 Variables removed.
11444 (clear_font_table, frame_update_line_height, load_face_font):
11445 Adjusted for the change of fontset implementation.
11446 (load_face_fontset_font): Function removed.
11447 (pixel_point_size): New function.
11448 (font_list): Argument type changed. Caller changed.
11449 (LFACE_FONT): New macro.
11450 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
11451 (set_lface_from_font_name): Type of arg FONTNAME is changed to
11452 Lisp_Object. Determine the font name by actually loading a font
11453 by the specified pattern. Set LFACE_FONT (lface) to the specified
11454 pattern. Even if a font is not found, don't try alternatives.
11455 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
11456 (set_font_frame_param): If `font' is specified in lface, use it.
11457 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
11458 (lface_same_font_attributes_p): Likewise.
11459 (make_realized_face): Arguent changed. Caller changed. Set
11460 face->ascii_face to face itself.
11461 (free_realized_face): Free face->fontset if face is for ASCII.
11462 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
11463 (deduce_unibyte_registry, x_charset_registry): Functions removed.
11464 (free_realized_multibyte_face): New function.
11465 (lookup_face, lookup_named_face, lookup_derived_face): Argument
11466 changed. Caller changed.
11467 (try_font_list): Argument type changed.
11468 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
11469 (choose_face_font): Argument changed. Handle fontset properly.
11470 (choose_face_fontset_font): Function removed.
11471 (realize_default_face, realize_named_face): Don't remove the
11472 former face here.
11473 (realize_face): Argument changed. Caller changed. Remove face
11474 with the arg former_face_id in advance. Load font for the new face.
11475 (realize_x_face): Argument changed. Caller changed. For a
11476 multibyte character, share fontset with base_face. For a single
11477 byte character, make a new realized fontset. Don't load a font here.
11478 (realize_tty_face): Argument changed. Caller changed.
11479 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
11480 (face_at_buffer_position): Don't check multibyte_p for returning
11481 DEFAULT_FACE_ID.
11482 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
11483 FACE_SUITABLE_FOR_CHARSET_P.
11484 (syms_of_xfaces): Remove code for Qx_charset_registry and
11485 Vface_default_registry.
11486
11487 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
11488 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
11489 (x_per_char_metric): Don't try FONT->default_char. Even if
11490 pcm->width is zero, glyph bits may exist.
11491 (x_encode_char): Always initialize char2b->byte1.
11492 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
11493 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
11494 (x_append_glyph): Set glyph->glyph_not_available_p.
11495 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11496 it->charset. Handle the case that per char metric is not
11497 available. If it->multibyte_p is zero and it->c is a multibyte
11498 character, convert it to a unibyte character.
11499 (struct glyph_string): Delete member `charset'.
11500 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11501 the case that per char metric is not available correctly.
11502 (x_fill_glyph_string): Handle the case that the specific glyph is
11503 not available correctly.
11504 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11505 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11506 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11507 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11508 fontset. Don't call FS_LOAD_FONT.
11509
11510 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
11511 (x_create_tip_frame): Likewise.
11512 (Fx_close_connection): Free full_name of font_info.
11513
11514 * fns.c (optimize_sub_char_table): New function.
11515 (Foptimize_char_table): New function.
11516 (syms_of_fns): Defsubr Soptimize_char_table.
11517
11518 2000-03-20 Gerd Moellmann <gerd@gnu.org>
11519
11520 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
11521 only if buffer is displayed in some window.
11522
11523 * xdisp.c (handle_single_display_prop): Initialize local `value'.
11524 (try_window_reusing_current_matrix): Don't call scroll run
11525 function if run's current and desired position are the same;
11526 this prevents cursor flickering.
11527
11528 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
11529
11530 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
11531
11532 * regex.c (RE_STRING_CHAR): New macro.
11533 (GET_CHAR_AFER_2): Remove.
11534 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
11535 (enum re_opcode_t): Remove on_failure_jump_exclusive.
11536 (print_partial_compiled_pattern, re_compile_fastmap)
11537 (re_match_2_internal): Remove on_failure_jump_exclusive.
11538 (regex_compile): Turn optimizable P+ loops into PP*, so that the
11539 optimization only need to work for * (ie. can use of_keep_string_jump).
11540 Remove the special case for .*\n since it is now covered by the general
11541 optimization.
11542 (re_search_2): Don't bother with `room'.
11543 (skip_one_char): New function.
11544 (skip_noops): Simplify since `memory' is not needed any more.
11545 (mutually_exclusive_p): Restructure slightly to use `switch' and
11546 add handling for "all" remaining cases.
11547 (re_match_2_internal): Change on_failure_jump_smart to use
11548 on_failure_keep_string_jump (and redirect the end-of-loop jump)
11549 rather than on_failure_jump_exclusive.
11550
11551 2000-03-19 Gerd Moellmann <gerd@gnu.org>
11552
11553 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
11554 number of bits per RGB because it's everywhere used as the depth
11555 of the visual.
11556
11557 * term.c (calculate_costs): Remove code dealing with X frames.
11558
11559 2000-03-19 Richard M. Stallman <rms@gnu.org>
11560
11561 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
11562
11563 2000-03-18 Gerd Moellmann <gerd@gnu.org>
11564
11565 * lread.c (read_integer): Unread the last char not consumed.
11566
11567 2000-03-17 Gerd Moellmann <gerd@gnu.org>
11568
11569 * xterm.c (x_update_window_cursor): Don't update in frames
11570 which are in the process of being deleted.
11571
11572 2000-03-16 Gerd Moellmann <gerd@gnu.org>
11573
11574 * Makefile.in (mostlyclean): Add `*.core'.
11575 (clean): Add `bootstrap-emacs'.
11576
11577 * lread.c (read_integer): New function.
11578 (read1): Support read syntax #o, #x, #b, #r.
11579
11580 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
11581
11582 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
11583 make sure POINTER_TO_OFFSET gives the same value before and after
11584 PREFETCH. Use `dfail' to guarantee "atomic" matching.
11585 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
11586 (debug): Now only active if > 0 rather than if != 0.
11587 (DEBUG_*): Update for the new meaning of `debug'.
11588 (print_partial_compiled_pattern): Add missing `succeed' case. Use
11589 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
11590 in `succeed_n', `jump_n' and `set_number_at'.
11591 (store_op1, store_op2, insert_op1, insert_op2)
11592 (at_begline_loc_p, at_endline_loc_p): Add prototype.
11593 (group_in_compile_stack): Move to after its arg's types are
11594 declared and add a prototype.
11595 (PATFETCH): Define in terms of PATFETCH_RAW.
11596 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
11597 (QUIT): Redefine as a nop except for NTemacs.
11598 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
11599 indentation of the greedy-op and shy-group code.
11600 (at_(beg|end)line_loc_p): Fix argument's types.
11601 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
11602 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
11603 (MATCHING_IN_FIRST_STRING): Remove.
11604 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
11605 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
11606 QUIT unconditionally.
11607
11608 2000-03-15 Gerd Moellmann <gerd@gnu.org>
11609
11610 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
11611 a sole completion.
11612
11613 * process.c (send_process): Add a hint that the function
11614 can call Lisp code to its comment.
11615
11616 * lread.c (load_dangerous_libraries): New variable.
11617 (Vbytecomp_version_regexp): New variable.
11618 (safe_to_load_p): New function.
11619 (Fload): Handle files not compiled with Emacs specially.
11620 (syms_of_lread): New Lisp variable load-dangerous-libraries.
11621
11622 2000-03-14 Gerd Moellmann <gerd@gnu.org>
11623
11624 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
11625
11626 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
11627 support functions only if HAVE_X11R6_XIM is defined.
11628 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
11629
11630 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
11631
11632 * xfns.c (X_I18N_INHIBITED): Don't define.
11633 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
11634 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
11635
11636 * config.in (HAVE_X_I18N): Moved here from xterm.h.
11637 (HAVE_X11R6_XIM): Define.
11638
11639 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
11640
11641 * xterm.c (x_term_init): Add support for X resource `synchronous'.
11642 If set, call XSynchronize.
11643
11644 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
11645
11646 * regex.c: Declare a new type `re_char' used throughout the code
11647 for the string char type. It's `const unsigned char' to match the
11648 rest of Emacs. Consistently make sure all pointers to strings use
11649 it and make sure all pointers into the pattern use `unsigned char'.
11650 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
11651 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
11652 code duplication.
11653
11654 * charset.h (GET_CHAR_AFTER_2): Remove.
11655 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
11656
11657 2000-03-12 Ken Raeburn <raeburn@gnu.org>
11658
11659 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
11660 variable before the invocation of YMF_PASS_LDFLAGS, in case both
11661 of them try to use backquotes.
11662
11663 2000-03-12 Dave Love <fx@gnu.org>
11664
11665 * unexelf.c: Restore changes of 1999-10-19.
11666 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
11667 fix its type and alignment; copy it from current process.
11668
11669 2000-03-12 Gerd Moellmann <gerd@gnu.org>
11670
11671 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
11672 has been found. Fix bug not computing timer's predecessor.
11673
11674 * fileio.c (Fread_file_name): Handle case that DIR contains a
11675 file name.
11676
11677 * window.c (Fsave_window_excursion): Doc fix.
11678
11679 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
11680
11681 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
11682
11683 * msdos.c (vga_installed): New function, code moved from
11684 dos_set_window_size.
11685 (Qbar, Qcursor_type, outside_cursor): New variables.
11686 (syms_of_msdos): Intern and staticpro them.
11687 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
11688 shape used outside Emacs when called for the first time.
11689 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
11690 cursor shape used outside Emacs.
11691 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
11692 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
11693 type has changed.
11694 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
11695 parameters specify the cursor. Make qreverse a global
11696 variable (renamed to Qreverse).
11697
11698 2000-03-09 Gerd Moellmann <gerd@gnu.org>
11699
11700 * fns.c (Fy_or_n_p): Cancel busy-cursor.
11701
11702 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
11703
11704 This is a big redesign of failure-stack and register handling, prompted
11705 by bugs revealed when trying to add shy-groups. Overall, what happened
11706 is that loops are now structured a little differently, groups can be
11707 shy and the code is a little simpler.
11708
11709 * regex.h: Update the copyright.
11710 (RE_SHY_GROUPS): New value.
11711 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
11712 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
11713
11714 * regex.c (enum re_opcode_t): Remove jump_past_alt,
11715 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
11716 on_failure_jump_(exclusive, loop and smart). Also fix the comment
11717 for (start|stop)_memory since they now only take one argument (the
11718 second has becomes unnecessary).
11719 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
11720 (print_compiled_pattern): Use %ld to printf long ints and flush to
11721 make debugging a little easier.
11722 (union fail_stack_elt): Make the integer unsigned.
11723 (struct fail_stack_type): Add a `frame' element.
11724 (INIT_FAIL_STACK): Init `frame' as well.
11725 (POP_PATTERN_OP): New macro for re_compile_fastmap.
11726 (DEBUG_PUSH, DEBUG_POP): Remove.
11727 (NUM_REG_ITEMS): Remove.
11728 (NUM_NONREG_ITEMS): Adjust.
11729 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
11730 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
11731 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
11732 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
11733 New macros.
11734 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
11735 address pushed is not the destination of the jump but the source
11736 of it instead.
11737 (NUM_FAILURE_ITEMS): Remove.
11738 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
11739 registers before the actual failure point). Don't hardcode any
11740 meaning for str==NULL anymore.
11741 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
11742 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
11743 Remove.
11744 (REG_UNSET_VALUE): Use NULL (why not?).
11745 (compile_range): Remove declaration since it doesn't exist.
11746 (struct compile_stack_elt_t): Remove inner_group_offset.
11747 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
11748 (regex_grow_registers): Remove dead code.
11749 (FIXUP_ALT_JUMP): New macro.
11750 (regex_compile): Add shy-groups Change loops to use
11751 on_failure_jump_smart&jump instead of
11752 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
11753 initial (dummy_failure_)jump. Remove c1_base (looks like unused
11754 variable to me). Use `jump' instead of `jump_past_alt' and don't
11755 bother with push_dummy_failure in alternatives since it is now
11756 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
11757 emacs' for (re)allocating the stack.
11758 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
11759 from loop when bufp->can_be_null rather than jumping to `done'.
11760 Avoid jumping backwards so as to ensure termination. Use
11761 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
11762 backreferences. Remove dead code in handling of `anychar'.
11763 (skip_noops, mutually_exclusive_p): New functions taken from the
11764 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
11765 improve mutually_exclusive_p to handle ".+\n".
11766 (lowest_active_reg, highest_active_reg)
11767 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
11768 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
11769 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
11770 variables. Push register (in `start_memory') on the stack rather
11771 than storing it in old_reg(start|end). Remove the cycle detection
11772 from `stop_memory', replaced by the use of on_failure_jump_loop
11773 for greedy loops. Add code for the new on_failure_jump_<foo>.
11774 Remove ad-hoc code in `on_failure_jump' to push more registers in
11775 the case of a loop. Take out code from `maybe_pop_jump' into
11776 separate functions and adapt it to the semantics of
11777 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
11778 and push_dummy_failure. Remove dummy_failure handling and
11779 handling of `failures to jump to on_failure_jump' (this last one
11780 was already dead code, it seems).
11781 (group_match_null_string_p, alt_match_null_string_p)
11782 (common_op_match_null_string_p): Remove.
11783
11784 2000-03-08 Dave Love <fx@gnu.org>
11785
11786 * config.in: Don't depend on __STDC__ for volatile.
11787 Add POINTER_TYPE, PTR, PROTOTYPES.
11788
11789 * hftctl.c, strftime.c: Use PROTOTYPES.
11790 * eval.c (find_handler_clause): Likewise.
11791
11792 * mem-limits.h: Use POINTER_TYPE.
11793
11794 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
11795 (memory_warnings): Declare using POINTER_TYPE.
11796
11797 2000-03-08 Gerd Moellmann <gerd@gnu.org>
11798
11799 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
11800
11801 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
11802
11803 * xfns.c: Remove obsolete code in #if 0.
11804 (Fx_focus_frame): New function.
11805
11806 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11807
11808 * coding.c (coding_category_name): Add coding-category-utf-8,
11809 coding-category-utf-16-be, coding-category-utf-16-le.
11810 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
11811 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
11812 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
11813 (detect_coding_utf_8): New function.
11814 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
11815 UTF_16_LOW_SURROGATE_P): New macros.
11816 (detect_coding_utf_16): New function
11817 (detect_coding_mask): When priorities are specified, skip any
11818 categories that have `nil' coding-system. Fix bug of returning
11819 wrong mask when PRIORITIES is specified and detect_coding_XXX()
11820 returns a mask not set in PRIORITIES.
11821 (detect_eol_type_in_2_octet_form): New function.
11822 (detect_eol): selects detect_eol_type_XXX to call according to
11823 cooding->category_idx.
11824 (detect_coding_system): Remove `nil' coding-system in the result.
11825 (Fupdate_coding_systems_internal): Update all coding-categories.
11826
11827 * coding.h (CODING_CATEGORY_IDX_UTF_8)
11828 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
11829 New macros.
11830 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
11831 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
11832 (CODING_CATEGORY_IDX_UTF_16_LE)
11833 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
11834 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
11835 (CODING_CATEGORY_MASK_ANY): Include the above macros.
11836 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
11837
11838 2000-03-07 Gerd Moellmann <gerd@gnu.org>
11839
11840 * doc.c (Fdocumentation_property): If value is not a string,
11841 and doesn't refer to etc/DOC, evaluate it to obtain a string.
11842
11843 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
11844 close the display with XtCloseDisplay. This caused a bus error
11845 on OpenWindows.
11846
11847 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
11848 complete but not unique.
11849
11850 2000-03-06 Gerd Moellmann <gerd@gnu.org>
11851
11852 * process.c (send_process): Remove local variable `procname' that
11853 might become invalid when a GC happens. Instead, access the
11854 process name slot directly.
11855
11856 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
11857 orig_height if set.
11858
11859 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
11860 orig_height if set.
11861
11862 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
11863
11864 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
11865 glyph matrices have been freed.
11866
11867 2000-03-05 Gerd Moellmann <gerd@gnu.org>
11868
11869 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
11870 (bootstrap-temacs): Set LC_ALL to C like for temacs.
11871
11872 * xfns.c (QCdata): Moved to xdisp.c.
11873
11874 * xdisp.c (QCdata): Moved here from xfns.c.
11875 (syms_of_xdisp): Initialize QCdata.
11876
11877 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
11878
11879 * window.c (coordinates_in_window): Use
11880 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
11881 FRAME_INTERNAL_BORDER_WIDTH.
11882
11883 * xdisp.c (try_window_id): Recompute unchanged information if
11884 it is obviously invalid.
11885
11886 * xterm.c (x_term_init): Create a colormap if not using the
11887 default visual.
11888
11889 * xterm.h (select_visual): Change prototype.
11890
11891 * xfns.c (select_visual): Rewritten. Recognize user-specified
11892 visual classes.
11893 (visual_classes): New variable.
11894
11895 2000-03-04 Gerd Moellmann <gerd@gnu.org>
11896
11897 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
11898 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
11899 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
11900 (x_decode_color): Don't handle allocation of white and black specially.
11901 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
11902 XtNcolormap resources.
11903 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
11904 (Fx_create_frame): Initialize color members of x_output structure.
11905 (xpm_load): Pass colormap to XPM lib.
11906
11907 * xfaces.c (x_free_colors): Access colormap of frame using
11908 FRAME_X_COLORMAP. Be paranoid about freeing black and white
11909 when default colormap is used.
11910
11911 * xterm.c (x_term_init): Set Colormap member of x_display_info
11912 structure. Copy colormap if resource `privateColormap' is
11913 specified (PseudoColor only).
11914 (x_setup_relief_color): Access colormap of frame using
11915 FRAME_X_COLORMAP.
11916
11917 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
11918 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
11919
11920 2000-03-04 Jason Rumney <jasonr@gnu.org>
11921
11922 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
11923 other non-platform-specific equivalents.
11924 [WINDOWSNT]: Include w32term.h, fontset.h and define X
11925 specific functions and macros as their w32 equivalents where
11926 non-platform-specifics are not available.
11927 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
11928 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
11929 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
11930 (frame_update_line_height): Use macros to access f->output_data.
11931 (defined_color): Remove FIXME comments; fixed.
11932 (x_face_list_fonts, prepare_face_for_display): Put X specifics
11933 into #ifdef blocks. Add WINDOWSNT blocks.
11934 (Fx_list_fonts): Use macros for accessing font data.
11935 (set_lface_from_font_name): Different default fonts for X and
11936 WINDOWSNT.
11937 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
11938 scalable for backward compatibility.
11939 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
11940 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
11941
11942 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
11943 syms_of_w32faces.
11944
11945 * makefile.nt (w32faces.obj): Remove.
11946 (xfaces.obj): Add.
11947
11948 2000-03-03 Jason Rumney <jasonr@gnu.org>
11949
11950 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
11951 correct parameters.
11952
11953 2000-03-03 Ken Raeburn <raeburn@gnu.org>
11954
11955 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
11956 standard ELF definitions here if the system header does not.
11957
11958 2000-03-03 Gerd Moellmann <gerd@gnu.org>
11959
11960 * xterm.c (PER_CHAR_METRIC): Removed.
11961 (x_per_char_metric_1, x_default_char): New functions.
11962 (x_per_char_metric): If font's default char is invalid, return
11963 metrics of a suitably chosen usable default char.
11964 (x_draw_glyph_string_foreground): If font has an invalid default
11965 char, replace occurrences of unprintable chars with a suitably
11966 chosen usable default char.
11967
11968 2000-03-02 Gerd Moellmann <gerd@gnu.org>
11969
11970 * xterm.c (note_mouse_highlight): Return quickly if frame's
11971 glyph matrices have been freed.
11972
11973 * dispnew.c (free_glyphs): Block input while freeing matrices.
11974
11975 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
11976
11977 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
11978 Use x_free_colors.
11979
11980 * dispextern.h (x_free_colors): Add prototype.
11981
11982 * xfaces.c (x_free_colors): New function.
11983 (unload_color, free_face_colors): Use it.
11984
11985 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
11986
11987 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
11988
11989 * window.c [MSDOS]: Include msdos.h.
11990
11991 2000-03-02 Dave Love <fx@gnu.org>
11992
11993 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
11994
11995 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
11996 set C_OPTIMIZE_SWITCH for gcc.
11997
11998 2000-03-02 Kenichi Handa <handa@etl.go.jp>
11999
12000 * coding.c (coding_save_composition): Be sure to allocate
12001 composition data area in coding even if there's no composition in
12002 the current run.
12003
12004 2000-03-01 Jason Rumney <jasonr@gnu.org>
12005
12006 * w32term.c: Equivalent changes to those made to xterm.c on
12007 2000-02-25 and 2000-02-24.
12008
12009 * w32fns.c: Equivalent changes to those made to xfns.c on
12010 2000-02-25 and 2000-02-21.
12011
12012 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
12013 correct line-end convention is followed.
12014
12015 * w32menu.c [HAVE_BOXES]: Remove #undef.
12016 (single_keymap_panes): Remove code for simulating checkmarks.
12017 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
12018 Remove code for drawing simulated checkmarks.
12019 (w32_menu_show): make unibyte help string correctly.
12020 (add_menu_item): draw standard Windows checkmarks. Draw radio
12021 buttons as radio buttons if possible.
12022
12023 2000-03-01 Gerd Moellmann <gerd@gnu.org>
12024
12025 * sysdep.c (start_of_text): Don't define this function for NetBSD
12026 with ELF.
12027
12028 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
12029 Don't define.
12030 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
12031 (LINKER): Don't undef if __NetBSD__ is defined.
12032
12033 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
12034
12035 * fileio.c [__NetBSD__]: Define `unix'.
12036
12037 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
12038
12039 2000-02-29 Gerd Moellmann <gerd@gnu.org>
12040
12041 * atimer.c (start_atimer): Don't abort when timers are stopped.
12042 (append_atimer_lists): New function.
12043 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
12044 arbitrary lists of stopped and running atimers.
12045
12046 * atimer.c (cancel_atimer): Handle canceling an atimer when
12047 some timers are stopped.
12048
12049 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
12050 after canceling it.
12051
12052 * fns.c (maybe_resize_hash_table): Handle case of new size
12053 coming out as being the same as old size.
12054
12055 2000-02-27 Jason Rumney <jasonr@gnu.org>
12056
12057 * makefile.nt: Add atimer.h to dependencies.
12058 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
12059 * w32console.c: Only disable window system features for dispextern.h
12060 (initialize_w32_display): Build a display info for the console.
12061 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
12062 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
12063 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
12064 as 2 button mice.
12065 * w32gui.h (struct W32FontStruct): Revert last change after change
12066 to xdisp.c.
12067 * w32menu.c (single_submenu): Set up help string.
12068 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
12069 (w32_dialog_show): Set up help string.
12070 * w32term.c (w32_display_info_for_display): Remove unused function.
12071 (w32_draw_bitmap): Use pre-built bitmaps.
12072 (w32_initialize_display_info): New function to initialize parts of
12073 display info that are common to both GUI and console frames.
12074 (w32_term_init): Use w32_initialize_display_info. Do not set
12075 Vw32_num_mouse_buttons here, as it is not called for console
12076 frames. Build bitmaps for indicating truncated lines etc.
12077 (x_delete_display): Destroy pre-built bitmaps.
12078 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
12079 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
12080
12081 2000-02-27 Dave Love <fx@gnu.org>
12082
12083 * lisp.h: Add a bunch of prototypes.
12084
12085 2000-02-26 Kenichi Handa <handa@etl.go.jp>
12086
12087 * keyboard.c (read_char): Set `usec' correctly.
12088
12089 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12090
12091 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
12092 `lambda', set reg[RRR] to the map index.
12093 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
12094 reg[RRR] to 0. Otherwise, set it to -1.
12095
12096 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12097
12098 * emacs.c (main): Remove code snippet commented out with `//'.
12099
12100 2000-02-25 Richard M. Stallman <rms@gnu.org>
12101
12102 * fileio.c (Ffile_symlink_p): If result starts with a `/'
12103 and contains a `:', prepend `/:'.
12104
12105 * window.c (select_window_1): If selected_window is nil,
12106 don't "swap out" the buffer's point.
12107 (Fset_window_configuration): Set selected_window to nil
12108 before calling Fselect_window.
12109 (unshow_buffer): Don't set point in buffer from window's point
12110 if another more recently selected window also shows the buffer.
12111
12112 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12113
12114 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
12115
12116 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
12117 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
12118 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
12119 New variables.
12120 (DEFAULT_BUSY_CURSOR_DELAY): New define.
12121 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
12122 (hide_busy_cursor): New functions.
12123 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
12124
12125 * minibuf.c (read_minibuf): Cancel busy-cursor.
12126
12127 * keyboard.c (command_loop_1): Call start_busy_cursor before
12128 Fcommand_execute and cancel_busy_cursor after it.
12129 (timer_check): Remove busy-cursor code.
12130 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
12131 cursor timer.
12132
12133 * process.c (wait_reading_process_input): Remove busy-cursor code.
12134
12135 * eval.c (Fsignal): Call cancel_busy_cursor instead of
12136 Fx_hide_busy_cursor.
12137
12138 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
12139 Remove prototyoes.
12140 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
12141
12142 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
12143
12144 * xterm.c (XTread_socket): Remove busy-cursor code.
12145
12146 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
12147 (build_frame_matrix_from_leaf_window): Put code handling
12148 glyph row's not being a slice of a frame row in #if 0.
12149 (sync_window_with_frame_matrix_rows): New function.
12150 (frame_row_to_window): New function.
12151 (mirror_line_dance): Handle copies between windows.
12152
12153 * lread.c (Fload): Use `xfree' instead of `free'.
12154 (init_obarray): Use `xmalloc' instead of `malloc'.
12155
12156 * window.c (Fset_window_buffer): Set WINDOW to the window
12157 after decoding.
12158 (coordinates_in_window): Take frame's internal border width
12159 into account.
12160
12161 2000-02-24 Gerd Moellmann <gerd@gnu.org>
12162
12163 * xterm.c (x_display_and_set_cursor): Display cursor of
12164 non-selected windows depending on the setting of
12165 cursor_in_non_selected_windows.
12166
12167 * xdisp.c (cursor_in_non_selected_windows): New variable.
12168 (syms_of_xdisp): DEFVAR_BOOL it.
12169
12170 2000-02-23 Gerd Moellmann <gerd@gnu.org>
12171
12172 * data.c (Fstring_to_number): If number is greater than what
12173 fits into an integer, return a float.
12174
12175 * eval.c (specbind): Remove references to
12176 keyword_symbols_constant_flag.
12177
12178 * data.c (keyword_symbols_constant_flag): Removed.
12179 (Fmakunbound, set_internal, syms_of_data): Remove references to
12180 keyword_symbols_constant_flag.
12181
12182 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
12183
12184 2000-02-23 Kenichi Handa <handa@etl.go.jp>
12185
12186 * syntax.c (multibyte_syntax_as_symbol): New variable.
12187 (syms_of_syntax): Declare it as a Lisp variable.
12188 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
12189 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
12190 nonzero, treat all multibyte characters as symbol.
12191 (init_syntax_once): Give syntax `word' to all multibyte characters.
12192
12193 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
12194
12195 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
12196 a deleted frame.
12197
12198 2000-02-21 Gerd Moellmann <gerd@gnu.org>
12199
12200 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
12201
12202 * xfns.c (x_window_to_frame, x_any_window_to_frame)
12203 (x_non_menubar_window_to_frame): Check the busy-cursor window.
12204
12205 2000-02-21 Dave Love <fx@gnu.org>
12206
12207 * frame.c (Vmouse_position_function): New variable.
12208 (Fmouse_position): Use it.
12209 (syms_of_frame): Install it.
12210
12211 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
12212
12213 2000-02-20 Gerd Moellmann <gerd@gnu.org>
12214
12215 * fileio.c (Finsert_file_contents): Unbind the binding of
12216 standard-output done by temp_output_buffer_setup.
12217
12218 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
12219 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
12220 (specbind, unbind_to): Handle most common case of non-constant
12221 symbol with trivial value specially.
12222
12223 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
12224
12225 2000-02-20 Richard M. Stallman <rms@gnu.org>
12226
12227 * data.c (Fmake_variable_buffer_local): Doc fix.
12228 Init found_for_buffer to 0.
12229 (Fmake_variable_frame_local): If the variable has already
12230 been buffer-local, set the check_frame field.
12231
12232 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
12233
12234 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
12235 produced for CODING_MODE_LAST_BLOCK requires.
12236
12237 2000-02-18 Dave Love <fx@gnu.org>
12238
12239 * keyboard.c (echo_keystrokes): Remove declaration.
12240 (Vecho_keystrokes) New variable.
12241 (read_char, record_menu_key, read_key_sequence): Use it to allow
12242 use of float value.
12243 (syms_of_keyboard): Change Vecho_keystrokes declaration.
12244
12245 * lread.c: Undef feature selection macros before defining.
12246
12247 2000-02-18 Gerd Moellmann <gerd@gnu.org>
12248
12249 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
12250 for symbols other than the symbol in question.
12251
12252 2000-02-17 Dave Love <fx@gnu.org>
12253
12254 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
12255
12256 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12257
12258 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
12259
12260 * alloc.c (enum mem_type): Compile unconditionally.
12261
12262 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
12263
12264 * xfaces.c (tty_defined_color): Don't return faulire indication
12265 for unspecified-fg and unspecified-bg pseudo-colors.
12266
12267 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12268
12269 * alloc.c (mark_object): Don't mark symbol names in pure space.
12270 (gc_sweep): Don't unmark symbol names in pure space.
12271
12272 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
12273 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
12274 [GC_MARK_STACK]: New defines.
12275 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
12276 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
12277
12278 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
12279
12280 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
12281 allocate_buffer instead of xmalloc.
12282
12283 * alloc.c (toplevel): Include setjmp.h.
12284 (PURE_POINTER_P): New define.
12285 (enum mem_type) [GC_MARK_STACK]: New enumeration.
12286 (Vdead) [GC_MARK_STACK]: New variable.
12287 (lisp_malloc): Add parameter TYPE, call mem_insert if
12288 GC_MARK_STACK is defined.
12289 (allocate_buffer): New function.
12290 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
12291 (free_float) [GC_MARK_STACK]: Set type to Vdead.
12292 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
12293 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
12294 (MEM_NIL) [GC_MARK_STACK]: New define.
12295 (struct mem_node) [GC_MARK_STACK]: New structure.
12296 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
12297 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
12298 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
12299 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
12300 (mark_stack) [GC_MARK_STACK]: New functions.
12301 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
12302 (clear_marks): Removed.
12303 (gc_sweep): Set free conses' car, free floats' type, free
12304 symbols' function to Vdead. Use lisp_free to free buffers.
12305 (init_alloc_once): Initialize Vdead.
12306 (survives_gc_p): Return non-zero for pure objects.
12307
12308 * alloc.c: Add comments throughout the file.
12309
12310 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
12311 that unblocks alarms.
12312
12313 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
12314 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
12315 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
12316
12317 * frame.c (make_frame): Set frame initiallly to `garbaged'.
12318
12319 2000-02-17 Kenichi Handa <handa@etl.go.jp>
12320
12321 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
12322 avoid infinite error signaling. Allocate sufficient memory for
12323 eol_str in the case that eoltype is Lisp_Int.
12324
12325 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
12326
12327 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
12328 depends on the previous behavior.
12329
12330 2000-02-16 Gerd Moellmann <gerd@gnu.org>
12331
12332 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
12333
12334 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12335
12336 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
12337
12338 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
12339 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
12340 write(2).
12341
12342 2000-02-15 Richard M. Stallman <rms@gnu.org>
12343
12344 * data.c (set_internal): Don't make variable buffer-local
12345 if within a let-binding for the same buffer.
12346 (let_shadows_buffer_binding_p): New function.
12347
12348 * eval.c (specbind): For buffer-local value,
12349 record the current buffer also.
12350 (unbind_to): Cope with that change.
12351
12352 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12353
12354 * window.c (Fsave_window_excursion): Doc fix.
12355
12356 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
12357
12358 * syntax.c (back_comment): Make sure we only consider comment-starters
12359 of the relevant style and return -1 in case of a failure to find the
12360 beginning of the comment.
12361 (Fforward_comment): If back_comment fails, go back to the position just
12362 after the comment-end.
12363 (scan_lists): Add comment describing a very minor bug.
12364
12365 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12366
12367 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
12368 `completion-regexp-list' in the docstring.
12369
12370 2000-02-14 Dave Love <fx@gnu.org>
12371
12372 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
12373
12374 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12375
12376 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
12377 to Emacs' syntax. Also fix the comment about set/not-set meanings
12378 since Emacs syntax is not the value 0 any more.
12379 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
12380 since it's now part of RE_SYNTAX_EMACS.
12381
12382 2000-02-12 Dave Love <fx@gnu.org>
12383
12384 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
12385
12386 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12387
12388 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
12389
12390 2000-02-12 Dave Love <fx@gnu.org>
12391
12392 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
12393
12394 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
12395 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
12396 * s/hpux.h: Don't define HAVE_VFORK.
12397
12398 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
12399
12400 * s/nextstep.h: Don't define HAVE_ALLOCA.
12401
12402 * config.in: Add vfork bits.
12403
12404 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12405
12406 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
12407 unwind function to undo the effect of stopping atimers.
12408
12409 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
12410
12411 * atimer.c (stopped_atimers): New variable.
12412 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
12413 New functions.
12414
12415 * atimer.h (stop_other_atimers, run_all_atimers)
12416 (unwind_stop_other_atimers): Add function prototypes.
12417
12418 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
12419
12420 2000-02-11 Ken Raeburn <raeburn@gnu.org>
12421
12422 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
12423 library may depend on jpeg.
12424 (atimer.o): Depends on atimer.c.
12425
12426 2000-02-11 Kenichi Handa <handa@etl.go.jp>
12427
12428 * insdel.c (del_range_1): Call update_compositions.
12429 (del_range_both): Call update_compositions just once..
12430
12431 2000-02-10 Dave Love <fx@gnu.org>
12432
12433 * xfns.c (create_frame_xic): Fix initialization of automatic
12434 aggregates for pcc.
12435
12436 2000-02-09 Kenichi Handa <handa@etl.go.jp>
12437
12438 * ccl.c (CCL_MAKE_CHAR): New macro.
12439 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
12440 registers by CCL_MAKE_CHAR before calling translate_char.
12441 <CCL_TranslateCharacterConstTbl> Likewise.
12442
12443 2000-02-08 Dave Love <fx@gnu.org>
12444
12445 * lread.c (__EXTENSIONS__): Define.
12446
12447 2000-02-08 Gerd Moellmann <gerd@gnu.org>
12448
12449 * puresize.h (BASE_PURESIZE): Increase to 650000.
12450
12451 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12452
12453 * msdos.c (XMenuActivate): Turn off the cursor after displaying
12454 the help message.
12455
12456 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12457
12458 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
12459 md, mh, mb, mr, and me to the fake termcap entry.
12460
12461 2000-02-06 Ken Raeburn <raeburn@gnu.org>
12462
12463 * sound.c (sound_cleanup): Don't call device close routine if the
12464 function pointer is null.
12465
12466 2000-02-06 Andrew Innes <andrewi@gnu.org>
12467
12468 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
12469 around image definitions and prototypes.
12470 (gamma_correct) [WINDOWSNT]: New prototype.
12471
12472 * w32term.c (x_make_frame_visible): Replace call to
12473 input_poll_signal with poll_for_input.
12474
12475 * window.c [WINDOWSNT]: Include w32term.h.
12476
12477 * xdisp.c [WINDOWSNT]: Include w32term.h.
12478
12479 * makefile.nt: Add dependencies on w32gui.h.
12480 (OBJ1): Include atimer.obj.
12481 ($(BLD)\atimer.obj): New dependency rule.
12482
12483 * w32.c (sigmask): New function (does nothing).
12484 (sigunblock): Ditto.
12485
12486 * frame.c [WINDOWSNT]: Include w32term.h.
12487
12488 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
12489
12490 * lread.c (syms_of_lread): Fix literal newlines.
12491
12492 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
12493 the string constant limit (2048 bytes) in MSVC.
12494 (main): Ditto.
12495
12496 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
12497
12498 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
12499 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
12500 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
12501 dispatch the event.
12502
12503 2000-02-04 Dave Love <fx@gnu.org>
12504
12505 * fileio.c: Remove some unused vars.
12506 (_GNU_SOURCE): Define (for euidaccess).
12507
12508 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
12509
12510 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
12511 gcpro1, gcpro2.
12512 (read_minibuf): Deal with allow_props correctly.
12513
12514 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
12515
12516 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
12517
12518 2000-02-03 Ken Raeburn <raeburn@gnu.org>
12519
12520 * search.c (compile_pattern): If a cache entry has a nil regexp,
12521 fill in that entry instead of clobbering a previously cached
12522 string regexp.
12523
12524 2000-02-02 Ken Raeburn <raeburn@gnu.org>
12525
12526 * puresize.h (BASE_PURESIZE): Increase to 610000.
12527
12528 2000-02-02 Gerd Moellmann <gerd@gnu.org>
12529
12530 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
12531 can GC.
12532
12533 2000-02-02 Kenichi Handa <handa@etl.go.jp>
12534
12535 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
12536 instead of incrementing ic directly.
12537 <CCL_WriteExprConst> Likewise.
12538 <ccl_set_expr>: Set ic to jump_address.
12539
12540 * fileio.c (e_write): Fix the handling of
12541 CODING_FINISH_INSUFFICIENT_SRC.
12542
12543 2000-02-01 Dave Love <fx@gnu.org>
12544
12545 * editfns.c (Fpropertize): Doc fix.
12546
12547 * process.c (Fstart_process): Doc fix.
12548
12549 * eval.c: Fix various doc strings not to duplicate information
12550 from help-manyarg-func-alist.
12551
12552 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
12553
12554 * doc.c (Vhelp_manyarg_func_alist): New variable.
12555 (Fdocumentation): Use it.
12556 (syms_of_doc): Define it.
12557
12558 2000-01-31 Gerd Moellmann <gerd@gnu.org>
12559
12560 * xterm.c (xim_open_dpy): Remove unused local variable.
12561
12562 * emacs.c (USAGE): Use term `display options' instead of `X options'.
12563
12564 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
12565 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
12566
12567 * fns.c (sweep_weak_table): New function.
12568 (sweep_weak_hash_tables): Use it. Keep on marking until there
12569 is no more change.
12570
12571 2000-01-30 Gerd Moellmann <gerd@gnu.org>
12572
12573 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
12574 that XTread_socket does not crash by trying to call XNoOp on a
12575 closed display.
12576
12577 2000-01-30 Jason Rumney <jasonr@gnu.org>
12578
12579 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12580 Change selected_frame to SELECTED_FRAME ().
12581 (w32_console_mouse_position): Remove #ifndef MULE from around
12582 `insist' parameter.
12583
12584 * makefile.nt: Remove dosfns.obj.
12585
12586 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
12587
12588 * w32fns.c (w32_defined_color): Check for valid frame before
12589 applying gamma correction. Eliminate dependency on frame elsewhere.
12590 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
12591 (w32_to_x_font): Use resx and resy not height_in and width_in.
12592 (x_to_w32_font): Doc fix.
12593 (xlfd_strip_height): New function to strip and return font height.
12594 (w32_font_match): Compare height separately from rest of xlfd
12595 spec, using xlfd_strip_height.
12596
12597 * w32term.c (w32_term_init): Swap resx and height_in, resy and
12598 width_in. Use w32_defined_color in place of defined_color.
12599
12600 * w32faces.c: Merge more of DOS and X specifics in preparation for
12601 merge with xfaces.c.
12602 (defined_color): Remove FIXME comment.
12603 (tty_color_name): Provide w32-specific function.
12604 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
12605
12606 * w32console.c (turn_on_face, turn_off_face): Removed.
12607 (w32_face_attributes): New function.
12608 (Global_variables): Reduce scope where possible.
12609 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
12610 fill attribute.
12611 (hl_mode): Don't modify text attributes.
12612 (write_glyphs): Don't do anything if len <= 0. Use
12613 w32_face_attributes to get attributes for drawing. Write
12614 terminating codes using char_attr_normal.
12615 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
12616 (update_begin, update_end): Likewise.
12617 (vga_stdcolor_name): New function.
12618 (initialize_w32_display): Remove char_attr_reverse and char_attr.
12619 (Fset_screen_color): Remove char_attr_reverse.
12620
12621 2000-01-29 Gerd Moellmann <gerd@gnu.org>
12622
12623 * xfns.c (xic_set_preeditarea): Take window parameter and
12624 window-relative pixel-positions.
12625
12626 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
12627 is its frame's selected window.
12628 (xim_instantiate_callback): Likewise.
12629
12630 * xfns.c (x_create_im): Removed.
12631 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
12632 (supported_xim_styles): Renamed from supported_styles.
12633 (best_xim_style): Renamed from best_style.
12634 (create_frame_xic): Renamed from xic_create_frame.
12635 (free_frame_xic): Renamed from xic_destroy_frame.
12636
12637 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
12638
12639 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
12640 our frames, call XFilterEvent with 2nd parameter `None'.
12641 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
12642 returning XBufferOverflow.
12643 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
12644 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
12645 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
12646 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
12647 (xim_initialize, xim_close)
12648 [HAVE_X_I18N && HAVE_X11R6]: New functions.
12649 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
12650 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
12651 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
12652
12653 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
12654 and `xim_styles'.
12655 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
12656 `xic_style' and `xic_xfs'.
12657 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
12658 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
12659 (FRAME_XIM): Removed.
12660
12661 * xfns.c (supported_styles): New variable.
12662 (DEFAULT_STYLE, DEFAULT_FONT): New macros
12663 (xic_create_xfontset, best_style, xic_create_frame)
12664 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
12665 (xic_set_xfontset): New functions.
12666
12667 2000-01-28 Dave Love <fx@gnu.org>
12668
12669 * s/irix6-5.h: Revert last change after change to irix5-0.h.
12670
12671 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
12672
12673 2000-01-28 Gerd Moellmann <gerd@gnu.org>
12674
12675 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
12676 for *scratch* if it already existed.
12677
12678 * emacs.c (USAGE): New macro.
12679 (main): Use it to display usage information.
12680
12681 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12682
12683 Support for the menu-help feature:
12684
12685 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
12686
12687 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
12688 part of the line to the termscript file.
12689 (IT_clear_to_end): Clear the entire line, not just its beginning.
12690 (menu_help_message, prev_menu_help_message): New variables.
12691 (IT_menu_make_room): Make room for the help_text member.
12692 (IT_menu_display): New argument disp_help; all callers changed.
12693 If disp_help is non-zero, store the help text of the active menu
12694 item in menu_help_message.
12695 (XMenuAddPane): Initialize the help_text member to NULL.
12696 (XMenuAddSelection): New argument help_text. Store it in the
12697 XMenu structure.
12698 (XMenuActivate): New argument help_callback. If the value of
12699 menu_help_message has changed since the last time, display the
12700 menu help message text while waiting for the mouse to move. Clear
12701 the echo area before exiting.
12702 (XMenuDestroy): Free the help_text member.
12703
12704 2000-01-27 Gerd Moellmann <gerd@gnu.org>
12705
12706 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
12707 XMenuAddSelection. Pass help callback to XMenuActivate.
12708 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
12709
12710 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12711
12712 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
12713 and EMACS_SET_USECS.
12714
12715 2000-01-26 Dave Love <fx@gnu.org>
12716
12717 * editfns.c (Fchar_after, Fchar_before): Doc fix.
12718
12719 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
12720 an error may be signalled.
12721
12722 2000-01-26 Gerd Moellmann <gerd@gnu.org>
12723
12724 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
12725 LD_SWITCH_SYSTEM inherited from irix5-0.h.
12726
12727 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
12728
12729 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12730
12731 * charset.c (Fstring): If there is a multibyte char among
12732 the args, always return a multibyte string.
12733
12734 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12735
12736 * sysdep.c (sys_select): Turn atimers off and on instead of
12737 recording and restoring old alarm handler
12738
12739 * process.c (toplevel): Include atimer.h.
12740 (create_process_1): Rewritten.
12741 (create_process): Use atimers instead of alarm.
12742 (wait_reading_process_input) [hpux]: Turn atimers off instead
12743 of turning off SIGALRM.
12744 (wait_reading_process_input): Turn off atimers instead off
12745 calling stop_polling.
12746
12747 * emacs.c (main): Call init_atimer.
12748
12749 * keyboard.c (toplevel): Include systime.h and atimer.h.
12750 (polling_for_input): Removed because unused.
12751 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
12752 (poll_timer): New variable.
12753 (poll_for_input, poll_for_input_1): New functions.
12754 (start_polling, stop_polling): Rewritten.
12755
12756 * keyboard.h (polling_for_input): Removed.
12757
12758 * atimer.h, atimer.c: New files.
12759
12760 * Makefile.in (obj): Add atimer.o.
12761 (atimer.o): New target.
12762
12763 * blockinput.h (pending_atimers): Add extern declaration.
12764 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
12765
12766 * lisp.h (popup_activated_flag): Add extern declaration.
12767
12768 * xmenu.c (popup_activated_flag): Make externally visible.
12769 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
12770 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
12771
12772 * xterm.c (toplevel): Include atimer.h.
12773 (toolkit_scroll_bar_interaction): New variable.
12774 (Fxt_process_timeouts): Removed.
12775 (x_process_timeouts): New function.
12776 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
12777 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
12778 (x_make_frame_visible): Call poll_for_input_1 instead of
12779 input_poll_signal. Don't call alarm.
12780 (x_initialize): Install timer calling x_process_timeouts.
12781
12782 2000-01-24 Dave Love <fx@gnu.org>
12783
12784 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
12785 Don't use -cckr -- apparently not now necessary.
12786
12787 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
12788
12789 * msdos.c (IT_menu_display): Truncate long menu lines at the right
12790 screen boundary.
12791
12792 2000-01-23 Jason Rumney <jasonr@gnu.org>
12793
12794 * w32fns.c (w32_defined_color): Apply gamma correction before
12795 trying to map to the palette.
12796 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
12797 to w32_clear_rect.
12798
12799 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
12800 here. Callers changed to always pass real device context.
12801 (w32_draw_bitmap): Likewise.
12802 (w32_get_glyph_overhangs): Likewise.
12803 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
12804 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
12805 pfnSetScrollInfo and SetScrollRange.
12806 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
12807 back into MULE characters after decoding them.
12808 (x_get_glyph_face_and_encoding): Likewise.
12809 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
12810 GetCharABCWidthsW fails, since this is defined on Windows 9x.
12811 (x_produce_glyphs): Calculate per char metrics for a character
12812 that we know exists in default font when font_not_found_p is true.
12813
12814 2000-01-22 Jason Rumney <jasonr@gnu.org>
12815
12816 * makefile.nt (intervals.obj, composite.obj): New modules.
12817 (composite.h): Added as dependency where appropriate.
12818
12819 * w32gui.h (XGCValue): New struct for emulating X GCs.
12820
12821 * w32term.h (XCharStruct): New struct for emulating X.
12822
12823 * w32console.c (turn_on_face, turn_off_face): New functions.
12824 (change_line_highlight): New prototype for new redisplay.
12825 (write_glyphs): Support multibyte text. Support faces.
12826
12827 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
12828
12829 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
12830 throughout. struct frame * in place of FRAME_PTR.
12831 Skeleton support for images, toolbars, tooltips from xfns.c.
12832 (Fx_create_frame): Use system default for default scroll bar width.
12833 (w32_get_arg): Renamed from x_get_arg.
12834 (Fx_file_dialog): New function.
12835 (w32_list_fonts): Check cache before asking system.
12836 (Vw32_enable_synthesized_fonts): New variable.
12837 (Vw32_enable_italics): Obsolete, removed.
12838
12839 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12840 Use SELECTED_FRAME macro.
12841
12842 * w32menu.c: Add skeleton support for help strings on menus.
12843 (add_menu_item): Native checkbox and radio support added, but not
12844 yet enabled due to bugs.
12845 (push_menu_item): Add parameters type, selection and help.
12846 Callers updated.
12847 Formatting changes to reduce unnecessary diffs with xmenu.c.
12848
12849 * w32select.c (Fw32_set_clipboard_data): Update call to
12850 find_charset_in_str.
12851
12852 * w32term.c: Complete rewrite for new redisplay based on new
12853 xterm.c with necessary sections merged back in from old w32term.c.
12854
12855 2000-01-21 Richard M. Stallman <rms@gnu.org>
12856
12857 * data.c (set_internal): Further fix in same criterion.
12858
12859 2000-01-20 Richard M. Stallman <rms@gnu.org>
12860
12861 * data.c (set_internal): Fix the criteria for whether
12862 to swap out the old cached binding.
12863
12864 2000-01-19 Dave Love <fx@gnu.org>
12865
12866 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
12867
12868 2000-01-18 Kenichi Handa <handa@etl.go.jp>
12869
12870 * regex.c (re_compile_fastmap): While checking a range table for
12871 `charset', skip flag bits for a character class correctly.
12872
12873 2000-01-17 Gerd Moellmann <gerd@gnu.org>
12874
12875 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
12876
12877 * xfns.c (x_window): Call lw_create_widget with new parameter list.
12878
12879 * widget.c (EmacsFrameSetCharSize): Change size of children first
12880 because of problems with main window geometry management under Lesstif.
12881
12882 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
12883 MENU_ITEMS_ITEM_.*.
12884 (MENU_ITEMS_ITEM_HELP): New enumerator.
12885 (push_menu_item): Add parameter HELP. Record help in menu_items.
12886 (single_menu_item, single_submenu, list_of_items): Call
12887 push_menu_item with new parameter.
12888 (single_submenu): Set help string in widget value.
12889 (menu_highlight_callback): New function.
12890 (set_frame_menubar): Call lw_create_widget with new
12891 parameter list.
12892 (xmenu_show, xdialog_show): Ditto.
12893
12894 2000-01-13 Gerd Moellmann <gerd@gnu.org>
12895
12896 * sound.c (Fplay_sound): Improve doc string.
12897
12898 2000-01-11 Richard M. Stallman <rms@gnu.org>
12899
12900 * lisp.h (set_internal): Enter the new arg.
12901
12902 * eval.c (specbind): Record buffer-local variables specially,
12903 indicating which buffer's binding was saved.
12904 (unbind_to): Restore buffer-local variables specially
12905 in the proper buffer.
12906
12907 * data.c (set_internal): New arg BUF.
12908
12909 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
12910 * data.c (Fset): Pass new arg to set_internal.
12911 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
12912
12913 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12914
12915 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
12916
12917 2000-01-11 Richard M. Stallman <rms@gnu.org>
12918
12919 * minibuf.c (Ftry_completion): Doc fix.
12920
12921 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12922
12923 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
12924 vector, too.
12925
12926 2000-01-11 Andreas Schwab <schwab@suse.de>
12927
12928 * coding.c (code_convert_region): Initialize total_skip.
12929
12930 2000-01-08 Dave Love <fx@gnu.org>
12931
12932 * eval.c (Fuser_variable_p): Check customizability too.
12933
12934 2000-01-07 Gerd Moellmann <gerd@gnu.org>
12935
12936 * minibuf.c (Fcompleting_read): Doc fix.
12937
12938 2000-01-05 Gerd Moellmann <gerd@gnu.org>
12939
12940 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
12941 -L /usr/local/lib.
12942
12943 * xfns.c (x_create_im): New function to set IM and IC of a frame.
12944 Check that input style is supported before trying to create an
12945 IC for it.
12946 (x_window): Call x_create_im.
12947
12948 2000-01-04 Gerd Moellmann <gerd@gnu.org>
12949
12950 * xfns.c (current_gif_memory_src): New variable.
12951 (gif_load): Record the address of the current memory source
12952 in current_gif_memory_src.
12953 (gif_read_from_memory): Use current_gif_memory_src.
12954
12955 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
12956 macros statement form.
12957
12958 * sound.c (struct sound): Renamed from struct sound_file.
12959 (struct sound): Add members `data' and `header_size'.
12960 (enum sound_attr): Add SOUND_DATA.
12961 (current_sound, current_sound_device): Variables renamed from
12962 sound_file and sound_device.
12963 (parse_sound): Parse :data.
12964 (parse_sound): Handle sound data in strings.
12965 (find_sound_type): Function renamed from find_sound_file_type.
12966 (wav_init, au_init): Fail if sound's header_size is smaller than
12967 needed header size.
12968 (wav_play, au_play): Play sounds from string data.
12969
12970 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
12971
12972 * lisp.h: Add prototype for allocate_string_data.
12973
12974 * alloc.c (Fgarbage_collect): Return number of live and free strings.
12975
12976 * alloc.c (mark_buffer): Remove code in #if 0.
12977 (gc_sweep): Ditto.
12978 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
12979 (strings_consed): New variable.
12980 (allocate_string): Set it.
12981 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
12982 (Fmemory_use_counts): Return strings_consed. Use Flist.
12983
12984 * alloc.c: General cleanup in comments etc. Remove conditional
12985 compilation for `standalone'.
12986
12987 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
12988
12989 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
12990 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
12991 (DONT_COPY_FLAG): Removed.
12992 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
12993 (struct sdata, struct sblock): New
12994 (struct string_block): Rewritten.
12995 (STRINGS_IN_STRING_BLOCK): New macro.
12996 (oldest_sblock, current_sblock, total_strings, total_free_strings)
12997 (large_sblocks, string_blocks, string_free_list): New variables.
12998 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
12999 (init_strings): Rewritten.
13000 (allocate_string, allocate_string_data, compact_small_strings)
13001 (free_large_strings, sweep_strings): New functions.
13002 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
13003 (struct string_block_head, current_string_block)
13004 (first_string_block, large_string_blocks, STRING_FULLSIZE)
13005 (STRING_PAD): Removed.
13006 (make_uninit_multibyte_string, make_pure_string): Rewritten.
13007 (Fgarbage_collect): Don't set mark bit in large strings.
13008 (mark_object): Mark strings differently. Mark symbol names
13009 differently.
13010 (survives_gc_p): Test marked strings differently.
13011 (gc_sweep): Sweep strings differently, unmark strings in
13012 symbol names.
13013 (compact_strings): Removed.
13014
13015 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
13016
13017 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
13018 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
13019
13020 2000-01-04 Kenichi Handa <handa@etl.go.jp>
13021
13022 * fileio.c (Finsert_file_contents): Signal error if visiting file
13023 in a non-empty buffer.
13024
13025 * term.c (encode_terminal_code): Fix the previous change.
13026
13027 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13028
13029 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
13030 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
13031
13032 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
13033
13034 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13035
13036 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
13037 need to test for MSDOS frames.
13038
13039 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13040
13041 * dosfns.c (unspecified_colors): Remove.
13042 (msdos_stdcolor_idx): Use global variables unspecified_fg and
13043 unspecified_bg.
13044 (msdos_stdcolor_name): Return strings for unspecified fore- and
13045 back-ground colors.
13046
13047 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
13048 (syms_of_xfaces): Remove their staticpro's.
13049 (tty_color_name): Return Lisp strings for unspecified fore- and
13050 back-ground colors.
13051 (Finternal_set_lisp_face_attribute): Remove the special treatment
13052 for Qunspecified_{f,b}g.
13053 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
13054
13055 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13056
13057 * xdisp.c (reseat_at_next_visible_line_start): Position before
13058 newline only if ending up on a newline.
13059 (next_element_from_ellipsis): Return success. Handle case of
13060 displaying no ellipsis. Fix case of ellipsis defined in display table.
13061 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
13062 returns 0.
13063
13064 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13065
13066 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
13067 (Fcolor_supported_p): Renamed from face-color-supported-p.
13068
13069 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13070
13071 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
13072 list of colors renamed to tty-defined-color-alist.
13073 (tty_color_name): Pass the frame to tty-color-by-index.
13074 (realize_tty_face): tty-color-alist is now a function which
13075 accepts the frame as argument.
13076
13077 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
13078
13079 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13080
13081 * term.c (insert_glyphs): Pass glyph, not &glyph, to
13082 encode_terminal_code.
13083
13084 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13085
13086 * dispnew.c (mode_line_string): Support termcap frames as well.
13087
13088 2000-01-01 Gerd Moellmann <gerd@gnu.org>
13089
13090 * syntax.c (Fforward_word): Undo previous change.
13091
13092 * editfns.c (Fconstrain_to_field): Don't constrain if
13093 inhibit-field-text-motion is non-nil.
13094 (Fline_beginning_position): Undo previous change.
13095 (Fline_end_position): Ditto.
13096
13097 * syntax.c (Fforward_word): Notice field boundaries only if
13098 inhibit-field-text-motion is nil.
13099
13100 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
13101
13102 * editfns.c (Vinhibit_field_text_motion): New variable.
13103 (inhibit-field-text-motion): New DEFVAR_LISP.
13104 (Fline_beginning_position, Fline_end_position): Notice field
13105 boundaries only if inhibit-field-text-motion is nil.
13106
13107 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
13108 All calls adjusted.
13109 (x_build_heuristic_mask): Likewise.
13110 (xbm_load_image_from_file): Change error output.
13111 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
13112 (gif_load, gs_load, x_kill_gs_process): Ditto.
13113
13114 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
13115 color indices when accessing raster pixels.
13116 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
13117 one of :file or :data.
13118 (enum pbm_keyword_index): Add PBM_DATA.
13119 (pbm_format): Add :data.
13120 (pbm_image_p): Allow either :file or :data.
13121 (pbm_read_file): New function.
13122 (pbm_scan_number): Rewritten to read from string.
13123 (pbm_load): Support :data.
13124
13125 See ChangeLog.8 for earlier changes.
13126
13127 ;; Local Variables:
13128 ;; coding: iso-2022-7bit
13129 ;; End:
13130
13131 Copyright (C) 2001 Free Software Foundation, Inc.
13132 Copying and distribution of this file, with or without modification,
13133 are permitted provided the copyright notice and this notice are preserved.