]> code.delx.au - gnu-emacs/blob - src/ChangeLog
e8dd588bdd2867ade670679d331b8cd578613ed3
[gnu-emacs] / src / ChangeLog
1 2002-02-13 Richard M. Stallman <rms@gnu.org>
2
3 * keyboard.c (Fthis_command_keys, Fthis_command_keys_vector)
4 (Fthis_single_command_keys, Fthis_single_command_raw_keys)
5 (Fclear_this_command_keys): Doc fixes.
6
7 * xfaces.c (Finternal_make_lisp_face, Finternal_copy_lisp_face)
8 (update_face_from_frame_parameter): Increment face_change_count
9 and windows_or_buffers_changed to force redisplay using changed faces.
10
11 * xdisp.c (QCpropertize): New variable.
12 (mode_line_proptrans_alist): New variable.
13 (display_mode_element): New arg PROPS; all calls changed.
14 Implement this, for strings.
15 Handle literal output of strings by sharing the
16 main-line code for strings, using local var `literal'.
17 Handle :propertize feature.
18 (syms_of_xdisp): Initialze and staticpro QCpropertize and
19 mode_line_proptrans_alist.
20
21 2002-02-11 Kim F. Storm <no-spam@cua.dk>
22
23 * window.c: (Vmode_line_in_non_selected_windows): New variable.
24 (syms_of_window): DEFVAR_LISP it.
25
26 * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3): New macro.
27 (CURRENT_MODE_LINE_FACE_ID): Use it.
28 (Vmode_line_in_non_selected_windows): Declare extern.
29
30 * xdisp.c (display_mode_lines): Use CURRENT_MODE_LINE_FACE_ID_3
31 to get mode line face.
32
33 2002-02-11 Eli Zaretskii <eliz@is.elta.co.il>
34
35 * msdos.c (Vx_bitmap_file_path, x_stretch_cursor_p): Remove these
36 variables; cus-start.el doesn't need them anymore.
37
38 2002-02-09 Kim F. Storm <storm@cua.dk>
39
40 * insdel.c (make_gap_smaller): Preserve BEG_UNCHANGED during gap
41 reduction. This fixes a display problem where stray newlines were
42 inserted in the window (corrected by C-l). Clarified code (IMHO).
43
44 2002-02-09 Eli Zaretskii <eliz@is.elta.co.il>
45
46 * dispextern.h (CURRENT_MODE_LINE_FACE_ID): Fix last change.
47
48 * xdisp.c (display_mode_lines): Fix last change.
49
50 2002-02-09 Jason Rumney <jasonr@gnu.org>
51
52 * w32fns.c (enum_font_cb2): Don't let charsets unknown to Windows
53 match each other.
54 (w32_load_system_font): Prevent Cleartype fonts from loading.
55 (Fx_show_tip): Ensure tip frames are above other topmost windows.
56
57 2002-02-09 Kim F. Storm <storm@cua.dk>
58
59 * dispextern.h (CURRENT_MODE_LINE_FACE_ID): New macro.
60 (CURRENT_MODE_LINE_HEIGHT): Use it.
61 (enum face_id): Add MODE_LINE_INACTIVE_FACE_ID.
62
63 * xdisp.c (window_box_height): Use CURRENT_MODE_LINE_FACE_ID.
64 (pos_visible_p, handle_face_prop): Likewise.
65 (display_mode_lines): Likewise, but for the real selected window.
66 (init_iterator) [row == NULL]: Handle MODE_LINE_INACTIVE_FACE_ID.
67
68 * xfaces.c (Qmode_line_inactive): New face variable for mode-line
69 in non-selected windows.
70 (realize_basic_faces): Realize it.
71 (syms_of_term): Intern and staticpro it.
72
73 2002-02-08 Kim F. Storm <storm@cua.dk>
74
75 * alloc.c (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK):
76 Changed mail addresses to emacs-devel@gnu.org.
77
78 2002-02-08 Eli Zaretskii <eliz@is.elta.co.il>
79
80 * fileio.c (Fsubstitute_in_file_name): If the file name includes
81 ~user, and there's no such user, don't discard everything before
82 ~user.
83
84 * floatfns.c (Fround): Doc fix.
85
86 2002-02-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
87
88 * sysdep.c (init_system_name): Put unused variable `p' in #if 0.
89
90 2002-02-07 Stefan Monnier <monnier@cs.yale.edu>
91
92 * lisp.h (Fx_file_dialog): Add extern decl (used in fileio.c).
93
94 2002-02-07 Kim F. Storm <storm@cua.dk>
95
96 * keymap.c (where_is_internal): Only check whether definition is
97 remapped if it fulfills is_command_symbol.
98
99 2002-02-07 Andreas Schwab <schwab@suse.de>
100
101 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT): Define to 2 for m68k.
102
103 * alloc.c (mark_stack): Don't assume sizeof (Lisp_Object) is 4.
104
105 2002-02-06 Kim F. Storm <storm@cua.dk>
106
107 * keymap.c (Fdefine_key): Allow symbol as KEY argument for
108 defining command remapping. Doc updated.
109 (Flookup_key): Remap command through keymap if KEY is a symbol.
110 (is_command_symbol): New function.
111 (Fkey_binding): Use it. New optional argument NO-REMAP.
112 Doc updated. Callers changed. Perform command remapping via
113 recursive call unless that arg is non-nil.
114 (where_is_internal): New argument no_remap. Callers changed.
115 Call recursively to find original key bindings for a remapped
116 comand unless that arg is non-nil.
117 (Fwhere_is_internal): New optional argument NO-REMAP.
118 Doc updated. Callers changed. Pass arg to where_is_internal.
119
120 * keymap.h (Fkey_binding, Fwhere_is_internal): Update prototype.
121 (is_command_symbol): Added prototype.
122
123 * keyboard.c (Vthis_original_command): New variable.
124 (syms_of_keyboard): DEFVAR_LISP it.
125 (command_loop_1): Set it, and perform command remapping.
126
127 2002-02-06 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
128
129 * keyboard.c (recursive_edit_1): Call cancel_hourglass
130 unconditionally.
131
132 2002-02-06 Jason Rumney <jasonr@gnu.org>
133
134 * w32term.c (w32_native_per_char_metric): Disable 2002-01-20 change.
135
136 2002-02-06 Eli Zaretskii <eliz@is.elta.co.il>
137
138 * charset.c (get_charset_id): Use if-else instead of ?:.
139
140 2002-02-06 Richard M. Stallman <rms@gnu.org>
141
142 * filelock.c (S_ISLNK): Define if not defined.
143
144 2002-02-03 Richard M. Stallman <rms@gnu.org>
145
146 * fileio.c (Fdo_auto_save): Improve "auto save disabled" msg.
147
148 * lread.c (read1): Redesign strategy for force_multibyte and
149 force_singlebyte. Now is_multibyte records whether read_buffer
150 is multibyte. Encountering any multibyte character makes it so.
151
152 2002-02-02 Stefan Monnier <monnier@cs.yale.edu>
153
154 * term.c (term_get_fkeys_1): If `k0' and `k;' are both specified and
155 with the same sequence, map that sequence to f10 rather than f0.
156
157 2002-02-03 Andreas Schwab <schwab@suse.de>
158
159 * s/gnu-linux.h: Check for __mc68000__ instead of __m68k__, the
160 latter never being defined on GNU/Linux.
161
162 2002-02-02 Eli Zaretskii <eliz@is.elta.co.il>
163
164 * xfaces.c (realize_default_face): Don't set the weight and slant
165 of the default face to Qnormal, unless these attributes are
166 unspecified.
167
168 2002-02-02 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
169
170 * keyboard.c (command_loop_1) [HAVE_X_WINDOWS]:
171 Call cancel_hourglass unconditionally.
172
173 * eval.c (Fsignal): Remove duplicated declaration of
174 the variable `display_hourglass_p'.
175
176 2002-01-31 Richard M. Stallman <rms@gnu.org>
177
178 * editfns.c (region_limit): Nicer error message.
179
180 * coding.c (decode_composition_emacs_mule):
181 Give up if NCOMPONENT gets too large to index `component'.
182
183 * callint.c (check_mark): New arg to specify clearer error message.
184 Callers changed.
185
186 2002-01-27 Richard M. Stallman <rms@gnu.org>
187
188 * minibuf.c (Fcompleting_read): Doc fix.
189
190 2002-01-27 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
191
192 * minibuf.c (Fread_from_minibuffer, Fread_command, Fread_function)
193 (Fread_variable, Fread_buffer, minibuffer-completion-confirm):
194 Fix doc-strings.
195
196 2002-01-26 Richard M. Stallman <rms@gnu.org>
197
198 * buffer.c (syms_of_buffer): Doc fixes for scroll-...-aggressively.
199
200 * xdisp.c (try_scrolling): Exchange uses of scroll_down_aggressively
201 and scroll_up_aggressively.
202
203 2002-01-26 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
204
205 * keyboard.c (parse_tool_bar_item): Remove duplicated prototypes.
206
207 2002-01-25 Stefan Monnier <monnier@cs.yale.edu>
208
209 * textprop.c (Fnext_property_change, Fnext_single_property_change)
210 (Fprevious_property_change, Fprevious_single_property_change):
211 Stay within the narrowed-buffer boundaries.
212
213 2002-01-25 Eli Zaretskii <eliz@is.elta.co.il>
214
215 * term.c (Ftty_display_color_cells): New function.
216 (syms_of_term): Defsubr it.
217 (Ftty_display_color_cells, Ftty_display_color_p): Change the
218 argument name to DISPLAY. Doc fix.
219
220 * dispextern.h: Add prototype for set_tty_color_mode and
221 tty_setup_colors.
222
223 2002-01-24 Jason Rumney <jasonr@gnu.org>
224
225 * w32term.c (x_scroll_run): Use ScrollWindowEx in place of BitBlt.
226 If region left to draw is not what was expected, mark the frame as
227 garbaged.
228
229 * w32fns.c (w32_wnd_proc) <WM_PAINT>: Initialize update_rect.
230 Combine the regions returned by BeginPaint and GetUpdateRect.
231
232 2002-01-23 Jason Rumney <jasonr@gnu.org>
233
234 * w32term.c (x_update_window_begin): Only hide caret if
235 w32_use_visible_system_caret is set.
236 (x_update_window_end): Only show caret if
237 w32_use_visible_system_caret is set.
238 (syms_of_w32term): Handle SystemParametersInfo call failing.
239
240 * w32fns.c (syms_of_w32fns): Initialize w32_visible_system_caret_hwnd.
241
242 2002-01-22 Richard M. Stallman <rms@gnu.org>
243
244 * unexelf.c (unexec): Define n so as to cause compilation error
245 for the code where people have often written n instead of nn.
246
247 * .gdbinit (hookpost-run): Defined.
248
249 2002-01-22 Jan D. <Jan.Djarv@mbox200.swipnet.se>
250
251 * xfns.c (x_set_frame_parameters): Typo in previous fix corrected.
252
253 2002-01-21 Jan D. <Jan.Djarv@mbox200.swipnet.se>
254
255 * xfns.c (x_set_frame_parameters): Just call x_fullscreen_adjust
256 if fullscreen is being set.
257
258 2002-01-21 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
259
260 * minibuf.c (Fminibuffer_contents)
261 (Fminibuffer_contents_no_properties, Fread_from_minibuffer)
262 (Fread_string, Fread_no_blanks_input, Fcompleting_read): Doc fixes.
263
264 2002-01-21 Richard M. Stallman <rms@gnu.org>
265
266 * window.c (check_frame_size): Fix minimum height calculation.
267
268 2002-01-20 Ken Raeburn <raeburn@gnu.org>
269
270 * dispextern.h (WINDOW_WANTS_MODELINE_P): Use XFASTINT on window
271 height before comparison.
272 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
273
274 2002-01-20 Jason Rumney <jasonr@gnu.org>
275
276 * w32term.c (w32_system_caret_width): Remove.
277 (w32_use_visible_system_caret): New user flag.
278 (syms_of_w32term): DEFVAR_BOOL it. Initialize based on whether
279 Windows reports a screen reader running.
280 (x_update_window_begin): Hide the system caret.
281 (x_update_window_end): Show the system caret.
282 (x_display_and_set_cursor): Don't draw a cursor when
283 w32_use_visible_system_caret is set. Do not adjust width.
284
285 * w32fns.c (w32_visible_system_caret_hwnd): New static variable.
286 (w32_wnd_proc) <WM_KILL_FOCUS, WM_EMACS_DESTROY_CARET>: Set it.
287 <WM_EMACS_TRACK_CARET>: Arrange for system caret to be visible if
288 the user requests it. Use system default width when creating.
289 <WM_EMACS_HIDE_CARET, WM_EMACS_SHOW_CARET>: Handle new messages.
290
291 * w32term.h (WM_EMACS_SHOW_CARET, WM_EMACS_HIDE_CARET):
292 New window messages.
293
294 2002-01-20 Richard M. Stallman <rms@gnu.org>
295
296 * window.c (MIN_SAFE_WINDOW_HEIGHT): Value now 1.
297
298 2002-01-20 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
299
300 * doprnt.c (doprnt1): Fix typos in error call.
301
302 2002-01-20 Eli Zaretskii <eliz@is.elta.co.il>
303
304 * unexelf.c (unexec) [__sgi]: Support the .got sections.
305
306 2002-01-20 Jason Rumney <jasonr@gnu.org>
307
308 * w32term.c (w32_native_per_char_metric): Don't trust the metrics
309 that Windows returns. If a double check fails, try to guess how
310 ExtTextOut is going to act.
311
312 * w32fns.c (w32_load_system_font, w32_to_x_charset): Use strnicmp
313 in place of stricmp.
314 (w32_list_synthesized_fonts): Removed.
315 (w32_to_all_x_charsets, enum_font_maybe_add_to_list): New functions.
316 (struct enumfont_t): New element; list.
317 (enum_font_cb2): List all style and charset variations of a font.
318 (Fw32_select_font): New optional argument; include_proportional.
319 Exclude vertical fonts. Exclude proportional fonts unless
320 include_proportional is non-nil.
321 (w32_enable_synthesized_fonts): Change to a boolean.
322 (Fw32_send_sys_command): Doc fix.
323
324 2002-01-19 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
325
326 * dispnew.c (update_frame): Move the variable `tem' to the block
327 where it is used.
328
329 2002-01-19 Jason Rumney <jasonr@gnu.org>
330
331 * w32fns.c (Fx_create_frame): Bind redisplay-dont-pause around
332 call to face-set-after-frame-default.
333
334 2002-01-18 Richard M. Stallman <rms@gnu.org>
335
336 * dispextern.h (WINDOW_WANTS_MODELINE_P): Check window height > 1.
337 (WINDOW_WANTS_HEADER_LINE_P): Check window height provides room.
338
339 2002-01-17 Richard M. Stallman <rms@gnu.org>
340
341 * window.c (enlarge_window): When exceeding size of parent,
342 directly delete all the siblings instead of trying to resize it.
343
344 2002-01-17 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
345
346 * term.c (set_tty_color_mode): Remove unused variable `tem'.
347
348 2002-01-16 Henrik Enberg <henrik@enberg.org>
349
350 * lread.c (init_lread): Move the installed-lisp dirs later in the path.
351
352 2002-01-16 Kim F. Storm <storm@cua.dk>
353
354 * xterm.c (x_erase_phys_cursor): Don't erase cursor if cursor row
355 is invisible. This can happen if cursor is on top line of a
356 window, and we switch to a buffer with a header line.
357
358 * w32term.c (x_erase_phys_cursor): Ditto.
359
360 2002-01-16 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
361
362 * xterm.c (XTread_socket) [!USE_X_TOOLKIT]: Compute the value of
363 `dont_resize' only when used.
364
365 * xdisp.c: Remove forgotten extern declaration of `Qimage'.
366
367 2002-01-15 Eli Zaretskii <eliz@is.elta.co.il>
368
369 * xdisp.c (display_mode_element): When computing charpos, depend
370 on multibyteness of elt, not the text in field.
371
372 2002-01-15 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
373
374 * buffer.c (Fkill_all_local_variables): Increment
375 `update_mode_lines' only once.
376
377 2002-01-14 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
378
379 * lisp.h (adjust_after_replace_noundo)
380 (Fupdate_coding_systems_internal): Add prototypes.
381
382 * sound.c (Fplay_sound): Initialize header_size also for :data case.
383
384 2002-01-14 Eli Zaretskii <eliz@is.elta.co.il>
385
386 Support for the --color command-line argument and tty-color-mode
387 frame parameter:
388
389 * term.c (tty_default_color_capabilities, tty_setup_colors)
390 (set_tty_color_mode): New functions.
391 (term_init): Call tty_default_color_capabilities.
392 (Qtty_color_mode_alist): New variable.
393 (syms_of_term): Intern and staticpro it.
394
395 * frame.c (store_frame_param): Call set_tty_color_mode for termcap
396 frames.
397 (do_switch_frame): For termcap frames, switch the tty
398 color mode as specified by the frame's parameters.
399 (Qtty_color_mode): New variable.
400 (syms_of_frame): Intern and staticpro it.
401
402 * emacs.c (USAGE2): Add the --color option.
403 (standard_args): Ditto.
404
405 2002-01-13 Jan Djarv <Jan.Djarv@mbox200.swipnet.se>
406
407 * xterm.h (struct x_output): New members want_fullscreen,
408 x_pixels_diff, y_pixels_diff, x_pixels_outer_diff, and
409 y_pixels_outer_diff.
410 New enum for FULLSCREEN_* constants.
411 (FRAME_OUTER_WINDOW): Handle the case where output_data.x->widget
412 is NULL.
413 (x_fullscreen_adjust): Add prototype.
414
415 * emacs.c (USAGE2): Add the new full-screen arguments.
416 (standard_args): Ditto.
417
418 * xfns.c (Qfullscreen, Qfullwidth, Qfullheight, Qfullboth):
419 New variables.
420 (syms_of_xfns): Intern and staticpro them.
421 (x_frame_parms) <"fullscreen">: New parameter.
422 (x_fullscreen_move, x_set_fullscreen): New functions.
423 (x_set_frame_parameters): Support for Qfullscreen.
424 (x_real_positions): More accurate computation of the frame position.
425 (x_figure_window_size): Support full-screen frames.
426 (Fx_create_frame): Default the fullscreen parameter.
427
428 * xterm.c (x_check_fullscreen, x_fullscreen_adjust): New functions.
429 (XTread_socket) <Expose>: Call x_check_fullscreen.
430 <ConfigureNotify>: Don't resize to fullscreen.
431 Call x_check_fullscreen_move, and set the want_fullscreen member of
432 output_data.x.
433
434 2002-01-13 Jason Rumney <jasonr@gnu.org>
435
436 * w32term.h (WM_XBUTTONDOWN, WM_XBUTTONUP): New window messages
437 for mice with more than 3 buttons.
438
439 * w32term.c (parse_button): New parameter xbutton. Callers changed.
440 (w32_read_socket): Handle new "XBUTTON" messages.
441
442 * w32fns.c (w32_pass_extra_mouse_buttons_to_system): New user option.
443 (syms_of_w32fns): DEFVAR_BOOL it.
444 (w32_wnd_proc): Handle new "XBUTTON" messages.
445
446 2002-01-13 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
447
448 * keyboard.c (read_key_sequence): Remove unused variable `extra_maps'.
449
450 2002-01-13 Andreas Schwab <schwab@suse.de>
451
452 * xterm.c (x_load_font): Never set fonts_changed_p to zero.
453
454 2002-01-12 Andreas Schwab <schwab@suse.de>
455
456 * .gdbinit (xbuffer): Remove address operator since data is now a
457 pointer.
458
459 2002-01-11 Richard M. Stallman <rms@gnu.org>
460
461 * insdel.c (adjust_after_replace_noundo): New function.
462
463 * coding.c (code_convert_region): Don't copy old text if undo disabled.
464
465 2002-01-09 Jason Rumney <jasonr@gnu.org>
466
467 * xdisp.c (x_consider_frame_title): Don't count the tooltip frame
468 when checking for multiple frames.
469
470 2002-01-08 Richard M. Stallman <rms@gnu.org>
471
472 * window.c (delete_window): Rewrite the code for changing the
473 selected window to handle the case where WINDOW is not a leaf.
474
475 2002-01-07 Eli Zaretskii <eliz@is.elta.co.il>
476
477 * process.c (send_process): Set src_multibyte to 1 after the call
478 top setup_coding_system, not before the call.
479
480 2002-01-07 Jason Rumney <jasonr@gnu.org>
481
482 * xmenu.c (set_frame_menubar, xmenu_show):
483 (xdialog_show): Initialize wv->help to Qnil.
484
485 * w32menu.c (single_submenu, set_frame_menubar, w32_menu_show):
486 (w32_dialog_show): Initialize wv->help to Qnil.
487
488 2002-01-06 Jason Rumney <jasonr@gnu.org>
489
490 * xmenu.c (single_submenu): Initialize wv->help to Qnil.
491
492 * w32menu.c (w32_menu_display_help): Revert last change.
493
494 * xmenu.c (menu_highlight_callback): Revert last change.
495
496 2002-01-06 Andreas Schwab <schwab@suse.de>
497
498 * insdel.c (make_gap_larger): Make sure buffer size does not
499 overflow range of int.
500
501 2002-01-05 Jason Rumney <jasonr@gnu.org>
502
503 * w32term.c (x_draw_glyphs): Don't call notice_overwritten_cursor if
504 OVERLAPS_P.
505
506 * w32menu.c (w32_menu_display_help): Hide any tooltip window.
507
508 * w32fns.c (compute_tip_xy): If tooltip won't fit on the screen
509 to the left or to the right of the pointer, put it against
510 the left screen edge.
511 (x_frame_parms): Add missing braces around initializer.
512
513 * w32term.c (x_setup_relief_colors): Don't compute an image's
514 background color if it doesn't have a Pixmap.
515 (notice_overwritten_cursor): Don't depend on
516 output_cursor and updated_area. Compare pixel coordinates with
517 window's cursor pixel coordinates.
518 (x_draw_glyphs, x_clear_end_of_line, show_mouse_face):
519 Call notice_overwritten_cursor with new arg list.
520 (show_mouse_face): Fix bug setting a row's mouse_face_p flag
521 unconditionally.
522 (x_draw_image_relief): Use predefined macro instead of
523 constant when the value of `tool_bar_button_relief' is negative.
524
525 * w32term.c (x_display_and_set_cursor): Fix PostMessage arg types.
526
527 2002-01-04 Richard M. Stallman <rms@gnu.org>
528
529 * xmenu.c (menu_highlight_callback): Hide any tooltip window.
530
531 2002-01-03 Richard M. Stallman <rms@gnu.org>
532
533 * keymap.c (Fcurrent_active_maps): Put the `keymap' property map first.
534 (Fkey_binding): Try the `keymap' property map first.
535 (Fdescribe_buffer_bindings): Show `keymap' property bindings before
536 minor mode bindings.
537
538 2002-01-03 Kim F. Storm <storm@cua.dk>
539
540 * keyboard.c (read_key_sequence): Fixed cast of submaps arg to bcopy.
541
542 2002-01-02 Richard M. Stallman <rms@gnu.org>
543
544 * keyboard.c (read_key_sequence): Handle the keymap property
545 before minor mode maps.
546
547 * editfns.c (Fformat): Update thissize from field_width
548 based on the actual width, in the string case.
549
550 2002-01-01 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
551
552 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Parenthesize assignment
553 when used as truth value to prevent gcc warnings.
554
555 * sysdep.c, unexapollo.c, w32.c, w32bdf.c, w32heap.c, w32inevt.c,
556 * w32proc.c: Include <config.h>.
557
558 2002-01-01 Andreas Schwab <schwab@suse.de>
559
560 * eval.c (max_specpdl_size, max_lisp_eval_depth): Define as int,
561 not EMACS_INT, to make them compatible with DEFVAR_INT.
562 * lisp.h (max_specpdl_size): Adjust declaration.
563
564 2002-01-01 Richard M. Stallman <rms@gnu.org>
565
566 * print.c (print_object): Test print_escape_nonascii only for
567 unibyte strings.
568 (PRINTPREPARE): Once again bind Qprint_escape_nonascii
569 when outputting to a multibyte buffer.
570
571 2001-12-29 Richard M. Stallman <rms@gnu.org>
572
573 * print.c (print_object): In multibyte string, use hex escapes.
574 Use octal only for unibyte strings.
575 (PRINTPREPARE): Don't ever set Qprint_escape_nonascii.
576
577 * lread.c (read_escape): New arg BYTEREP for reporting whether
578 escape forces unibyte or multibyte.
579 (read1): When reading a string, take note of that info.
580
581 2001-12-29 Ken Raeburn <raeburn@gnu.org>
582
583 * abbrev.c (Fexpand_abbrev): Use NILP instead of implicit zero
584 comparison to test lisp value returned by Fget.
585
586 2001-12-29 Richard M. Stallman <rms@gnu.org>
587
588 * lisp.h (max_specpdl_size): Add declaration.
589
590 * fileio.c (Fdo_auto_save): If NO_MESSAGE, don't call push_message.
591
592 * keymap.c (silly_event_symbol_error): New subrtn, from Fdefine_key.
593 Handle modifier bits. Correct typo in error message.
594
595 2001-12-28 Richard M. Stallman <rms@gnu.org>
596
597 * abbrev.c: Use the plist of an abbrev for multiple params if nec.
598 (Fdefine_abbrev): New arg SYSTEM-FLAG for a system abbrev.
599 (Fdefine_global_abbrev, Fdefine_mode_abbrev):
600 Update calls to Fdefine_abbrev.
601 (write_abbrev): Update for changed data format.
602 Don't list "system" abbrevs.
603 (Fexpand_abbrev): Update use count with new data format.
604 (describe_abbrev): Update for changed data format.
605 (Fdefine_abbrev_table): Handle the new SYSTEM-FLAG.
606
607 * config.in (HAVE_MBSINIT): Add #undef.
608
609 * strftime.c (mbsinit): Define as no-op if not available.
610
611 * s/sco5.h (LIBX11_SYSTEM) [MOTIF]: Add -lgen.
612 (sigprocmask_set): Conditionalize decl on ! NOT_C_CODE.
613
614 * keymap.c (Flookup_key): Error message if key has wrong data type.
615 (Fdefine_key): Add error message for trying to bind [DEL], [RET], etc.
616 (exclude_key): New variable.
617
618 2001-12-28 Gerd Moellmann <gerd@gnu.org>
619
620 * xterm.c (x_setup_relief_colors): Don't compute an image's
621 background color if it doesn't have a Pixmap.
622
623 * xterm.c (notice_overwritten_cursor): Don't depend on
624 output_cursor and updated_area. Compare pixel coordinates with
625 window's cursor pixel coordinates.
626 (x_draw_glyphs, x_clear_end_of_line, show_mouse_face):
627 Call notice_overwritten_cursor with new arg list.
628 (show_mouse_face): Fix bug setting a row's mouse_face_p flag
629 unconditionally.
630
631 * xdisp.c (try_scrolling) <PT below scroll margin>: Add the
632 height of the cursor line to the amount to scroll.
633
634 2001-12-27 Richard M. Stallman <rms@gnu.org>
635
636 * intervals.c (set_point_both): The position after an invisible,
637 intangible character is not an acceptable stopping point.
638
639 2001-12-27 Ken Raeburn <raeburn@gnu.org>
640
641 * window.c (enlarge_window): In new preserve_before code, convert
642 CURBEG from lisp object to integer before doing arithmetic.
643
644 2001-12-27 Richard M. Stallman <rms@gnu.org>
645
646 * bytecode.c (Fbyte_code): Undo previous change.
647
648 2001-12-26 Kim F. Storm <storm@cua.dk>
649
650 * keyboard.c (record_char): Ignore duplicate help-echo events only
651 separated by mouse-movement. When tracking mouse, only record
652 first and last mouse-movement event in same window.
653 Don't record mouse-movement events in keyboard macros.
654
655 2001-12-25 Richard M. Stallman <rms@gnu.org>
656
657 * window.c (enlarge_window): New arg PRESERVE_BEFORE. Callers changed.
658 (Fenlarge_window): New arg PRESERVE_BEFORE.
659
660 * bytecode.c (Fbyte_code): Use Fstring_make_unibyte
661 instead of Fstring_as_unibyte.
662
663 2001-12-22 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
664
665 The following changes remove mocklisp support:
666
667 * mocklisp.h, mocklisp.c: Files removed.
668
669 * lisp.h: Remove declarations of variables `Vmocklisp_arguments',
670 `Qmocklisp' and `Qmocklisp_arguments'.
671 Remove prototype of syms_of_mocklisp.
672
673 * makefile.nt, makefile.w32-in, Makefile.in: Remove mocklisp files.
674
675 * callint.c: Do not include mocklisp.h.
676 (Fcall_interactively): Do not test for mocklisp case.
677
678 * eval.c: Remove variables `Qmocklisp_arguments',
679 `Vmocklisp_arguments' and `Qmocklisp'. Remove prototype of ml_apply.
680 (Fprogn, Fwhile, Fcommandp, Feval, Ffuncall, funcall_lambda):
681 Do not test for mocklisp case.
682 (Fwhile): Remove unused variable `tem'.
683 (syms_of_eval): Remove variable `moclisp-arguments'.
684
685 * data.c (wrong_type_argument): Remove mocklisp case.
686
687 * doc.c (Fdocumentation): Remove mocklisp case.
688
689 * emacs.c (main): Do not call syms_of_mocklisp.
690
691 2001-12-21 Richard M. Stallman <rms@gnu.org>
692
693 * xfns.c (compute_tip_xy): If tooltip won't fit on the screen
694 to the left or to the right of the pointer, put it against
695 the left screen edge.
696
697 2001-12-21 Eli Zaretskii <eliz@is.elta.co.il>
698
699 * Makefile.in (distclean): Remove .gdbinit if we are building
700 outside the source tree.
701
702 2001-12-19 Eli Zaretskii <eliz@is.elta.co.il>
703
704 * w32.c (emacs_root_dir): New function.
705
706 * msdos.c (emacs_root_dir): New function.
707
708 * fileio.c (Fexpand_file_name) [DOS_NT]: Use the root directory
709 of the current drive as the fallback for default_directory.
710
711 * dired.c (file_name_completion): Run the elements of
712 completion-ignored-extensions through ENCODE_FILE.
713
714 * lisp.h (scmp): Remove prototype, since it's now a static
715 function private to dired.c.
716
717 2001-12-18 Richard M. Stallman <rms@gnu.org>
718
719 * dired.c (scmp): Function moved from minibuf.c.
720 Delete multibyte handling--used only on encoded strings.
721
722 * minibuf.c (scmp): Function moved to dired.c.
723
724 * fns.c (merge): Add QUIT call.
725
726 2001-12-18 Dave Love <fx@gnu.org>
727
728 * Makefile.in (lisp, shortlisp): Add language/utf-8-lang.el,
729 language/georgian.el.
730
731 2001-12-18 Eli Zaretskii <eliz@is.elta.co.il>
732
733 * Makefile.in (lisp, shortlisp): Synchronize with changes to
734 lisp/Makefile.in:DONTCOMPILE.
735
736 2001-12-18 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
737
738 * xdisp.c (window_box_height): Do not return negative values.
739 From Gerd Moellmann <gerd@gnu.org>.
740
741 * keyboard.c (head_table): Add missing braces around initializer.
742
743 * term.c (keys): Likewise.
744
745 * xfns.c (x_frame_parms, visual_classes): Likewise.
746
747 2001-12-17 Sam Steingold <sds@gnu.org>
748
749 * coding.c (DECODE_COMPOSITION_END): Fixed a typo in the last
750 patch (COMPOSING_P, not COMPOSING).
751
752 2001-12-17 Richard M. Stallman <rms@gnu.org>
753
754 * editfns.c (Fcompare_buffer_substrings): Add QUIT to main loop.
755
756 * coding.c (code_convert_region): Update coding->cmp_data->char_offset
757 before calling decode_coding.
758
759 * charset.c (Fdefine_charset): Call Fupdate_coding_systems_internal.
760
761 * coding.c (DECODE_COMPOSITION_END): Check for ! COMPOSING_P (coding)
762 instead of only for COMPOSITION_DISABLED.
763
764 2001-12-16 Richard M. Stallman <rms@gnu.org>
765
766 * alloc.c (pure_alloc): After overflow, allocate just a small block.
767
768 * Makefile.in (xmenu.o, xterm.o, fontset.o): Depend on buffer.h.
769
770 * buffer.h (struct buffer): New field `display_error_modiff'.
771 * buffer.c (reset_buffer): Initialize `display_error_modiff'.
772
773 * window.c (Frecenter): Clear display_error_modiff field.
774
775 * xdisp.c (redisplay_window_0, redisplay_window_1): New functions.
776 Call redisplay_window, but not if display_error_modiff field says no.
777 (redisplay_window_error): New function.
778 (displayed_buffer): New variable.
779 (redisplay_internal, redisplay_windows): Call the new functions
780 instead of redisplay_window directly.
781
782 2001-12-15 Richard M. Stallman <rms@gnu.org>
783
784 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Doc fix.
785
786 2001-12-14 Andrew Innes <andrewi@gnu.org>
787
788 * makefile.w32-in (EMACSLOADPATH): Define.
789 ($(EMACS)): Run `list-load-path-shadows' after dumping emacs.
790 (bootstrap-temacs): Remove dependency on bootstrap-clean.
791
792 2001-12-13 Eli Zaretskii <eliz@is.elta.co.il>
793
794 * xfns.c (x_report_frame_params): Make the scroll-bar-width frame
795 parameter have a numeric value all the time.
796
797 * w32fns.c (x_report_frame_params): Likewise.
798
799 2001-12-12 Richard M. Stallman <rms@gnu.org>
800
801 * fileio.c (Fwrite_region): Doc fix.
802
803 * xdisp.c (CLEAR_FACE_CACHE_COUNT): Redefine as 500.
804 (redisplay_internal): Call clear_image_cache only for window terminals.
805
806 2001-12-12 Gerd Moellmann <gerd@gnu.org>
807
808 * xdisp.c (move_it_vertically_backward): Change heuristic
809 for the case that we didn't move far enough initially.
810
811 * window.c (Frecenter): Simplify computation in the case of window
812 system frames and ARG < 0; use window_box_height.
813
814 2001-12-11 Richard M. Stallman <rms@gnu.org>
815
816 * Makefile.in, mem-limits.h, dispnew.c, emacs.c, fileio.c:
817 * process.c, sysdep.c, unexec.c: Test GNU_LINUX, not LINUX.
818
819 2001-12-11 Andrew Innes <andrewi@gnu.org>
820
821 * insdel.c (make_gap) [DOUG_LEA_MALLOC]: Call make_gap_smaller if
822 arg is negative.
823
824 2001-12-11 Richard M. Stallman <rms@gnu.org>
825
826 * m/hp800.h: Split the __hpux conditional into the parts
827 that are right for GNU/Linux too and the parts that are not.
828 Use the former if GNU_LINUX.
829 (HAVE_ALLOCA, LOAD_AVE_TYPE, LOAD_AVE_CVT): New defs for GNU/Linux.
830
831 * s/gnu-linux.h (GNU_LINUX): Defined.
832
833 2001-12-11 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
834
835 * macros.c, msdos.c, w16select.c: Change doc-string comments to
836 `new style' [w/`doc:' keyword].
837
838 2001-12-10 Jason Rumney <jasonr@gnu.org>
839
840 * w32menu.c (w32_free_submenu_strings): Clear menu item struct
841 before using.
842
843 2001-12-09 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
844
845 * dosfns.c: Change doc-string comments to `new style' [w/`doc:'
846 keyword].
847
848 2001-12-09 Eli Zaretskii <eliz@is.elta.co.il>
849
850 * dosfns.c (dos-display-scancodes, dos-decimal): Doc fix.
851
852 * s/hpux10.h (srand48): Don't undefine.
853
854 2001-12-09 Jason Rumney <jasonr@gnu.org>
855
856 * w32menu.c (_widget_value): Make `help' field a Lisp_Object.
857 Add comment to explain where the struct came from.
858 (single_submenu, w32_menu_show): Set `help' field as Lisp_Object.
859 (add_menu_item): Process pop-up menus first to avoid memory leak.
860 (add_menu_item, w32_menu_display_help): Use `help' field as
861 Lisp_Object.
862 (w32_free_submenu_strings): Only free owner-drawn strings.
863
864 2001-12-09 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
865
866 * COPYING: Moved back.
867
868 * charset.c (char_to_string_1, translate_char, Fdefine_charset):
869 Add parentheses around && within ||.
870
871 * indent.c (compute_motion): Likewise.
872
873 * intervals.c (merge_properties_sticky): Likewise.
874
875 * coding.c (setup_coding_system, shrink_encoding_region)
876 (Fdecode_sjis_char): Likewise.
877
878 2001-12-07 Andreas Schwab <schwab@suse.de>
879
880 * xdisp.c (display_mode_element): Don't read past end of string if
881 it ends with '%'.
882
883 * alloc.c (inhibit_garbage_collection): Don't exceed value an int
884 can hold.
885
886 * data.c (Vmost_positive_fixnum, Vmost_negative_fixnum): Rename
887 from most_positive_fixnum and most_negative_fixnum, resp., and
888 type changed to Lisp_Object.
889 (syms_of_data): DEFVAR_LISP them.
890
891 2001-12-07 Richard M. Stallman <rms@gnu.org>
892
893 * callproc.c (init_callproc): Set Vdata_directory based on the source
894 location whenever Emacs was run uninstalled.
895
896 2001-12-06 Paul Eggert <eggert@twinsun.com>
897
898 * config.in (HAVE_WORKING_VFORK): New #undefs.
899 * process.c (create_process):
900 Use HAVE_WORKING_VFORK, not HAVE_VFORK.
901 * m/cnvrgnt.h (HAVE_VFORK): Remove #define.
902 * m/ibm370aix.h (HAVE_VFORK): Remove #undef.
903 * m/ibmps2-aix.h (HAVE_VFORK): Remove #define.
904 * m/intel386.h (HAVE_VFORK): Likewise.
905 * m/mips-siemens.h (HAVE_VFORK): Likewise.
906 * m/mips.h (HAVE_VFORK): Likewise.
907 * s/freebsd.h (vfork): Remove #define.
908 * s/lynxos.h (HAVE_VFORK): Remove #undef.
909 * s/usg5-4-2.h: Fix comment about vfork.
910
911 2001-12-06 Richard M. Stallman <rms@gnu.org>
912
913 * s/hpux10.h (random): Add undef.
914 (HAVE_RANDOM): Define it just once.
915
916 2001-12-06 Stefan Monnier <monnier@cs.yale.edu>
917
918 * eval.c: Undo last change: the standard syntax is not wanted.
919
920 2001-12-06 Eli Zaretskii <eliz@is.elta.co.il>
921
922 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]: Remove all the
923 scroll bars of the frame before deleting the frame itself. If the
924 frame has a widget, delete the frame with XtDestroyWidget, and do
925 not call XDestroyWindow before that.
926
927 2001-12-06 Kim F. Storm <storm@cua.dk>
928
929 * xfns.c (x_report_frame_params): Return actual fringe widths.
930
931 * w32fns.c (x_report_frame_params): Return actual fringe widths.
932
933 2001-12-05 Andrew Innes <andrewi@gnu.org>
934
935 * alloc.c (Fgarbage_collect): Shrink buffer gaps that are
936 excessively large.
937
938 * insdel.c (make_gap_larger): New function.
939 (make_gap_smaller): New function.
940 (make_gap) [USE_MMAP_FOR_BUFFERS || REL_ALLOC]: Call
941 make_gap_smaller if arg is negative.
942
943 2001-12-04 Stefan Monnier <monnier@cs.yale.edu>
944
945 * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal prototype.
946 Pass a dummy argument when calling interrupt_signal.
947 (parse_menu_item): Mark disabled items before checking for empty def.
948 (read_char_minibuf_menu_prompt): Make safety more visible.
949 (read_key_sequence): Add a `first_unbound' variable.
950 Use it to detect C-c ESC ESC ESC ESC ... cases and drop the
951 unbound prefix as soon as we can detect it.
952
953 * doc.c (Fsnarf_documentation): Add prototype.
954 (get_doc_string): Handle negative arguments.
955 (Fdocumentation): Use AREF and ASIZE.
956 Move the calls to get_doc_string to a single place.
957 Don't confuse an interactive-spec for a docstring reference.
958 (Fdocumentation_property): Take advantage of the fact that
959 get_doc_string now ignores the sign of the docstring position.
960
961 * eval.c: Use standard syntax for usage in docstrings.
962
963 2001-12-03 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
964
965 * xdisp.c (syms_of_xdisp): Make `tool-bar-button-relief` an option.
966
967 2001-12-02 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
968
969 * xterm.c (x_draw_image_relief): Use predefined macro instead of
970 constant when the value of `tool_bar_button_relief' is negative.
971
972 2001-12-02 Richard M. Stallman <rms@gnu.org>
973
974 * xmenu.c (menu_highlight_callback): Use `help' field as Lisp_Object.
975 (single_submenu, xmenu_show): Set `help' field as Lisp_Object.
976
977 * fileio.c (read_non_regular): Delete Fsignal call.
978
979 2001-12-01 Stefan Monnier <monnier@cs.yale.edu>
980
981 * lisp.h (run_hook_list_with_args): Undo last change.
982
983 2001-12-01 Gerd Moellmann <gerd@gnu.org>
984
985 * xterm.c (x_draw_fringe_bitmap): Always undo clipping.
986
987 2001-12-01 Jason Rumney <jasonr@gnu.org>
988
989 * window.c (Qleft_fringe, Qright_fringe): Remove. Now in frame.c.
990
991 * w32term.h (WM_MOUSELEAVE, TME_LEAVE, TRACKMOUSEEVENT)
992 [!WM_MOUSELEAVE]: Define.
993
994 * w32menu.c (current_popup_menu, get_menu_item_info):
995 (set_menu_item_info): New vars.
996 (set_frame_menubar): Doc fix clarifying GC interaction with menus.
997 (w32_menu_show): Set current_popup_menu.
998 (add_menu_item): Allocate new strings for owner-drawn menu items
999 and help strings.
1000 Use owner-draw for disabled menu items again.
1001 (w32_menu_display_help): Ignore owner-drawn items and popup menus.
1002 (w32_free_submenu_strings, w32_free_menu_strings): New functions.
1003
1004 * w32fns.c (trackmouse_window, track_mouse_event_fn): New vars.
1005 (w32_wnd_proc) <WM_MOUSEMOVE>: Notice when mouse enters frame.
1006 <WM_EXITMENULOOP>: Free menu strings.
1007 <WM_MOUSELEAVE>: Stop tracking mouse.
1008 (x_create_tip_frame): Specify no minibuffer, modeline or fringes.
1009
1010 * w32term.c (w32_read_socket) <WM_MOUSELEAVE>: Cancel help echo
1011 and mouse face.
1012
1013 2001-12-01 Kim F. Storm <storm@cua.dk>
1014
1015 The following changes add left-fringe and right-fringe
1016 frame parameters to adjust fringe widths, or remove one or
1017 both fringes.
1018
1019 * frame.h (struct frame): Remove trunc_area_pixel_width and
1020 trunc_area_cols fields.
1021 (Qleft_fringe, Qright_fringe): Declare.
1022 (FRAME_RIGHT_FRINGE_WIDTH): New macro.
1023
1024 * frame.c (Qleft_fringe, Qright_fringe): New vars.
1025 (syms_of_frame): Initialize them.
1026
1027 * window.c (coordinates_in_window): Handle separate left and right
1028 fringe widths.
1029
1030 * xterm.h (struct x_output): Add left_fringe_width, right_fringe_width,
1031 and fringe_cols fields.
1032 (FRAME_FRINGE_BITMAP_WIDTH, FRAME_FRINGE_BITMAP_HEIGHT): Remove macros.
1033 (FRAME_X_FRINGE_COLS): Use fringe_cols field.
1034 (FRAME_X_FRINGE_WIDTH): Use fringes_extra field.
1035 (FRAME_X_LEFT_FRINGE_WIDTH): Use left_fringe_width field.
1036 (FRAME_X_RIGHT_FRINGE_WIDTH): Use right_fringe_width field.
1037 (x_compute_fringe_widths): Add prototype.
1038
1039 * xterm.c (zv_height, zv_bits, zv_period): Changed zv bitmap to
1040 fill fringe evenly with small dashes.
1041 (x_draw_fringe_bitmap): Clear background if necessary. Align and
1042 clip the new ZV bitmap to avoid jitter between rows.
1043 (x_draw_row_fringe_bitmaps): Rely on x_draw_fringe_bitmap to clear
1044 background. Don't draw fringe bitmaps if fringe width is zero.
1045 (x_compute_fringe_widths): New function.
1046 (x_new_font, x_set_window_size_1): Use it.
1047
1048 * xfns.c (x_frame_parms): Add `left-fringe' and `right-fringe' parms.
1049 (x_set_frame_parameters): Process `font' parameter before other
1050 parameters as fringe widths depend on it.
1051 (x_set_fringe_width): New function.
1052 (x_figure_window_size): Use x_compute_fringe_widths.
1053 (Fx_create_frame): Process `left-fringe' and `right-fringe' frame
1054 parameters.
1055
1056 * widget.c (set_frame_size): Use x_compute_fringe_widths.
1057 (EmacsFrameSetCharSize): Ditto.
1058
1059 * w32term.h: Merged changes from xterm.h.
1060 * w32term.c: Merged changes from xterm.c.
1061 * w32fns.c: Merged changes from xfns.c.
1062
1063 2001-11-29 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1064
1065 * COPYING: Removed.
1066
1067 2001-11-29 Dave Love <fx@gnu.org>
1068
1069 * coding.c (syms_of_coding) <Qchar_coding_system>: Give it an
1070 extra extra slot.
1071 (detect_coding_mask): Fix call of detect_coding_iso2022.
1072
1073 2001-11-29 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1074
1075 * fileio.c (file-name-coding-system)
1076 (default-file-name-coding-system): Doc fix (links to referenced
1077 variables added).
1078
1079 2001-11-28 Stefan Monnier <monnier@cs.yale.edu>
1080
1081 * lisp.h (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
1082 Add dummy uses of gcproN variables.
1083
1084 * category.c (describe_category, describe_category_1)
1085 (Fdescribe_categories): Remove. (Moved to lisp/help-fns.el.)
1086 (syms_of_category): Don't defsubr Sdescribe_categories.
1087
1088 2001-11-28 Richard M. Stallman <rms@gnu.org>
1089
1090 * fileio.c (Ffind_file_name_handler): Avoid initializer for `result'.
1091
1092 * Makefile.in (lispdir): New variable, referring to build dir.
1093 (TAGS-LISP): Find Makefile in $(lispdir), not $(lispsource).
1094
1095 2001-11-28 Andrew Innes <andrewi@gnu.org>
1096
1097 * w32menu.c (w32_menu_display_help): Actually add the new argument
1098 OWNER.
1099
1100 2001-11-28 Jason Rumney <jasonr@gnu.org>
1101
1102 * w32menu.c (add_menu_item): Do not use owner-draw for disabled
1103 menu items. From David Ponce <dponce@wanadoo.fr>.
1104 (w32_dialog_show) [HAVE_DIALOGS]: Compile whole function
1105 conditionally.
1106 (w32_menu_display_help): New argument OWNER. Rewritten to store a
1107 help event in the owner frame's keyboard buffer.
1108
1109 * w32fns.c (w32_wnd_proc) <WM_MENUSELECT>: Display help directly.
1110 (Fx_show_tip): Don't subtract last width from row width.
1111
1112 * w32term.c (w32_read_socket) <WM_MENUSELECT>: Remove.
1113 (w32_read_socket): Use EQ to compare frames.
1114
1115 2001-11-28 Gerd Moellmann <gerd@gnu.org>
1116
1117 * xterm.c (x_draw_glyphs): Don't call notice_overwritten_cursor if
1118 OVERLAPS_P.
1119
1120 2001-11-28 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1121
1122 * xdisp.c (message_dolog): Remove unused variables `gcpro2',
1123 `gcpro3' and `gcpro4'.
1124
1125 * coding.c (decode_coding_string): Remove unused variable `gcpro1'.
1126
1127 2001-11-28 Stefan Monnier <monnier@cs.yale.edu>
1128
1129 * ccl.c: Use AREF and ASIZE.
1130
1131 2001-11-27 Stefan Monnier <monnier@cs.yale.edu>
1132
1133 * lisp.h (run_hook_list_with_args): Remove.
1134 (LIST_END_P): Fix call to wrong_type_argument.
1135 (make_fixnum_or_float): Use EMACS_INT rather than int.
1136
1137 2001-11-26 Stefan Monnier <monnier@cs.yale.edu>
1138
1139 * syntax.c (syms_of_syntax): Remove defsubr of Sdescribe_syntax.
1140 (describe_syntax, describe_syntax_1, Fdescribe_syntax): Remove.
1141
1142 * eval.c: Use AREF and ASIZE.
1143 (Ffetch_bytecode): Add the file name to the error message.
1144
1145 * fileio.c (Ffind_file_name_handler): Give precedence to handlers
1146 which match the end of the file-name.
1147 (Fsubstitute_in_file_name): Don't signal an error if $ENVVAR
1148 is not a valid env var, but leave it as is instead.
1149
1150 * keymap.c (access_keymap): Handle t bindings like nil bindings.
1151 Make nil bindings in char-tables transparent.
1152 (store_in_keymap): Turn a nil binding into a t binding for char-tables.
1153
1154 2001-11-26 Richard M. Stallman <rms@gnu.org>
1155
1156 * textprop.c (set_text_properties_1): Allow START, END in either order.
1157 Do nothing if range is empty.
1158
1159 * Makefile.in (mallocobj): Simplify logic using auxiliary vars.
1160
1161 * Makefile.in (mostlyclean): Delete bootstrap-emacs here.
1162 (clean): Not here.
1163
1164 2001-11-25 Stefan Monnier <monnier@cs.yale.edu>
1165
1166 * textprop.c (set_text_properties_1): Clearly mark that the
1167 interval should not be empty.
1168
1169 * intervals.c (graft_intervals_into_buffer):
1170 Don't call set_text_properties_1 on an empty interval.
1171
1172 2001-11-25 Richard M. Stallman <rms@gnu.org>
1173
1174 * unexelf.c (unexec): Index by n, not nn, when checking for ".sbss".
1175
1176 * callproc.c (Fcall_process): When we make a bigger buffer for bufptr,
1177 don't lose the data in it.
1178
1179 2001-11-25 Juanma Barranquero <lektu@terra.es>
1180
1181 * abbrev.c (Fexpand_abbrev): Use Frun_hooks instead of Vrun_hooks.
1182
1183 * buffer.c (Fkill_buffer): Use Frun_hooks, not Vrun_hooks.
1184
1185 * print.c (temp_output_buffer_setup): Use Frun_hooks, not Vrun_hooks.
1186
1187 2001-11-25 Stefan Monnier <monnier@cs.yale.edu>
1188
1189 * xfaces.c (merge_face_heights): Coerce back to int explicitly.
1190
1191 2001-11-25 Eli Zaretskii <eliz@is.elta.co.il>
1192
1193 * window.c (Fset_window_vscroll): Doc fix. From Kalle Olavi
1194 Niemitalo <kon@iki.fi>.
1195
1196 2001-11-25 Jason Rumney <jasonr@gnu.org>
1197
1198 * w32term.h (FRAME_X_FRINGE_COLS): No fringe on tip frames.
1199
1200 * w32fns.c (x_create_tip_frame): Set frame's fringes_extra to 0.
1201 (Fx_show_tip): Block input during frame creation.
1202 (Fx_show_tip, Fx_hide_tip): Enable.
1203
1204 2001-11-24 Richard M. Stallman <rms@gnu.org>
1205
1206 * lread.c (Fload): Detect recursive load error for more than 3
1207 nestings of the same file.
1208 (Vrecursive_load_depth_limit): Variable deleted.
1209 (syms_of_lread) <recursive-load-depth-limit>: Variable deleted.
1210
1211 2001-11-24 Jason Rumney <jasonr@gnu.org>
1212
1213 * xfns.c (compute_tip_xy): Initialize root_x and root_y from
1214 mouse position if either left or top is not specified.
1215
1216 * w32fns.c (w32_wnd_proc) <WM_MENUSELECT>: Revert last change.
1217 <WM_WINDOWPOSCHANGING>: Let tip frames resize without restriction.
1218 (my_create_tip_window, Fx_show_tip): Adjust size for external border.
1219 (my_create_tip_window): Assign tip_window.
1220 (x_create_tip_frame): Use same defaults as X.
1221 (compute_tip_xy): Remove unused variable. Use full screen width.
1222 (Fx_show_tip): Do not double height. Call ShowWindow directly.
1223
1224 * w32term.c (x_after_update_window_line): Doc fix.
1225 (w32_read_socket): Doc fix. Avoid SET_FRAME_GARBAGED for tip
1226 frames.
1227 <WM_SHOWWINDOW>: Redo mouse highlight when hiding tip frame.
1228
1229 * xdisp.c (prepare_menu_bars) [HAVE_WINDOW_SYSTEM]: Use tip_frame
1230 for all Windowed systems.
1231
1232 2001-11-23 Eli Zaretskii <eliz@is.elta.co.il>
1233
1234 * msdos.c (IT_clear_screen): If the frame's faces are not yet
1235 realized, use the initial screen colors to clear the screen.
1236
1237 2001-11-23 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1238
1239 * textprop.c (Fset_text_properties): Remove unused variables
1240 `unchanged', `prev_changed', `s' and `len'.
1241
1242 * search.c (Freplace_match): Remove unused variable `inslen'.
1243
1244 * keymap.c (access_keymap): Remove unused variables `c1' and `c2'.
1245
1246 2001-11-22 Jason Rumney <jasonr@gnu.org>
1247
1248 * w32fns.c (x_window_to_frame): Remove irrelevant TODO comment.
1249 (w32_wnd_proc) <WM_MENUSELECT>: Show help echo directly.
1250 (my_create_tip_window): New function.
1251 (x_create_tip_frame, compute_tip_xy): Adapt for Windows.
1252 (Fx_show_tip, Fx_hide_tip) [TEST_TOOLTIPS]: Adapt for Windows.
1253
1254 2001-11-20 Jason Rumney <jasonr@gnu.org>
1255
1256 * coding.h (Vw32_system_coding_system) [WINDOWSNT]: Remove.
1257 (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: Use Vlocale_coding_system.
1258
1259 * w32fns.c (Vw32_system_coding_system): Remove.
1260 (w32_to_x_font, x_to_w32_font): Use Vlocale_coding_system.
1261
1262 2001-11-19 Stefan Monnier <monnier@cs.yale.edu>
1263
1264 * fileio.c (Fwrite_region): Move choose_write_coding_system to
1265 after build_annotations.
1266
1267 * syntax.c (describe_syntax): Add dummy arg.
1268 (describe_syntax_1): Update call to describe_vector.
1269
1270 * category.c (describe_category): Add dummy arg.
1271 (describe_category_1): Update call to describe_vector.
1272
1273 * keymap.c (Fdescribe_vector): Add `describer' parameter.
1274 (describe_command, describe_translation): Add dummy second param.
1275 (describe_map): Call elt_describer with two arguments.
1276 (describe_vector_princ): Add `fun' parameter.
1277 Call it instead of the hardcoded `princ'.
1278 (describe_vector): Add arg `args'.
1279 Pass it as a new second argument to elt_describer.
1280
1281 * keymap.h (describe_vector): Update prototype.
1282
1283 * frame.c: Don't include keymap.h any more.
1284 (keys_of_frame): Remove.
1285
1286 * lisp.h (keys_of_frame): Remove declaration.
1287
1288 * emacs.c (main): Don't call `keys_of_frame' any more.
1289
1290 2001-11-14 Andreas Schwab <schwab@suse.de>
1291
1292 * unexelf.c [!defined MAP_ANON]: Define MAP_ANON to MAP_ANONYMOUS
1293 if defined, 0 otherwise.
1294 (MAP_FAILED): Define if not defined and use it to test mmap failure.
1295 (unexec) [!MAP_ANON]: Use /dev/zero as file to map.
1296
1297 2001-11-19 Richard M. Stallman <rms@gnu.org>
1298
1299 * indent.c (current_column_1): Fix handling of scan_bytes for mb chars.
1300
1301 2001-11-18 Jason Rumney <jasonr@gnu.org>
1302
1303 * w32term.c (note_mouse_highlight): Fix type of variable `ignore'.
1304 (x_draw_bar_cursor): If the background color of the glyph under
1305 the cursor equals the frame's cursor color, use the glyph's
1306 foreground color for drawing the bar cursor.
1307 (x_after_update_window_line): Clear internal border in different
1308 circumstances.
1309 (w32_set_vertical_scroll_bar): Check for width and height > 0.
1310 (w32_draw_relief_rect): Correct relief by 1 pixel.
1311 (x_set_glyph_string_background_width):
1312 Set extends_to_end_of_line_p if the row's fill_line_p is set and
1313 drawing the last glyph with DRAW_IMAGE_{RAISED,SUNKEN}.
1314 (x_display_and_set_cursor): If cursor_in_echo_area, use NO_CURSOR
1315 if cursor_in_non_selected_windows is false.
1316 (show_mouse_face): Clean up. Recognize overwritten cursor differently.
1317 (x_draw_glyphs): Remove parameters REAL_START and REAL_END.
1318 Notice if cursor gets overwritten.
1319 (notice_overwritten_cursor): Renamed from
1320 note_overwritten_text_cursor. Rewritten to take glyph widths
1321 into account, and to take X positions as parameters.
1322 (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
1323 around call to x_draw_glyphs.
1324 (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
1325 `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
1326 color to use for image glyph reliefs.
1327 (x_draw_image_relief): Accept zero tool_bar_button_relief.
1328 (glyph_rect): Remove unused variable `area'.
1329
1330 * w32fns.c (x_set_frame_parameters): Avoid infinite recursion for
1331 some items.
1332 (x_set_internal_border_width): Set frame garbaged when window
1333 doesn't exist yet.
1334 (Fx_create_frame): Accept zero tool_bar_button_relief.
1335 (x_clear_image_1, four_corners_best, image_background)
1336 (image_background_transparent): New functions.
1337 (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
1338 (gs_format): Add `:background' entry.
1339 (lookup_image): Set IMG's background color if specified.
1340 (pbm_load, xbm_load_image, png_load): Set IMG's background field
1341 when appropriate.
1342 (x_clear_image_1): Reset `background_valid' and
1343 `background_transparent_valid' fields.
1344 (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
1345 calculating it here. Set IMG's background_transparent field.
1346 (enum xpm_keyword_index): Add XPM_BACKGROUND.
1347 (enum png_keyword_index): Add PNG_BACKGROUND.
1348 (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
1349 (enum tiff_keyword_index): Add TIFF_BACKGROUND.
1350 (enum gif_keyword_index): Add GIF_BACKGROUND.
1351 (enum gs_keyword_index): Add GS_BACKGROUND.
1352 (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
1353 Pre-calculate image background color where necessary.
1354 (x_create_x_image_and_pixmap, xbm_load, gs_load):
1355 Use display info's n_cbits entry for screen depth.
1356 (Fx_show_tip): Remove unused variables `buffer', `top',
1357 `left', `max_width' and `max_height'.
1358
1359 * w32menu.c (w32_menu_show, push_menu_pane): Doc fixes.
1360
1361 2001-11-18 Gerd Moellmann <gerd@gnu.org>
1362
1363 * puresize.h (BASE_PURESIZE): Increase to 750000.
1364
1365 2001-11-18 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1366
1367 * frame.c (Fframe_live_p): Doc fix.
1368
1369 2001-11-18 Richard M. Stallman <rms@gnu.org>
1370
1371 * xdisp.c (message_dolog_marker1, message_dolog_marker2)
1372 (message_dolog_marker3): New static variables hold three markers.
1373 (syms_of_xdisp): Initialize and staticpro them.
1374 (message_dolog): Use message_dolog_marker1..3 instead of
1375 allocating markers each time. Unchain them when done.
1376
1377 2001-11-17 Richard M. Stallman <rms@gnu.org>
1378
1379 * doc.c (Fsnarf_documentation): Doc fix.
1380
1381 2001-11-17 Andreas Schwab <schwab@suse.de>
1382
1383 * xterm.c (note_mouse_highlight): Fix type of variable `ignore'.
1384
1385 2001-11-17 Richard M. Stallman <rms@gnu.org>
1386
1387 * fileio.c (Fwrite_region): Avoid initializer for Lisp_Object.
1388
1389 2001-11-17 Jason Rumney <jasonr@gnu.org>
1390
1391 * xterm.c (notice_overwritten_cursor): Take care of end < 0 case.
1392
1393 2001-11-17 Gerd Moellmann <gerd@gnu.org>
1394
1395 * xdisp.c (tool_bar_item_info): Avoid calling Fget_text_property
1396 with invalid position.
1397
1398 2001-11-16 Richard M. Stallman <rms@gnu.org>
1399
1400 * syswait.h: Delete conditionals for HPUX7, ISC 4.1, and convex.
1401
1402 * s/isc4-1.h (HAVE_SYS_WAIT_H): Add #undef.
1403 * s/hpux.h (HAVE_SYS_WAIT_H): Add #undef.
1404 * s/hpux8.h (HAVE_SYS_WAIT_H): Define it.
1405
1406 * m/convex.h (HAVE_SYS_WAIT_H): Add #undef.
1407
1408 2001-11-16 Stefan Monnier <monnier@cs.yale.edu>
1409
1410 * fileio.c (build_annotations): Split off the tail.
1411 (build_annotations_2): New fun. Extracted from build_annotations.
1412 (Fwrite_region): Split the call to build_annotations into two
1413 calls to build_annotations and build_annotations_2.
1414
1415 2001-11-16 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1416
1417 * sysdep.c (wait_for_kbd_input) [VMS]: Do not call
1418 clear_waiting_for_input with argument.
1419
1420 * xterm.h (x_update_cursor): Remove duplicated prototype.
1421
1422 * keyboard.h (clear_waiting_for_input): Remove duplicated prototype.
1423
1424 * xterm.c (waiting_for_input): Remove unnecessary declaration.
1425
1426 * data.c (Ftimes, Fquo, Frem, Fmod): Doc fix.
1427
1428 2001-11-16 Stefan Monnier <monnier@cs.yale.edu>
1429
1430 * fileio.c (choose_write_coding_system): New fun, extracted
1431 from Fwrite_region.
1432 (Fwrite_region): Use it.
1433
1434 * eval.c (max_specpdl_size, max_lisp_eval_depth): Use EMACS_INT.
1435 (funcall_lambda, run_hook_with_args): Make static and add prototype.
1436 (ml_apply, find_handler_clause): Add prototype.
1437
1438 2001-11-16 Eli Zaretskii <eliz@gnu.org>
1439
1440 * config.in: Add #undef HAVE_COFF_H.
1441
1442 * unexec.c (coff.h): Don't include unless HAVE_COFF_H is defined.
1443 Required for ISC 4.1.
1444
1445 2001-11-16 Eli Zaretskii <eliz@is.elta.co.il>
1446
1447 * syswait.h: (HAVE_SYS_WAIT_H): Undef for ISC 4.1. Reported by
1448 Andrew Wiseman <a.wiseman@btclick.com>.
1449
1450 2001-11-16 Kim F. Storm <storm@cua.dk>
1451
1452 The following changes are made to clean up the various internal
1453 references to the fringes to actually use the term `fringe' for
1454 them. Previously, they were called `flags areas', `bitmap areas',
1455 `left/right side of windows', or implicitly as `flags' or
1456 `bitmaps':
1457
1458 * dispextern.h (FRINGE_FACE_ID): Renamed from BITMAP_AREA_FACE_ID.
1459 Comments fixed. Use renamed symbols.
1460
1461 * dispnew.c: Comment fix. Use renamed symbols.
1462
1463 * frame.h (FRAME_FRINGE_COLS): Renamed from FRAME_FLAGS_AREA_COLS.
1464 (FRAME_FRINGE_WIDTH): Renamed from FRAME_FLAGS_AREA_WIDTH.
1465 (FRAME_LEFT_FRINGE_WIDTH): Renamed from FRAME_LEFT_FLAGS_AREA_WIDTH.
1466
1467 * msdos.c: Comment fix.
1468
1469 * w32fns.c: Use renamed symbols.
1470
1471 * w32term.c: Comment fixes. Use renamed symbols.
1472 (fringe_bitmap_type): Renamed from bitmap_type.
1473 (NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
1474 (w32_draw_fringe_bitmap): Renamed from w32_draw_bitmap.
1475 (x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
1476
1477 * w32term.h: Comment fixes. Use renamed symbols.
1478 (fringes_extra): Renamed from flags_areas_extra.
1479 (FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
1480 (FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
1481 (FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
1482 (FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
1483 (FRAME_X_LEFT_FRINGE_WIDTH):
1484 Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
1485 (FRAME_X_RIGHT_FRINGE_WIDTH):
1486 Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
1487
1488 * widget.c: Use renamed symbols.
1489
1490 * window.c: Comment fixes. Use renamed symbols.
1491 (coordinates-in-window-p): Doc fix.
1492
1493 * xdisp.c: Comment fixes. Use renamed symbols.
1494
1495 * xfaces.c (realize_basic_faces): Use FRINGE_FACE_ID.
1496
1497 * xfns.c: Use renamed symbols.
1498
1499 * xterm.c: Comment fixes. Use renamed symbols.
1500 (fringe_bitmap_type): Renamed from bitmap_type.
1501 (NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
1502 (x_draw_fringe_bitmap): Renamed from x_draw_bitmap.
1503 (x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
1504
1505 * xterm.h: Comment fixes. Use renamed symbols.
1506 (fringes_extra): Renamed from flags_areas_extra.
1507 (FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
1508 (FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
1509 (FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
1510 (FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
1511 (FRAME_X_LEFT_FRINGE_WIDTH):
1512 Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
1513 (FRAME_X_RIGHT_FRINGE_WIDTH):
1514 Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
1515
1516 2001-11-15 Jason Rumney <jasonr@gnu.org>
1517
1518 * w32menu.c (add-menu-item): Make help_echo and radio buttons
1519 work for most menu items. From David Ponce
1520 <david.ponce@wanadoo.fr>.
1521
1522 2001-11-15 Gerd Moellmann <gerd@gnu.org>
1523
1524 * xfns.c (x_set_frame_parameters): Revert change of 2001-11-07.
1525 Some x_set_* function expect to be called even if old and new
1526 value are equal.
1527
1528 * xdisp.c (build_desired_tool_bar_string): Accept zero
1529 tool_bar_button_relief.
1530
1531 * xfns.c (Fx_create_frame): Accept zero tool_bar_button_relief.
1532
1533 * xterm.c (x_draw_image_relief): Accept zero tool_bar_button_relief.
1534
1535 * xterm.c (x_draw_bar_cursor): If the background color of the
1536 glyph under the cursor equals the frame's cursor color, use
1537 the glyph's foreground color for drawing the bar cursor.
1538
1539 * dispnew.c (direct_output_forward_char): Fix character/byte
1540 position comparison.
1541
1542 2001-11-15 Miles Bader <miles@gnu.org>
1543
1544 * editfns.c (find_field): Add BEG_LIMIT and END_LIMIT parameters.
1545 (Fdelete_field, Ffield_string, Ffield_string_no_properties):
1546 Update arguments to find_field.
1547 (Ffield_beginning, Ffield_end): Add LIMIT param, pass to find_field.
1548 (Fconstrain_to_field): Use LIMIT arg to shorten search time.
1549 * lisp.h (Ffield_beginning, Ffield_end): Update EXFUN decl.
1550 * minibuf.c (Fminibuffer_prompt_end): Update args to Ffield_end.
1551
1552 2001-11-14 Richard M. Stallman <rms@gnu.org>
1553
1554 * editfns.c (Fpropertize): Allow call with 1 arg.
1555
1556 * dispextern.h (image_background, image_background_transparent):
1557 Conditionalize on HAVE_X_WINDOWS.
1558
1559 2001-11-13 Richard M. Stallman <rms@gnu.org>
1560
1561 * print.c (Fprin1_to_string): Doc fix.
1562
1563 * sunfns.c (Fsun_change_cursor_icon): Doc fix.
1564
1565 * floatfns.c (Fceiling, Ffloor): Doc fixes.
1566
1567 * filelock.c (Funlock_buffer, Ffile_locked_p): Doc fixes.
1568
1569 * fileio.c (Ffile_accessible_directory_p): Doc fix.
1570
1571 * eval.c (syms_of_eval): Doc fix.
1572
1573 * coding.c (syms_of_coding): Doc fix.
1574
1575 * doc.c (Fsnarf_documentation): Doc fix.
1576
1577 * dispnew.c (syms_of_display): Doc fix.
1578
1579 * category.c (Fget_unused_category): Doc fix.
1580
1581 * buffer.c (syms_of_buffer): Doc fixes.
1582
1583 2001-11-14 Eli Zaretskii <eliz@is.elta.co.il>
1584
1585 * print.c (prin1, print): Doc fix.
1586
1587 2001-11-14 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1588
1589 * fontset.h: Remove declarations of variables
1590 `Vhighlight_wrong_size_font' and `Vclip_large_size_font'.
1591
1592 * fontset.c: Remove variables `Vhighlight_wrong_size_font' and
1593 `Vclip_large_size_font'.
1594
1595 2001-11-13 Jason Rumney <jasonr@gnu.org>
1596
1597 * w32fns.c: Doc fix.
1598
1599 2001-11-13 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1600
1601 * xfaces.c (Fface_attributes_as_vector): Doc fix.
1602
1603 * w32fns.c (Fx_synchronize): Reindent.
1604
1605 * fns.c: Doc fix.
1606
1607 * emacs.c: Doc fix.
1608
1609 * coding.c: Doc fix.
1610
1611 * cmds.c, composite.c, dired.c, doc.c, filelock.c, floatfns.c,
1612 * fontset.c, insdel.c, keymap.c: Change doc-string comments to
1613 `new style' [w/`doc:' keyword].
1614
1615 * xmenu.c (x-popup-menu): Reindent.
1616 (x-popup-dialog): Likewise.
1617
1618 * xfaces.c (Finternal_set_alternative_font_family_alist): Reindent.
1619
1620 * xdisp.c (Fdump_tool_bar_row): Reindent.
1621
1622 * minibuf.c (Fminibuffer_complete_word): Reindent.
1623 (Fminibuffer_complete_and_exit): Likewise.
1624 (Fminibuffer_completion_help): Likewise.
1625 (Fminibuffer_message): Likewise.
1626
1627 * fns.c (Freverse): Reindent.
1628
1629 * eval.c (Fif): Reindent.
1630 (Fand): Likewise.
1631
1632 * editfns.c (Fuser_real_login_name): Reindent.
1633 (Finsert_buffer_substring): Likewise.
1634 (Fcompare_buffer_substrings): Likewise.
1635 (Fsubst_char_in_region): Likewise.
1636
1637 * dispnew.c (Fsit_for): Reindent.
1638 (Fframe_or_buffer_changed_p): Likewise.
1639 (Finternal_show_cursor_p): Likewise.
1640 (syms_of_display): Likewise.
1641
1642 * alloc.c (Flist): Reindent.
1643 (Fvector): Likewise.
1644
1645 2001-11-12 Richard M. Stallman <rms@gnu.org>
1646
1647 * xterm.c (XTread_socket): Don't update focus for EnterNotify or
1648 LeaveNotify events. Only FocusIn and FocusOut do that now.
1649 (x_display_and_set_cursor): Do display hollow cursors in active
1650 minibuffer windows when they are not selected.
1651
1652 2001-11-12 Jason Rumney <jasonr@gnu.org>
1653
1654 * w32console.c, w32fns.c, w32menu.c, w32proc.c, w32select.c,
1655 * w32term.c: Change doc-string comments to `new style'.
1656 [w/`doc:' keyword]. Doc fixes.
1657
1658 * w32fns.c: Don't define max.
1659 (Fx_open_connection): Only execute once.
1660
1661 2001-11-12 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1662
1663 * ccl.c: Change macros to use do-while block instead of if-else.
1664 Use braces to follow GNU Coding Standards.
1665
1666 2001-11-11 Richard M. Stallman <rms@gnu.org>
1667
1668 * sysdep.c (child_setup_tty): Don't clear ICRNL or INLCR.
1669
1670 * lread.c (read_escape): Use end_of_file_error for reporting eof.
1671
1672 * insdel.c (replace_range): Use adjust_markers_for_replace
1673 instead of adjust_markers_for_delete and adjust_markers_for_insert.
1674
1675 * intervals.h: Declare set_text_properties and set_text_properties_1.
1676
1677 * textprop.c (set_text_properties_1): New subroutine
1678 broken out of set_text_properties.
1679 (set_text_properties): Use set_text_properties_1.
1680
1681 * intervals.c (graft_intervals_into_buffer):
1682 Use set_text_properties_1 to clear out properties.
1683
1684 * search.c (Freplace_match): Use replace_range to insert
1685 and delete. Don't request property inheritance from
1686 surrounding text.
1687
1688 2001-11-10 Jason Rumney <jasonr@gnu.org>
1689
1690 * w32fns.c (enum_font_cb2): Use leading @ on face name to detect
1691 vertical fonts. Allow them if face name is explicitly specified.
1692 Do not give up if we find a font that cannot be converted to an xlfd.
1693
1694 2001-11-10 Gerd Moellmann <gerd@gnu.org>
1695
1696 * unexelf.c (unexec): Use mmap/munmap to allocate buffers
1697 instead of malloc/free.
1698
1699 2001-11-09 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1700
1701 * xfaces.c (merge_face_vectors): Use braces to follow GNU
1702 Coding Standards.
1703 (Finternal_set_lisp_face_attribute): Likewise.
1704
1705 * buffer.c (Fbury_buffer): Likewise.
1706
1707 * indent.c (current_column_1): Remove unused variable `prev_col'.
1708
1709 * coding.c (encode_coding): Use precomputed value of `src'.
1710 (encode_coding): Remove unused variable `src_end'.
1711 (code_convert_region): Remove unused variables `count'.
1712
1713 2001-11-07 Jason Rumney <jasonr@gnu.org>
1714
1715 * w32term.c (x_display_and_set_cursor): Do not move system caret
1716 if cursor_glyph is NULL.
1717
1718 2001-11-07 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1719
1720 * keymap.c (access_keymap): Fix compilation error.
1721
1722 2001-11-07 Miles Bader <miles@gnu.org>
1723
1724 * xfns.c (x_set_frame_parameters): Avoid infinite recursion.
1725
1726 2001-11-07 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1727
1728 * intervals.c (graft_intervals_into_buffer):
1729 Remove #ifdef'd-out code.
1730 (graft_intervals_into_buffer): Remove unused variable `middle'.
1731
1732 * lread.c (Feval_region): Remove obsolete #ifdef'd-out
1733 code (eval-current-buffer).
1734 Change doc-string comments to `new style' [w/`doc:' keyword].
1735
1736 2001-11-06 Richard M. Stallman <rms@gnu.org>
1737
1738 * keymap.c (access_keymap): Don't use initializers on Lisp_Object.
1739
1740 2001-11-06 Stefan Monnier <monnier@cs.yale.edu>
1741
1742 * lread.c (read1): Fix behavior with nested backquoting.
1743
1744 * keyboard.c (make_lispy_event): Check integerness and fix
1745 Lisp_Object/int mixup.
1746
1747 2001-11-06 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1748
1749 * fns.c (copy_hash_table): Remove unused variable `v'.
1750
1751 * fontset.c (fontset_font_pattern): Remove unused variable
1752 `family_registry'.
1753
1754 * indent.c (current_column_1): Remove unused variable `prev_col'.
1755
1756 2001-11-05 Richard M. Stallman <rms@gnu.org>
1757
1758 * m/news-risc.h (BROKEN_PROTOTYPES): Defined.
1759
1760 * buffer.c (Fkill_buffer): Don't delete auto save file
1761 if buffer is modified.
1762
1763 2001-11-05 Andrew Innes <andrewi@gnu.org>
1764
1765 * w32proc.c (Fw32_set_keyboard_layout): Use CHECK_NUMBER_CAR and
1766 CHECK_NUMBER_CDR.
1767
1768 2001-11-05 Richard M. Stallman <rms@gnu.org>
1769
1770 * unexelf.c (unexec): Minor changes; clean up comments.
1771
1772 2001-11-05 Sam Steingold <sds@gnu.org>
1773
1774 * w32term.c (x_display_and_set_cursor): Fix w32 compilation error.
1775
1776 2001-11-05 Andreas Schwab <schwab@suse.de>
1777
1778 * sound.c (sound_perror): Save errno from being clobbered.
1779
1780 2001-11-05 Dale Hagglund <rdh@yottayotta.com>
1781
1782 * unexelf.c (unexec): Don't use `mmap'. Instead, read and write
1783 the program image directly.
1784
1785 2001-11-05 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1786
1787 * buffer.h (Fbuffer_local_value): Add prototype.
1788
1789 2001-11-04 Richard M. Stallman <rms@gnu.org>
1790
1791 * buffer.c (Fbuffer_local_value): Remove extra args from CHECK_SYMBOL
1792 and CHECK_BUFFER.
1793
1794 * keyboard.c (read_char): Use Fcar and Fcdr, not Fnth.
1795 (record_char): Likewise.
1796
1797 * keyboard.c (make_lispy_event): Don't insist a drag event must
1798 move to a different buffer position. Instead, check for moving at
1799 least double_click_fuzz.
1800
1801 * fns.c (Fmake_hash_table): Use XCAR and XCDR, not Fnth and Flength.
1802
1803 * keyboard.c (echo-area-clear-hook): Undo Oct 29 change.
1804
1805 * indent.c (current_column_1, Fmove_to_column): Separate the code
1806 for display-table glyphs from the code buffer text, to fix
1807 bugs in the former.
1808
1809 2001-11-04 Michael Welsh Duggan <md5i@cs.cmu.edu>
1810
1811 * buffer.c (Fbuffer_local_value): New function.
1812 (syms_of_buffer): Defsubr it.
1813
1814 * xterm.c, w32term.c (x_display_and_set_cursor): Use buffer-local
1815 value of `cursor-in-non-selected-windows'.
1816
1817 * lisp.h (Qcursor_in_non_selected_windows): New declaration.
1818 * xdisp.c (Qcursor_in_non_selected_windows): New variable.
1819 (syms_of_xdisp): Initialize it.
1820
1821 2001-11-04 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1822
1823 * xfns.c (Fx_create_frame): Doc fix.
1824
1825 * coding.c: Change doc-string comments to `new style' [w/`doc:'
1826 keyword].
1827
1828 * eval.c (top_level_value, top_level_set): Remove commented and
1829 #ifdef'd-out code.
1830 (Fdefvar): Fix usage in doc-string.
1831
1832 2001-11-03 Richard M. Stallman <rms@gnu.org>
1833
1834 * xfns.c: Include unistd.h, if it exists.
1835
1836 * editfns.c: Move the include of ctype.h after unistd.h.
1837
1838 * gmalloc.c: Test BROKEN_PROTOTYPES.
1839
1840 2001-11-03 Ken Raeburn <raeburn@gnu.org>
1841
1842 * lisp.h (CHECK_STRING_CAR): New macro.
1843 * lread.c (Fload): Use XSETCARFASTINT, XSETCDRFASTINT instead of
1844 treating XCAR and XCDR as lvalues.
1845 (openp): Use CHECK_STRING_CAR.
1846 (read_list): Use XSETCDR instead of treating XCDR as lvalue.
1847
1848 2001-11-03 Eli Zaretskii <eliz@is.elta.co.il>
1849
1850 * s/sco5.h (sigprocmask_set): Declare as extern SIGMASKTYPE.
1851 (SIGMASKTYPE): Define.
1852
1853 * syssignal.h (sigunblock): Don't define if already defined.
1854
1855 2001-11-02 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1856
1857 * eval.c (debugger_may_continue, Vdebug_ignored_errors)
1858 (call_debugger, Fcondition_case, skip_debugger, unbind_to):
1859 Fix typos in comments.
1860
1861 * mocklisp.c (Fml_defun, Fml_while, Fml_substr): Remove commented
1862 and #ifdef'd-out code.
1863 Fix and reindent comments.
1864
1865 * mocklisp.h: Remove comment which is a copy of comment in mocklisp.c.
1866
1867 * category.h (CHECK_CATEGORY, CHECK_CATEGORY_SET): Remove unused
1868 argument `i' in macros.
1869
1870 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Remove unused argument
1871 `i' in macros.
1872
1873 * lisp.h (CHECK_STRING_OR_BUFFER, CHECK_HASH_TABLE, CHECK_LIST)
1874 (CHECK_STRING, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
1875 (CHECK_VECTOR, CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER)
1876 (CHECK_WINDOW, CHECK_LIVE_WINDOW, CHECK_PROCESS, CHECK_NUMBER)
1877 (CHECK_NATNUM, CHECK_MARKER, CHECK_NUMBER_COERCE_MARKER)
1878 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT)
1879 (CHECK_NUMBER_OR_FLOAT_COERCE_MARKER, CHECK_OVERLAY)
1880 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): Remove unused argument `i'
1881 in macros.
1882
1883 * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c,
1884 * casefiddle.c, category.c, ccl.c, charset.c, cmds.c, coding.c,
1885 * composite.c, data.c, dired.c, dispnew.c, doc.c, dosfns.c, emacs.c,
1886 * eval.c, fileio.c, filelock.c, fns.c, fontset.c, frame.c, frame.h,
1887 * indent.c, keyboard.c, keymap.c, lread.c, macros.c, marker.c,
1888 * minibuf.c, mocklisp.c, msdos.c, print.c, process.c, search.c,
1889 * sunfns.c, syntax.c, textprop.c, undo.c, w16select.c, w32console.c,
1890 * w32fns.c, w32menu.c, w32proc.c, w32select.c, window.c, xdisp.c,
1891 * xfaces.c, xmenu.c, xselect.c: Update usage of CHECK_ macros
1892 (remove unused second argument).
1893
1894 2001-11-02 Stefan Monnier <monnier@cs.yale.edu>
1895
1896 * syntax.c (describe_syntax): New wrapper.
1897 (Finternal_describe_syntax_value): Rename from describe_syntax.
1898 Don't insert space at front and \n at the end.
1899 (syms_of_syntax): Defsubr Sinternal_describe_syntax_value.
1900
1901 * regex.c (re_wctype): Try to fix some warnings.
1902 (regcomp, regexec): Don't forget the __restrict.
1903
1904 2001-11-02 Richard M. Stallman <rms@gnu.org>
1905
1906 * textprop.c (Fget_char_property): Doc fix.
1907
1908 2001-11-02 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1909
1910 * process.c (Fstart_process): Add usage to doc-string.
1911
1912 * data.c (Fsetq_default): Ditto.
1913
1914 * callint.c (Finteractive): Ditto.
1915
1916 2001-11-01 Stefan Monnier <monnier@cs.yale.edu>
1917
1918 * macros.c: Don't include keymap.h any more.
1919
1920 2001-11-01 Richard M. Stallman <rms@gnu.org>
1921
1922 * data.c (Fmake_local_variable): Doc fix.
1923
1924 * eval.c (Frun_hooks, Frun_hook_with_args_until_failure): Doc fix.
1925 (Frun_hook_with_args_until_success, Frun_hook_with_args): Doc fix.
1926
1927 * keymap.c (Fdescribe_buffer_bindings): Print character property
1928 bindings along with or instead of the buffer local map.
1929 Make the overriding maps override what they should.
1930
1931 2001-11-01 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1932
1933 * window.c (grow_mini_window): Fix typo in comment.
1934
1935 2001-11-01 Gerd Moellmann <gerd@gnu.org>
1936
1937 * xterm.c (x_scroll_bar_create): Check for width and height > 0.
1938 (XTset_vertical_scroll_bar): Likewise.
1939
1940 * xfns.c (x_build_heuristic_mask): Use four_corners_best
1941 instead of IMAGE_BACKGROUND.
1942
1943 * xfns.c (four_corners_best): Reindent.
1944
1945 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
1946 Handle :box so that it is possible to specify sexprs.
1947
1948 2001-11-01 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1949
1950 * xfaces.c (Finternal_merge_in_global_face): Reindent.
1951 (Fface_font): Ditto.
1952 (Finternal_set_alternative_font_registry_alist): Ditto.
1953 (Ftty_suppress_bold_inverse_default_colors): Ditto.
1954
1955 * xfns.c (x-get-resource): Reindent.
1956
1957 2001-10-31 Eli Zaretskii <eliz@is.elta.co.il>
1958
1959 * s/hpux11.h: New file.
1960
1961 2001-10-31 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1962
1963 * emacs.c (USAGE1): Show command line option --no-window-system
1964 instead of --no-windows in usage.
1965 (standard_args): Rename --no-windows to --no-window-system.
1966 (bug_reporting_address): Follow Emacs coding conventions.
1967
1968 * eval.c (Fcommandp): Doc fix.
1969 Change doc-string comments to `new style' [w/`doc:' keyword].
1970
1971 * frame.c (Fframe_live_p): Doc fix.
1972
1973 * buffer.c (selective-display-ellipses): Doc fix.
1974
1975 2001-10-31 Gerd Moellmann <gerd@gnu.org>
1976
1977 * lread.c (to_multibyte): Fix computation of new read_buffer_size.
1978
1979 * xfaces.c (realize_x_face): If C is not a single-byte character,
1980 set the face's colors_copied_bitwise_p instead of the defaulted_p
1981 members which have a different meaning.
1982 (free_face_colors): Do nothing for a face whose colors have been
1983 copied bitwise.
1984
1985 * dispextern.h (struct face) <colors_copied_bitwise_p>: New member.
1986
1987 2001-10-31 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1988
1989 * marker.c, mocklisp.c: Change doc-string comments to `new style'
1990 [w/`doc:' keyword].
1991
1992 2001-10-31 Gerd Moellmann <gerd@gnu.org>
1993
1994 * fns.c (require_unwind): Return Lisp_Object.
1995
1996 2001-10-31 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
1997
1998 * keyboard.c (lucid-menu-bar-dirty-flag): Doc fix.
1999 (last-input-char): Revert doc-string to be the same as the
2000 doc-string of `last-input-event'.
2001
2002 * xdisp.c: Fix typos in comments.
2003
2004 2001-10-31 Gerd Moellmann <gerd@gnu.org>
2005
2006 * window.c (grow_mini_window): Handle case that the root
2007 window is already smaller than the nominal mininum height.
2008
2009 2001-10-30 Stefan Monnier <monnier@cs.yale.edu>
2010
2011 * emacs.c (main): Don't call keys_of_macros any more.
2012
2013 * lisp.h (keys_of_macros): Remove.
2014
2015 * macros.c (keys_of_macros): Remove.
2016
2017 * xfaces.c (Fface_attribute_relative_p): Declare args.
2018
2019 2001-10-30 Jason Rumney <jasonr@gnu.org>
2020
2021 * w32fns.c (w32_to_x_charset): Increase size of XLFD charset buffer.
2022 (enum_font_cb2): Ignore fonts with vertical orientation.
2023
2024 2001-10-30 Richard M. Stallman <rms@gnu.org>
2025
2026 * keyboard.c (Finput_pending_p): Doc fix.
2027
2028 2001-10-30 Gerd Moellmann <gerd@gnu.org>
2029
2030 * xterm.c (x_after_update_window_line): Don't run the code
2031 clearing in borders for rows whose visible height is 0.
2032
2033 * xdisp.c (clear_garbaged_frames): Redraw the frame only if its
2034 resized_p flag is set. If not set, use the much less flickering
2035 method previously used.
2036
2037 * dispnew.c (change_frame_size_1): Set frame's resized_p.
2038
2039 * frame.h (struct frame) <resized_p>: New member.
2040
2041 * lread.c (to_multibyte): Ensure read_buffer is at least twice
2042 as large as the number of bytes to convert.
2043
2044 * lread.c (to_multibyte): New function.
2045 (read1): Use it.
2046
2047 2001-10-30 Eli Zaretskii <eliz@is.elta.co.il>
2048
2049 * msdos.h (FRAME_LINE_HEIGHT): Define (it's used by xmenu.c).
2050
2051 2001-10-30 Gerd Moellmann <gerd@gnu.org>
2052
2053 * xterm.c (x_draw_relief_rect): Correct bottom relief by 1 pixel.
2054 (x_set_glyph_string_background_width): Set extends_to_end_of_line_p
2055 if the row's fill_line_p is set and drawing the last glyph with
2056 DRAW_IMAGE_{RAISED,SUNKEN}.
2057
2058 * xdisp.c (clear_garbaged_frames): Call Fredraw_frame.
2059
2060 2001-10-29 Stefan Monnier <monnier@cs.yale.edu>
2061
2062 * xmenu.c: Include coding.h and charset.h.
2063 (Fx_popup_menu): Use FRAME_PTR and FRAME_FONT and FRAME_LINE_HEIGHT.
2064 (Fx_popup_dialog): Use FRAME_PTR and enum scroll_bar_part.
2065 (single_submenu, xmenu_show): Use ENCODE_SYSTEM.
2066 Explicitly set wv->help. Use `TRUE' rather than `True'.
2067 (menu_help_callback): Use empty_string.
2068
2069 * w32menu.c (Fx_popup_menu): Explicitly init f, xpos, and ypos.
2070 (Fx_popup_dialog): Explicitly init f.
2071 (w32_menu_display_help): Use empty_string.
2072
2073 2001-10-29 Richard M. Stallman <rms@gnu.org>
2074
2075 * fns.c (Frequire): Detect recursive try to require the same
2076 feature 3 or more levels deep, and get error.
2077 (require_unwind): New subroutine.
2078 (require_nesting_list): New variable.
2079 (syms_of_fns): Init and staticpro it.
2080
2081 * print.c (print_object): Clarify indication of insertion type.
2082
2083 2001-10-29 Eli Zaretskii <eliz@is.elta.co.il>
2084
2085 * coding.c (syms_of_coding): Document that locale-coding-system is
2086 used for decoding input on X.
2087
2088 * window.c (Fscroll_left, Fscroll_right): Doc fix.
2089
2090 2001-10-29 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2091
2092 * keyboard.c (Finput_pending_p): Fix typo in doc-string.
2093 (echo-area-clear-hook): Properly DEFVAR_LISP and staticpro it.
2094
2095 2001-10-29 Gerd Moellmann <gerd@gnu.org>
2096
2097 * xterm.c (x_display_and_set_cursor): If cursor_in_echo_area,
2098 use NO_CURSOR if cursor_in_non_selected_windows is false.
2099
2100 * xfaces.c (Fface_font): Use UNSPECIFIEDP instead of NILP for
2101 the slant attribute if FRAME is t.
2102
2103 * xfns.c (x_set_internal_border_width): Set frame garbaged
2104 when X window doesn't exist yet.
2105
2106 * xterm.c (x_after_update_window_line): Clear internal border
2107 in different circumstances.
2108
2109 * xterm.c (XTread_socket) <KeyPress>: Don't use
2110 STRING_CHAR_AND_LENGTH if nchars == nbytes. From Kenichi Handa
2111 <handa@etl.go.jp>.
2112
2113 2001-10-28 Eli Zaretskii <eliz@is.elta.co.il>
2114
2115 * m/ibms390.h: New file. From Adam Thornton
2116 <athornton@sinenomine.net>.
2117
2118 2001-10-28 Gerd Moellmann <gerd@gnu.org>
2119
2120 * xfns.c (x_build_heuristic_mask): Use x_alloc_image_color.
2121
2122 * xfns.c (x_build_heuristic_mask): Fix a bug not incrementing
2123 a loop counter.
2124
2125 2001-10-28 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2126
2127 * emacs.c: Use argv[0] instead of emacs when -t was specified.
2128
2129 * keyboard.c: Change doc-string comments to `new style' [w/`doc:'
2130 keyword].
2131 Fix typos in comments.
2132
2133 * emacs.c (bug_reporting_address): New function.
2134 Use it when displaying usage message.
2135
2136 * minibuf.c (read_minibuf): Remove unused external declaration of
2137 variable `Qread_only'.
2138
2139 * keymap.c (access_keymap): Remove unused variable `charset'.
2140
2141 2001-10-28 Miles Bader <miles@gnu.org>
2142
2143 * xfaces.c (merge_face_heights): Handle TO being relative as well.
2144 Remove #ifdef'd-out code.
2145 (Fface_attribute_relative_p, Fmerge_face_attribute): New functions.
2146 (syms_of_xfaces): Initialize them.
2147
2148 2001-10-27 Jason Rumney <jasonr@gnu.org>
2149
2150 * w32fns.c (w32_wnd_proc) <WM_KILLFOCUS>: Destroy the system caret.
2151 <WM_EMACS_DESTROY_CARET, WM_EMACS_TRACK_CARET>: Track cursor
2152 position using the system caret.
2153
2154 * w32term.c (w32_system_caret_hwnd, w32_system_caret_width)
2155 (w32_system_caret_height, w32_system_caret_x)
2156 (w32_system_caret_y): New variables for tracking system caret.
2157 (w32_initialize): Initialize them.
2158 (x_display_and_set_cursor): Make system caret follow the active cursor.
2159
2160 * w32term.h (WM_EMACS_TRACK_CARET, WM_EMACS_DESTROY_CARET):
2161 New messages types.
2162
2163 * w32term.c (note_mouse_highlight): Clear old help_echo.
2164
2165 2001-10-27 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2166
2167 * xterm.c: Fix typo in a comment.
2168
2169 * emacs.c: Fix typos in comments.
2170 Remove unnecessary spaces.
2171 Change doc-string comments to `new style' [w/`doc:' keyword].
2172 (USAGE2): Fix typos in usage string.
2173
2174 * xterm.c: Fix typo in a comment.
2175
2176 * lisp.h: (gdb_lisp_params): Remove code in #if 0 which is now in
2177 emacs.c.
2178
2179 2001-10-27 Gerd Moellmann <gerd@gnu.org>
2180
2181 * xdisp.c (move_it_vertically_backward): Use 2/3 line_height
2182 instead of 1/2 line_height in the heuristic for skipping
2183 farther backward when target_y was not reached.
2184
2185 * sound.c (sound_perror): Unblock SIGIO, turn on atimers.
2186 Display errno only if non-zero.
2187 (sound_warning): New function.
2188 (vox_configure): Don't treat failing to set sample rate as error.
2189 (various places): Improve error messages.
2190
2191 2001-10-26 Eli Zaretskii <eliz@is.elta.co.il>
2192
2193 * fileio.c (Faccess_file): Run the argument filename through
2194 Fexpand_file_name, before using it.
2195
2196 * dispnew.c (syms_of_display) <visible-bell>: Add a reference to
2197 ring-bell-function. Suggested by Alf-Ivar Holm <alfh@ifi.uio.no>
2198
2199 2001-10-26 Gerd Moellmann <gerd@gnu.org>
2200
2201 * insdel.c (insert_1_both): Do nothing if NCHARS == 0.
2202
2203 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2204 Fix clearing in the case of scroll bars on the right.
2205
2206 2001-10-26 Juanma Barranquero <lektu@terra.es>
2207
2208 * w32gui.h (XImage): Add a dummy typedef.
2209
2210 2001-10-26 Gerd Moellmann <gerd@gnu.org>
2211
2212 * xfns.c (XScreenNumberOfScreen): Fix struct to pointer comparison.
2213
2214 2001-10-25 Eli Zaretskii <eliz@is.elta.co.il>
2215
2216 * frame.c (Fframe_parameter): Fix last change.
2217
2218 * fileio.c: Revert last change (which removed old commented-out
2219 version of expand-file-name). Add a comment that explains why
2220 this old version should not be removed.
2221
2222 2001-10-25 Gerd Moellmann <gerd@gnu.org>
2223
2224 * frame.c (Fframe_parameter): Fix a bug whereby some
2225 ``artificial'' frame parameters, like `minibuffer' were not
2226 obtained by calling Fframe_parameters.
2227
2228 * xterm.c (show_mouse_face): Clean up. Recognize overwritten
2229 cursor differently.
2230
2231 * xdisp.c (move_it_vertically_backward): Compute line height
2232 differently. Add heuristic to try to be more compatible to 20.x.
2233
2234 2001-10-25 Stefan Monnier <monnier@cs.yale.edu>
2235
2236 * lisp.h (make_fixnum_or_float): Coerce double to int explicitly.
2237
2238 * editfns.c (text_property_stickiness): Fix Lisp_Object used as
2239 boolean.
2240
2241 2001-10-25 Miles Bader <miles@gnu.org>
2242
2243 * xfns.c (png_load): Make sure SPECIFIED_BG is a string.
2244 BG is a pointer to a structure, not a structure.
2245 (gif_format, png_format): Add missing commas.
2246
2247 2001-10-24 Richard M. Stallman <rms@gnu.org>
2248
2249 * xfaces.c (Fface_attributes_as_vector): New function.
2250 (syms_of_xfaces): Defsubr it.
2251
2252 2001-10-24 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2253
2254 * dispnew.c (sync_window_with_frame_matrix_rows): Remove unused
2255 variable `area'.
2256
2257 2001-10-25 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2258
2259 * search.c (scan_newline): Remove unused variable `selective_display'.
2260
2261 2001-10-25 Miles Bader <miles@gnu.org>
2262
2263 * dispextern.h (struct image): Add `background',
2264 `background_valid', and `background_transparent' fields.
2265 (image_background, image_background_transparent): New declarations.
2266 (IMAGE_BACKGROUND, IMAGE_BACKGROUND_TRANSPARENT): New macros.
2267 * xfns.c (image_background, image_background_transparent)
2268 (four_corners_best): New functions.
2269 (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
2270 (gs_format): Add `:background' entry.
2271 (lookup_image): Set IMG's background color if specified.
2272 (pbm_load, xbm_load_image, png_load): Set IMG's background field
2273 when appropriate.
2274 (x_clear_image_1): Reset `background_valid' and
2275 `background_transparent_valid' fields.
2276 (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
2277 calculating it here. Set IMG's background_transparent field.
2278 (enum xpm_keyword_index): Add XPM_BACKGROUND.
2279 (enum png_keyword_index): Add PNG_BACKGROUND.
2280 (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
2281 (enum tiff_keyword_index): Add TIFF_BACKGROUND.
2282 (enum gif_keyword_index): Add GIF_BACKGROUND.
2283 (enum gs_keyword_index): Add GS_BACKGROUND.
2284 (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
2285 Pre-calculate image background color where necessary.
2286 * xterm.c (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
2287 `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
2288 color to use for image glyph reliefs.
2289
2290 2001-10-24 Gerd Moellmann <gerd@gnu.org>
2291
2292 * xterm.c (x_draw_glyphs): Don't check for cursor overwriting
2293 in full-width rows.
2294
2295 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2296 Fix clearing of area not covered by scroll bar.
2297
2298 2001-10-24 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2299
2300 * xterm.c: (x_insert_glyphs): Remove unused variables `real_end'
2301 and `real_start'.
2302 (x_draw_image_foreground): Remove unused variables `mask' and `xgcv'.
2303 (glyph_rect): Remove unused variable `area'.
2304
2305 2001-10-24 Gerd Moellmann <gerd@gnu.org>
2306
2307 * xdisp.c: Change #ifdef GLYPH_DEBUG to #if.
2308
2309 * xdisp.c (try_window_reusing_current_matrix): Use row_containing_pos.
2310 (row_containing_pos): Take additional argument DY.
2311 Treat rows ending in middle of char differently.
2312 (display_line): Handle tabs on window systems differently.
2313
2314 * xterm.c, w32term.c (fast_find_position): Call row_containing_pos
2315 with additional argument.
2316
2317 * dispextern.h (row_containing_pos): Adjust prototype.
2318
2319 * xdisp.c (inhibit_try_window_id, inhibit_try_window_reusing)
2320 (inhibit_try_cursor_movement) [GLYPH_DEBUG]: New variables.
2321 (try_window_id, try_window_reusing_current_matrix)
2322 (try_cursor_movement) [GLYPH_DEBUG]: Don't run if inhibited.
2323 (syms_of_xdisp) [GLYPH_DEBUG]: DEFVAR_BOOL the variables.
2324
2325 2001-10-24 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2326
2327 * xmenu.c: Spell the name of Emacs properly (GNU Emacs instead of
2328 gnuemacs).
2329 (HAVE_BOXES): Fix typo in comment.
2330 (push_menu_pane): Fix typo in comment.
2331
2332 * xdisp.c: (display_prop_string_p): Remove unused local declaration
2333 of `Qwhen'.
2334 (single_display_prop_string_p): Remove unused local declarations
2335 of `Qwhen' and `Qmargin'.
2336 (string_buffer_position): Remove unused variable `around'.
2337 (store_frame_title): Remove unused variable `width'.
2338
2339 * window.c: Don't define max.
2340 (coordinates_in_window): Remove unused variable `uy'.
2341
2342 * widget.c: Don't define max.
2343
2344 * process.c: Don't define max.
2345 (create_process): Remove unused variable `buffer'.
2346
2347 2001-10-23 Gerd Moellmann <gerd@gnu.org>
2348
2349 * xfaces.c (Finternal_set_lisp_face_attribute): Fix compilation error.
2350
2351 2001-10-23 Eli Zaretskii <eliz@is.elta.co.il>
2352
2353 * xfaces.c (Finternal_set_lisp_face_attribute)
2354 [HAVE_WINDOW_SYSTEM]: Don't do anything for QCfont unless the
2355 frame is on a windowed display.
2356
2357 2001-10-23 Gerd Moellmann <gerd@gnu.org>
2358
2359 * dispnew.c (sync_window_with_frame_matrix_rows):
2360 Fix handling of windows which aren't full-width, fix handling
2361 of marginal areas.
2362
2363 * lread.c (syms_of_lread) <recursive-load-depth-limit>: Raise to 50.
2364
2365 2001-10-23 Andreas Schwab <schwab@suse.de>
2366
2367 * m/macppc.h [LINUX]: Undef LD_SWITCH_SYSTEM_TEMACS and override
2368 LD_SWITCH_MACHINE_TEMACS with "-Xlinker -znocombreloc".
2369
2370 2001-10-23 Gerd Moellmann <gerd@gnu.org>
2371
2372 * xterm.c (x_draw_glyphs): Remove parameters READ_START and
2373 REAL_END. Notice if cursor gets overwritten.
2374 (notice_overwritten_cursor): Take X positions as parameters.
2375 (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
2376 around call to x_draw_glyphs.
2377
2378 2001-10-23 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2379
2380 * syntax.c (modify-syntax-entry): Fix argument names (use CHAR
2381 instead of C) and usage.
2382
2383 * editfns.c (char-to-string): Fix argument names (use CHAR instead
2384 of C) and usage.
2385
2386 * xfns.c (Fx_show_tip): Remove unused variables `buffer', `top',
2387 `left', `max_width' and `max_height'.
2388
2389 2001-10-23 Gerd Moellmann <gerd@gnu.org>
2390
2391 * xdisp.c (display_line): For a tab continued to the next line,
2392 set row's ends_in_middle_of_char_p.
2393
2394 2001-10-22 Gerd Moellmann <gerd@gnu.org>
2395
2396 * xdisp.c (display_line): Fix computation of continuation lines
2397 width for TABs.
2398
2399 2001-10-22 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2400
2401 * xdisp.c (build_desired_tool_bar_string): Remove unused variable
2402 `Qlaplace'.
2403
2404 * fileio.c: Remove unused code.
2405
2406 2001-10-22 Miles Bader <miles@gnu.org>
2407
2408 * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
2409 (DEFVAR_INT, DEFVAR_PER_BUFFER, DEFVAR_KBOARD):
2410 Remove `DOC_STRINGS_IN_COMMENTS' cases.
2411
2412 2001-10-21 Jason Rumney <jasonr@gnu.org>
2413
2414 * w32term.c (x_erase_phys_cursor): Remove inverse_p again.
2415
2416 2001-10-21 Eli Zaretskii <eliz@is.elta.co.il>
2417
2418 * mocklisp.c (Fml_if, Fml_provide_prefix_argument)
2419 (Finsert_string): Avoid the multi-line string literals warning.
2420
2421 2001-10-22 Miles Bader <miles@gnu.org>
2422
2423 * doc.c (Vhelp_manyarg_func_alist): Variable removed.
2424 (Fdocumentation): Don't use it.
2425 (syms_of_doc): Don't initialize it.
2426
2427 * keyboard.c (Ftrack_mouse): Add usage: string to doc string.
2428 * print.c (Fwith_output_to_temp_buffer): Likewise.
2429 * window.c (Fsave_window_excursion): Likewise.
2430 * editfns.c (Fsave_excursion, Fsave_current_buffer)
2431 (Fsave_restriction): Likewise.
2432 * eval.c (Frun_hooks, Frun_hook_with_args)
2433 (Frun_hook_with_args_until_failure)
2434 (Frun_hook_with_args_until_success, Ffuncall, For, Fand, Fif)
2435 (Fcond, Fprogn, Fprog1, Fprog2, Fsetq, Fquote, Ffunction, Fdefun)
2436 (Fdefmacro, Fdefvar, Fdefconst, FletX, Flet, Fwhile, Fcatch)
2437 (Funwind_protect, Fcondition_case): Likewise.
2438 * coding.c (Ffind_operation_coding_system): Likewise.
2439 * keyboard.c (Ftrack_mouse): Likewise.
2440
2441 2001-10-21 Miles Bader <miles@gnu.org>
2442
2443 * fns.c (Fappend, Fconcat, Fvconcat, Fnconc, Fwidget_apply)
2444 (Fmake_hash_table): Add usage: string to doc string.
2445 * editfns.c (Finsert, Finsert_and_inherit, Finsert_before_markers)
2446 (Fmessage, Fmessage_box, Fmessage_or_box, Fpropertize, Fformat)
2447 (Fencode_time, Finsert_and_inherit_before_markers): Likewise.
2448 * mocklisp.c (Finsert_string, Fml_if, Fml_provide_prefix_argument)
2449 (Fml_prefix_argument_loop): Likewise.
2450
2451 2001-10-21 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2452
2453 * fileio.c (Finsert_file_contents): Remove unused variable `gap_size'.
2454
2455 * sysdep.c (init_sys_modes): Change doc-string comments to `new
2456 style' [w/`doc:' keyword].
2457
2458 * data.c, fileio.c, indent.c, print.c, search.c, sound.c,
2459 * sunfns.c, textprop.c, undo.c, xselect.c: Change doc-string
2460 comments to `new style' [w/`doc:' keyword].
2461
2462 2001-10-21 Jason Rumney <jasonr@gnu.org>
2463
2464 * w32fns.c (Fx_file_dialog): Pass a filter to GetOpenFileName.
2465
2466 * w32term.c (remember_mouse_glyph): New function.
2467 (w32_mouse_position): Use it.
2468 (note_mouse_movement): If the mouse moved off the glyph, remember
2469 its new position.
2470
2471 * w32term.h (struct w32_output): Correct spelling of x_compatible.
2472 (w32_display_info): Add mouse_face_overlay.
2473
2474 * w32term.c (notice_overwritten_cursor): Renamed from
2475 note_overwritten_text_cursor. Rewritten to take glyph widths into
2476 account.
2477 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
2478 (fast_find_string_pos): New function.
2479 (fast_find_position): Return the correct vpos. Add parameter
2480 STOP. In the final row, stop before glyphs having STOP as object.
2481 Don't consider glyphs that are not from a buffer.
2482 (fast_find_position) [0]: Add a presumably more correct version
2483 for after 21.1.
2484 (expose_window_tree, expose_frame): Don't compute intersections here.
2485 (expose_window): Do it here instead.
2486 (expose_window_tree, expose_window, expose_line): Return 1 when
2487 overwriting mouse-face.
2488 (expose_window): If W is the window currently being updated, mark
2489 the frame garbaged.
2490 (expose_frame): If mouse-face was overwritten, redo it.
2491 (x_use_underline_position_properties): New variable.
2492 (syms_of_xterm): DEFVAR_BOOL it.
2493 (x_draw_glyph_string): Add comment to use it in future.
2494 (x_draw_glyph_string): Restore clipping after drawing box.
2495 Fix a computation of the underline position.
2496 (w32_get_glyph_string_clip_rect): Minor cleanup.
2497 (x_fill_stretch_glyph_string): Remove an assertion.
2498 (x_produce_glyphs): Don't convert multibyte characters
2499 to unibyte characters in unibyte buffers.
2500 (cursor_in_mouse_face_p): New function.
2501 (x_draw_stretch_glyph_string): Use it to choose a different GC
2502 when drawing a cursor within highlighted text. Don't draw
2503 background again if it has already been drawn.
2504 (x_draw_glyph_string_box): Don't draw a full-width
2505 box just because the glyph row's full_width_p flag is set.
2506 (x_draw_glyphs): Fix computation of rightmost x for
2507 full-width rows.
2508 (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
2509 (w32_draw_relief_rect): Extend left shadow to the bottom and left;
2510 change bottom shadow accordingly. Some cleanup.
2511 (x_update_window_end): Handle overwritten mouse face
2512 also for tool bar windows.
2513 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
2514 DRAW is DRAW_IMAGE_RAISED.
2515 (clear_mouse_face): Return 1 if text with mouse face was
2516 actually redrawn. Make the function static. Reset
2517 dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
2518 optimize away highlighting if we pass over that same overlay again.
2519 (note_mouse_highlight): Call mouse_face_overlay_overlaps
2520 to detect a case where we have to highlight a different region
2521 despite not having left the currently highlighted region.
2522 Set mouse_face_overlay in the x_display_info. Avoid changing the
2523 mouse pointer shape when show_mouse_face has already done it, or
2524 there is no need. Handle mouse-face and help-echo in strings.
2525 (glyph_rect): New function.
2526 (w32_mouse_position): Use it to raise the threshold for mouse
2527 movement event generation.
2528 (w32_initialize_display_info): Initialize the x_display_info's
2529 mouse_face_overlay.
2530 (w32_set_vertical_scroll_bar): Don't clear a zero height
2531 or width area.
2532 (w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
2533 a widget to zero height.
2534
2535 * w32menu.c (single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
2536 Protect unibyte strings created by replacing their multibyte
2537 equivalents in menu_items.
2538 (w32_menu_show): Don't overwrite an item's name with its key
2539 description in case the description is a multibyte string.
2540 (single_submenu): Some cleanup.
2541
2542 * w32fns.c (x_laplace_read_row, x_laplace_write_row): Removed.
2543 (postprocess_image): New function.
2544 (lookup_image): Call it for all image types except PostScript.
2545 (x_kill_gs_process): Call postprocess_image.
2546 (tiff_error_handler, tiff_warning_handler): New functions.
2547 (tiff_load): Install them as handlers.
2548 (x_kill_gs_process): Recognize if someone has cleared the image
2549 cache under us.
2550 (valid_image_p): Protect better against invalid image
2551 specifications. Previous code could signal an error.
2552 (Fx_hide_tip, Fshow_tip): Doc fix.
2553 (Fv_max_tooltip_size): New variable.
2554 (syns_of_xfns): DEFVAR_LISP it.
2555 (Fx_show_tip): Add parameter TEXT. Set the tip frame's root
2556 window buffer to *tip* right after creating the frame. Set frame's
2557 window_width. Use a maximum tooltip size specified by
2558 Vx_max_tooltip_size, if that has valid contents.
2559 (compute_tip_xy): Add parameters WIDTH and HEIGHT.
2560 Make sure the tooltip is completely visible.
2561 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
2562 (Fx_create_frame): Adjust the frame's height for presence
2563 of the tool bar before calling x_figure_window_size.
2564 (x_set_tool_bar_lines): Clear the tool bar window's current matrix
2565 when the window gets smaller.
2566 (x_set_foreground_color): Set frame's cursor_pixel.
2567 (x_set_foreground_color, x_set_background_color): Cleaned up.
2568 (x_set_font): Handle case of x_new_fontset returning the same name
2569 as before, although there was a change in fontsets.
2570
2571 2001-10-21 Miles Bader <miles@gnu.org>
2572
2573 * data.c (Fplus, Fminus, Fmax, Ftimes, Fquo, Flogand, Flogior)
2574 (Flogxor): Add usage: string to doc string.
2575 * charset.c (Fstring): Likewise.
2576 * callproc.c (Fcall_process_region, Fcall_process): Likewise.
2577 * alloc.c (Fmake_byte_code, Fvector, Flist): Likewise.
2578
2579 2001-10-21 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2580
2581 * buffer.c: Reindent DEFUNs and DEFVARs with doc: keywords.
2582
2583 * alloc.c: Reindent DEFUNs with doc: keywords.
2584
2585 * abbrev.c (Finsert_abbrev_table_description): Reindent.
2586
2587 * frame.c: Change doc-string comments to `new style' [w/`doc:'
2588 keyword].
2589
2590 2001-10-20 Gerd Moellmann <gerd@gnu.org>
2591
2592 * (Version 21.1 released.)
2593
2594 2001-10-20 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2595
2596 * xfns.c (x_laplace_read_row, x_laplace_write_row): Prototypes removed.
2597
2598 * xdisp.c (invisible_text_between_p): Put prototype inside #if
2599 0 because unused.
2600
2601 * bytecode.c, callint.c, callproc.c, casefiddle.c, casetab.c
2602 * category.c, ccl.c, charset.c, process.c, syntax.c, window.c:
2603 Change doc-string comments to `new style' [w/`doc:' keyword].
2604
2605 2001-10-20 Miles Bader <miles@gnu.org>
2606
2607 The following changes remove the glyph_row `inverse_p' field,
2608 which is never set anymore, due to other changes:
2609
2610 * dispextern.h (struct glyph_row): Remove `inverse_p' field.
2611 (reassert_line_highlight, change_line_highlight): Declarations removed.
2612 * dispnew.c (update_frame_line): Don't call reassert_line_highlight.
2613 (line_hash_code, row_equal_p, fake_current_matrices)
2614 (build_frame_matrix_from_leaf_window, update_frame_line)
2615 (update_frame_line, update_frame_line, update_frame_line):
2616 Don't use `inverse_p' field.
2617 * xterm.c (x_initialize): Don't set reassert_line_highlight_hook or
2618 change_line_highlight_hook.
2619 (XTreassert_line_highlight, x_change_line_highlight):
2620 Functions removed.
2621 (x_fix_overlapping_area, x_write_glyphs, expose_area)
2622 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
2623 * xdisp.c (dump_glyph_row, display_mode_line): Don't use
2624 `inverse_p' field.
2625 * w32term.c (x_fix_overlapping_area, x_write_glyphs, expose_area)
2626 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
2627 (w32_reassert_line_highlight, x_change_line_highlight):
2628 Functions removed.
2629 * w32console.c (reassert_line_highlight, change_line_highlight):
2630 Functions removed.
2631 (initialize_w32_display): Don't set reassert_line_highlight_hook
2632 or change_line_highlight_hook.
2633 (hl_mode): Function removed.
2634 (reset_terminal_modes, set_terminal_modes, update_begin)
2635 (update_end, w32_face_attributes, initialize_w32_display):
2636 (clear_frame, ins_del_lines): Don't call it.
2637 * termhooks.h (reassert_line_highlight_hook)
2638 (change_line_highlight_hook): Declarations removed.
2639 * term.c (reassert_line_highlight_hook)
2640 (change_line_highlight_hook): Variables removed.
2641 (reassert_line_highlight, change_line_highlight): Functions removed.
2642 * msdos.c (IT_reassert_line_highlight)
2643 (IT_change_line_highlight): Functions removed.
2644 (internal_terminal_init): Don't set reassert_line_highlight_hook
2645 or change_line_highlight_hook.
2646 (highlight): Variable removed.
2647 (IT_set_face, IT_update_begin, IT_update_end)
2648 (IT_set_terminal_modes): Don't set or use it.
2649
2650 The following changes remove inverse-video support for terminals
2651 that use a `magic cookie' standout mode. Due to changes in the
2652 way mode-lines are displayed, such support no longer works
2653 anyway, and it's probable that almost no one uses such terminals
2654 anymore:
2655
2656 * term.c (standout_requested): Variable removed.
2657 (update_end, highlight_if_desired): Don't use it.
2658 (chars_wasted, copybuf): Variables removed.
2659 (write_standout_marker): Function removed.
2660 (cursor_to, clear_to_end, clear_frame, clear_end_of_line_raw)
2661 (clear_end_of_line_raw, write_glyphs, ins_del_lines):
2662 Don't use `chars_wasted' or `copybuf'.
2663 (calculate_costs): Don't allocate `chars_wasted' or `copybuf'.
2664 Set `costs_set' to true.
2665 (cursor_to, clear_end_of_line): Test `costs_set' instead of
2666 `chars_wasted'.
2667 (clear_end_of_line): Function removed.
2668 (clear_end_of_line_raw): Renamed to `clear_end_of_line'.
2669 (clear_to_end): Call `clear_end_of_line' instead of
2670 `clear_end_of_line_raw'.
2671 (TN_standout_width, TF_xs, TN_magic_cookie_glitch_ul): Vars removed.
2672 (term_init): Don't set them.
2673 Turn off any standout/underline modes that require magic cookies.
2674 (ins_del_lines, highlight_if_desired, background_highlight)
2675 (turn_on_highlight, turn_off_highlight, reset_terminal_modes):
2676 Remove special processing for magic-cookie standout modes.
2677 (turn_off_face, turn_on_face): Remove special processing for
2678 underline magic-cookie glitch.
2679
2680 2001-10-19 Richard M. Stallman <rms@gnu.org>
2681
2682 * eval.c (syms_of_eval): Doc fixes.
2683
2684 2001-10-19 Gerd Moellmann <gerd@gnu.org>
2685
2686 * xdisp.c (redisplay_internal): Don't clear echo area if the
2687 mini-window is selected.
2688
2689 2001-10-19 Miles Bader <miles@gnu.org>
2690
2691 * editfns.c (text_property_stickiness): Non-rear-non-stickiness
2692 doesn't take precedence if the affected property's value is nil.
2693
2694 * editfns.c (Fencode_time): Escape a BOL paren in the doc-string.
2695
2696 * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify interaction
2697 with fields and suggest using `forward-line' to avoid them.
2698 * editfns.c (Fline_beginning_position, Fline_end_position):
2699 Clarify documentation.
2700
2701 2001-10-18 Stefan Monnier <monnier@cs.yale.edu>
2702
2703 * keymap.c (current_minor_maps): `override' only shadows its
2704 correspondent in minor-mode-map-alist, not the whole tail.
2705
2706 2001-10-18 Andrew Innes <andrewi@gnu.org>
2707
2708 * fontset.c (fs_load_font) [WINDOWSNT && _MSC_VER]: Disable
2709 optimization. The fontp->encoding array was not being initialized
2710 correctly when compiled with optimizations by MSVC.
2711
2712 2001-10-18 Gerd Moellmann <gerd@gnu.org>
2713
2714 * xdisp.c (display_line): Indicate empty lines in active mini-window.
2715
2716 2001-10-17 Andrew Innes <andrewi@gnu.org>
2717
2718 * fontset.h (struct font_info) [WINDOWSNT]: Add codepage field.
2719
2720 * w32fns.c (w32_load_system_font): Cache codepage for font, in
2721 font_info.charset field.
2722
2723 * w32term.c (w32_encode_char): Get cached codepage from font_info,
2724 rather than working it out by calling w32_codepage_for_font for
2725 every glyph.
2726
2727 2001-10-17 Andrew Innes <andrewi@gnu.org>
2728
2729 * w32term.c (w32_read_socket): Determine clipping rectangle for
2730 the entire frame, including areas covered by scrollbars and the
2731 menubar. This avoids internal arguments about whether a frame is
2732 fully obscured or not.
2733
2734 2001-10-17 Gerd Moellmann <gerd@gnu.org>
2735
2736 * xdisp.c (try_window_id): Undo last change. Give up if
2737 window ends in strings.
2738
2739 * xdisp.c (try_window_id): Don't display lines after the window
2740 end if the rest of the window after the window end was already blank.
2741
2742 * xdisp.c (try_window_id): Remove code that was only there
2743 for the release of 21.1.
2744
2745 * xdisp.c (display_line): Don't indicate empty lines in mini-windows.
2746
2747 2001-10-17 Miles Bader <miles@gnu.org>
2748
2749 * lisp.h (DEFUN): Remove `DOC_STRINGS_IN_COMMENTS' case.
2750 * xmenu.c, xdisp.c, term.c, dispnew.c, abbrev.c, editfns.c, buffer.c
2751 * xfns.c, alloc.c, minibuf.c, xterm.c, xfaces.c:
2752 Change doc-string comments to `new style' [w/`doc:' keyword].
2753 (DOC_STRINGS_IN_COMMENTS): Macro removed.
2754 * minibuf.c: Remove old commented-out-DEFUN that was used to fake
2755 out make-docfile.
2756
2757 2001-10-16 Miles Bader <miles@gnu.org>
2758
2759 * fns.c: Change doc-string comments to `new style' [w/`doc:' keyword].
2760
2761 2001-10-16 Gerd Moellmann <gerd@gnu.org>
2762
2763 * buffer.c (Fset_buffer_major_mode): Use initial-major-mode for
2764 *scratch*.
2765
2766 2001-10-16 Ken Raeburn <raeburn@gnu.org>
2767
2768 Avoid the assumption that car and cdr slots of cons cells are
2769 addressable lvalues; this allows for easier experimentation with
2770 other lisp implementations that may not permit such accesses for
2771 various reasons. Not quite complete -- buffer.c still needs some
2772 work, and w32/mac files need rechecking -- so compile-time
2773 enforcement is left disabled for now.
2774
2775 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
2776 gcc with a union-based Lisp object rep. Redefine as no-op for now.
2777 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
2778 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
2779 (XSETCAR, XSETCDR): New macros.
2780 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
2781 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
2782 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
2783 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
2784 XSETCDR.
2785 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
2786 * buffer.c (record_buffer, Fbury_buffer)
2787 (swap_out_buffer_local_variables, recenter_overlay_lists)
2788 (Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
2789 fields of a cons cell respectively.
2790 * callint.c (quotify_args, Fcall_interactively): Likewise.
2791 * ccl.c (Fregister_code_conversion_map): Likewise.
2792 * coding.c (detect_coding_system): Likewise.
2793 * composite.c (get_composition_id, make_composition_value_copy):
2794 Likewise.
2795 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding)
2796 (swap_in_symval_forwarding, set_internal, Fset_default)
2797 (Fmake_variable_buffer_local, Fmake_local_variable)
2798 (Fmake_variable_frame_local): Likewise.
2799 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
2800 * keymap.c (Fset_keymap_parent, store_in_keymap)
2801 (accessible_keymaps_1, where_is_internal_2, Fcopy_keymap): Likewise.
2802 * minibuf.c (get_minibuffer): Likewise.
2803 * search.c (Fmatch_data): Likewise.
2804 * textprop.c (extend_property_ranges): Likewise.
2805 * undo.c (record_insert, Fundo_boundary, truncate_undo_list): Likewise.
2806 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
2807 Likewise.
2808 * w32term.c (x_delete_display): Likewise.
2809 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
2810 Likewise.
2811 * xterm.c (x_list_fonts, x_load_font, x_delete_display): Likewise.
2812 * doc.c (store_function_docstring): Use XSETCARFASTINT.
2813 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and XSETCDRFASTINT.
2814 (Fread_file_name): Use XSETCAR.
2815 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
2816 CHECK_NUMBER_CDR.
2817 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
2818 * frame.c (Fmake_terminal_frame): Use XSETCDR.
2819 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
2820 CHECK_NUMBER_CDR.
2821 * keyboard.c (read_char): Alter list traversal to avoid taking the
2822 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
2823 (parse_menu_item): Use XSETCAR and XSETCDR.
2824 (reach_char_x_menu_prompt): Use XSETCAR.
2825 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
2826 (Fcommand_execute): Use XSETCDR.
2827 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
2828 (openp): Change list traversal to avoid using XCAR as lvalue.
2829 (read_list): Use XSETCDR.
2830 * process.c (wait_reading_process_input): Change wait_for_cell
2831 handling to avoid taking addresses of cons cell slots.
2832 * xselect.c (x_own_selection, x_handle_selection_clear)
2833 (x_clear_frame_selections): Use XSETCDR.
2834 (wait_for_property_change): Use XSETCARFASTINT and XSETCDRFASTINT.
2835 (x_handle_property_notify, x_get_foreign_selection)
2836 (x_handle_selection_notify): Use XSETCAR.
2837
2838 2001-10-15 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2839
2840 * buffer.c: Put doc strings in comments.
2841
2842 * sound.c: Include <sys/ioctl.h> also on systems without <soundcard.h>.
2843
2844 2001-10-15 Sam Steingold <sds@gnu.org>
2845
2846 * fns.c (Vafter_load_alist): Declare extern (w32 build problem).
2847
2848 2001-10-15 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2849
2850 * process.c (process-inherit-coding-system-flag)
2851 (get-buffer-process): Do not confuse make-docfile with doc strings
2852 in comment.
2853
2854 * editfns.c (Fchar_to_string): Make doc string consistent with
2855 arguments. Put doc strings in comments.
2856
2857 * abbrev.c, minibuf.c: Put doc strings in comments.
2858
2859 2001-10-15 Gerd Moellmann <gerd@gnu.org>
2860
2861 * window.c (window_loop): Don't check for Fother_buffer returning nil.
2862
2863 * window.c (select_window_1): Unfreeze window start. Remove a
2864 doubled test for WINDOW being live.
2865
2866 2001-10-15 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2867
2868 * fns.c (Fmapconcat): Fix typo in a doc string.
2869
2870 * dispnew.c (Fsleep_for): Fix typo in a doc string.
2871
2872 2001-10-15 Gerd Moellmann <gerd@gnu.org>
2873
2874 * xterm.c (x_draw_glyph_string): Restore clipping after
2875 drawing box.
2876
2877 2001-10-15 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2878
2879 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc string.
2880
2881 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
2882
2883 * indent.c (skip_invisible): Use new retval of
2884 TEXT_PROP_MEANS_INVISIBLE.
2885
2886 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
2887 If a parent is reached and noinherit is set, exit immediately.
2888 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
2889
2890 * s/ms-w32.h (EXEC_SUFFIXES):
2891 * s/msdos.h (EXEC_SUFFIXES):
2892 * process.h (EXEC_SUFFIXES): Remove.
2893
2894 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
2895 (decode_suffixes): Remove.
2896
2897 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
2898 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
2899 (invisible_ellipsis_p): Remove.
2900
2901 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
2902 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
2903 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
2904 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
2905 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
2906
2907 2001-10-14 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
2908
2909 * lisp.h (Ftop_level): Add prototype.
2910
2911 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
2912 (XTread_socket): Improve style of comments to follow other
2913 comments.
2914
2915 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
2916 is already prototyped in included lisp.h).
2917
2918 * frame.c (Fset_mouse_position): Improve style of comment to
2919 follow other comments.
2920 (Fset_mouse_pixel_position): Improve style of comment to follow
2921 other comments.
2922 (Fmake_frame_visible): Doc fix and typo in comment.
2923 (Fmake_frame_invisible): Doc fix and typo in comment.
2924 (Ficonify_frame): Fix typo in comment.
2925
2926 2001-10-14 Gerd Moellmann <gerd@gnu.org>
2927
2928 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
2929 * term.c, alloc.c: Put doc strings in comments.
2930
2931 2001-10-13 Gerd Moellmann <gerd@gnu.org>
2932
2933 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
2934 Provide definitions for doc strings in comments.
2935
2936 * fns.c: Put doc strings in comments.
2937
2938 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
2939
2940 * dired.c (file_name_completion): Ignore a candidate directory if
2941 it matches an element in completion-ignored-extensions that ends
2942 in a slash.
2943 (syms_of_dired) <completion-ignored-extensions>: Mention the above
2944 feature in the doc string.
2945 (Ffile_name_completion): Ditto.
2946
2947 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
2948
2949 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
2950
2951 * xfns.c (syms_of_xfns): Update calls to Fprovide.
2952
2953 * lisp.h (Fprovide): Update prototype.
2954 (Ffeaturep, invisible_p): Remove.
2955
2956 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
2957 (DOLIST, LOOP_PROPVAL): New macros.
2958 (invisible_p, invisible_ellipsis_p): Use them.
2959 (invisible_noellipsis_p): New function.
2960 (syms_of_xdisp): Use empty_string.
2961
2962 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
2963
2964 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
2965 (syms_of_lread) <Vafter_load_alist>: Update docstring.
2966
2967 * print.c (Fwith_output_to_temp_buffer): Align with
2968 internal_with_output_to_temp_buffer.
2969 (print_preprocess): Use traverse_intervals_noorder.
2970 (print_object): Update call to traverse_intervals.
2971
2972 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
2973 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
2974
2975 * intervals.c (traverse_intervals_noorder): New function.
2976 (search_for_interval, count_intervals): Use it.
2977 (traverse_intervals): Use less stack space and drop `depth' arg.
2978
2979 * fns.c (Ffeaturep): Add new `subfeature' arg.
2980 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
2981 (Qsubfeatures): New var.
2982 (syms_of_fns): Initialize it.
2983
2984 * keymap.c (Fkey_description): Use empty_string.
2985 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
2986 (syms_of_keymap): Setup inheritance between maps.
2987 Don't export Sdescribe_bindings_internal any more.
2988
2989 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
2990
2991 2001-10-12 Gerd Moellmann <gerd@gnu.org>
2992
2993 * xterm.c (notice_overwritten_cursor): Renamed from
2994 note_overwritten_text_cursor. Rewritten to take glyph widths into
2995 account.
2996
2997 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
2998
2999 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
3000 multi-line strings without a trailing "\n\".
3001
3002 2001-10-12 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
3003
3004 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
3005 defined.
3006
3007 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
3008
3009 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
3010
3011 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
3012 * w32proc.c (sys_spawnve):
3013 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
3014 * w32.c (check_windows_init_file):
3015 * sound.c (Fplay_sound):
3016 * emacs.c (init_cmdargs):
3017 * process.c (Fstart_process): Update calls to openp.
3018
3019 * callproc.c (Vexec_suffixes): New var.
3020 (Fcall_process): Update call to openp.
3021 (decode_suffixes): New function.
3022 (syms_of_callproc): Init exec-suffixes.
3023
3024 * lread.c (Vload_suffixes, default_suffixes): New vars.
3025 (openp): Take a lisp list of suffixes.
3026 Check for file-name-handlers even if the file was absolute already.
3027 (syms_of_lread): Declare load-suffixes.
3028 (Fload): Fix up call to openp.
3029 Don't bother checking for file-name-handler at the very beginning.
3030
3031 * keymap.h (Fcopy_keymap): Don't export.
3032
3033 * lisp.h (empty_string): Declare.
3034 (Vload_suffixes, Vexec_suffixes): Declare.
3035 (openp): Update prototype.
3036
3037 * emacs.c (empty_string): New var.
3038 (syms_of_emacs): Initialize it.
3039
3040 * search.c (wordify): Use it.
3041
3042 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
3043 selected window if it's not displayed there. Handle the case
3044 when the window is dedicated.
3045 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
3046
3047 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
3048
3049 * syntax.h (struct gl_state_s): Change the meaning of b_property.
3050 Remove left_ok and right_ok.
3051 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
3052 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
3053 new meaning of b_property.
3054
3055 * syntax.c (update_syntax_table): Simplify.
3056 (Fforward_comment): Don't skip quoted chars when going backward.
3057
3058 2001-10-11 Gerd Moellmann <gerd@gnu.org>
3059
3060 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
3061 in case I is of some unsigned type, in which case
3062 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
3063 comparison becomes bogus.
3064
3065 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
3066 (Fuser_full_name): Fix bug treating a float as a fixnum.
3067
3068 * data.c (Fstring_to_number): Use make_fixnum_or_float.
3069
3070 * lisp.h (make_fixnum_or_float): New macro.
3071
3072 * lisp.h (circular_list_error): Add prototype.
3073
3074 * data.c (Qcircular_list): New variable.
3075 (circular_list_error): New function.
3076 (syms_of_data): Initialize it Qcircular_list.
3077
3078 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
3079
3080 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c
3081 * casefiddle.c, buffer.c: Include keymap.h.
3082
3083 2001-10-10 Gerd Moellmann <gerd@gnu.org>
3084
3085 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
3086 options. From Dave Love <d.love@dl.ac.uk>.
3087
3088 2001-10-09 Gerd Moellmann <gerd@gnu.org>
3089
3090 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
3091 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
3092
3093 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
3094 unsigned char.
3095 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
3096
3097 2001-10-08 Andrew Innes <andrewi@gnu.org>
3098
3099 * lisp.h [max]: Undef min and max before redefining them.
3100
3101 * w32gui.h: Do not undef min and max.
3102
3103 * w32heap.h: Do not undef min and max.
3104
3105 * s/ms-w32.h: Do not undef min and max.
3106
3107 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
3108
3109 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
3110
3111 2001-10-08 Sam Steingold <sds@gnu.org>
3112
3113 * keymap.c (current-active-maps): Quote newlines (compilation error).
3114
3115 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
3116
3117 * Makefile.in (lisp, shortlisp): Replace bindings.el with
3118 bindings.elc, since otherwise doc strings in bindings.el get wrong
3119 offsets in etc/DOC.
3120
3121 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
3122
3123 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
3124
3125 * keyboard.h (map_prompt): Remove.
3126
3127 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
3128 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
3129
3130 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
3131
3132 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
3133
3134 * keyboard.c (map_prompt): Remove.
3135 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
3136 Use Fkeymap_prompt.
3137
3138 * keymap.h: New file. Extracted from lisp.h.
3139
3140 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
3141 (accessible_keymaps_1): New function.
3142 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
3143 (Fwhere_is_internal): Use Fcurrent_active_maps.
3144 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
3145 Insert in current buffer rather than standard-output.
3146 Don't call `help-mode'. Export to elisp.
3147 (describe_buffer_bindings): New wrapper.
3148 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
3149 and Sdescribe_buffer_bindings.
3150
3151 2001-10-08 Gerd Moellmann <gerd@gnu.org>
3152
3153 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
3154 Remove code setting signal handler.
3155
3156 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
3157 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
3158
3159 2001-10-08 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
3160
3161 * keyboard.c: Don't define min/max.
3162
3163 2001-10-08 Gerd Moellmann <gerd@gnu.org>
3164
3165 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
3166 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
3167 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
3168 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
3169 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
3170 Don't define min/max.
3171
3172 * lisp.h (min, max): New macros.
3173
3174 * puresize.h (BASE_PURESIZE): Increase to 725000.
3175
3176 2001-10-08 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
3177
3178 * xfaces.c (free_frame_menubar): Add prototype.
3179
3180 * lisp.h (init_window): Add prototype.
3181
3182 * editfns.c: Include ctype.h.
3183
3184 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
3185 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
3186 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
3187 variable `sb'.
3188
3189 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
3190 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
3191 `popup_activated_flag' and `title'.
3192
3193 * doc.c (Fdocumentation_property): Fix typo in a doc string.
3194
3195 * emacs.c (main): Remove extra `;'.
3196
3197 * atimer.h (struct atimer): Fix typos in a comment.
3198
3199 * atimer.c: Fix typo.
3200
3201 * Makefile.in: Fix typo.
3202
3203 * README: Remove obsolete part mentioning removed VMS file.
3204
3205 2001-10-07 Miles Bader <miles@gnu.org>
3206
3207 * Makefile.in (lisp, shortlisp): Add `button.elc'.
3208
3209 2001-10-07 Ken Raeburn <raeburn@gnu.org>
3210
3211 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
3212 Lisp_Object.
3213
3214 * lisp.h (Ffield_end): Declare.
3215
3216 2001-10-07 Gerd Moellmann <gerd@gnu.org>
3217
3218 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
3219
3220 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
3221
3222 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
3223
3224 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
3225
3226 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
3227 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
3228
3229 * alloc.c (inhibit_garbage_collection): Simplify.
3230 (Fmemory_use_counts): Ditto.
3231
3232 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
3233 (syms_of_data): DEFVAR_INT most-positive-fixnum and
3234 most-negative-fixnum.
3235
3236 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
3237 (FIXNUM_OVERFLOW_P): New macros.
3238
3239 2001-10-06 Miles Bader <miles@gnu.org>
3240
3241 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
3242 scroll_bar_bottom_shadow_pixel fields.
3243 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
3244 for the shadows, and tell the toolkit about them if we succeed.
3245 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
3246 Free scroll-bar shadow colors.
3247 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
3248 Free scroll-bar shadow colors when the background color changes.
3249 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
3250 Initialize scroll-bar shadow-color fields.
3251
3252 2001-10-05 Gerd Moellmann <gerd@gnu.org>
3253
3254 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
3255
3256 2001-10-05 Miles Bader <miles@gnu.org>
3257
3258 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
3259 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
3260 New functions (were in simple.el).
3261 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
3262 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
3263 (syms_of_minibuf): Initialize them.
3264
3265 2001-10-05 Gerd Moellmann <gerd@gnu.org>
3266
3267 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
3268 (tiff_load): Install them as error and warning handler.
3269
3270 2001-10-04 Andrew Innes <andrewi@gnu.org>
3271
3272 * w32fns.c (x_to_w32_color): Fix argument to alloca.
3273 (w32_load_system_font): Don't believe what GetLanguageFontInfo
3274 says; query codepage info directly to determine if font is double byte.
3275 (x_to_w32_charset): Handle private format for unknown charsets.
3276 Handle wildcards in charset spec, by ignoring them.
3277 (w32_codepage_for_font): Fix argument to alloca. Don't remove
3278 "*-" prefix from charset.
3279 (x_to_w32_font): Enlarge remainder array for safety. Specifically
3280 handle the truncated font spec form constructed by font_list_1, so
3281 that we correctly identify the charset fields. Don't remove "*-"
3282 prefix from charset.
3283 (w32_list_synthesized_fonts): Fix argument to alloca.
3284
3285 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
3286
3287 * window.h (MINI_WINDOW_P): Use NILP.
3288
3289 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
3290
3291 * termhooks.h (struct input_event): Use proper type for `kind'.
3292
3293 2001-10-04 Gerd Moellmann <gerd@gnu.org>
3294
3295 This handles unknown keysyms better than before. For example,
3296 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
3297 Emacs formerly completely ignored F5. With the change, it derives
3298 a key symbol from the name of the X keysym, `ccaron' in this case.
3299 Reported by Martin Buchholz.
3300
3301 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
3302 unknown keysyms.
3303
3304 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
3305 that EVENT->code isn't a function key, use the keysym's name.
3306
3307 2001-10-04 Gerd Moellmann <gerd@gnu.org>
3308
3309 FOREACH is a macro that should make it easier to loop over Lisp
3310 lists with checks for cycles and proper lists.
3311
3312 * lisp.h (LIST_END_P, FOREACH): New macros.
3313
3314 2001-10-04 Gerd Moellmann <gerd@gnu.org>
3315
3316 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
3317 called for a lost connection. Prevent dumping core in this case.
3318 Instead print the X error, and exit. On user request.
3319
3320 * xterm.c (error_msg): New variable.
3321 (x_fatal_error_signal): New function.
3322 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
3323 as fatal_error_signal_hook around the call to XtCloseDisplay.
3324
3325 * emacs.c (fatal_error_signal_hook): New variable.
3326 (fatal_error_signal): Call that function.
3327
3328 2001-10-04 Gerd Moellmann <gerd@gnu.org>
3329
3330 With this, Emacs prints how much pure storage it will
3331 approximately need in case pure storage overflows while dumping.
3332
3333 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
3334 New variables.
3335 (init_alloc_once): Initialize new variables.
3336 (PURE_POINTER_P): Use new variables.
3337 (pure_alloc): If pure storage overflows, allocate from the heap.
3338 (check_pure_size): New function.
3339 (Fgarbage_collect): Don't GC if pure storage has overflowed.
3340
3341 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
3342 (check_pure_size): Add prototype.
3343
3344 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
3345
3346 2001-10-04 Gerd Moellmann <gerd@gnu.org>
3347
3348 This adds a post-gc-hook that's run with GC inhibited.
3349 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
3350
3351 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
3352 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
3353 (Fgarbage_collect): Run post-gc-hook.
3354
3355 2001-10-04 Gerd Moellmann <gerd@gnu.org>
3356
3357 This adds `defvaralias' and `indirect-variable'. Changes not
3358 directly related to this feature are there to gain the same
3359 performance again as before variable aliases.
3360
3361 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
3362 code to get and set symbol values, to take defvaralias into account.
3363
3364 (Note: the new `constant' bit-flag in symbols would make it
3365 possible to define arbitrary read-only variables, e.g. with
3366 `defconst'.)
3367
3368 Documentation is in lispref/variables.texi. Added to NEWS.
3369
3370 * lisp.h (enum symbol_interned): New enumeration.
3371 (struct Lisp_Symbol): Remove member `obarray', add
3372 `indirect_variable', `constant', and `interned'.
3373 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
3374 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
3375 (indirect_variable): Add prototype.
3376
3377 * print.c (print_preprocess, print_object): Test internedness of
3378 symbols differently.
3379
3380 * lread.c (Fintern, Funintern): Set symbol's interned and constant
3381 bit-fields.
3382 (init_obarray): Likewise for t and nil.
3383
3384 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
3385 (Fdefvaralias): New function.
3386 (specbind): Simplify the test if symbol is a constant.
3387 (syms_of_eval): Defsubr Fdefvaralias.
3388
3389 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
3390 (Qcyclic_variable_indirection): New variable.
3391 (Fkeywordp): Check for internedness differently.
3392 (Fmakunbound): Simplify the test if symbol is a constant.
3393 (indirect_variable, Findirect_variable): New functions.
3394 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
3395 aliased symbol.
3396 (let_shadows_buffer_binding_p): Check for variable aliases.
3397 (set_internal): Simplify the test if SYMBOL is a constant.
3398 If SYMBOL has a buffer-local value and is an alias, use the aliased
3399 symbol instead.
3400 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
3401 Sindirect_variable.
3402
3403 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
3404 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
3405 set directly.
3406
3407 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
3408
3409 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
3410 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
3411 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
3412
3413 2001-10-04 Gerd Moellmann <gerd@gnu.org>
3414
3415 * Branch for 21.1.
3416
3417 2001-10-03 Miles Bader <miles@gnu.org>
3418
3419 * callproc.c (syms_of_callproc): Explicitly state in the
3420 documentation for `process-environment' that earlier entries take
3421 precedence over later ones.
3422
3423 2001-10-02 Miles Bader <miles@gnu.org>
3424
3425 * textprop.c (Fnext_char_property_change)
3426 (Fprevious_char_property_change): Remove reference to non-existant
3427 argument OBJECT from doc-string.
3428
3429 2001-10-01 Gerd Moellmann <gerd@gnu.org>
3430
3431 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
3432 (try_window_id): Skip back over lines ending in a newline from a
3433 string.
3434
3435 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
3436 New bit flag
3437
3438 2001-10-01 Richard M. Stallman <rms@gnu.org>
3439
3440 * search.c (Freplace_match): Doc fix.
3441
3442 2001-09-28 Andrew Innes <andrewi@gnu.org>
3443
3444 * w32menu.c (set_frame_menubar): Take into account that
3445 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
3446 <raeburn@gnu.org>.
3447
3448 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
3449
3450 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
3451
3452 2001-09-28 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
3453
3454 * s/gnu-linux.h: Fix a typo in comment.
3455
3456 2001-09-28 Andreas Schwab <schwab@suse.de>
3457
3458 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
3459 nocombreloc, in case -z combreloc is the default.
3460
3461 2001-09-28 Gerd Moellmann <gerd@gnu.org>
3462
3463 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
3464 really going on here.
3465
3466 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
3467
3468 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
3469
3470 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
3471
3472 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
3473 utf-8, menu-bar, and latin-N.
3474 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
3475 unconditionally now.
3476 (lisp): Add latin-N, since they are preloaded.
3477
3478 2001-09-27 Gerd Moellmann <gerd@gnu.org>
3479
3480 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
3481 to the left. Some cleanup.
3482
3483 * xdisp.c (display_mode_element): One more case where a string's
3484 multibyteness should be used for display.
3485
3486 2001-09-26 Gerd Moellmann <gerd@gnu.org>
3487
3488 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
3489 reading at EOF.
3490
3491 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
3492 of the only temporarily set echoing flag for deciding when
3493 the cancel echoing.
3494
3495 * keyboard.c (echo_kboard): Make externally visible.
3496
3497 * lisp.h (echo_kboard): Declare extern.
3498
3499 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
3500 fonts_changed_p if we need larger matrices due to vscrolling.
3501 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
3502 this round of redisplay if make_cursor_line_fully_visible fails.
3503 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
3504 (try_cursor_movement, try_scrolling): Use them instead of integers.
3505
3506 * dispextern.h (required_matrix_width, required_matrix_height):
3507 Add prototypes.
3508
3509 * dispnew.c (required_matrix_width, required_matrix_height):
3510 New functions.
3511 (allocate_matrices_for_window_redisplay)
3512 (allocate_matrices_for_frame_redisplay: Use them.
3513 Remove parameters CH_DIM.
3514
3515 * xdisp.c (display_mode_lines): Temporarily set selected_frame
3516 and selected_window to the frame of the window whose mode-lines
3517 are displayed, and to the window itself.
3518 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
3519 here.
3520
3521 2001-09-25 Gerd Moellmann <gerd@gnu.org>
3522
3523 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
3524 the image cache under us.
3525
3526 * xdisp.c (display_mode_element): If the mode element is a symbol
3527 with a string value, use that string's multibyteness for displaying.
3528
3529 * keyboard.c (read_char): Don't clear a message for a switch-frame
3530 event. From Stefan Monnier <monnier@cs.yale.edu>.
3531
3532 * xterm.c (fast_find_position) [0]: Add a presumably more correct
3533 version for after 21.1.
3534
3535 * xdisp.c (row_containing_pos): Make externally visible.
3536
3537 * dispextern.h (row_containing_pos): Add prototype.
3538
3539 * process.c (send_process): Disable composition if from_byte < 0.
3540 From Kenichi Handa <handa@etl.go.jp>.
3541
3542 2001-09-24 Gerd Moellmann <gerd@gnu.org>
3543
3544 * xterm.c (refreshicon): Function removed.
3545
3546 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
3547
3548 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
3549
3550 * xterm.c (toplevel): Remove includes in #if 0.
3551
3552 * process.c (sigchld_handler) [LINUX]: Don't return from
3553 the signal handler at the end of the loop.
3554
3555 2001-09-21 Gerd Moellmann <gerd@gnu.org>
3556
3557 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
3558 Terminate only if kill returns -1, and errno is ESRCH.
3559
3560 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
3561
3562 * Makefile.in (shortlisp): Add ../lisp/env.elc.
3563
3564 2001-09-20 Gerd Moellmann <gerd@gnu.org>
3565
3566 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
3567 since this function can be called during GC.
3568
3569 * callproc.c (Fcall_process): Handle errors from pipe(2).
3570 (child_setup): Delete code in #ifdef vipc.
3571
3572 2001-09-19 Gerd Moellmann <gerd@gnu.org>
3573
3574 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
3575 (display_mode_element): Display the string from decode_mode_spec
3576 depending on its multibyteness.
3577
3578 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
3579
3580 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
3581
3582 2001-09-18 Gerd Moellmann <gerd@gnu.org>
3583
3584 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
3585 recursive_edit_unwind.
3586 (recursive_edit_unwind): Set kboard state according to
3587 SINGLE-KBOARD.
3588
3589 * buffer.c (modify_overlay): Don't do nothing if START == END;
3590 This can still be a modification, for example when an overlay has
3591 a before-string or after-string.
3592 (Fdelete_overlay): Prevent redisplay optimizations when deleting
3593 an overlay with before-string or after-string.
3594
3595 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
3596 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
3597
3598 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
3599 first_unchanged_at_end_row is in front of
3600 last_unchanged_at_beg_row. This code should be removed after the
3601 release of 21.1.
3602
3603 2001-09-17 Gerd Moellmann <gerd@gnu.org>
3604
3605 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
3606 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
3607
3608 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
3609 versions >= 2.95.
3610
3611 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
3612
3613 * dired.c (Ffile_attributes): Doc fix.
3614
3615 2001-09-14 Gerd Moellmann <gerd@gnu.org>
3616
3617 * fileio.c (Ffile_symlink_p): Fix last change.
3618
3619 * filelock.c (current_lock_owner): Fix last change.
3620
3621 2001-09-13 Gerd Moellmann <gerd@gnu.org>
3622
3623 * filelock.c (current_lock_owner): If readlink returns ERANGE,
3624 take that to mean that the buffer is too small.
3625
3626 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
3627 that to mean that the buffer is too small.
3628
3629 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
3630 current buffer's multibyteness when discarding the iterator's
3631 stack.
3632
3633 * xfns.c (Fx_window_property): Handle case that property gets
3634 deleted between the two calls to XGetWindowProperty.
3635
3636 2001-09-11 Gerd Moellmann <gerd@gnu.org>
3637
3638 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
3639
3640 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
3641 in addition to read-only.
3642
3643 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
3644 to t in addition to read-only.
3645
3646 * lisp.h (Qinhibit_modification_hooks): Declare.
3647
3648 * insdel.c (Qinhibit_modification_hooks): New variable.
3649 (syms_of_insdel): Initialize and staticpro it.
3650
3651 * textprop.c (verify_interval_modification): Don't run
3652 modification-hooks if inhibit_modification_hooks.
3653
3654 * dispnew.c (set_window_cursor_after_update): Fix code
3655 finding glyph row containing cursor when cursor_in_echo_area
3656 is >= 0.
3657
3658 * xdisp.c (init_from_display_pos): Put some code in #if 0.
3659 (add_to_log): Use bcopy instead of strcpy.
3660 (init_from_display_pos): Use an explicit loop over bytes in
3661 overlay strings instead of calling index.
3662
3663 2001-09-10 Gerd Moellmann <gerd@gnu.org>
3664
3665 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
3666
3667 * dispnew.c (direct_output_for_insert): Don't change IT's
3668 stop_charpos to something in front of its current position.
3669
3670 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
3671 `format'.
3672
3673 2001-09-10 Richard M. Stallman <rms@gnu.org>
3674
3675 * frame.c (Fmouse_position): Doc fix.
3676
3677 2001-09-07 Gerd Moellmann <gerd@gnu.org>
3678
3679 * xdisp.c (init_from_display_pos): Don't compare the result
3680 of calling index with NULL.
3681
3682 2001-09-06 Gerd Moellmann <gerd@gnu.org>
3683
3684 * xfns.c (x_set_background_color): Don't change the colors
3685 of the X window of scroll bar widgets.
3686
3687 2001-09-05 Andrew Innes <andrewi@gnu.org>
3688
3689 * w32fns.c (w32_createwindow): Undo last change.
3690
3691 2001-09-05 Gerd Moellmann <gerd@gnu.org>
3692
3693 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
3694
3695 * xdisp.c (string_buffer_position): Use *single_char_property*
3696 functions instead of the *single_property* functions.
3697
3698 2001-09-04 Andrew Innes <andrewi@gnu.org>
3699
3700 * w32term.c (w32_read_socket): Add more information to debugging
3701 output.
3702
3703 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
3704 from Emacs frames, so that calls to GetClipBox in w32term.c
3705 correctly report when part of a frame is visible (including
3706 scrollbars, etc). This prevents repeated redrawing of frames when
3707 only a scrollbar is visible.
3708 (w32_wnd_proc): Add more frame information to debugging output.
3709
3710 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
3711
3712 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
3713
3714 2001-09-03 Gerd Moellmann <gerd@gnu.org>
3715
3716 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
3717 help-echo for a string which doesn't have help-echo itself, use
3718 get-char-property to obtain the help-echo from the string's buffer
3719 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
3720 have mouse-face, look ``under'' the string for mouse-face from an
3721 overlay.
3722 (fast_find_position): Add parameter STOP. In the final row, stop
3723 before glyphs having STOP as object. Don't consider glyphs that
3724 are not from a buffer.
3725
3726 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
3727
3728 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
3729
3730 * fns.c (Fmd5): Doc fix.
3731
3732 2001-08-31 Gerd Moellmann <gerd@gnu.org>
3733
3734 * composite.c (update_compositions): Do nothing if
3735 inhibit-modification-hooks is set.
3736
3737 2001-08-30 Gerd Moellmann <gerd@gnu.org>
3738
3739 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
3740 and check_message_stack if terminating abnormally. We want
3741 glyph matrices etc. in a core dump.
3742
3743 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
3744 (syms_of_xdisp): Initialize them.
3745 (handle_single_display_prop): Don't change point, bind `object',
3746 `position', and `buffer-position' instead to the object having the
3747 `display' property, position in the object and position in the buffer.
3748
3749 * fileio.c (Finsert_file_contents): Don't change the multibyteness
3750 of the buffer if REPLACE is non-nil.
3751
3752 2001-08-29 Gerd Moellmann <gerd@gnu.org>
3753
3754 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
3755
3756 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
3757
3758 * w32term.c (x_set_glyph_string_background_width)
3759 (show_mouse_face): Track the last changes in xterm.c.
3760
3761 2001-08-28 Gerd Moellmann <gerd@gnu.org>
3762
3763 * xterm.c (x_set_glyph_string_background_width): Set the glyph
3764 string's background width so that multi-line mouse-face is drawn
3765 to the right edge of the window.
3766 (show_mouse_face): Set the row's mouse_face_p flag after drawing
3767 glyphs.
3768
3769 * dispnew.c (direct_output_for_insert): Set updated_area
3770 before inserting/writing glyphs.
3771
3772 * xdisp.c (display_mode_element): Use string_byte_to_char to
3773 determine character positions in strings, use chars_in_text
3774 instead of strwidth.
3775 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
3776 a matrix as parameter; this is easier to use from GDB.
3777
3778 2001-08-28 Miles Bader <miles@gnu.org>
3779
3780 * textprop.c (Fprevious_single_char_property_change)
3781 (Fnext_single_char_property_change): Doc fixes.
3782
3783 2001-08-27 Gerd Moellmann <gerd@gnu.org>
3784
3785 * fileio.c (Finsert_file_contents): Allocate, restore, and
3786 free composition data in the case of REPLACE not being nil.
3787
3788 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
3789 there exist overlay strings with newlines at POS.
3790 (text_outside_line_unchanged_p): Return 0 if changes start at
3791 START and overlays exist at START. Likewise for END.
3792 (try_window_id): Give up if init_to_row_end returns 0.
3793
3794 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
3795 unconditionally.
3796
3797 2001-08-24 Gerd Moellmann <gerd@gnu.org>
3798
3799 * keymap.c (access_keymap): Return the cdr of the binding of
3800 a generic character instead of its definition (KEY . BINDING).
3801
3802 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
3803 to 0 also in the REPLACE case.
3804
3805 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
3806
3807 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
3808 open to determine whether file is readable (as for DOS_NT).
3809
3810 2001-08-23 Gerd Moellmann <gerd@gnu.org>
3811
3812 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
3813 coding.type is coding_type_no_conversion or coding_type_raw_text,
3814 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
3815 non-nil instead of just setting enable_multibyte_characters in the
3816 buffer to nil.
3817
3818 2001-08-22 Gerd Moellmann <gerd@gnu.org>
3819
3820 * dispextern.h (struct face_cache): Add member
3821 menu_face_changed_p.
3822
3823 * xfaces.c (menu_face_changed_default): New variable.
3824 (menu_face_changed_count): Variable removed.
3825 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
3826 the menu_face_changed_default flag, otherwise set the FRAME's
3827 menu_face_changed_p flag if the `menu' face has been changed.
3828 Prevent calling set_font_frame_param if FRAME is t.
3829 (make_face_cache): Initialize cache's menu_face_changed_p
3830 from menu_face_changed_default.
3831 (realize_basic_faces): Look into the frame's face cache to
3832 determine if the menu appearance needs updating.
3833
3834 * keymap.c (access_keymap): Fix last change to not consider
3835 IDX when it has modifiers.
3836
3837 2001-08-21 Gerd Moellmann <gerd@gnu.org>
3838
3839 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
3840 . BINDING) exists, where GENERIC-CHAR is the generic character of
3841 the charset of IDX, return BINDING unless there exists a binding
3842 for IDX itself.
3843
3844 2001-08-16 Gerd Moellmann <gerd@gnu.org>
3845
3846 * xrdb.c (SYSV): Don't define on Solaris 2.
3847 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
3848
3849 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
3850 of the screen line, not text line, containing IT's current position.
3851
3852 2001-08-15 Gerd Moellmann <gerd@gnu.org>
3853
3854 * window.c (window_scroll_pixel_based): Don't recenter if
3855 PT is partially visible in the window.
3856
3857 * xterm.c (expose_window_tree, expose_window, expose_line):
3858 Return 1 when overwriting mouse-face.
3859 (expose_frame): If mouse-face was overwritten, redo it.
3860
3861 * xfaces.c (x_update_menu_appearance): Don't call
3862 set_frame_menubar, let the next redisplay do it.
3863
3864 2001-08-14 Andrew Innes <andrewi@gnu.org>
3865
3866 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
3867 drawing glyph string.
3868
3869 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
3870
3871 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
3872 running HI-UX/MPP.
3873
3874 2001-08-14 Gerd Moellmann <gerd@gnu.org>
3875
3876 * xfaces.c (x_update_menu_appearance): Save and restore value of
3877 interrupt_input_blocked.
3878
3879 2001-08-13 Gerd Moellmann <gerd@gnu.org>
3880
3881 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
3882 a line start, move back to the line start.
3883
3884 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
3885 exactly when a mini-buffer is active.
3886
3887 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
3888 in units of 1/8 character on non window-system frames.
3889 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
3890
3891 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
3892
3893 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
3894 a doc string.
3895
3896 2001-08-09 Gerd Moellmann <gerd@gnu.org>
3897
3898 * keyboard.c (Vpre_help_message): New variable.
3899 (syms_of_keyboard): Initialize and staticpro it.
3900 (show_help_echo): Record current message before displaying a
3901 help-echo, and restore that message when clearing the help.
3902
3903 * xfns.c (x_create_im): Remove prototype.
3904
3905 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
3906
3907 * dispnew.c (adjust_glyph_matrix): Undo last change.
3908
3909 2001-08-08 Gerd Moellmann <gerd@gnu.org>
3910
3911 * dispnew.c (adjust_glyph_matrix): In the optimization for
3912 windows whose height has changed, disable partially visible lines.
3913
3914 2001-08-07 Gerd Moellmann <gerd@gnu.org>
3915
3916 * window.c (Frecenter): If ARG < 0, and on a window system
3917 frame, count in some empty lines when we can't move -ARG lines down.
3918
3919 * xdisp.c (start_display): Don't try to determine the continuation
3920 lines width if lines are truncated. It's superfluous and leads to
3921 incorrect results if POS is not visible in the window after
3922 reseating the iterator at the previous line start.
3923
3924 2001-08-06 Gerd Moellmann <gerd@gnu.org>
3925
3926 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
3927
3928 2001-08-06 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
3929
3930 * alloc.c (init_stack): Remove declaration.
3931
3932 2001-08-03 Gerd Moellmann <gerd@gnu.org>
3933
3934 * keyboard.c (read_key_sequence): Check that key is an integer
3935 before comparing it with quit_char.
3936 (add_command_key): Use larger_vector.
3937 (read_char_x_menu_prompt): Instead of converting symbol and
3938 integer events into conses (EVENT . nil), use (EVENT . disabled)
3939 which cannot be confused with valid events.
3940 (read_char): When reading from Vunread_command_events, check for
3941 events of the form (EVENT . disabled) instead of
3942 (EVENT . nil).
3943
3944 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
3945 a float, determine the max height from the frame's height.
3946
3947 2001-08-02 Gerd Moellmann <gerd@gnu.org>
3948
3949 * xdisp.c (redisplay_internal): Take message_cleared_p into
3950 account only if minibuf_level == 0.
3951
3952 2001-08-01 Gerd Moellmann <gerd@gnu.org>
3953
3954 * xdisp.c (redisplay_internal): Add a check for the last
3955 displayed message.
3956
3957 * xdisp.c (message_cleared_p): New variable.
3958 (clear_message): Set message_cleared_p when clearing the current
3959 message.
3960 (redisplay_internal): Look at message_cleared_p to capture
3961 the case that the echo area should be cleared.
3962
3963 * keyboard.c (command_loop_1): Fix spelling of
3964 resize_echo_area_exactly.
3965
3966 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
3967
3968 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
3969
3970 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
3971 current matrix when the window gets smaller.
3972
3973 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
3974
3975 * print.c (strout): Cast the character passed to insert_char to
3976 unsigned char, to avoid sign extension when it is promoted to int.
3977
3978 2001-07-31 Gerd Moellmann <gerd@gnu.org>
3979
3980 * fileio.c (Finsert_file_contents): Don't treat a return value
3981 of 0 from emacs_read as an IO error.
3982
3983 2001-07-30 Gerd Moellmann <gerd@gnu.org>
3984
3985 * keyboard.c (abs): New macro.
3986 (double_click_fuzz): New variable.
3987 (make_lispy_event): Use it to determine what makes a double-click.
3988 (syms_of_keyboard): DEFVAR_INT it.
3989
3990 * xmenu.c (set_frame_menubar): Take into account that
3991 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
3992 <raeburn@gnu.org>.
3993
3994 2001-07-27 Gerd Moellmann <gerd@gnu.org>
3995
3996 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
3997
3998 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
3999 of row's visible height.
4000
4001 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
4002 deal with the first overlay string having an image `display' property.
4003 (try_window_reusing_current_matrix, compute_line_metrics):
4004 Fix computation of row's visible height for the case that part of the
4005 row is invisible above and part of the row is at the same time
4006 invisible below the window.
4007
4008 2001-07-26 Gerd Moellmann <gerd@gnu.org>
4009
4010 * xfns.c (x-show-tip): Doc fix.
4011
4012 * xfns.c (Vx_max_tooltip_size): New variable.
4013 (syms_of_xfns): DEFVAR_LISP it.
4014 (Fx_show_tip): Set frame's window_width to the width of the
4015 window. Use a maximum tooltip size specified by
4016 Vx_max_tooltip_size, if that has valid contents.
4017 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
4018
4019 2001-07-26 Andrew Innes <andrewi@gnu.org>
4020
4021 * w32term.c (x_display_list): New variable.
4022 (w32_term_init): Set it.
4023
4024 * w32term.h (x_display_list): New extern.
4025
4026 2001-07-26 Gerd Moellmann <gerd@gnu.org>
4027
4028 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
4029 is non-nil, instead of when redisplaying_p is non-zero.
4030 See comment there.
4031 (mark_window_display_accurate_1): Add an assertion.
4032
4033 2001-07-25 Gerd Moellmann <gerd@gnu.org>
4034
4035 * dispextern.h (struct it): Increase size of ctl_chars to 16.
4036
4037 * xfns.c (Fx_file_dialog): Block/unblock input while processing
4038 events so that we get a chance of processing expose events.
4039
4040 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
4041
4042 2001-07-24 Gerd Moellmann <gerd@gnu.org>
4043
4044 * xfns.c (valid_image_p): Protect better against invalid image
4045 specifications. Previous code could signal an error.
4046
4047 2001-07-23 Gerd Moellmann <gerd@gnu.org>
4048
4049 * indent.c (current_column): Fix column computation in the
4050 presence of display table entries.
4051 (current_column_1, Fmove_to_column, compute_motion): Likewise.
4052
4053 * dispnew.c (adjust_glyph_matrix): In the optimization for
4054 windows whose height has changed, use the new window height
4055 to compute which rows to invalidate.
4056
4057 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
4058 (MAX_10_EXP): New macro.
4059 (Fformat): Use it.
4060
4061 * coding.c (code_convert_region): Handle the multibyte case if
4062 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
4063
4064 2001-07-20 Gerd Moellmann <gerd@gnu.org>
4065
4066 * dispextern.h (struct face): Change type of `stipple' to
4067 int; it's an ID.
4068
4069 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
4070
4071 2001-07-19 Gerd Moellmann <gerd@gnu.org>
4072
4073 * dispnew.c (update_window): Don't set the cursor at the end
4074 of the update if display update has been paused.
4075
4076 * composite.h (syms_of_composite): Renamed from syms_of_composition.
4077
4078 2001-07-18 Ken Raeburn <raeburn@gnu.org>
4079
4080 * fns.c (Fset_char_table_default): Check that a charset is defined
4081 before checking its dimension.
4082
4083 2001-07-17 Ken Raeburn <raeburn@gnu.org>
4084
4085 * coding.c (setup_coding_system): Don't do any designation based
4086 on reg_bits if charset is not yet defined.
4087
4088 * lisp.h (XVECTOR): Verify correct object type before returning a
4089 pointer, using eassert.
4090
4091 2001-07-17 Gerd Moellmann <gerd@gnu.org>
4092
4093 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
4094 Increase to 4096 because of paste problems reported on GNU/Linux.
4095
4096 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
4097
4098 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
4099
4100 2001-07-16 Gerd Moellmann <gerd@gnu.org>
4101
4102 * fileio.c (unwind_read): Function removed.
4103 (read_non_regular, read_non_regular_quit): New functions.
4104 (Finsert_file_contents): When reading from non-regular files,
4105 arrange to catch a `quit' and terminate the loop. Rearrange
4106 code so that a `quit' when reading from a regular file doesn't
4107 insert text in the buffer.
4108
4109 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
4110 Clear faces afterwards.
4111 (clear_font_table): Take a x_display_info parameter. Don't free
4112 fonts being the default font of any frame on the given display.
4113
4114 2001-07-13 Gerd Moellmann <gerd@gnu.org>
4115
4116 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
4117 instead of CHAR_STRING which can signal an error.
4118
4119 * charset.c (char_to_string_1): Extracted from char_to_string.
4120 Return -1 instead of signaling an error.
4121 (char_to_string): Use it.
4122
4123 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
4124
4125 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
4126
4127 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
4128 is t, don't try to append anything to it.
4129
4130 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
4131
4132 * dired.c (file_name_completion): Pass dp->d_name to
4133 Fstring_match, not elt, which is always nil here.
4134
4135 2001-07-12 Gerd Moellmann <gerd@gnu.org>
4136
4137 * xselect.c (x_decline_selection_request): Handle errors
4138 caused by receivers that have vanished.
4139
4140 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
4141 ignoring events on foreign windows in #if 0. Always dispatch
4142 the event after checking it with x_handle_property_notify.
4143
4144 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
4145 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
4146 TRACE macros to facilitate debugging. Add additional trace statements.
4147 (toplevel): Add prototypes for file-local functions.
4148 (x_atom_to_symbol): Remove DPYINFO parameter.
4149
4150 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
4151
4152 * w32menu.c (menubar_selection_callback, w32_menu_show):
4153 Initialize `entry' to nil.
4154 (w32_dialog_show): Remove unused `save_wv' variable.
4155 (name_is_separator): Recognize "--:foo" and "--foo-bar".
4156
4157 2001-07-11 Gerd Moellmann <gerd@gnu.org>
4158
4159 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
4160
4161 * fileio.c (unwind_read): Print a message when discarding inserted
4162 text or switching the buffer to unibyte. Change parameter.
4163 (Finsert_file_contents): Don't pass VISIT to unwind_read.
4164
4165 * fileio.c (unwind_read): New function.
4166 (Finsert_file_contents): Record it as unwind-function for
4167 the case that reading is interrupted by C-g.
4168
4169 2001-07-10 Gerd Moellmann <gerd@gnu.org>
4170
4171 * dispnew.c (update_window): Don't skip the header-line
4172 update when scrolling_window returns 0.
4173
4174 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
4175
4176 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
4177 for the case that x_decode_color signals an error.
4178
4179 * xdisp.c (add_to_log): Do nothing if called asynchronously.
4180
4181 2001-07-09 Gerd Moellmann <gerd@gnu.org>
4182
4183 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
4184 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
4185 around ioctls.
4186
4187 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
4188
4189 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
4190 doc string line for dos-timezone-offset.
4191
4192 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
4193 inline assembly, to avoid compiler warnings.
4194 (syms_of_msdos): Add \n\ at the end of a line in the doc string
4195 line for dos-unsupported-char-glyph.
4196
4197 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
4198
4199 2001-07-05 Gerd Moellmann <gerd@gnu.org>
4200
4201 * sound.c: Include Emacs' header files with #include "...".
4202
4203 * eval.c (specbind): Additionally record the buffer that was
4204 current when a buffer-local or frame-local variable was bound.
4205
4206 2001-07-04 Gerd Moellmann <gerd@gnu.org>
4207
4208 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
4209 to unibyte characters in unibyte buffers.
4210
4211 2001-07-03 Gerd Moellmann <gerd@gnu.org>
4212
4213 * eval.c (specbind): If SYMBOL has a frame-local binding, record
4214 the frame on the binding stack. Change format of entries for
4215 local bindings on the binding stack to '(SYMBOL . WHERE)'.
4216 (unbind_to): Handle unbinding a frame-local variable.
4217
4218 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
4219 glyphs and truncation glyphs at the end of a row from its pixel width.
4220 (dump_glyph_row): Print row's continuation_lines_width.
4221 (try_window_id): Take the shortcut if ZV is visible in the
4222 window, but there are actually no changes at ZV.
4223
4224 2001-07-02 Gerd Moellmann <gerd@gnu.org>
4225
4226 * xterm.h (x_free_dpy_colors): Add prototype.
4227
4228 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
4229 right number of arguments.
4230
4231 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
4232 ($(lwlibdir)TAGS): New target.
4233 (TAGS): Fix dependency list.
4234
4235 * xterm.c (x_list_fonts): Make sure XFreeFont is called
4236 with input blocked.
4237
4238 2001-06-30 Gerd Moellmann <gerd@gnu.org>
4239
4240 * emacs.c (main): Remove extern declaration for sys_nerr, which
4241 isn't used and causes a compilation error with GCC 3.0 on
4242 FreeBSD 4.3.
4243
4244 2001-06-27 Gerd Moellmann <gerd@gnu.org>
4245
4246 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
4247 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
4248 (toplevel): Include <signal.h> and syssignal.h.
4249
4250 * sound.c (vox_configure, vox_close): Turn off atimers
4251 around ioctls.
4252
4253 2001-06-26 Gerd Moellmann <gerd@gnu.org>
4254
4255 * keyboard.c (read_char) <non_reread>: Record the previous idle
4256 start time before calling timer_stop_idle.
4257 (read_char) <reread_first>: After processing a help-echo event,
4258 restore the previous idle start time.
4259
4260 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
4261 the start of invisible text.
4262 (setup_for_ellipsis): New function.
4263 (next_overlay_string): After all overlay strings have been
4264 processed, display an ellipsis if necessary.
4265 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
4266 (push_it): Initialize display_ellipsis_p on the iterator's stack.
4267
4268 * dispextern.h (struct iterator_stack_entry): Add member
4269 display_ellipsis_p.
4270
4271 2001-06-25 Gerd Moellmann <gerd@gnu.org>
4272
4273 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
4274 on the value of the wait-for-wm frame parameter.
4275
4276 * xterm.h (struct x_output): Add member wait_for_wm.
4277
4278 * xfns.c (Qwait_for_wm): New variable.
4279 (x_frame_parms): Add entry for `wait-for-wm".
4280 (x_set_wait_for_wm): New function.
4281 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
4282 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
4283
4284 * xdisp.c (try_window_id) <all changes below window end>: Don't
4285 take this shortcut if ZV is visible in the window.
4286 (try_window_id): When checking for window start being in changed
4287 text, don't check that the buffer's size has changed.
4288
4289 2001-06-23 Richard M. Stallman <rms@gnu.org>
4290
4291 * minibuf.c (Fcompleting_read): Doc fix.
4292
4293 2001-06-19 Gerd Moellmann <gerd@gnu.org>
4294
4295 * composite.c (Ffind_composition_internal): Accept ZV
4296 and a string's end position as POS.
4297
4298 2001-06-18 Gerd Moellmann <gerd@gnu.org>
4299
4300 * composite.c (Ffind_composition_internal): Check POS
4301 for validity.
4302
4303 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
4304
4305 * editfns.c (Fmessage_box): If the frame is not under a window
4306 system, output the message in the echo area.
4307
4308 2001-06-14 Richard M. Stallman <rms@gnu.org>
4309
4310 * xdisp.c (try_window_id): When EOB is visible, don't treat
4311 insertion at EOB as if it were "off the bottom of the screen."
4312
4313 2001-06-11 Andrew Innes <andrewi@gnu.org>
4314
4315 * w32proc.c (create_child): Add new parameter is_gui_app.
4316 (w32_executable_type): Add new parameter is_gui_app.
4317 (sys_spawnve): Use it.
4318 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
4319 SIGQUIT. This matches better how the signals are interpreted by
4320 MSVC compiled programs.
4321 (syms_of_ntproc): Update docstring.
4322
4323 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
4324
4325 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
4326 well otherwise note_mouse_highlight might optimize away highlighting
4327 if we pass over that same overlay again.
4328
4329 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
4330
4331 * lread.c (Fload): Document that the argument is run via
4332 substitute-in-file-name.
4333
4334 2001-05-31 Gerd Moellmann <gerd@gnu.org>
4335
4336 * Makefile.in (bootstrap-doc): New target.
4337 (bootstrap-emacs): Depend on it.
4338
4339 * fileio.c (Fdo_auto_save): Don't try to create the directory of
4340 auto-save-list-file-name when shutting down Emacs, because
4341 creating the directory might signal an error, and leaves
4342 Emacs in a strange state.
4343
4344 * term.c: (tty_cursor_hidden): New variable.
4345 (update_begin): Don't call tty_hide_cursor. Clean up.
4346 (update_end, set_terminal_window, set_scroll_region): Clean up.
4347 (ring_bell, reset_terminal_modes): Clean up.
4348 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
4349 on tty_cursor_hidden.
4350 (write_glyphs): Call tty_hide_cursor.
4351
4352 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
4353
4354 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
4355
4356 2001-05-30 Gerd Moellmann <gerd@gnu.org>
4357
4358 * xfns.c (enum image_value_type): New enumerator
4359 IMAGE_STRING_OR_NIL_VALUE.
4360 (parse_image_spec): Handle it.
4361 (xbm_format, pbm_format): Use it for :foreground and :background.
4362 (xbm_load, pbm_load): Check for nil color names.
4363
4364 * xterm.c (note_mouse_highlight): If an overlapping overlay
4365 exists, but we find that we highlight the same overlay as before,
4366 don't do the highlighting again.
4367
4368 2001-05-29 Gerd Moellmann <gerd@gnu.org>
4369
4370 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
4371 Protect unibyte strings created by replacing their multibyte
4372 equivalents in menu_items.
4373
4374 * keymap.c (Fsingle_key_description): NUL-terminate the string
4375 buffer before calling build_string.
4376
4377 * callproc.c (Fcall_process): Deal with decode_coding returning
4378 CODING_FINISH_INCONSISTENT_EOL.
4379
4380 2001-05-28 Gerd Moellmann <gerd@gnu.org>
4381
4382 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
4383 an item's name with its key description in case the description
4384 is a multibyte string.
4385
4386 * keymap.c (Fsingle_key_description): Create a multibyte string
4387 only if necessary.
4388
4389 * macros.c (Fstart_kbd_macro): Doc fix.
4390
4391 * xterm.c (cursor_in_mouse_face_p): New function.
4392 (x_draw_stretch_glyph_string): Use it to choose a different GC
4393 when drawing a cursor within highlighted text.
4394
4395 * editfns.c (char_property_eq): Put in #if 0.
4396
4397 * indent.c (string_display_width): Put in #if 0.
4398
4399 * lread.c (Fload): Remove unused label.
4400
4401 * termcap.c (speeds): Put in #if 0.
4402
4403 2001-05-18 Gerd Moellmann <gerd@gnu.org>
4404
4405 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
4406
4407 * xfaces.c (xlfd_point_size): Don't divide pixel size from
4408 transformation matrix by 10.
4409
4410 2001-05-16 Gerd Moellmann <gerd@gnu.org>
4411
4412 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
4413 only if it's equal to the former foreground pixel color.
4414 (x_set_foreground_color, x_set_background_color)
4415 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
4416
4417 2001-05-16 Dave Love <fx@gnu.org>
4418
4419 * insdel.c (signal_before_change, signal_after_change): Consider a
4420 local change hook which changes the buffer.
4421
4422 * process.c (read_process_output): Don't call signal_after_change
4423 and update_compositions after insert_from_string_before_markers.
4424
4425 2001-05-16 Gerd Moellmann <gerd@gnu.org>
4426
4427 * xfaces.c (split_font_name): Use the right field when
4428 checking for `[...]' syntax.
4429
4430 * buffer.c (copy_overlays): New function.
4431 (clone_per_buffer_values): Use it.
4432
4433 * buffer.h (OVERLAY_PLIST): New macro.
4434
4435 * keymap.c (Fsingle_key_description): Replace a build_string with
4436 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
4437
4438 * fontset.c (Ffontset_info): Check that face is non-null
4439 before accessing its fields.
4440
4441 2001-05-15 Gerd Moellmann <gerd@gnu.org>
4442
4443 * keyboard.c (read_key_sequence): Prevent generating a fake
4444 prefix key twice.
4445
4446 * xfaces.c (split_font_name): Handle `[...]' for the right
4447 font name fields.
4448
4449 * ccl.c (ccl_driver): Don't copy remaining bytes in case
4450 of CCL_STAT_INVALID_CMD.
4451
4452 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
4453
4454 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
4455 in <var> has no default value yet.
4456
4457 * xfaces.c (try_alternative_families): First try the FAMILY.
4458 And if nothing is found in the end, try again with scalable fonts.
4459 (try_font_list): Let try_alternative_families do a bit more of
4460 the work. Only use FAMILY if it is not nil.
4461 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
4462
4463 2001-05-14 Gerd Moellmann <gerd@gnu.org>
4464
4465 * xterm.c (note_mouse_highlight): Avoid changing the mouse
4466 pointer shape when show_mouse_face has already done it.
4467
4468 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
4469 full-width rows.
4470
4471 * xfaces.c (split_font_name): Make sure to leave the loop
4472 with the right value of `i'.
4473
4474 * xfaces.c (split_font_name): Handle matrix transformations
4475 in the pixel and point size fields of XLFD font names.
4476 (xlfd_point_size): Likewise.
4477
4478 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
4479
4480 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
4481 (x_to_w32_font): Add prototype.
4482
4483 * regex.c (malloc, realloc, free) [emacs]: Undefine before
4484 redefining, to avoid compiler warnings.
4485
4486 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
4487
4488 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
4489 (w32_get_bdf_glyph): Cast between unsigned char and char when
4490 passing arguments to subroutines, to shut up compiler warnings.
4491 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
4492 GET_HEX_VAL.
4493
4494 * xfaces.c: Include keyboard.h before frame.h, not after it.
4495
4496 * widget.c: Include keyboard.h before frame.h.
4497
4498 * w32term.h (struct image, struct face): Forward declaration, to
4499 avoid compiler warnings.
4500
4501 2001-05-11 Gerd Moellmann <gerd@gnu.org>
4502
4503 * keyboard.c (read_key_sequence): Don't modify events when
4504 generating fake prefix keys (mode-line, scroll-bar, ...) since
4505 this prevents proper processing of such events when pushed back
4506 into unread-command-events.
4507
4508 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
4509 actually redrawn. Make the function static.
4510 (note_mouse_highlight): Fix a case where the mouse cursor
4511 was changed back to the text cursor.
4512
4513 * xterm.h (clear_mouse_face): Remove prototype.
4514
4515 * xdisp.c (try_window_id): Fix the fix and set the right
4516 window_end_vpos.
4517
4518 * xdisp.c (try_window_id): Fix computation of window end in the
4519 case that lines were deleted at the end of the window. Add some
4520 more debug_method_adds.
4521
4522 * xfaces.c (try_alternative_families): New function.
4523 (try_font_list): Use it. If ATTRS specifies a family, check
4524 fonts from that family first.
4525 (choose_face_font): Remove code setting the family part of
4526 the pattern to nil.
4527
4528 2001-05-10 Gerd Moellmann <gerd@gnu.org>
4529
4530 * xdisp.c (try_window_id): Fix case of all changes before
4531 the window start.
4532
4533 * xdisp.c (try_window_id): Add some xasserts.
4534
4535 2001-05-09 Gerd Moellmann <gerd@gnu.org>
4536
4537 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
4538
4539 2001-05-09 Dave Love <fx@gnu.org>
4540
4541 * xdisp.c (GIVE_UP): Fix for K&R C.
4542
4543 2001-05-09 Gerd Moellmann <gerd@gnu.org>
4544
4545 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
4546
4547 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
4548 back to the text cursor shape without need.
4549
4550 2001-05-07 Gerd Moellmann <gerd@gnu.org>
4551
4552 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
4553
4554 * dispextern.h (inverse_video): Declare extern.
4555
4556 * keyboard.c (delete_kboard): Handle the case that selected_frame
4557 has been deleted in the course of x_connection_closed.
4558
4559 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
4560
4561 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
4562 Fix the change from 2001-04-30.
4563
4564 2001-05-03 Gerd Moellmann <gerd@gnu.org>
4565
4566 * xfns.c (file_dialog_unmap_cb): New function.
4567 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
4568 where a dialog is closed via the window manager.
4569
4570 * xdisp.c (try_window_id): Cases of changes all in front of
4571 the window start or all below the window end mostly rewritten.
4572 (redisplay_window): Move the tests if try_window_id is
4573 applicable to try_window_id.
4574 (GIVE_UP): New macro.
4575
4576 2001-05-02 Gerd Moellmann <gerd@gnu.org>
4577
4578 * xterm.c (expose_window): Return int. If W is the window
4579 currently being updated, mark the frame garbaged.
4580 Fix computation of rows intersecting the exposed rectangle.
4581 (expose_window_tree): Stop when expose_window returns 0.
4582
4583 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
4584 again if it has already been drawn.
4585
4586 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
4587
4588 * syntax.c (update_syntax_table): Check that oldi has the same
4589 properties as old_prop before deciding not to invalidate.
4590
4591 2001-04-30 Gerd Moellmann <gerd@gnu.org>
4592
4593 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
4594 read-only text that is so because of text properties.
4595
4596 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
4597 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
4598 windows that are components of a Lucid menu bar.
4599
4600 2001-04-27 Gerd Moellmann <gerd@gnu.org>
4601
4602 * term.c (turn_on_face): Fix reverse video handling on terminals
4603 that don't support colors.
4604
4605 2001-04-26 Gerd Moellmann <gerd@gnu.org>
4606
4607 * editfns.c (save_excursion_restore): Don't use XBUFFER on
4608 a non-buffer.
4609
4610 2001-04-25 Gerd Moellmann <gerd@gnu.org>
4611
4612 * term.c (toggle_highlight): New function.
4613 (turn_on_face): Change handling of reverse video.
4614
4615 * process.c (wait_reading_process_input):
4616 Call record_asynch_buffer_change only if a timer really changed buffers.
4617
4618 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
4619 of the number of overlays to check.
4620
4621 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
4622
4623 * xdisp.c (try_window_id): Fix a case where window_end_pos
4624 and window_end_bytepos were not adjusted.
4625
4626 2001-04-23 Gerd Moellmann <gerd@gnu.org>
4627
4628 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
4629 zero instead of -1.
4630
4631 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
4632
4633 * process.c (wait_reading_process_input) [!subprocesses]:
4634 Don't reference waiting_for_user_input_p, it's not defined in the
4635 branch without async subprocesses support.
4636
4637 2001-04-19 Gerd Moellmann <gerd@gnu.org>
4638
4639 * keyboard.c (delete_kboard): Prevent a dangling reference
4640 from current_kboard to KB, which is freed.
4641
4642 * process.c (wait_reading_process_input):
4643 Call record_asynch_buffer_change after running timers, to make
4644 read_key_sequence aware of buffer changes from under it.
4645
4646 2001-04-18 Gerd Moellmann <gerd@gnu.org>
4647
4648 * xfaces.c (Qscalable_fonts_allowed): New variable.
4649 (realizing_basic_faces_p): Removed.
4650 (x_face_list_fonts): Special handling for realizing_basic_faces_p
4651 removed.
4652 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
4653 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
4654 for scalable-fonts-allowed to t.
4655
4656 * fileio.c (Finsert_file_contents): If the file size returned from
4657 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
4658 read from files on a procfs whose contents are generated dynamically.
4659
4660 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
4661
4662 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
4663 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
4664 (__memalign_hook): Make the two prototypes consistent.
4665
4666 2001-04-17 Gerd Moellmann <gerd@gnu.org>
4667
4668 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
4669 matrix of mini-windows.
4670
4671 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
4672
4673 * intervals.c (find_interval): Don't rebalance during signal handling.
4674
4675 2001-04-11 Gerd Moellmann <gerd@gnu.org>
4676
4677 * fns.c: Include blockinput.h.
4678
4679 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
4680
4681 2001-04-10 Gerd Moellmann <gerd@gnu.org>
4682
4683 * fns.c (Fcompare_strings): Fix return values.
4684
4685 * window.c (window_scroll): Change the meaning of N to mean
4686 N screen-fulls or N lines.
4687 (window_scroll_pixel_based, window_scroll_line_based)
4688 (scroll_command, Fscroll_other_window): Change accordingly.
4689
4690 * window.c (window_scroll_pixel_based, Frecenter):
4691 Call window_box_height instead of using it.last_visible_y for the
4692 height of the window.
4693
4694 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
4695 instead of using it.last_visible_y for the height of the window.
4696
4697 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
4698 From Dan Holmsand <dan@eyebee.com>.
4699
4700 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
4701 able to write to hidden and system files. From Dan Holmsand
4702 <dan@eyebee.com>.
4703
4704 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
4705 Holmsand <dan@eyebee.com>.
4706
4707 2001-04-09 Gerd Moellmann <gerd@gnu.org>
4708
4709 * fns.c (Fplist_get, Fplist_put): Add QUITs.
4710
4711 * window.c (window_internal_height): Return 1 less if the
4712 window has a header line.
4713
4714 * xdisp.c (try_window_id): When scrolling on a terminal, take
4715 the change of window_internal_height into account.
4716
4717 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
4718
4719 * gmalloc.c (align): If the argument SIZE would overflow
4720 __malloc_ptrdiff_t, fail right away.
4721
4722 2001-04-06 Gerd Moellmann <gerd@gnu.org>
4723
4724 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
4725 Make sure the tooltip is completely visible.
4726 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
4727
4728 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
4729
4730 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
4731
4732 2001-04-06 Dave Love <fx@gnu.org>
4733
4734 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
4735 Fix test of `from'.
4736
4737 2001-04-06 Gerd Moellmann <gerd@gnu.org>
4738
4739 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
4740
4741 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
4742
4743 2001-04-05 Gerd Moellmann <gerd@gnu.org>
4744
4745 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
4746
4747 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
4748
4749 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
4750 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
4751
4752 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
4753 shell widget's position only if it is non-null.
4754
4755 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
4756 Set f->output_data.x->widget to null after destroying it.
4757
4758 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
4759 FILENAME to bring it in synch with the documentation.
4760
4761 * xfaces.c (realizing_basic_faces_p): Renamed from
4762 realize_default_face_p.
4763 (realize_basic_faces): Set/clear realizing_basic_faces_p.
4764 (realize_default_face): Don't set the flag.
4765
4766 2001-04-04 Gerd Moellmann <gerd@gnu.org>
4767
4768 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
4769
4770 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
4771
4772 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
4773 the buffer that was used for echoing.
4774
4775 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
4776 (first_font_matching): Removed unused function.
4777 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
4778 (may_use_scalable_font_p): Remove parameter FONT; rename
4779 parameter NAME to FONT.
4780 (x_face_list_fonts): Fix missing bounds check.
4781 (realizing_default_face_p): New variable.
4782 (realize_default_face): Set and clear that flag.
4783 (x_face_list_fonts): When called during the realization of the
4784 default face, and no matching fonts are found when ignoring
4785 scalable fonts and fonts matching a regexp from
4786 face-ignored-fonts, try without ignoring fonts.
4787
4788 2001-04-03 Gerd Moellmann <gerd@gnu.org>
4789
4790 * xfns.c (postprocess_image): New function.
4791 (lookup_image): Call it for all image types except PostScript.
4792 (x_kill_gs_process): Call postprocess_image.
4793
4794 * xterm.c (x_use_underline_position_properties): New variable.
4795 (x_draw_glyph_string): Use it.
4796 (syms_of_xterm): DEFVAR_BOOL it.
4797
4798 2001-04-02 Gerd Moellmann <gerd@gnu.org>
4799
4800 * xterm.c (x_alloc_nearest_color_1): New function.
4801 (x_alloc_nearest_color): Use it.
4802 (x_color_cells): Take a Display as argument, instead of a frame.
4803 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
4804 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
4805 (x_initialize): Register cvt_string_to_pixel as resource converter
4806 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
4807
4808 2001-03-30 Gerd Moellmann <gerd@gnu.org>
4809
4810 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
4811 (set_iterator_to_next): If a string from a display property ends,
4812 consider the case that this might also be the end of an
4813 overlay string having the display property.
4814
4815 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
4816
4817 * xdisp.c (reseat_to_string): Undo last change.
4818
4819 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
4820 matrix of a window when the header line changes, when
4821 new rows are allocated, or when the width changes.
4822
4823 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
4824
4825 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
4826
4827 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
4828
4829 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
4830 deprecated.
4831
4832 2001-03-29 Gerd Moellmann <gerd@gnu.org>
4833
4834 * data.c (Fsubr_interactive_form): New function.
4835 (syms_of_data): Defsubr it.
4836
4837 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
4838 (live_float_p, live_misc_p): Return 1 only if the offset of the
4839 pointer in its block is >= 0.
4840
4841 2001-03-28 Paul Eggert <eggert@twinsun.com>
4842
4843 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
4844 microseconds calcuation. Avoid double-rounding problem.
4845 In doc string, warn that the result is approximate.
4846
4847 2001-03-28 Gerd Moellmann <gerd@gnu.org>
4848
4849 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
4850 bind `inhibit-eval-during-redisplay' to t.
4851
4852 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
4853
4854 * xdisp.c (inhibit_eval_during_redisplay)
4855 (Qinhibit_eval_during_redisplay): New variables.
4856 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
4857 don't eval, return nil instead.
4858 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
4859 Initialize Qinhibit_eval_during_redisplay.
4860
4861 * xdisp.c (reseat_to_string): If STRING is multibyte, set
4862 the iterator's multibyte_p flag.
4863
4864 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
4865 instead of setting it to zero; it's incremented for each frame
4866 where the menu face is changed.
4867
4868 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
4869 change bottom shadow accordingly.
4870
4871 * xterm.c (expose_window_tree, expose_frame): Don't compute
4872 intersections here.
4873 (expose_window): Do it here instead.
4874 (x_draw_glyph_string): Fix a computation of the underline position.
4875
4876 * bytecode.c (BYTE_CODE_QUIT): New macro.
4877 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
4878
4879 2001-03-27 Gerd Moellmann <gerd@gnu.org>
4880
4881 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
4882 Give up if matrix starts in an ellipsis.
4883 (init_from_display_pos): Do nothing if POS doesn't specify
4884 a dpvec_index but the iterator has such a position.
4885
4886 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
4887
4888 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
4889 x/y position is (0, 0) after destroying the menu bar, restore
4890 its original position.
4891
4892 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
4893 (init_from_display_pos): Use it.
4894 (try_window_reusing_current_matrix): Don't use cursor_row_p.
4895
4896 2001-03-26 Gerd Moellmann <gerd@gnu.org>
4897
4898 * xdisp.c (try_window_id): Undo last change.
4899
4900 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
4901
4902 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
4903
4904 * buffer.c (syms_of_buffer): Doc fix.
4905
4906 2001-03-26 Gerd Moellmann <gerd@gnu.org>
4907
4908 * xfaces.c (x_update_menu_appearance): Use local variable
4909 popup_path for setting font resources.
4910
4911 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
4912
4913 * frame.c (Fframe_list): Don't reference tip_frame if
4914 HAVE_WINDOW_SYSTEM is not defined.
4915
4916 * emacs.c (main): Update the copyright year. From Werner LEMBERG
4917 <wl@gnu.org>.
4918
4919 2001-03-25 Gerd Moellmann <gerd@gnu.org>
4920
4921 * xdisp.c (init_from_display_pos): Test invisible property
4922 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
4923
4924 * xdisp.c (redisplay_internal) <update one window>: Make sure
4925 last_arrow_position and last_arrow_string are set.
4926
4927 * frame.c (Fframe_list): Don't return a tooltip frame.
4928
4929 2001-03-23 Gerd Moellmann <gerd@gnu.org>
4930
4931 * xdisp.c (mark_window_display_accurate_1): New function,
4932 extracted from mark_window_display_accurate.
4933 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
4934 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
4935 (mark_window_display_accurate): Use it.
4936 (redisplay_internal): Use it for the selected window.
4937 (redisplay_internal): Avoid duplicate mark_window_display_accurate
4938 for the selected frame.
4939
4940 * xdisp.c Use make_number, for readability.
4941 (try_window_id): Disable rows below the window end.
4942 (try_window_reusing_current_matrix): Use cursor_row_p.
4943 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
4944 of rows.
4945 (init_from_display_pos): If POS specifies a position in a display
4946 vector, maybe get the iterator set up for that ellipsis.
4947
4948 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
4949
4950 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
4951
4952 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
4953
4954 2001-03-23 Gerd Moellmann <gerd@gnu.org>
4955
4956 * xfaces.c (x_update_menu_appearance): Use a different path
4957 for Lucid popup menus.
4958
4959 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
4960
4961 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
4962
4963 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
4964 (string_buffer_position): Use `make_number'.
4965
4966 2001-03-22 Gerd Moellmann <gerd@gnu.org>
4967
4968 * xfaces.c (x_update_menu_appearance): Renamed from
4969 x_set_menu_face_resources. Use different resources for popups.
4970
4971 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
4972 (GC_CHECK_STRING_BYTES): Don't define.
4973
4974 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
4975 Removed, together with subroutines.
4976 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
4977 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
4978
4979 * dispextern.h (x_set_menu_resources_from_menu_face):
4980 Remove prototype.
4981
4982 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
4983 Remove calls to x_set_menu_resources_from_menu_face.
4984
4985 * xfaces.c (xm_set_menu_resources_from_menu_face):
4986 Remove #ifndef LESSTIF_VERSION.
4987
4988 * xmenu.c: Include widget.h.
4989 (single_submenu): Return int. Some cleanup.
4990 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
4991
4992 2001-03-21 Gerd Moellmann <gerd@gnu.org>
4993
4994 * xterm.c (x_update_window_end): Handle overwritten mouse face
4995 also for tool bar windows.
4996 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
4997 DRAW is DRAW_IMAGE_RAISED.
4998
4999 2001-03-20 Gerd Moellmann <gerd@gnu.org>
5000
5001 * print.c (syms_of_print): Doc fixes.
5002
5003 * fns.c (Fmd5): Doc fix.
5004
5005 2001-03-19 Gerd Moellmann <gerd@gnu.org>
5006
5007 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
5008 Clear area of the frame not occupied by the scroll bar.
5009
5010 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
5011 tip frame's root window buffer to *tip* right after creating
5012 the frame.
5013
5014 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
5015 is an integer don't have to be for space characters.
5016
5017 2001-03-16 Gerd Moellmann <gerd@gnu.org>
5018
5019 * indent.c (current_column, current_column_1, Fmove_to_column)
5020 (compute_motion): Handle characters from display vectors differently.
5021
5022 2001-03-15 Kenichi Handa <handa@etl.go.jp>
5023
5024 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
5025 drawing glyph string.
5026
5027 2001-03-15 Gerd Moellmann <gerd@gnu.org>
5028
5029 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
5030 (command_loop_1): Undo last change.
5031
5032 * xterm.c (fast_find_position): Return the correct vpos.
5033
5034 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
5035 non-null, set a per-buffer value in BUF instead of the current buffer.
5036 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
5037 Call store_symval_forwarding with BUF null.
5038 (set_internal): Call store_symval_forwarding with the BUF
5039 parameter passed to set_internal. Formerly, the value was always
5040 set in the current buffer; the buffer recorded in specbind for
5041 this case wasn't used.
5042 (arith_driver): Reindent.
5043
5044 * buffer.c (swap_out_buffer_local_variables):
5045 Call store_symval_forwarding with BUF null.
5046
5047 * lisp.h (store_symval_forwarding): Change prototype.
5048
5049 * eval.c (specbind): Call store_symval_forwarding with BUF null.
5050
5051 2001-03-14 Gerd Moellmann <gerd@gnu.org>
5052
5053 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
5054 FOR_DELETION. Avoid resizing the mini-window of the selected
5055 frame if FOR_DELETION is set.
5056 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
5057 (Fmake_frame_invisible): Change calls to do_switch_frame for new
5058 signature.
5059
5060 * window.c (Fset_window_configuration): Change call to
5061 do_switch_frame to new format.
5062
5063 * keyboard.c (quit_throw_to_read_char): Change call to
5064 do_switch_frame to new format.
5065
5066 * lisp.h (do_switch_frame): Change prototype.
5067
5068 * frame.c (Fframe_parameters): In the `buffer-list' frame
5069 parameter, store the buffer list of FRAME, not the list of the
5070 selected frame.
5071
5072 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
5073 box just because the glyph row's full_width_p flag is set.
5074
5075 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
5076
5077 * xdisp.c (highlight_trailing_whitespace): On character terminals,
5078 skip the padding blanks inserted in extend_face_to_end_of_line,
5079 before checking for trailing whitespace.
5080
5081 2001-03-13 Gerd Moellmann <gerd@gnu.org>
5082
5083 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
5084 Remove special handling for LessTif/Motif.
5085 (toplevel): Don't include Xm/Xm.h.
5086
5087 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
5088 Remove workaround code for LessTif; it doesn't work anymore.
5089
5090 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
5091 Xm/ScrollBarP.h.
5092
5093 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
5094 Don't access private scroll bar data; it's no longer necessary with
5095 contemporary LessTif.
5096
5097 * xfaces.c (xm_set_menu_resources_from_menu_face):
5098 Change #if 0 to #ifndef LESSTIF_VERSION.
5099
5100 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
5101 removing button grabs.
5102
5103 2001-03-13 Kenichi Handa <handa@etl.go.jp>
5104
5105 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
5106 and clip-large-size-font as obsolete.
5107
5108 * lread.c (read_multibyte): Check the validity of multibyte
5109 sequence. If invalid, return the first byte.
5110
5111 2001-03-12 Gerd Moellmann <gerd@gnu.org>
5112
5113 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
5114 before running the command; timer functions or process
5115 filters may have set it.
5116
5117 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
5118
5119 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
5120 Doc fix.
5121
5122 2001-03-12 Gerd Moellmann <gerd@gnu.org>
5123
5124 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
5125 to sprintf.
5126
5127 2001-03-09 Gerd Moellmann <gerd@gnu.org>
5128
5129 * dispextern.h (string_buffer_position): Add prototype.
5130
5131 * xdisp.c (string_buffer_position, display_prop_string_p)
5132 (single_display_prop_string_p): New functions.
5133
5134 * xterm.c (note_mouse_highlight): If there's no help-echo on
5135 a string, look at the buffer text ``under'' it.
5136
5137 * keyboard.c (make_lispy_event): Add string info to the event,
5138 analogous to what's done on mode lines.
5139 (read_key_sequence): For a click on a string, consider `local-map'
5140 and `keymap' of that string.
5141
5142 * keyboard.c (make_lispy_event, make_lispy_movement):
5143 Adjust calls to buffer_posn_from_coords to new format.
5144
5145 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
5146
5147 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
5148 POS; return void.
5149
5150 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
5151 flags argument to emacs_open; it seems to conflict with O_EXCL.
5152
5153 2001-03-09 Kenichi Handa <handa@etl.go.jp>
5154
5155 * composite.h (struct composition): Change types of members;
5156 glyph_len to unsigned, width to unsigned short.
5157
5158 2001-03-08 Andrew Innes <andrewi@gnu.org>
5159
5160 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
5161 menu titles.
5162
5163 2001-03-08 Gerd Moellmann <gerd@gnu.org>
5164
5165 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
5166 instead of nil.
5167
5168 * xterm.c (note_mouse_highlight): Handle mouse-face and
5169 help-echo in strings.
5170 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
5171 (fast_find_string_pos): New function.
5172
5173 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
5174 (display_string): Call face_at_string_position with new parameter.
5175
5176 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
5177 Handle `mouse-face'.
5178
5179 * dispextern.h (face_at_string_position): Change prototype.
5180
5181 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
5182
5183 * keyboard.c (make_lispy_event): Avoid generating drag events
5184 if the mouse hasn't actually moved to another buffer position.
5185
5186 2001-03-08 Dave Love <fx@gnu.org>
5187
5188 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
5189
5190 2001-03-08 Gerd Moellmann <gerd@gnu.org>
5191
5192 * process.c (Fset_process_window_size): Fix a typo.
5193
5194 2001-03-08 Kenichi Handa <handa@etl.go.jp>
5195
5196 * coding.c (detect_coding_sjis): Do more rigid check.
5197 (detect_coding_big5): Likewise.
5198 (decode_coding_sjis_big5): Likewise.
5199 (Fdetect_coding_region): Call detect_coding_system with tailing
5200 anchor byte `\0' for more rigid detection.
5201 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
5202 (Fdetect_coding_string): Likewise.
5203
5204 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
5205
5206 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
5207 a string before extracting its data.
5208
5209 2001-03-07 Gerd Moellmann <gerd@gnu.org>
5210
5211 * window.c (Frecenter): Rewrite code handling negative values
5212 of ARG on graphical frames.
5213
5214 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
5215
5216 * window.c (displayed_window_lines): If W->start is outside the
5217 accessible portion of the buffer, call start_display with BEGV or
5218 ZV instead of W->start.
5219
5220 2001-03-07 Gerd Moellmann <gerd@gnu.org>
5221
5222 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
5223
5224 * process.c (Fset_process_filter): Don't crash if the input
5225 file descriptor of PROCESS is closed.
5226 (Fset_process_window_size): Likewise.
5227
5228 2001-03-06 Kenichi Handa <handa@etl.go.jp>
5229
5230 * xterm.c (XTflash): Make the timeout of select shorter, and call
5231 select repeatedly until the desired time expires.
5232
5233 2001-03-06 Gerd Moellmann <gerd@gnu.org>
5234
5235 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
5236
5237 * xfns.c (Fx_create_frame): Clear Vwindow_list.
5238
5239 * lisp.h (Vwindow_list): Declare extern.
5240
5241 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
5242
5243 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
5244
5245 2001-03-06 Gerd Moellmann <gerd@gnu.org>
5246
5247 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
5248 to detect a case where we have to highlight a different region
5249 despite not having left the currently highlighted region.
5250 Set mouse_face_overlay in the x_display_info.
5251 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
5252
5253 * xterm.h (struct x_display_info): Add mouse_face_overlay.
5254
5255 * buffer.c (mouse_face_overlay_overlaps): New function.
5256
5257 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
5258 (Qmouse_face): Declare extern.
5259
5260 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
5261 if face_change_count is non-zero.
5262
5263 2001-03-06 Kenichi Handa <handa@etl.go.jp>
5264
5265 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
5266 that the source is unibyte.
5267
5268 2001-03-05 Dave Love <fx@gnu.org>
5269
5270 * xterm.c (XTmouse_position): Fix typo.
5271
5272 2001-03-05 Gerd Moellmann <gerd@gnu.org>
5273
5274 * minibuf.c (read_minibuf): Clean up the binding stack if
5275 called noninteractively.
5276
5277 2001-03-05 Kenichi Handa <handa@etl.go.jp>
5278
5279 * coding.c (syms_of_coding): Docstring modified.
5280
5281 2001-03-05 Kenichi Handa <handa@etl.go.jp>
5282
5283 * charset.c (char_to_string): If a single byte char has modifier
5284 bits that can't be reflected to the character code, ignore them
5285 instead of signaling an error.
5286
5287 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
5288
5289 * s/msdos.h: Update copyright notice.
5290
5291 * dosfns.h: Update copyright notice.
5292
5293 * dosfns.c: Update copyright notice.
5294
5295 * msdos.c: Update copyright notice.
5296
5297 2001-03-02 Gerd Moellmann <gerd@gnu.org>
5298
5299 * xterm.c (glyph_rect): New function.
5300 (XTmouse_position): Use it to raise the threshold for mouse
5301 movement event generation.
5302
5303 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
5304
5305 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
5306 specifies (reverse . t), reverse the initial screen colors.
5307 (IT_set_frame_parameters): If the property is foreground-color,
5308 but we are reversing the colors, set bg_set, not fg_set.
5309 Likewise for setting background-color and reversing: set fg_set.
5310 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
5311 in effect.
5312
5313 * xfaces.c (Finternal_set_lisp_face_attribute)
5314 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
5315 parameters alist.
5316
5317 2001-03-02 Gerd Moellmann <gerd@gnu.org>
5318
5319 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
5320 to a single slash in the middle of file names.
5321
5322 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
5323 Accept only alphanumeric time zone names.
5324
5325 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
5326 or width area.
5327 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
5328 a widget to zero height.
5329
5330 2001-03-01 Gerd Moellmann <gerd@gnu.org>
5331
5332 * window.c (Fwindow_end): Call move_it_past_eol only if
5333 ending up on a partially visible line.
5334
5335 2001-03-01 Dave Love <fx@gnu.org>
5336
5337 * ccl.c (Fccl_execute): Doc fix.
5338
5339 2001-03-01 Gerd Moellmann <gerd@gnu.org>
5340
5341 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
5342 of the tool bar before calling x_figure_window_size.
5343
5344 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
5345 NULL after destroying it, otherwise XTread_socket can access a
5346 destroyed widget when input is unblocked.
5347
5348 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
5349
5350 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
5351 same name as before, although there was a change in fontsets.
5352
5353 2001-02-28 Ken Raeburn <raeburn@gnu.org>
5354
5355 * lisp.h (Fframe_parameter): Declare.
5356
5357 * window.c (set_window_buffer): Field vscroll is an int, not a
5358 Lisp_Object.
5359
5360 2001-02-28 Gerd Moellmann <gerd@gnu.org>
5361
5362 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
5363 NULL instead.
5364
5365 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
5366 NULL instead.
5367
5368 * alloc.c (toplevel): Include process.h.
5369 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
5370 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
5371 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
5372 (allocate_vector, allocate_hash_table, allocate_window)
5373 (allocate_frame, allocate_process, allocate_other_vector):
5374 New functions.
5375 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
5376 (mark_maybe_pointer): New function.
5377 (mark_memory): Also mark Lisp data to which only pointers
5378 remain and not Lisp_Objects.
5379 (min_heap_address, max_heap_address): New variables.
5380 (mem_find): Return MEM_NIL if START is below min_heap_address or
5381 above max_heap_address.
5382 (mem_insert): Compute min_heap_address and max_heap_address.
5383
5384 * process.c (make_process): Use allocate_process.
5385
5386 * frame.c (make_frame): Use allocate_frame.
5387
5388 * window.c (make_window, make_dummy_parent): Use allocate_window.
5389 (Fcurrent_window_configuration): Use allocate_other_vector.
5390
5391 * lisp.h (allocate_vectorlike): Remove prototype.
5392 (allocate_vector, allocate_other_vector, allocate_frame)
5393 (allocate_window, allocate_process, allocate_hash_table):
5394 Add prototypes.
5395
5396 * fns.c (Fdelete, larger_vector): Use allocate_vector.
5397 (make_hash_table, copy_hash_table): Use allocate_hash_table.
5398
5399 2001-02-27 Kenichi Handa <handa@etl.go.jp>
5400
5401 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
5402 treat the produced bytes as a valid multibyte sequence.
5403
5404 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
5405 (ccl_driver) <CCL_WriteMultibyteChar2>:
5406 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
5407 <ccl_finish>: Set ccl->eight_bit_control properly.
5408
5409 * ccl.h (struct ccl_program): New member eight_bit_control.
5410
5411 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
5412
5413 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
5414 accessible_keymaps_char_table.
5415 (accessible_keymaps_char_table): Obey `is_metized'.
5416 (where_is_internal, Fwhere_is_internal): Don't confuse int and
5417 Lisp_Object.
5418
5419 2001-02-26 Gerd Moellmann <gerd@gnu.org>
5420
5421 * dispnew.c: Check HAVE_TERM_H before including term.h.
5422
5423 2001-02-24 Andrew Innes <andrewi@gnu.org>
5424
5425 * makefile.w32-in: Update copyright notice.
5426
5427 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
5428
5429 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
5430
5431 2001-02-24 Kenichi Handa <handa@etl.go.jp>
5432
5433 * Makefile.in (lisp): Add international/utf-8.elc.
5434
5435 * fontset.c (Fnew_fontset): Fix handling of the case that an
5436 element of FONTLIST is a cons of family and registry.
5437
5438 2001-02-23 Jason Rumney <jasonr@gnu.org>
5439
5440 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
5441 to height unconditionally.
5442
5443 * w32term.c (x_set_glyph_string_background_width): Extend the
5444 background face to the end of the drawing area in the text area, only.
5445 (x_insert_glyphs): Call window_box_left to obtain the left
5446 x-coordinate of the area to shift.
5447
5448 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
5449 safe_run_hooks.
5450
5451 2001-02-22 Andrew Innes <andrewi@gnu.org>
5452
5453 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
5454 ($(BLD)\dispnew.obj):
5455 ($(BLD)\editfns.obj):
5456 ($(BLD)\fileio.obj):
5457 ($(BLD)\filelock.obj):
5458 ($(BLD)\keyboard.obj):
5459 ($(BLD)\w32proc.obj):
5460 ($(BLD)\process.obj):
5461 ($(BLD)\sysdep.obj): Ditto.
5462
5463 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
5464 header files.
5465 ($(BLD)/dispnew.$(O)):
5466 ($(BLD)/editfns.$(O)):
5467 ($(BLD)/fileio.$(O)):
5468 ($(BLD)/filelock.$(O)):
5469 ($(BLD)/keyboard.$(O)):
5470 ($(BLD)/w32proc.$(O)):
5471 ($(BLD)/process.$(O)):
5472 ($(BLD)/sysdep.$(O)): Ditto.
5473
5474 2001-02-22 Gerd Moellmann <gerd@gnu.org>
5475
5476 * xdisp.c (forward_to_next_line_start): When taking the shortcut
5477 at the start of the function, check that the \n in it->c is
5478 from the iterator's current position.
5479
5480 * xdisp.c (handle_single_display_prop): Add parameter
5481 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
5482 properties which replace the display of text with something else.
5483 (handle_display_prop): Call handle_single_display_prop with
5484 additional argument saying if we already replaced text display
5485 with something else. Use AREF.
5486 (with_echo_area_buffer_unwind_data, display_menu_bar)
5487 (decode_mode_spec_coding): Use AREF and ASIZE.
5488
5489 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
5490 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
5491 * vmstime.h: Files removed.
5492
5493 * unexencap.c, unexfx2800.c: Files removed.
5494
5495 * dispnew.c (direct_output_for_insert): Give up if we are showing
5496 a message or just cleared the message because we might need to
5497 resize the echo area window or display an empty echo area.
5498
5499 2001-02-21 Gerd Moellmann <gerd@gnu.org>
5500
5501 * xdisp.c (redisplay_internal): Do the
5502 mark_window_display_accurate after all windows have been
5503 redisplayed because this call resets flags in buffers which are
5504 needed for proper redisplay.
5505
5506 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
5507 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
5508 the old names.
5509
5510 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
5511 busy_window to hourglass_window, busy_p to hourglass_p.
5512
5513 * msdos.h (struct x_output): Rename busy_window to
5514 hourglass_window, busy_p to hourglass_p.
5515
5516 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
5517 busy_window to hourglass_window, busy_p to hourglass_p.
5518
5519 * xfns.c: Rename everything containing *busy_cursor* and similar
5520 to *hourglass*.
5521 (syms_of_w32fns): Rename x-busy-pointer-shape to
5522 x-hourglass-pointer-shape, display-busy-cursor to
5523 display-hourglass, busy-cursor-delay to hourglass-delay.
5524
5525 * w32fns.c: Rename everything containing *busy_cursor* and similar
5526 to *hourglass*.
5527 (syms_of_w32fns): Rename x-busy-pointer-shape to
5528 x-hourglass-pointer-shape, display-busy-cursor to
5529 display-hourglass, busy-cursor-delay to hourglass-delay.
5530
5531 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
5532 of its busy_p flag.
5533
5534 * dispextern.h (start_hourglass, cancel_hourglass)
5535 (display_hourglass_p): Renamed from *busy_cursor*.
5536
5537 2001-02-20 Gerd Moellmann <gerd@gnu.org>
5538
5539 * keyboard.c (read_char): When an event from unread-command-events
5540 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
5541
5542 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
5543 equal to the current buffer.
5544
5545 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
5546 nil, otherwise we're left with truncate_lines t when a message
5547 is printed with message-truncate-lines bound to t.
5548
5549 2001-02-19 Gerd Moellmann <gerd@gnu.org>
5550
5551 * window.c (Fmove_to_window_line): Undo last change.
5552 (displayed_window_lines): Call line_bottom_y to determine
5553 the line's bottom position.
5554
5555 * dispextern.h (line_bottom_y): Add prototype.
5556
5557 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
5558 (pos_visible_p): Use it.
5559
5560 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
5561 set redisplaying_p to 0 here instead of in Frecursive_edit.
5562 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
5563 set redisplaying_p.
5564
5565 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
5566 New variables.
5567 (syms_of_xdisp): Initialize new variables.
5568 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
5569 Specbind `inhibit-menubar-update' when updating the menu bar.
5570
5571 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
5572 safe_run_hooks.
5573
5574 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
5575 safe_run_hooks.
5576
5577 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
5578 is null.
5579
5580 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
5581 to the start of the file.
5582
5583 2001-02-16 Gerd Moellmann <gerd@gnu.org>
5584
5585 * window.c (set_window_buffer): Fix last change.
5586
5587 * window.c (set_window_buffer): Set window's vscroll to 0.
5588
5589 * window.c (coordinates_in_window): Increase width of area
5590 where the vertical line can be dragged.
5591
5592 * xterm.c (x_set_glyph_string_background_width): Extend the
5593 background face to the end of the drawing area in the text
5594 area, only.
5595
5596 * xdisp.c (handle_single_display_prop): Set iterator's position
5597 to where the `display' property starts, like for images.
5598 (dump_glyph): New function.
5599 (dump_glyph_row): Use it. Dump info about marginal areas.
5600
5601 * dispnew.c (direct_output_for_insert): Recognize more cases where
5602 glyphs can be written instead of being inserted.
5603
5604 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
5605 the left x-coordinate of the area to shift.
5606
5607 * dired.c (directory_files_internal): Set result list to nil
5608 before retrying.
5609
5610 2001-02-15 Kenichi Handa <handa@etl.go.jp>
5611
5612 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
5613 invalid multibyte sequence, treat *SRC as a character of
5614 eight-bit-graphic.
5615
5616 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
5617
5618 * textprop.c (Fset_text_properties): Doc fix.
5619
5620 2001-02-15 Gerd Moellmann <gerd@gnu.org>
5621
5622 * dispnew.c (update_text_area): Undo change of 2001-01-12.
5623
5624 2001-02-14 Dave Love <fx@gnu.org>
5625
5626 * coding.c: Doc and message fixes.
5627
5628 2001-02-14 Andrew Innes <andrewi@gnu.org>
5629
5630 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
5631 Emacs frame above the screen size.
5632
5633 2001-02-14 Gerd Moellmann <gerd@gnu.org>
5634
5635 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
5636
5637 2001-02-13 Gerd Moellmann <gerd@gnu.org>
5638
5639 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
5640 case that TO ends up beyond ZV after running before-change-functions.
5641
5642 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
5643 the selected window if it is showing the buffer in question.
5644
5645 * dired.c (directory_files_internal): Initialize errno.
5646 (toplevel): Include errno.h.
5647
5648 2001-02-13 Kenichi Handa <handa@etl.go.jp>
5649
5650 * xfaces.c (best_matching_font): New parameter width_ratio.
5651 Multiply avgwidth by width_ratio.
5652 (choose_face_font): Call best_matching_font with width_ratio
5653 calculated from the column width of C.
5654
5655 2001-02-12 Andrew Innes <andrewi@gnu.org>
5656
5657 The following changes are to draw box lines inside characters area
5658 if line-width is negative.
5659
5660 * w32term.c (x_produce_image_glyph): Pay attention to the case that
5661 face->box_line_width is negative.
5662 (x_produce_stretch_glyph): Likewise.
5663 (x_produce_glyphs): Likewise.
5664 (x_estimate_mode_line_height): Likewise.
5665 (x_draw_glyph_string_background): Likewise.
5666 (x_draw_glyph_string_foreground): Likewise.
5667 (x_draw_composite_glyph_string_foreground): Likewise.
5668 (x_draw_glyph_string_box): Likewise.
5669 (x_draw_image_foreground): Likewise.
5670 (x_draw_image_relief): Likewise.
5671 (x_draw_image_foreground_1): Likewise.
5672 (x_draw_image_glyph_string): Likewise.
5673
5674 2001-02-09 Kenichi Handa <handa@etl.go.jp>
5675
5676 The following changes are to draw box lines inside characters area
5677 if line-width is negative.
5678
5679 * xterm.c (x_produce_image_glyph): Pay attention to the case that
5680 face->box_line_width is negative.
5681 (x_produce_stretch_glyph): Likewise.
5682 (x_produce_glyphs): Likewise.
5683 (x_estimate_mode_line_height): Likewise.
5684 (x_draw_glyph_string_background): Likewise.
5685 (x_draw_glyph_string_foreground): Likewise.
5686 (x_draw_composite_glyph_string_foreground): Likewise.
5687 (x_draw_glyph_string_box): Likewise.
5688 (x_draw_image_foreground): Likewise.
5689 (x_draw_image_relief): Likewise.
5690 (x_draw_image_foreground_1): Likewise.
5691 (x_draw_image_glyph_string): Likewise.
5692
5693 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
5694 and :line-width can be negative.
5695 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
5696
5697 2001-02-09 Jason Rumney <jasonr@gnu.org>
5698
5699 * w32term.c (w32_encode_char): Treat eight bit graphic and control
5700 characters the same as ASCII and latin-1.
5701 (x_display_and_set_cursor): Check for the focus frame's selected
5702 window instead of selected_window.
5703 (x_after_update_window_line): Don't clear if frame's internal
5704 border width is zero.
5705 (x_new_font): Don't change a tooltip's size.
5706 (w32_initialize): Set char_ins_del_ok to 1.
5707
5708 * w32fns.c (Fx_show_tip): Fix calls to make_number.
5709 (x_set_font): If font hasn't changed, avoid recomputing
5710 faces and other things.
5711 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
5712 (Fx_create_frame): Add the tool bar height to the frame height.
5713 (x_create_tip_frame): Prevent changing the tooltip's
5714 background color by specifying a color for the default font
5715 in .Xdefaults.
5716 (Qcancel_timer): New variable.
5717 (syms_of_w32fns): Initialize and staticpro it.
5718 (Fx_hide_tip, Fx_show_tip): Use it.
5719 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
5720 the timer.
5721 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
5722
5723 * w32.c (init_environment): Duplicate local string before putenv.
5724
5725 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
5726
5727 * charset.c (Fstring): A typo.
5728
5729 2001-02-09 Kenichi Handa <handa@etl.go.jp>
5730
5731 * charset.c (Fstring): If all arguments are less than 256, return
5732 a unibyte string.
5733
5734 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
5735 return a unibyte string.
5736
5737 * coding.c (code_convert_region): After detecting a coding, if
5738 nothing found, set coding->composing to COMPOSITION_NO.
5739 (decode_coding_string): Likewise.
5740
5741 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
5742
5743 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
5744 to avoid overflow.
5745
5746 2001-02-07 Kenichi Handa <handa@etl.go.jp>
5747
5748 * charset.c (parse_str_to_multibyte): New function.
5749
5750 * charset.h (parse_str_to_multibyte): Extern it.
5751
5752 * print.c (print_string): If we are going to print a unibyte
5753 string into a multibyte buffer, convert the string to multibyte by
5754 str_to_multibyte.
5755
5756 2001-02-06 Andrew Innes <andrewi@gnu.org>
5757
5758 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
5759 been created. It seems we can get sent window messages such as
5760 WM_ERASEBKGND before we properly update a frame.
5761
5762 2001-02-06 Gerd Moellmann <gerd@gnu.org>
5763
5764 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
5765 Avoid some unnecessary cursor positioning.
5766
5767 2001-02-05 Gerd Moellmann <gerd@gnu.org>
5768
5769 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
5770 (LFACE_AVGWIDTH): New macro.
5771 (LFACEP): Use AREF.
5772 (check_lface_attrs): Check LFACE_AVGWIDTH.
5773 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
5774 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
5775 (merge_face_vectors): Check LFACE_AVGWIDTH.
5776 (Finternal_make_lisp_face): Use AREF.
5777 (xm_set_menu_resources_from_menu_face)
5778 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
5779 (Finternal_lisp_face_empty_p): Use AREF.
5780 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
5781 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
5782 Compare average widths..
5783 (best_matching_font): Arrange for comparing average widths.
5784
5785 * dispextern.h (enum lface_attribute_index):
5786 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
5787
5788 2001-02-05 Dave Love <fx@gnu.org>
5789
5790 * puresize.h: Revert last change following loadup.el change.
5791
5792 2001-02-05 Andrew Innes <andrewi@gnu.org>
5793
5794 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
5795 invocation of temacs, to work with Windows 2000.
5796 (bootstrap-emacs): Ditto.
5797
5798 2001-02-05 Gerd Moellmann <gerd@gnu.org>
5799
5800 * xterm.c (x_display_and_set_cursor): Check for the focus
5801 frame's selected window instead of selected_window.
5802
5803 * xdisp.c (try_scrolling): If point is in the line below the
5804 window, make sure to move the iterator at least a canonical
5805 char height down.
5806
5807 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
5808
5809 2001-02-05 Kenichi Handa <handa@etl.go.jp>
5810
5811 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
5812 If invalid, execute CCL_INVALID_CMD.
5813 (ccl_driver): If the CCL program is terminated because of
5814 CCL_STAT_INVALID_CMD, copy the remaining source data to the
5815 destination instead of throwing them away.
5816
5817 2001-02-02 Gerd Moellmann <gerd@gnu.org>
5818
5819 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
5820 faces and other things.
5821
5822 * xdisp.c (get_next_display_element): Fix case of empty
5823 display table entry.
5824
5825 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
5826
5827 * editfns.c (Fconstrain_to_field): Doc fix.
5828
5829 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
5830 into `thoroughly', to make it consistent with the doc string.
5831
5832 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
5833
5834 2001-02-01 Gerd Moellmann <gerd@gnu.org>
5835
5836 * search.c (search_buffer): Call set_search_regs with a byte
5837 position, not a character position.
5838
5839 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
5840 minibuffer-only,
5841
5842 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
5843
5844 * frame.c (Fmodify_frame_parameters): Doc fix.
5845
5846 2001-01-31 Gerd Moellmann <gerd@gnu.org>
5847
5848 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
5849 identifier which is not reserved by Standard C.
5850
5851 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
5852
5853 * window.c (enum window_part): New enumeration.
5854 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
5855 Qright_bitmap_area.
5856 (coordinates_in_window): Return an enumerator from enum
5857 window_part. Fix handling of right scroll bar.
5858 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
5859 `right-fringe' instead of `left-bitmap-area' and
5860 `right-bitmap-area'. Use enumerators from enum window_part
5861 instead of hard-coded integers.
5862 (check_window_containing, window_from_coordinates):
5863 Use enumerators from enum window_part instead of hard-coded integers.
5864 (syms_of_window): Replace Qleft_bitmap_area and
5865 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
5866
5867 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
5868
5869 * editfns.c (Fformat_time_string): Doc fix.
5870
5871 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
5872
5873 * keymap.c (Fwhere_is_internal): Use the first valid binding
5874 if no ascii binding is found (when firstonly is t).
5875
5876 2001-01-31 Gerd Moellmann <gerd@gnu.org>
5877
5878 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
5879 instead of Finteractive_p.
5880
5881 * lisp.h (interactive_p): Add prototype.
5882
5883 * eval.c (interactive_p): New function.
5884 (Finteractive_p): Use it.
5885
5886 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
5887
5888 2001-01-31 Dave Love <fx@gnu.org>
5889
5890 * .gdbinit (hook-run): Define to run xreload.
5891
5892 * textprop.c (Fset_text_properties): Fix newline in doc string.
5893
5894 2001-01-30 Gerd Moellmann <gerd@gnu.org>
5895
5896 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
5897 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
5898
5899 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
5900 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
5901 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
5902
5903 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
5904 height.
5905
5906 2001-01-30 Dave Love <fx@gnu.org>
5907
5908 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
5909 AFTER_POTENTIAL_GC.
5910
5911 2001-01-29 Gerd Moellmann <gerd@gnu.org>
5912
5913 * bytecode.c (Fbyte_code) <Bcurrent_column>:
5914 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
5915
5916 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
5917
5918 * textprop.c (Fset_text_properties): Doc fix.
5919
5920 2001-01-29 Gerd Moellmann <gerd@gnu.org>
5921
5922 * xdisp.c (forward_to_next_line_start): Remove xassert.
5923
5924 2001-01-29 Jason Rumney <jasonr@gnu.org>
5925
5926 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
5927 returning without releasing it.
5928
5929 2001-01-29 Kenichi Handa <handa@etl.go.jp>
5930
5931 * w32fns.c (w32_font_match): Allocate three more bytes to regex
5932 for '^', '$', and '\0'.
5933
5934 2001-01-28 Andrew Choi <akochoi@i-cable.com>
5935
5936 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
5937 regex for '^', '$', and '\0'.
5938
5939 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
5940 only if current_sblock has been initialized.
5941
5942 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
5943 terminal frame even if it is the only visible frame.
5944
5945 2001-01-28 Kenichi Handa <handa@etl.go.jp>
5946
5947 * fontset.c (font_family_registry): Even if FONTNAME conform to
5948 XLFD, if it specifies other fields than family and registry,
5949 return FONTANME. New argument FORCE if nonzero cancel that feature.
5950 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
5951 a signle byte character. Don't set FAMILY part to nil here.
5952 It is handled by the caller choose_face_font.
5953 (Fnew_fontset): Call font_family_registry with FORCE 0.
5954 (Fset_fontset_font): Likewise.
5955
5956 2001-01-27 Gerd Moellmann <gerd@gnu.org>
5957
5958 * xdisp.c (display_line): Don't treat a newline as fitting
5959 on the line.
5960
5961 2001-01-26 Gerd Moellmann <gerd@gnu.org>
5962
5963 * window.c (size_window): Set the window's orig_top to nil when
5964 changing heights, so that a future shrink_mini_window won't
5965 restore a bogus height.
5966
5967 * frame.c (do_switch_frame): If selected frame has a mini-window,
5968 resize that to exact size.
5969
5970 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
5971
5972 * xdisp.c (display_line): Simplify check for glyphs fitting
5973 entirely in the line.
5974
5975 * xfns.c (xic_style): New variable.
5976 (create_frame_xic): Move static variable to global scope for
5977 the case that `static' gets defined away.
5978
5979 2001-01-26 Kenichi Handa <handa@etl.go.jp>
5980
5981 * coding.c (decode_coding): Set a flag for inhibiting
5982 inconsistent eol.
5983 (code_convert_region): Always set saved_coding_symbol.
5984 (decode_coding_string): Likewise. Update coding->symbol when we
5985 encounter a inconsistent eol by the same way as code_convert_region.
5986
5987 2001-01-25 Gerd Moellmann <gerd@gnu.org>
5988
5989 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
5990 XClearArea.
5991
5992 * xterm.c (x_after_update_window_line): Don't clear if frame's
5993 internal border width is zero.
5994 (x_clear_area): New function.
5995 (x_after_update_window_line, x_clear_end_of_line)
5996 (x_scroll_bar_create, x_scroll_bar_set_handle)
5997 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
5998 instead of XClearArea.
5999
6000 * xterm.h (x_clear_area): Add prototype.
6001
6002 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
6003 which doesn't seem necessary anymore with Lesstif 0.92.
6004
6005 2001-01-25 Dave Love <fx@gnu.org>
6006
6007 * puresize.h (BASE_PURESIZE): Up to 720000.
6008
6009 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
6010
6011 2001-01-25 Gerd Moellmann <gerd@gnu.org>
6012
6013 * xdisp.c (echo_area_display): Don't call redisplay_internal
6014 when Emacs is shutting down. We can't run hooks etc. that
6015 would be necessary to do a redisplay.
6016
6017 * lread.c (read_integer): Use type EMACS_INT instead of int.
6018
6019 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
6020
6021 * ccl.c (ccl_driver): Fix last change.
6022
6023 2001-01-25 Kenichi Handa <handa@etl.go.jp>
6024
6025 * ccl.h (sturct ccl_program): New member suppress_error.
6026
6027 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
6028 insert error message to the output.
6029 (setup_ccl_program): Initialize ccl->suppress_error to 0.
6030
6031 * coding.h (struct coding_system): New member suppress_error.
6032
6033 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
6034 (Fset_terminal_coding_system_internal): Set the member
6035 suppress_error to 1.
6036 (Fset_safe_terminal_coding_system_internal): Likewise.
6037
6038 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
6039
6040 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
6041 as if it was a `charset'.
6042
6043 2001-01-24 Gerd Moellmann <gerd@gnu.org>
6044
6045 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
6046 value in where_is_cache; the next lookup in the cache returns
6047 something bogus if we do.
6048
6049 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
6050
6051 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
6052 if HAVE_WINDOW_SYSTEM isn't defined.
6053
6054 2001-01-24 Gerd Moellmann <gerd@gnu.org>
6055
6056 * fns.c (sweep_weak_table): Fix code taking items out of
6057 the hash collision chain. Some cleanup.
6058
6059 * xterm.c (x_new_font): Don't change a tooltip's size.
6060
6061 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
6062 background color by specifying a color for the default font
6063 in .Xdefaults.
6064
6065 2001-01-24 Kenichi Handa <handa@etl.go.jp>
6066
6067 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
6068 a workaround for SunOS 4's cc.
6069 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
6070 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
6071 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
6072 statement.
6073
6074 2001-01-23 Gerd Moellmann <gerd@gnu.org>
6075
6076 * xterm.c (x_set_window_size_1): New function extracted from
6077 x_set_window_size.
6078 (x_set_window_size): Use it.
6079 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
6080 doesn't have a widget, like tooltips.
6081
6082 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
6083
6084 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
6085
6086 2001-01-23 Kenichi Handa <handa@etl.go.jp>
6087
6088 * fns.c (Fset_char_table_default): Fix to make sub char-table
6089 correctly.
6090
6091 2001-01-22 Gerd Moellmann <gerd@gnu.org>
6092
6093 * xdisp.c (build_desired_tool_bar_string): Make sure we have
6094 a desired tool bar string, even if there are no tool bar items.
6095
6096 * xdisp.c (Ftool_bar_lines_needed): New function.
6097 (syms_of_xdisp): Defsubr it.
6098
6099 * editfns.c (Fformat): Don't extend text properties from arguments
6100 to padding chars in the result.
6101
6102 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
6103
6104 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
6105
6106 2001-01-20 Andrew Innes <andrewi@gnu.org>
6107
6108 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
6109 (w32_initialize): Don't set term hooks that aren't actually needed
6110 in windowed mode.
6111
6112 * xfaces.c (realize_default_face):
6113 (realize_face):
6114 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
6115
6116 * xdisp.c (handle_single_display_prop): Remove references to
6117 FRAME_W32_CONSOLE_P.
6118
6119 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
6120
6121 * frame.h (output_method): Remove output_w32_console method.
6122 (FRAME_W32_CONSOLE_P): Remove macro.
6123
6124 * frame.c (Qw32_console): Remove variable.
6125 (Fframep): Remove references to it.
6126 (syms_of_frame): Ditto.
6127 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
6128
6129 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
6130 redefinition.
6131
6132 2001-01-20 Kenichi Handa <handa@etl.go.jp>
6133
6134 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
6135
6136 2001-01-19 Andrew Innes <andrewi@gnu.org>
6137
6138 * w32.c (init_environment): Add a version-independent site-lisp
6139 directory to EMACSLOADPATH, after the version dependent one.
6140
6141 2001-01-19 Gerd Moellmann <gerd@gnu.org>
6142
6143 * editfns.c (Fbuffer_substring): Doc fix.
6144
6145 * xdisp.c (message_dolog, message2, message2_nolog):
6146 Rename parameter LEN to NBYTES.
6147
6148 2001-01-19 Kenichi Handa <handa@etl.go.jp>
6149
6150 * charset.c (strwidth): Use c_string_width.
6151 (c_string_width): New function.
6152 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
6153 Caller changed.
6154
6155 * charset.h (c_string_width, lisp_string_width): Extern them.
6156
6157 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
6158
6159 * indent.c (check_composition): Check validity of composition.
6160
6161 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
6162 characters by calling c_string_width.
6163 (x_consider_frame_title): Get byte length of frame tile string
6164 correctly.
6165 (display_mode_element): Pay attention to width of non-ASCII
6166 characters by calling strwidth.
6167
6168 2001-01-18 Gerd Moellmann <gerd@gnu.org>
6169
6170 * xfns.c (Qcancel_timer): New variable.
6171 (syms_of_xfns): Initialize and staticpro it.
6172 (Fx_hide_tip, Fx_show_tip): Use it.
6173 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
6174 the timer.
6175 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
6176
6177 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
6178
6179 * window.h (WINDOW_LIVE_P): New macro.
6180
6181 * window.c (window_size_fixed): New variable.
6182 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
6183 the doc string.
6184
6185 * eval.c (specbind): If binding a per-buffer variable which
6186 doesn't have a buffer-local value in the current buffer, change
6187 the global value by changing the value of the symbol bound in all
6188 buffers not having their own value, to make it consistent with
6189 what happens with other buffer-local variables.
6190
6191 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
6192
6193 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
6194 when searching for a newline.
6195
6196 2001-01-18 Kenichi Handa <handa@etl.go.jp>
6197
6198 * xdisp.c (display_string): Fix previous change.
6199
6200 2001-01-18 Jason Rumney <jasonr@gnu.org>
6201
6202 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
6203 GLYPH_DEBUG is defined.
6204 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
6205 true for images with `:ascent 100'.
6206 (x_set_mouse_face_gc): If the last used mouse face has gone in the
6207 meantime, use face MOUSE_FACE_ID.
6208 If first glyph isn't a character glyph, use the ASCII NUL
6209 character to determine the face.
6210 (expose_area): Do not treat left margin specially.
6211 (note_mode_line_highlight): If no local_map, check global keymap.
6212 (note_mouse_highlight): Initialize overlay.
6213 (clear_mouse_face): Don't return if tip_frame is non-nil.
6214 (show_scroll_bars): Remove unused function.
6215 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
6216 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
6217 Clip to row.
6218 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
6219 (x_free_frame_resources): Unload relief colors.
6220
6221 2001-01-17 Gerd Moellmann <gerd@gnu.org>
6222
6223 * xdisp.c (forward_to_next_line_start): Avoid calling
6224 get_next_display_element when the newline is already found.
6225 This may change the iterator's position, when its current position is
6226 equal to the iterator's stop_charpos.
6227
6228 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
6229 zero, use this method only at the end of a line.
6230
6231 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
6232 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
6233 if SCALABLE_FONTS_P is set.
6234
6235 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
6236 so that scalable fonts are included.
6237
6238 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
6239 In the cache, use a key containing the information if scalable
6240 fonts are included.
6241 (x_load_font): Adapt to change of keys in the font cache.
6242
6243 2001-01-17 Kim F. Storm <storm@filanet.dk>
6244
6245 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
6246 XListFonts to take advantage of font caching.
6247
6248 * xterm.c (x_list_fonts): Ensure caching font information when
6249 called for a null frame, which is the case frequently when Emacs
6250 starts.
6251
6252 2001-01-17 Gerd Moellmann <gerd@gnu.org>
6253
6254 * xfns.c (QCconversion): Replaces QCalgorithm.
6255
6256 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
6257
6258 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
6259 of :algorithm.
6260
6261 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
6262 not everything could be displayed.
6263
6264 * line.h, x-list-font.c: Files removed because unused.
6265
6266 2001-01-17 Andrew Innes <andrewi@gnu.org>
6267
6268 * dired.c (directory_files_internal): Convert result from readdir
6269 to a unibyte string initially, to avoid possible misinterpretation
6270 of some bytes as the internal form of Emacs characters.
6271
6272 2001-01-17 Kenichi Handa <handa@etl.go.jp>
6273
6274 * fns.c (concat): Be sure to avoid putting the same `composition'
6275 property on the adjacent regions.
6276
6277 2001-01-16 Gerd Moellmann <gerd@gnu.org>
6278
6279 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
6280 (Fscroll_right, Fscroll_left): Set it here instead, if called
6281 interactively.
6282
6283 * buffer.c (Fset_buffer_modified_p): Set buffer's
6284 prevent_redisplay_optimizations_p flag.
6285
6286 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
6287 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
6288 with additional arg.
6289
6290 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
6291 Change prototype.
6292
6293 * xdisp.c (redisplay_preserve_echo_area): Add parameter
6294 FROM_WHERE, for debugging.
6295
6296 2001-01-16 Kenichi Handa <handa@etl.go.jp>
6297
6298 * ccl.c (Fregister_ccl_program): Handle the return value of
6299 resolve_symbol_ccl_program correctly.
6300 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
6301
6302 2001-01-15 Gerd Moellmann <gerd@gnu.org>
6303
6304 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
6305 has gone in the meantime, use face MOUSE_FACE_ID.
6306
6307 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
6308 If x_display_info_for_display returns null, don't try to close
6309 the display; we didn't open it.
6310
6311 * dispnew.c (save_or_restore_current_matrices): Function removed.
6312 (save_current_matrix, restore_current_matrix): New functions.
6313 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
6314 restore the frame's current matrix. Due to the glyph pointer
6315 setup done in adjust_glyph_matrix, there is no easy way to make
6316 saving the current matrix in the desired matrix generally correct,
6317 so don't try it.
6318
6319 2001-01-15 Kenichi Handa <handa@etl.go.jp>
6320
6321 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
6322 truncation glyphs.
6323 (display_line): Optimize for wide characters.
6324 (display_string): Don't try to display a multi-column character
6325 partially. On ttys, produce more than one truncation glyph for
6326 multi-column characters that don't fit on the line.
6327
6328 2001-01-13 Kenichi Handa <handa@etl.go.jp>
6329
6330 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
6331 Define it instead of WORDS_BIGENDIAN. Caller changed.
6332
6333 2001-01-13 Jason Rumney <jasonr@gnu.org>
6334
6335 * w32fns.c (Fimage_size, image_ascent, lookup_image)
6336 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
6337 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
6338 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
6339
6340 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
6341 (x_draw_image_relief, x_draw_image_foreground_1)
6342 (x_draw_image_glyph_string): Adapt to change of image margins.
6343
6344 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
6345 variables.
6346
6347 * w32bdf.c (search_file_line, get_cached_font_char)
6348 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
6349
6350 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
6351
6352 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
6353 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
6354 (Fw32_send_sys_command): Remove unused variables.
6355 (w32_msg_pump): Add parentheses.
6356
6357 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
6358 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
6359 Add parentheses.
6360
6361 2001-01-12 Gerd Moellmann <gerd@gnu.org>
6362
6363 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
6364 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
6365 being a pair of margins.
6366 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
6367 to DEFVAR_LISP. Extend doc.
6368
6369 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
6370 margins.
6371 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
6372 pair of integers `(X . Y)', use X for the horizontal and Y for the
6373 vertical margin.
6374 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
6375 (parse_image_spec): Check it.
6376 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
6377 (tiff_format, gif_format, gs_format):
6378 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
6379
6380 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
6381 (x_draw_image_relief, x_draw_image_foreground_1)
6382 (x_draw_image_glyph_string): Adapt to the change of image margins.
6383
6384 * dispextern.h (struct image): Replace member `margin' with
6385 `hmargin' and `vmargin'.
6386
6387 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
6388 and GLYPHS.
6389
6390 * dispnew.c (update_text_area): Put code which decrements the
6391 stop position when the row's face extends to the end of the
6392 line in #if 0.
6393
6394 * xfns.c (x_set_mouse_color): Fix color allocation.
6395
6396 * keyboard.c: Call get_local_map with new argument list.
6397
6398 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
6399
6400 * intervals.h (enum map_property): Removed.
6401 (get_local_map): Change prototype.
6402
6403 * keymap.c: Call get_local_map with new argument list.
6404 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
6405
6406 2001-01-11 Gerd Moellmann <gerd@gnu.org>
6407
6408 * xdisp.c (build_desired_tool_bar_string): Correct the computation
6409 of the size needed for the tool bar string. For the last image,
6410 use a `display' property that reaches to the end of the string.
6411
6412 * xselect.c (selection_request_dpyinfo): New variable.
6413 (x_handle_selection_request): Set it.
6414 (x_selection_request_lisp_error): Don't call
6415 x_decline_selection_request if selection request's display has
6416 been closed.
6417
6418 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
6419 Do the unregister_colors before calling XFreeColors.
6420
6421 2001-01-10 Dave Love <fx@gnu.org>
6422
6423 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
6424 ${SOME_MACHINE_LISP}, not ${lisp}.
6425
6426 2001-01-10 Gerd Moellmann <gerd@gnu.org>
6427
6428 * xdisp.c (display_line): On ttys, produce more than one truncation
6429 glyph for multi-column characters that don't fit on the line.
6430
6431 * xselect.c (x_reply_selection_request): Add a comment.
6432
6433 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
6434 XkbGetNames instead of XkbGetKeyboard.
6435
6436 2001-01-10 Dave Love <fx@gnu.org>
6437
6438 * sysdep.c (random): Revert the declaration.
6439
6440 2001-01-09 Gerd Moellmann <gerd@gnu.org>
6441
6442 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
6443 Call function string_bytes.
6444 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
6445
6446 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
6447 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
6448 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
6449 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
6450 the current sblock.
6451 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
6452 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
6453 after sweeping strings, and at the end.
6454 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
6455
6456 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
6457 ensure that pop_message is called.
6458
6459 * keyboard.c (Fexecute_extended_command): Use a
6460 record_unwind_protect to ensure that pop_message is called.
6461
6462 * lisp.h (push_message_unwind): Add prototype.
6463
6464 * xdisp.c (push_message_unwind): New function.
6465
6466 * fileio.c (do_auto_save_unwind): Do the pop_message here
6467 instead of in Fdo_auto_save.
6468 (Fdo_auto_save): Don't call pop_message.
6469
6470 2001-01-08 Ken Raeburn <raeburn@gnu.org>
6471
6472 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
6473 in inner block.
6474
6475 2001-01-08 Gerd Moellmann <gerd@gnu.org>
6476
6477 * window.c (window_scroll_pixel_based): Adjust glyph matrices
6478 when increasing window's vscroll.
6479
6480 * macros.c (Qkbd_macro_termination_hook): New variable.
6481 (syms_of_macros): Initialize and staticpro it.
6482 (pop_kbd_macro): Run kbd-macro-termination-hook.
6483
6484 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
6485
6486 2001-01-07 Dave Love <fx@gnu.org>
6487
6488 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
6489 arglist, for documentation's sake.
6490
6491 2001-01-06 Andrew Innes <andrewi@gnu.org>
6492
6493 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
6494 of *.pdb.
6495
6496 2001-01-05 Andrew Innes <andrewi@gnu.org>
6497
6498 * term.c (update_end): Don't check updating_frame; for some reason
6499 this can be 0 sometimes, such as after dismissing a popup menu,
6500 and isn't necessary given the explicit frame argument.
6501
6502 2001-01-05 Gerd Moellmann <gerd@gnu.org>
6503
6504 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
6505 on some systems, and an unsigned long on others, like FreeBSD 4.1.
6506
6507 2001-01-04 Gerd Moellmann <gerd@gnu.org>
6508
6509 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
6510
6511 * xfns.c (x_create_tip_frame): Preserve the value of
6512 face_change_count around the creation of the tip frame.
6513
6514 * xfns.c (last_show_tip_args): New variable.
6515 (compute_tip_xy): New function.
6516 (Fx_show_tip): Reuse an existing tip frame, if possible.
6517 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
6518
6519 2001-01-04 Dave Love <fx@gnu.org>
6520
6521 * editfns.c (Fformat): Doc fix.
6522
6523 * systime.h (set_file_times): Prototype.
6524
6525 * widget.h (EmacsFrameSetCharSize_): Prototype.
6526
6527 * sysdep.c (random, srandom): Declare explicitly.
6528
6529 * dispextern.h (move_it_vertically_backward): Declare.
6530
6531 2001-01-04 Gerd Moellmann <gerd@gnu.org>
6532
6533 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
6534 like in Fx_create_frame.
6535
6536 * xfaces.c (set_font_frame_param): Don't do anything for
6537 non-graphical frames.
6538
6539 * window.c (Fdelete_other_windows): Set window's window_end_valid
6540 to nil when changing the window's start. Don't change the
6541 window's start when its top position hasn't changed. If we do,
6542 this will set the window's optional_new_start, which act's like a
6543 force_start during redisplay with C-x 1 M-> under particular
6544 circumstances (see report from Per Starback to emacs-pretest-bug
6545 from 2000-12-13.).
6546
6547 2001-01-03 Gerd Moellmann <gerd@gnu.org>
6548
6549 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
6550 short cut at the start of the function. Add an assertion.
6551 (reseat_at_next_visible_line_start): Add an assertion.
6552
6553 * window.c (Frecenter): When changing the window start, set the
6554 window's window_end_valid to nil.
6555 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
6556
6557 * dispextern.h (move_it_past_eol): Add prototype.
6558
6559 * xdisp.c (move_it_past_eol): New function.
6560
6561 * window.c (Fwindow_end): Doc fix.
6562
6563 2001-01-03 Dave Love <fx@gnu.org>
6564
6565 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
6566
6567 2001-01-03 Gerd Moellmann <gerd@gnu.org>
6568
6569 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
6570 the enabled_p flag of the glyph row at window_end_vpos to 0.
6571 (handle_single_display_prop): Fix last change.
6572
6573 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
6574
6575 * window.c (Frecenter): Doc fix.
6576
6577 2001-01-02 Andrew Innes <andrewi@gnu.org>
6578
6579 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
6580
6581 * frame.h (output_method): Add output_w32_console method.
6582 (FRAME_W32_CONSOLE_P): New macro.
6583
6584 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
6585 use output_w32_console method.
6586 (Qw32_console): New Lisp_Object.
6587 (Fframep): Return it.
6588 (syms_of_frame): Init it.
6589 (Fframe_parameters): Report w32console as font for w32_console frames.
6590
6591 * xfaces.c (realize_default_face): Set face foreground and
6592 background to unspecified for w32_console frames.
6593 (realize_face): Realize face cache for w32_console frames.
6594 (realize_tty_face): Accept w32_console frames.
6595
6596 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
6597 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
6598 necessary, even if running interactively.
6599
6600 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
6601 w32_console frames.
6602
6603 * w32term.c (x_update_begin):
6604 (x_update_end):
6605 (x_clear_frame):
6606 (x_ins_del_lines):
6607 (x_change_line_highlight):
6608 (x_delete_glyphs):
6609 (w32_ring_bell):
6610 (x_update_begin):
6611 (x_update_end):
6612 (w32_reassert_line_highlight):
6613 (w32_frame_rehighlight):
6614 (w32_frame_raise_lower): Do nothing if not w32 frame.
6615
6616 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
6617
6618 * w32fns.c (Fx_display_color_cells): Determine correct value, when
6619 system doesn't tell us directly.
6620 (Fx_display_visual_class): Implement properly.
6621
6622 2001-01-02 Gerd Moellmann <gerd@gnu.org>
6623
6624 * window.c (Frecenter): Handle centering in graphical frames
6625 specially. Centering on the basis of line counts doesn't work
6626 reliably with variable-height lines.
6627
6628 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
6629
6630 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
6631 and al[].
6632
6633 * composite.c (run_composition_function): Remove unused var `val'.
6634 (update_compositions): Remove unused variable `hook'.
6635
6636 * intervals.c (get_local_map): Remove unused variable `tem'.
6637
6638 * doprnt.c (doprnt1): Remove unused variable `size'.
6639
6640 * fns.c (Flength): Remove unused variable `tail'.
6641 (Fdelete): Remove unused variable `size'.
6642
6643 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
6644 and `gcpro2'.
6645
6646 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
6647
6648 * data.c (find_symbol_value): Remove extra 3rd argument in the
6649 call to swap_in_symval_forwarding.
6650
6651 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
6652
6653 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
6654 (trivial_regexp_p): Remove unused variable `c'.
6655 (boyer_moore): Remove unused variable `k'.
6656
6657 * indent.c (current_column): Remove unused variable `stopchar'.
6658 (Fcompute_motion): Remove unused variable `contin'.
6659
6660 * casefiddle.c (casify_object): Remove unused variable `tolen'.
6661
6662 * dired.c (directory_files_internal): Fix a typo in a comment.
6663 Remove an unused variable `handler'.
6664 (file_name_completion): Remove unused function-scope variable `dp'.
6665 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
6666 on BSD4_2.
6667
6668 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
6669
6670 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
6671 and `buf'.
6672 (Fmarker_insertion_type): Remove unused variable `buf'.
6673
6674 * insdel.c (make_gap): Remove unused variable `result'.
6675
6676 * keyboard.c (record_char): Remove unused function-scope var `help'.
6677 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
6678 (menu_bar_items): Remove unused function-scope variable `tem'.
6679
6680 * fontset.c (fontset_ref): Remove unused variable `i'.
6681 (fontset_set): Remove unused variables `j' and `tmp'.
6682 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
6683 (make_fontset_for_ascii_face): Remove unused variable `name'.
6684 (fs_load_font): Remove unused variable `font_idx'.
6685 (fs_query_fontset): Remove unused function-local variable `fontset'.
6686 (list_fontsets): Remove unused variable `tail'.
6687 (Fnew_fontset): Remove unused variables `family' and `registry'.
6688 (accumulate_font_info): Remove unused variable `tmp'.
6689 (Ffontset_font): Remove unused variable `id'.
6690 (syms_of_fontset): Remove unused variable `i'.
6691
6692 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
6693 to x_term_init.
6694 (lookup_image): Remove unused variable `file'.
6695 (xbm_load): Remove unused variables `bitmap_data', `height', and
6696 `width'. Remove function-local variable `i', leave the
6697 block-local one.
6698 (gif_load): Remove unused variable `inc'.
6699
6700 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
6701 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
6702 leave only the one in the inner block.
6703
6704 * xfaces.c (face_fontset, realize_default_face): Remove unused
6705 variable `fontset'.
6706 (face_at_buffer_position): Remove unused variable `multibyte_p'.
6707
6708 * term.c (encode_terminal_code): Remove unused variable `c'.
6709
6710 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
6711 char *' instead of `char *'.
6712
6713 * category.c (Fcategory_docstring): Remove unused variable `doc'.
6714 (Fget_unused_category): Remove unused variable `docstring_vector'.
6715 (Fchar_category_set): Remove unused variables `val', `charset',
6716 `c1' and `c2'.
6717
6718 * coding.c (detect_coding_iso2022, setup_coding_system):
6719 Remove unused variable `i'.
6720 (detect_coding_mask): Remove unused variable `idx'.
6721 (detect_coding): Remove unused variable `i'.
6722 (ccl_coding_driver): Remove unused variable `result'.
6723 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
6724 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
6725 (encode_coding_string): Remove unused variables `gcpro1' and
6726 `saved_coding_symbol'.
6727 (Ffind_coding_systems_region_internal): Remove function-local
6728 variable args[], leave only the block-local one.
6729 (code_convert_region1): Remove unused variable `len'.
6730
6731 * charset.c (char_printable_p): Remove unused variable `chars'.
6732 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
6733 (str_to_multibyte): Remove unused variable `c'.
6734
6735 * window.c (size_window): Remove block-local variable `min_size'.
6736
6737 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
6738 `header_line_height'.
6739 (append_space, extend_face_to_end_of_line): Declare `saved_what'
6740 enum display_element_type.
6741
6742 2001-01-02 Gerd Moellmann <gerd@gnu.org>
6743
6744 * xterm.c (x_connection_closed): Catch X errors around all
6745 statements that call X. Save away the error message in a local copy.
6746
6747 * xterm.c (x_connection_closed): Set handling_signal to 0 at
6748 the start.
6749
6750 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
6751 in or at the start of invisible text.
6752
6753 * dispnew.c (update_window): Don't check_current_matrix_flags.
6754
6755 2001-01-01 Jason Rumney <jasonr@gnu.org>
6756
6757 * w32fns.c (x_figure_window_size): Do not allow new_height and
6758 new_width of frame to override specified values.
6759
6760 2000-12-30 Kenichi Handa <handa@etl.go.jp>
6761
6762 * composite.c (find_composition): Fix a code for searching backward.
6763
6764 2000-12-29 Gerd Moellmann <gerd@gnu.org>
6765
6766 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
6767 (update_window) [GLYPH_DEBUG]: Call it.
6768 (scrolling_window): Prevent including current rows which are below
6769 what's displayed in the window.
6770
6771 * xdisp.c (try_window_reusing_current_matrix)
6772 <new start <= old start>: Disable rows in the current matrix
6773 which are below the window after scrolling.
6774
6775 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
6776 is zero. It's not worth the complexity.
6777 (invisible_text_between_p): Put in #if 0 because unused.
6778
6779 2000-12-28 Gerd Moellmann <gerd@gnu.org>
6780
6781 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
6782 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
6783
6784 * keyboard.c (echo_char): If C is an integer, always call
6785 push_key_description. Former code could signal an invalid
6786 character error.
6787
6788 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
6789 If set, print multibyte text.
6790 (Fsingle_key_description): Call push_key_description with
6791 FORCE_MULTIBYTE set.
6792 (describe_buffer_bindings): Likewise.
6793
6794 * lisp.h (push_key_description): Add prototype.
6795
6796 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
6797 around the call to redisplay_internal.
6798
6799 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
6800
6801 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
6802
6803 2000-12-28 Kenichi Handa <handa@etl.go.jp>
6804
6805 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
6806 (ccl_driver): New local variable `extra_bytes'.
6807
6808 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
6809
6810 * coding.c (setup_coding_system):
6811 Initialize coding->spec.ccl.eight_bit_carryover.
6812 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
6813
6814 2000-12-28 Kenichi Handa <handa@etl.go.jp>
6815
6816 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
6817 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
6818 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
6819 (decode_composition_emacs_mule): New function.
6820 (decode_coding_emacs_mule): Decode composition sequence by calling
6821 decode_composition_emacs_mule.
6822 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
6823 (encode_coding_emacs_mule): Changed from macro to function.
6824 If a text contains compositions, encode them correctly.
6825 (setup_coding_system): Set coding->commong_flags for emacs-mule so
6826 that decoding and encoding are required.
6827
6828 2000-12-27 Gerd Moellmann <gerd@gnu.org>
6829
6830 * xfaces.c (PT_PER_INCH): New macro.
6831 (xlfd_point_size): Compute real point size from font's pixel size.
6832 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
6833 instead of 72.
6834
6835 * .gdbinit: Comment out the line pointing to the Lesstif source
6836 directory.
6837
6838 * window.c (Frecenter): Use displayed_window_lines instead
6839 of window_internal_height.
6840
6841 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
6842 instead of x-toolkit-scroll-bars-p.
6843 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
6844
6845 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
6846 instead of x-toolkit-scroll-bars-p.
6847 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
6848
6849 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
6850 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
6851 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
6852 New variables.
6853 (add_window_display_history, add_frame_display_history)
6854 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
6855 (build_frame_matrix_from_leaf_window): Remove unused code.
6856 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
6857 redisplay history.
6858 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
6859 (update_window) [GLYPH_DEBUG]: Likewise.
6860 (syms_of_display): Defsubr dump-redisplay-history.
6861
6862 2000-12-23 Gerd Moellmann <gerd@gnu.org>
6863
6864 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
6865 the end of the prompt. Set echo_after_prompt to the offset
6866 of echoptr in echobuf.
6867
6868 * xdisp.c (init_from_display_pos): Pop until the iterator's
6869 stack is empty; there may be frames for stretch or images
6870 on the stack.
6871
6872 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
6873 (save_or_restore_current_matrix): New function for the same
6874 purpose, but more efficient.
6875 (adjust_frame_glyphs_for_frame_redisplay): Use it.
6876
6877 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
6878
6879 * xdisp.c (syms_of_xdisp): Fix last change.
6880
6881 2000-12-23 Gerd Moellmann <gerd@gnu.org>
6882
6883 * xdisp.c (syms_of_xdisp): Doc fix.
6884
6885 * xdisp.c (redisplay_window): Remove label restore_buffers;
6886 use finish_scroll_bars instead to make sure that scroll bars
6887 are redeemed. If we don't do this, flickering can result from
6888 scroll bars being destroyed and recreated.
6889
6890 2000-12-22 Jason Rumney <jasonr@gnu.org>
6891
6892 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
6893 in the wrong colors when the foreground is not black.
6894 (expose_window): Don't redraw the window that's currently being
6895 updated.
6896
6897 2000-12-22 Gerd Moellmann <gerd@gnu.org>
6898
6899 * window.c (size_window): When setting the window's too_small_ok
6900 flag, compare old size with minimum size depending on WIDTH_P,
6901 don't compare with window_min_width.
6902
6903 * window.c (delete_window): Simplify somewhat.
6904 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
6905 freeing window matrices. The flag windows_or_buffers_changed is
6906 set, so the next redisplay will consider all windows; this should
6907 suffice.
6908
6909 2000-12-22 Kenichi Handa <handa@etl.go.jp>
6910
6911 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
6912
6913 * ccl.h (struct ccl_program): New member cr_consumed.
6914
6915 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
6916 (CCL_READ_CHAR): Handle EOL conversion here.
6917 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
6918
6919 2000-12-21 Gerd Moellmann <gerd@gnu.org>
6920
6921 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
6922
6923 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
6924 otherwise tabs of different size compare equal.
6925
6926 * callint.c (Fcall_interactively): Prevent a compiler warning.
6927
6928 * print.c (print_unwind): Return nil.
6929 (PRINTDECLARE): Initialize all local variables.
6930 (print_preprocess): Add a default case.
6931
6932 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
6933
6934 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
6935
6936 * window.c (delete_window, Fsplit_window)
6937 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
6938
6939 * dispextern.h (ensure_frame_matrix): Function declaration removed.
6940
6941 * dispnew.c (ensure_frame_matrix): Removed.
6942 (save_frame_matrix, restore_frame_matrix): New functions.
6943 (adjust_frame_glyphs_for_frame_redisplay): Use them.
6944
6945 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
6946 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
6947
6948 2000-12-21 Andrew Innes <andrewi@gnu.org>
6949
6950 * w32term.c (x_update_begin): Regenerate the palette here, rather
6951 than for each window.
6952
6953 * w32xfns.c (select_palette): Avoid calling SelectPalette if
6954 palette is NULL, since this corrupts memory! Also get
6955 display_info reference from frame.
6956
6957 2000-12-21 Jason Rumney <jasonr@gnu.org>
6958
6959 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
6960
6961 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
6962 to avoid returning without releasing it.
6963
6964 2000-12-21 Kenichi Handa <handa@etl.go.jp>
6965
6966 * keymap.c (push_key_description): Don't convert eight-bit-control
6967 and eight-bit-graphic to multibyte character.
6968
6969 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
6970 generic character and CODE1 is nil, return the smallest character
6971 in CHARSET.
6972
6973 2000-12-20 Dave Love <fx@gnu.org>
6974
6975 * s/osf5-0.h (NSIG): Don't redefine.
6976
6977 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
6978
6979 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
6980 excluding menu-bar and tool-bar.
6981 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
6982 (menu_item_p): Remove.
6983 (where_is_internal_1): Don't ignore menu-items.
6984
6985 2000-12-20 Gerd Moellmann <gerd@gnu.org>
6986
6987 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
6988 into account.
6989
6990 * window.c (make_window): Initialize window's min_hscroll.
6991 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
6992 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
6993 to zero.
6994 (struct saved_window): New member min_hscroll.
6995 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
6996 (Fset_window_configuration): Set window's min_hscroll.
6997 (save_window_save): Save window's min_hscroll.
6998 (compare_window_configurations): Compare min_hscroll values.
6999
7000 * window.h (struct window): New member min_hscroll.
7001
7002 * keyboard.c (echo_prompt): Prevent a compiler warning.
7003
7004 * xdisp.c (try_cursor_movement): Fix last change. The real
7005 condition is that PT is at the end of the row, and should
7006 be displayed at the start of the next row.
7007
7008 * xdisp.c (try_cursor_movement): If we end on a partially
7009 visible line, end we already decided to scroll, return -1.
7010
7011 * dispextern.h (ensure_frame_matrix): Add prototype.
7012
7013 * window.c (delete_window, Fsplit_window)
7014 (Fset_window_configuration): Call ensure_frame_matrix.
7015
7016 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
7017 New functions.
7018 (adjust_frame_glyphs_for_frame_redisplay): If display has been
7019 completed, call fake_current_matrices instead of marking frame
7020 garbaged.
7021
7022 2000-12-20 Jason Rumney <jasonr@gnu.org>
7023
7024 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
7025
7026 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
7027
7028 * fns.c (Frequire): Doc fix.
7029
7030 2000-12-19 Gerd Moellmann <gerd@gnu.org>
7031
7032 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
7033
7034 * dispnew.c (direct_output_for_insert): Fix check for mini-window
7035 currently displaying a message.
7036
7037 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
7038 xterm.h.
7039 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
7040
7041 2000-12-18 Andrew Innes <andrewi@gnu.org>
7042
7043 * w32.c (w32_strerror): New function.
7044
7045 * w32.h (w32_strerror): New extern.
7046
7047 * w32fns.c (Fw32_shell_execute): Use it.
7048
7049 2000-12-18 Gerd Moellmann <gerd@gnu.org>
7050
7051 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
7052
7053 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
7054
7055 * msdos.c (IT_set_face): Obey inverse_video.
7056
7057 2000-12-18 Kenichi Handa <handa@etl.go.jp>
7058
7059 * dired.c (directory_files_internal): Always return decoded filenames.
7060
7061 2000-12-18 Gerd Moellmann <gerd@gnu.org>
7062
7063 * xterm.c (x_connection_closed): Prevent being called recursively
7064 because of an error condition in XtCloseDisplay.
7065
7066 * xdisp.c (init_iterator): If noninteractive, and the frame's
7067 face cache is null, make one.
7068
7069 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
7070
7071 * process.c (wait_reading_process_input): Check for pending
7072 input when running timers.
7073
7074 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
7075
7076 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
7077
7078 2000-12-18 Kenichi Handa <handa@etl.go.jp>
7079
7080 * process.c (read_process_output): Don't run a filter if the code
7081 decoder produces nothing but carryover.
7082
7083 2000-12-17 Andrew Innes <andrewi@gnu.org>
7084
7085 * w32.c (sys_rename): Only check errno against EEXIST, and not
7086 EACCES, when determining whether rename failed because the target
7087 exists. This was resulting in indefinite looping on Windows 9x if
7088 the source file was locked by another process.
7089
7090 * w32fns.c (Ffile_system_info): New function.
7091 (syms_of_w32fns): Defsubr it.
7092
7093 2000-12-17 Gerd Moellmann <gerd@gnu.org>
7094
7095 * window.c (coordinates_in_window): Fix computation for
7096 position on vertical line between mode lines.
7097
7098 * xfns.c (unwind_create_frame): Return t if frame was deleted.
7099 Don't alter tip_frame or tip_window.
7100 (unwind_create_tip_frame): Set tip_frame to nil only if frame
7101 was deleted.
7102
7103 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
7104 Don't alter tip_frame or tip_window.
7105 (unwind_create_tip_frame): Set tip_frame to nil only if frame
7106 was deleted.
7107
7108 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
7109
7110 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
7111 be consistent with the doc string. Reported by NAKAJIMA Mikio
7112 <minakaji@osaka.email.ne.jp>.
7113
7114 2000-12-16 Kenichi Handa <handa@etl.go.jp>
7115
7116 * xfaces.c (Vface_ignored_fonts): New variable.
7117 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
7118 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
7119
7120 2000-12-15 Gerd Moellmann <gerd@gnu.org>
7121
7122 * dispnew.c (update_window): Detect pending input every nth line
7123 updated, i.e. do it depending on real work done, and not on the
7124 vpos of the line.
7125
7126 * xterm.c (expose_window): Don't redraw the window that's
7127 currently being updated.
7128
7129 * window.c (Fset_window_point): Remove test for
7130 cursor_in_non_selected_windows.
7131
7132 * lread.c (read1): Recognize end of file after `\\'.
7133
7134 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
7135 not unwind_create_frame.
7136
7137 2000-12-15 Dave Love <fx@gnu.org>
7138
7139 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
7140 bcopy & al.
7141
7142 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
7143
7144 2000-12-15 Kenichi Handa <handa@etl.go.jp>
7145
7146 * coding.c (setup_coding_system): Clear all members of the struct
7147 coding_system at first.
7148 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
7149 argument.
7150 (code_convert_region): Don't override coding->src_multibyte and
7151 coding->dst_multibyte.
7152
7153 * fns.c (Fmd5): Docstring improved.
7154
7155 2000-12-15 Miles Bader <miles@gnu.org>
7156
7157 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
7158 are actually marked as mode-lines; otherwise use
7159 estimate_mode_line_height.
7160
7161 2000-12-14 Gerd Moellmann <gerd@gnu.org>
7162
7163 * editfns.c (Fformat): Prevent a buffer overrun when the format
7164 specifies a precision.
7165
7166 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
7167
7168 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
7169 argument is outside the range [2..3].
7170
7171 2000-12-14 Andrew Innes <andrewi@gnu.org>
7172
7173 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
7174 nothing to do. Bind inhibit-quit.
7175 (tip_frame): Make it a Lisp_Object.
7176 (x_create_tip_frame): Set tip_frame after it has been added to
7177 Vframe_list.
7178 (Fx_show_tip): Don't set tip_frame here.
7179 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
7180 (unwind_create_frame, unwind_create_tip_frame): New functions.
7181 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
7182 while a frame is only partially constructed.
7183
7184 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
7185 (x_free_frame_resources): New function.
7186 (x_destroy_window): Use it.
7187
7188 2000-12-14 Gerd Moellmann <gerd@gnu.org>
7189
7190 * xfns.c (Fx_backspace_delete_keys_p): New function.
7191 (syms_of_xfns): Defsubr it.
7192
7193 * config.in (HAVE_XKBGETKEYBOARD): Add.
7194
7195 2000-12-14 Kenichi Handa <handa@etl.go.jp>
7196
7197 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
7198 Always store string in multibyte representation in echobuf.
7199 (echo_char): Always store string in multibyte representation in
7200 echobuf.
7201 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
7202 (read_key_sequence): Adjusted for the change of echo_prompt.
7203
7204 * fns.c (Fmd5): Docstring improved.
7205
7206 * lisp.h (detect_coding_system): Prototype adjusted.
7207
7208 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
7209 (detect_coding_emacs_mule, detect_coding_iso2022,)
7210 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
7211 (detect_coding_utf_16, detect_coding_ccl): Make them static.
7212 New argument MULTIBYTEP. Callers changed.
7213 (detect_coding_mask, detect_coding_system): New argument
7214 MULTIBYTEP. Callers changed.
7215 (decode_coding_string): Set coding->src_multibyte and
7216 coding->dst_multibyte before calling detect_coding and detect_eol.
7217 Update them after some coding system is detected.
7218
7219 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
7220
7221 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
7222
7223 * keyboard.c (menu_bar_items, tool_bar_items):
7224 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
7225
7226 2000-12-13 Gerd Moellmann <gerd@gnu.org>
7227
7228 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
7229 New variables.
7230 (unwind_create_frame, unwind_create_tip_frame): New functions.
7231 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
7232 while a frame is only partially constructed.
7233
7234 * xterm.h (x_free_frame_resources): Declare.
7235
7236 * xterm.c (x_free_frame_resources): New function.
7237 (x_destroy_window): Use it.
7238
7239 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
7240 don't interrupt the update for pending input initially, i.e.
7241 update at least some lines.
7242
7243 * keyboard.c (do_mouse_tracking): Make externally visible.
7244
7245 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
7246
7247 * xfns.c (gray_bitmap_bits): Declare `char *'.
7248
7249 2000-12-12 Gerd Moellmann <gerd@gnu.org>
7250
7251 * xdisp.c (display_tool_bar_line): Make sure that tool bar
7252 lines start with a relief line.
7253
7254 2000-12-12 Dave Love <fx@gnu.org>
7255
7256 * window.c (Fdisplay_buffer): Doc fix.
7257 (Fwindow_list): Remove unused var.
7258
7259 * buffer.h (mmap_set_vars): Declare.
7260
7261 * window.h (Fset_window_point): Declare.
7262
7263 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
7264
7265 * msdos.c (fast_find_position): Don't overstep the last window row.
7266 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
7267 variable `area'. When looking for a row under (X,Y), give up if some
7268 of the previous rows is not enabled.
7269
7270 2000-12-12 Gerd Moellmann <gerd@gnu.org>
7271
7272 * window.c (Fset_window_point): If displaying cursors in windows
7273 other than the selected window, make sure redisplay updates
7274 other windows to show the new value of point in the window.
7275
7276 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
7277
7278 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
7279 the buffer is the sole visible buffer when in the mini-buffer.
7280
7281 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
7282 Bind `inhibit-read-only' to t.
7283 (unwind_with_echo_area_buffer): Use AREF.
7284
7285 * xfns.c (Fx_hide_tip): Simplified.
7286
7287 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
7288 instead of `1'.
7289
7290 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
7291
7292 2000-12-11 Gerd Moellmann <gerd@gnu.org>
7293
7294 * xfns.c (Fx_hide_tip): Fix last change.
7295
7296 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
7297 nothing to do. Bind inhibit-quit.
7298 (tip_frame): Make it a Lisp_Object.
7299 (x_create_tip_frame): Set tip_frame after it has been added to
7300 Vframe_list.
7301 (Fx_show_tip): Don't set tip_frame here.
7302
7303 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
7304
7305 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
7306 Lisp_Object.
7307
7308 * dispextern.h: Change external declaration of tip_frame.
7309
7310 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
7311 return an empty string.
7312
7313 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
7314 of the window's update_mode_line flag, since the former is set by
7315 force-mode-line-update, not the latter. This makes
7316 column-number-mode slightly faster.
7317
7318 * xdisp.c (try_window_id) <all changes above window start>:
7319 Set the cursor.
7320
7321 2000-12-11 Paul Eggert <eggert@twinsun.com>
7322
7323 * config.in (HAVE_FTELLO): Remove.
7324 (HAVE_FSEEKO): Add.
7325 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
7326 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
7327 HAVE_FTELLO.
7328 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
7329 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
7330
7331 2000-12-11 Miles Bader <miles@gnu.org>
7332
7333 * window.c (displayed_window_lines): Don't round up when
7334 converting empty space at bottom to lines.
7335 Handle non-newline-terminated final lines properly.
7336 (Fwindow_text_height): New function (used to be in lisp).
7337 (syms_of_window): Initialize it.
7338
7339 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
7340
7341 * syntax.c (scan_lists): Check that the right quote char has the
7342 right Sstring syntax when jumping over strings.
7343 (init_syntax_once): Use Smax rather than 13.
7344
7345 2000-12-09 Miles Bader <miles@gnu.org>
7346
7347 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
7348 with PARTIALLY, inverting the sense.
7349 (window_scroll_pixel_based): Scroll partially visible lines into
7350 place if we hit the beginning or end of the buffer.
7351 (displayed_window_lines): Don't include partially visible lines.
7352 (Fmove_to_window_line): Skip past any partially visible first line.
7353
7354 2000-12-08 Gerd Moellmann <gerd@gnu.org>
7355
7356 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
7357
7358 * tparam.c (tparam1): Change the way buffers are reallocated to be
7359 portable and less obfuscated.
7360
7361 * termcap.c (tgetent): Change the way buffers are reallocated to
7362 be portable and less obfuscated.
7363
7364 * macros.c (store_kbd_macro_char): Change the way buffers are
7365 reallocated to be portable and less obfuscated.
7366
7367 * lread.c (read1): Change the way buffers are reallocated to be
7368 portable and less obfuscated.
7369
7370 * doc.c (Fsubstitute_command_keys): Change the way buffers
7371 are reallocated so that it is portable.
7372
7373 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
7374
7375 * dosfns.c (Ffile_system_info): New function.
7376 (syms_of_dosfns): Defsubr it.
7377
7378 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
7379
7380 * alloc.c (gc_sweep): Add comment.
7381
7382 2000-12-07 Gerd Moellmann <gerd@gnu.org>
7383
7384 * sound.c (vox_configure): Change order of ioctls.
7385 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
7386 Ignore errors when changing volume.
7387 (vox_close): Don't reset the device.
7388
7389 * process.c (read_process_output): Make sure the process marker's
7390 position is valid when the process buffer is changed in
7391 after-change functions. W3 does that.
7392
7393 * xfns.c (x_free_gcs): New function.
7394
7395 * xterm.h (x_free_gcs): Add prototype.
7396
7397 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
7398 freeing GCs here.
7399
7400 * xterm.c (x_destroy_window): Call x_free_gcs so that
7401 resources of non-toolkit X windows will be freed.
7402
7403 2000-12-07 Andrew Innes <andrewi@gnu.org>
7404
7405 * w32fns.c (xlfd_charset_of_font): Fix last change.
7406
7407 2000-12-06 Dave Love <fx@gnu.org>
7408
7409 * md5.h (__P): Don't define -- it comes from config.h.
7410
7411 * strftime.c: Change some #if foo to #ifdef foo.
7412
7413 2000-12-06 Andrew Innes <andrewi@gnu.org>
7414
7415 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
7416
7417 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
7418 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
7419 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
7420
7421 2000-12-06 Gerd Moellmann <gerd@gnu.org>
7422
7423 * alloc.c (gc_sweep): Prevent symbols read during loadup
7424 from being freed.
7425
7426 * xdisp.c (underlying_face_id): New function.
7427 (handle_face_prop, face_before_or_after_it_pos): Use it
7428 to determine the face ``under'' a string. Let strings inherit
7429 the face of the buffer under them.
7430
7431 * xfaces.c (face_at_string_position): Update function comment.
7432
7433 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
7434 matrix if the window's left position has changed; we need to
7435 redraw it in this case.
7436
7437 * dispextern.h (struct glyph_matrix): Add member window_left_x.
7438
7439 * window.c (coordinates_in_window): Check mouse on mode-line or
7440 header-line first.
7441
7442 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
7443 advertized by the function documentation.
7444
7445 * window.c (syms_of_window): Doc fix.
7446
7447 * sound.c (vox_configure): Set volume for left and right channel.
7448 (sound_cleanup): Return nil.
7449
7450 * xdisp.c (move_it_by_lines): Fix paren typo.
7451
7452 * xterm.c (x_load_font): Don't use the font's max_bounds for
7453 computing the height of the font. If max_bounds' ascent or
7454 descent are greater than the font's ascent or descent, this means
7455 glyphs overlap, which should be handled now by redisplay.
7456
7457 * window.c (Veven_window_heights): New variable.
7458 (syms_of_window): DEFVAR_LISP it.
7459 (Fdisplay_buffer): Check Veven_window_heights before evening the
7460 window heights.
7461
7462 2000-12-06 Miles Bader <miles@gnu.org>
7463
7464 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
7465 update `default-frame-alist' instead of setting no frame parameters.
7466
7467 2000-12-06 Kenichi Handa <handa@etl.go.jp>
7468
7469 * composite.c (update_compositions): Fix typo (use the correct
7470 variable).
7471
7472 2000-12-05 Jason Rumney <jasonr@gnu.org>
7473
7474 * md5.h: Remove underscores from function declarations.
7475 (__attribute__, __alignof__) [!__GNUC__]: Define.
7476
7477 * md5.c: Delay include of md5.h until after namespace cleaning.
7478
7479 * makefile.w32-in (fns.o): Depend on md5.h
7480 (md5.o): New target.
7481 (sunfns.o): Remove.
7482
7483 * makefile.nt: Likewise.
7484
7485 2000-12-05 Jason Rumney <jasonr@altavista.net>
7486
7487 * w32term.c (expose_area): Complete last change.
7488
7489 2000-12-05 Ken Raeburn <raeburn@gnu.org>
7490
7491 * minibuf.c: Include intervals.h.
7492
7493 2000-12-05 Jason Rumney <jasonr@gnu.org>
7494
7495 * w32term.c (x_produce_glyphs): If a font for a component of
7496 a composition is not found, use 1 pixel dot ascent and 0 dot
7497 descent value to avoid displaying terribly tall empty boxes.
7498 (expose_area): Pass x-coordinate relative to the exposed
7499 area to x_draw_glyphs instead of a window-relative coordinate.
7500
7501 2000-12-05 Gerd Moellmann <gerd@gnu.org>
7502
7503 * xdisp.c (next_element_from_ellipsis): Save face before selective
7504 display in saved_face_id, and set face_before_selective_p.
7505 (reseat_1): Reset face_before_selective_p.
7506 (append_space, extend_face_to_end_of_line): If iterator's
7507 face_before_selective_p is set, use the face from saved_face_id.
7508 (extend_face_to_end_of_line): For tty frames, make sure to
7509 use the right face id when producing spaces at the end of
7510 the line.
7511
7512 * dispextern.h (struct it): Add face_before_selective_p.
7513
7514 * keyboard.c (record_char): Don't record identical help-echo
7515 events in recent_keys.
7516
7517 * xterm.c [USE_X_TOOLKIT]: Close the display.
7518 (xim_close_dpy): Handle case that the display has been closed.
7519
7520 * xterm.c (x_destroy_window): Reset the frame's X window after
7521 destroying it.
7522
7523 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
7524 variable window_width.
7525 (line_draw_cost): Fix code skipping over spaces at the end of the
7526 line when must_write_spaces is not set.
7527 (scrolling_window): Fix code inserting runs in list of all runs.
7528
7529 2000-12-05 Kenichi Handa <handa@etl.go.jp>
7530
7531 * coding.c (setup_coding_system): Be sure to initialize
7532 coding->category_idx.
7533
7534 2000-12-04 Gerd Moellmann <gerd@gnu.org>
7535
7536 * xterm.c (PER_CHAR_METRIC): Removed because not used.
7537
7538 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
7539 area to x_draw_glyphs instead of a window-relative coordinate.
7540
7541 * fileio.c (auto_save_error): Add parameter ERROR. Show the
7542 error in the message.
7543
7544 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
7545 timer after having read a key. It's not good for code reading
7546 several keys in a loop, like an input method.
7547
7548 * fileio.c (Finsert_file_contents): When VISIT is t, don't
7549 record undo information for format-decode.
7550
7551 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
7552 current buffer is read-only, not if it isn't.
7553
7554 * keyboard.c (record_char): Record `help-echo' input events
7555 in recent_keys only if they display some help. Don't record
7556 `help-echo' events as macro char.
7557
7558 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
7559
7560 * editfns.c (save_excursion_restore): Don't move point
7561 in another window if it is showing the wrong buffer.
7562 Avoid the call to Fwindow_live_p, for speed.
7563
7564 2000-12-04 Kenichi Handa <handa@etl.go.jp>
7565
7566 * xfaces.c (struct font_name): New member registry_priority.
7567 (split_font_name): Initialize the above member to zero.
7568 (concat_font_list): New function.
7569 (font_list): Include fonts of all alternative registries.
7570 (FONT_POINT_SIZE_QUANTUM): New macro.
7571 (better_font_p): Ignore point size difference less than
7572 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
7573
7574 * xterm.c (x_produce_glyphs): If a font for a component of
7575 a composition is not found, use 1 pixel dot ascent and 0 dot
7576 descent value to avoid displaying terribly tall empty boxes.
7577
7578 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
7579
7580 2000-12-03 Ken Raeburn <raeburn@gnu.org>
7581
7582 * coding.h (code_convert_string1): Declare.
7583
7584 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
7585
7586 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
7587
7588 2000-12-02 Jason Rumney <jasonr@gnu.org>
7589
7590 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
7591 correctly for single byte character case.
7592 (w32_per_char_metric): Do not try to make any assumptions about
7593 the metrics of BDF fonts.
7594 (x_estimate_mode_line_height): If `mode-line' face
7595 hasn't a font, use that of the frame, as drawing glyphs does.
7596 (note_mouse_highlight): Change the cursor shape on the vertical
7597 border between windows [not enabled].
7598
7599 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
7600
7601 * w32fns.c (Fx_create_frame): Reintroduce the call to
7602 face-set-after-frame-defaults.
7603 (Vx_window_horizontal_drag_shape): New variable.
7604 (syms_of_xfns): DEFVAR_LISP it.
7605 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
7606 enabled].
7607
7608 2000-12-02 Simon Josefsson <simon@josefsson.org>
7609
7610 * fns.c (Fmd5): Use a different logic to decide the coding system
7611 to use.
7612
7613 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
7614
7615 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
7616
7617 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
7618
7619 2000-12-01 Gerd Moellmann <gerd@gnu.org>
7620
7621 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
7622 height for YNegative.
7623 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
7624 height; also see comment there.
7625
7626 * window.c (coordinates_in_window): Handle computations for
7627 positions on the vertical bar and fringes differently for
7628 window-system frames. Consider some pixels near the vertical bar
7629 as on the bar if the frame doesn't have vertical scroll bars.
7630 Associate positions between mode or header lines with the
7631 right window, the left one.
7632
7633 2000-12-01 Jason Rumney <jasonr@gnu.org>
7634
7635 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
7636
7637 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
7638 invalid frame.
7639
7640 2000-12-01 Gerd Moellmann <gerd@gnu.org>
7641
7642 * window.c (struct saved_window): Add members orig_top and orig_height.
7643 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
7644 (save_window_save, Fset_window_configuration): Save/restore
7645 window's orig_top and orig_height.
7646
7647 2000-12-01 Jason Rumney <jasonr@gnu.org>
7648
7649 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
7650
7651 * w32fns.c (x_set_cursor_color): Fix last change.
7652
7653 2000-11-30 Gerd Moellmann <gerd@gnu.org>
7654
7655 * xdisp.c (echo_area_display): If cursor is in the echo area, make
7656 sure that the next redisplay displays the minibuffer, so that
7657 the cursor will be replaced with what the minibuffer wants.
7658
7659 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
7660 #ifndef instead of using #if.
7661 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
7662 USE_TOOLKIT_SCROLL_BARS is defined.
7663
7664 2000-11-30 Jason Rumney <jasonr@gnu.org>
7665
7666 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
7667 x_display_cursor.
7668
7669 2000-11-30 Gerd Moellmann <gerd@gnu.org>
7670
7671 * fns.c (Fmd5): Doc fix.
7672
7673 2000-11-30 Simon Josefsson <simon@josefsson.org>
7674
7675 * fns.c (Fmd5): New function.
7676 (syms_of_fns): Defsubr md5.
7677
7678 * Makefile.in (obj): Add md5.o
7679
7680 2000-11-30 Gerd Moellmann <gerd@gnu.org>
7681
7682 * md5.h, md5.c: New files, taken from glibc.
7683
7684 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
7685
7686 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
7687 hasn't a font, use that of the frame, as drawing glyphs does.
7688
7689 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
7690
7691 * eval.c (Frun_hooks): Allow 0 arguments.
7692
7693 2000-11-29 Gerd Moellmann <gerd@gnu.org>
7694
7695 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
7696 is over the menu bar widget, say it's not on the frame.
7697
7698 * xfns.c (Fx_create_frame): Reintroduce the call to
7699 face-set-after-frame-defaults.
7700
7701 * eval.c (Fsignal): Reset handling_signal.
7702
7703 2000-11-28 Jason Rumney <jasonr@gnu.org>
7704
7705 * w32menu.c (add_menu_item): Reset menu item text when changing
7706 type to radio button.
7707
7708 2000-11-28 Gerd Moellmann <gerd@gnu.org>
7709
7710 * xselect.c: Update copyright.
7711
7712 * window.c (coordinates_in_window): If on a mode or header line,
7713 but sufficiently close to its start, return ``on vertical
7714 border''. This gives us a way to drag windows horizontally when
7715 using toolkit scroll bars.
7716
7717 * xterm.c (note_mouse_highlight): Change the cursor shape
7718 on the vertical border between windows.
7719
7720 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
7721
7722 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
7723 (syms_of_xfns): DEFVAR_LISP it.
7724 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
7725
7726 * textprop.c (text_read_only): New function.
7727 (verify_interval_modification): Use it instead of signaling
7728 `text-read-only'. This makes it easier to catch this error
7729 with a breakpoint.:
7730
7731 * xdisp.c (forward_to_next_line_start): Check for newlines,
7732 not end of line, which includes CR.
7733
7734 2000-11-28 Kenichi Handa <handa@etl.go.jp>
7735
7736 * coding.c (Ffind_coding_systems_region_internal): Be sure to
7737 include no-conversion.
7738
7739 2000-11-27 Jason Rumney <jasonr@gnu.org>
7740
7741 * w32fns.c (w32_load_system_font): Always mark font as double byte
7742 if codepage is unicode.
7743
7744 2000-11-27 Gerd Moellmann <gerd@gnu.org>
7745
7746 * xdisp.c (forward_to_next_line_start): If already on a newline,
7747 just consume it to avoid unintended skipping over invisible text below.
7748
7749 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
7750 `vertical-line', `mode-line' and `header-line' events.
7751
7752 * xdisp.c (try_window_id): Avoid starting to display in the middle
7753 of a character, a TAB for instance. This is easier than to set
7754 up the iterator exactly, and it's not a frequent case, so the
7755 additional effort wouldn't really pay off.
7756
7757 2000-11-26 Andrew Choi <akochoi@i-cable.com>
7758
7759 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
7760 init_window_once.
7761
7762 2000-11-25 Jason Rumney <jasonr@gnu.org>
7763
7764 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
7765 Args to window_from_coordinates should be pixel coordinates.
7766
7767 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
7768 redisplay handles them properly.
7769
7770 2000-11-25 Miles Bader <miles@gnu.org>
7771
7772 * indent.c (compute_motion): Keep pos_byte in sync with pos.
7773
7774 2000-11-24 Jason Rumney <jasonr@gnu.org>
7775
7776 * w32.c (init_environment): Set LANG environment variable based on
7777 locale settings, if not set.
7778
7779 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
7780 making tool bar smaller. When clearing the frame, also
7781 clear current matrices. Clear frame when tool bar disappears.
7782 Don't use more lines for the tool-bar than is available.
7783 (x_change_window_heights): New function.
7784
7785 2000-11-24 Gerd Moellmann <gerd@gnu.org>
7786
7787 * xdisp.c (init_from_display_pos): If POS says we're already after
7788 an overlay string ending at POS, make sure to pop the iterator
7789 because it will be in front of that overlay string. When POS is
7790 ZV, we've thereby also ``processed'' overlay strings at ZV.
7791
7792 * xfaces.c (lface_from_face_name): Function comment fix.
7793
7794 2000-11-24 Miles Bader <miles@gnu.org>
7795
7796 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
7797 apply `mode-line-inverse-video' -- zero means force display using
7798 the default face, non-zero means display using the specialized face.
7799 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
7800
7801 2000-11-23 Kenichi Handa <handa@etl.go.jp>
7802
7803 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
7804 hard coded `4'.
7805
7806 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
7807
7808 * coding.c (decode_coding_emacs_mule): Fix the case of
7809 CODING_EOL_LF, which used uninitialized value of c.
7810
7811 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
7812
7813 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
7814
7815 2000-11-22 Gerd Moellmann <gerd@gnu.org>
7816
7817 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
7818 buffer object.
7819
7820 * frame.h (struct frame): Replace desired_tool_bar_items,
7821 current_tool_bar_items, n_desired_tool_bar_items,
7822 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
7823
7824 * frame.c (make_frame): Change initialization of tool bar
7825 items accordingly.
7826
7827 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
7828 Change references to members deleted from struct frame to use the
7829 new ones.
7830
7831 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
7832 references to members deleted from struct frame to use the new ones.
7833
7834 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
7835
7836 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
7837
7838 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
7839 (note_tool_bar_highlight): Change references to members deleted
7840 from struct frame to use the new ones.
7841
7842 2000-11-23 Miles Bader <miles@gnu.org>
7843
7844 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
7845 the face's inverse-video attribute, rather than overriding it.
7846
7847 2000-11-22 Gerd Moellmann <gerd@gnu.org>
7848
7849 * xfns.c (x_set_tool_bar_lines): Clear internal border when
7850 making tool bar smaller.
7851
7852 2000-11-22 Dave Love <fx@gnu.org>
7853
7854 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
7855
7856 2000-11-22 Miles Bader <miles@gnu.org>
7857
7858 * keyboard.c (Vminibuffer_message_timeout): New variable.
7859 (command_loop_1): Use it to determine message timeout.
7860 (syms_of_keyboard): Initialize it.
7861
7862 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
7863
7864 2000-11-22 Kenichi Handa <handa@etl.go.jp>
7865
7866 * sysdep.c: Move the code for declaring h_errno after #include
7867 <netdb.h>.
7868
7869 2000-11-21 Gerd Moellmann <gerd@gnu.org>
7870
7871 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
7872 the menu bar when the tooltip is unmapped.
7873
7874 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
7875 sole visible buffer when we're currently in the mini-buffer, and
7876 give up if so.
7877
7878 2000-11-21 Jason Rumney <jasonr@gnu.org>
7879
7880 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
7881 put on the clipboard.
7882 (Fw32_get_clipboard_data): Compare data on clipboard with saved
7883 copy of what Emacs last put there. If they are the same, do not
7884 use the clipboard copy to avoid losing data due to coding conversions.
7885
7886 2000-11-22 Miles Bader <miles@gnu.org>
7887
7888 * minibuf.c (Vminibuffer_prompt_properties): New variable.
7889 (syms_of_minibuf): Initialize it.
7890 (read_minibuf): Add properties from Vminibuffer_prompt_properties
7891 to prompt, don't make read-only.
7892
7893 2000-11-21 Gerd Moellmann <gerd@gnu.org>
7894
7895 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
7896 Add BEFORE/AFTER_POTENTIAL_GC.
7897
7898 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
7899
7900 * buffer.c (mmap_free_1): Avoid a compiler warning.
7901
7902 * term.c, cm.c: Don't try to include termcap.h; see comment there.
7903
7904 2000-11-21 Kenichi Handa <handa@etl.go.jp>
7905
7906 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
7907 ... #endif scope.
7908
7909 2000-11-20 Gerd Moellmann <gerd@gnu.org>
7910
7911 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
7912 screen supports it.
7913
7914 * s/gnu-linux.h: Don't use `#cpu'.
7915
7916 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
7917 not defined in mman.h.
7918
7919 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
7920 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
7921 and store an index in the XClientMessageEvent. Storing a
7922 Lisp_Object or pointer can fail on a 64 bit system, since X only
7923 transfers 32 bits.
7924 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
7925
7926 2000-11-20 Dave Love <fx@gnu.org>
7927
7928 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
7929
7930 2000-11-20 Gerd Moellmann <gerd@gnu.org>
7931
7932 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
7933
7934 2000-11-20 Kenichi Handa <handa@etl.go.jp>
7935
7936 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
7937 by WIDTH.
7938
7939 * alloc.c (make_string): Fix previous change. Be sure to make
7940 unibyte string correctly.
7941
7942 2000-11-19 Gerd Moellmann <gerd@gnu.org>
7943
7944 * window.c (Fwindow_list): Change parameter list to be XEmacs
7945 compatible.
7946 (window_list_1): New function.
7947 (window_loop): Use it instead of Fwindow_list.
7948
7949 * sysdep.c (emacs_ospeed): New variable.
7950 (toplevel): Don't declare ospeed extern.
7951 (init_baud_rate): Use emacs_ospeed instead of ospeed.
7952
7953 * termcap.c (ospeed): Remove.
7954 (tputs) [!emacs]: Remove unused code.
7955 (tgetent): Avoid a compiler warning.
7956
7957 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
7958 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
7959 SCROLL_BAR_X_WIDGET with additional argument DPY.
7960
7961 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
7962 removed.
7963 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
7964 Take the X display as additional argument.
7965 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
7966 `Widget' is a pointer type that's not easily stored in Lisp_Object
7967 form in a portable way.
7968
7969 * dispnew.c (update_text_area): Fix last change.
7970
7971 2000-11-18 Gerd Moellmann <gerd@gnu.org>
7972
7973 * xdisp.c: Use BINDING_STACK_SIZE throughout.
7974
7975 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
7976 clear current matrices.
7977
7978 * buffer.c (mmap_enlarge): Don't print a message on stderr
7979 if mapping new memory at the end of the existing region fails.
7980
7981 * dispnew.c (update_text_area): Don't skip over equal glyphs
7982 when the last current glyph overlaps the glyph to its right.
7983
7984 2000-11-18 Miles Bader <miles@gnu.org>
7985
7986 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
7987 lines that *end* with "..." too (that's the most common case!).
7988
7989 2000-11-18 Gerd Moellmann <gerd@gnu.org>
7990
7991 * xdisp.c (resize_mini_window): Temporarily change to the
7992 mini-window's buffer if necessary.
7993
7994 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
7995 the tooltip obscures less text under it.
7996
7997 2000-11-17 Gerd Moellmann <gerd@gnu.org>
7998
7999 * puresize.h (BASE_PURESIZE): Increase to 700000.
8000
8001 2000-11-18 Jason Rumney <jasonr@gnu.org>
8002
8003 * w32term.c (w32_draw_bitmap): Use face to set colors.
8004
8005 2000-11-17 Dave Love <fx@gnu.org>
8006
8007 * lread.c (Fload): Fix #ifdef for pcc.
8008
8009 2000-11-17 Gerd Moellmann <gerd@gnu.org>
8010
8011 * xdisp.c (pos_visible_p): Compute the default character height
8012 differently.
8013
8014 2000-11-16 Gerd Moellmann <gerd@gnu.org>
8015
8016 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
8017 knowing the line's height; use the default font's height in that case.
8018
8019 * xfaces.c (weight_table): Add `demi' with the same meaning as
8020 `demibold'.
8021
8022 2000-11-16 Kenichi Handa <handa@etl.go.jp>
8023
8024 * dispnew.c (null_row): New global static variable.
8025 (clear_glyph_row): Delete local static variable null_row.
8026
8027 2000-11-15 Jason Rumney <jasonr@gnu.org>
8028
8029 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
8030 (w32_alloc_lighter_color): Use new brightness calculations from
8031 xterm.c. Scale delta to be in the range expected by W32.
8032 (w32_draw_relief_rect): Use frame relief colors.
8033
8034 2000-11-15 Gerd Moellmann <gerd@gnu.org>
8035
8036 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
8037 (Qinhibit_default_face_x_resources): New variable.
8038 (syms_of_frame): Initialize it.
8039 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
8040
8041 * xdisp.c (pos_visible_p): Improve function comment.
8042
8043 * lisp.h (BINDING_STACK_SIZE): New macro.
8044
8045 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
8046 reading the directory if readdir returns null and errno is EAGAIN
8047 or EINTR.
8048
8049 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
8050
8051 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
8052 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
8053 Set amount_to_scroll to max of dx and scroll_step so that
8054 scroll-conservatively doesn't defeat scroll-step>1.
8055 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
8056 scroll-conservatively for line-at-a-time scrolling.
8057
8058 2000-11-14 Gerd Moellmann <gerd@gnu.org>
8059
8060 * window.c (Fpos_visible_in_window_p): Call pos_visible with
8061 extra argument.
8062
8063 * xdisp.c (current_mode_line_height, current_header_line_height):
8064 New variables.
8065 (init_xdisp): Initialize them.
8066 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
8067 and use exact mode line heights if it is set.
8068
8069 * lisp.h (pos_visible_p): Change prototype.
8070
8071 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
8072 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
8073 and current_header_line_height first.
8074 (current_mode_line_height, current_header_line_height):
8075 Declare extern.
8076
8077 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
8078
8079 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
8080 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
8081 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
8082
8083 2000-11-14 Miles Bader <miles@gnu.org>
8084
8085 * xterm.c (x_alloc_lighter_color): Include an additive component
8086 too for dark colors, because FACTOR isn't enough.
8087 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
8088 New macros.
8089
8090 2000-11-13 Gerd Moellmann <gerd@gnu.org>
8091
8092 * keyboard.c (show_help_echo): Call message3_nolog with number of
8093 bytes in the help string as 2nd parameter, instead of the number
8094 of characters.
8095
8096 2000-11-13 Miles Bader <miles@gnu.org>
8097
8098 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
8099 (Fload): Use new openp return protocol.
8100 Don't try to use Vload_source_file_function to load .elc files.
8101 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
8102 openp return protocol.
8103 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
8104
8105 2000-11-11 Kenichi Handa <handa@etl.go.jp>
8106
8107 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
8108
8109 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
8110 Defined these macros.
8111 (NLIST_STRUCT): Avoid re-defining it.
8112
8113 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
8114 -I/usr/contrib/X11R6/include.
8115 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
8116
8117 2000-11-10 Jason Rumney <jasonr@gnu.org>
8118
8119 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
8120
8121 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
8122 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
8123
8124 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
8125 (Qw32_charset_vietnamese): New symbol.
8126 (xlfd_charset_of_font): New function.
8127 (w32_load_system_font): Use it.
8128 (x_to_w32_charset): Use Fassoc to find charset info. Special case
8129 when Vw32_charset_info_alist is nil to ensure default face always
8130 has font. Use Fcar and Fcdr for safety.
8131 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
8132 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
8133 pseudo-codepages for special cases.
8134 (w32_to_x_font): New parameter to allow charset portion to be
8135 specified where there is many to one mapping. Callers changed.
8136 (w32_list_fonts): Avoid listing fonts that won't display.
8137
8138 2000-11-10 Gerd Moellmann <gerd@gnu.org>
8139
8140 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
8141 (font_list_1): Renamed from font_list.
8142 (font_list): New function, trying alternative registries from
8143 Vface_alternative_font_registry_alist.
8144 (Finternal_set_alternative_font_registry_alist): New function.
8145 (syms_of_xfaces): Initialize and Staticpro
8146 Vface_alternative_font_registry_alist.
8147 Defsubr Finternal_set_alternative_font_registry_alist.
8148
8149 2000-11-09 Ken Raeburn <raeburn@gnu.org>
8150
8151 * lisp.h (Flooking_at): Declare.
8152
8153 2000-11-09 Gerd Moellmann <gerd@gnu.org>
8154
8155 * dired.c (directory_files_internal): Fix a braino.
8156
8157 * dired.c (directory_files_internal): Add missing GCPRO's.
8158 Some cleanup.
8159
8160 2000-11-08 Gerd Moellmann <gerd@gnu.org>
8161
8162 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
8163 (resize_mini_window): Return quickly if Vresize_mini_window is
8164 nil. Don't return if Vmax_mini_window_height is nil.
8165
8166 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
8167 (syms_of_xdisp): Initialize them.
8168 (resize_mini_window): Act according to the setting of
8169 Vresize_mini_window.
8170 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
8171
8172 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
8173 scroll bar widget after configuring it, so that it will appear at
8174 the right position from the start.
8175 (XTredeem_scroll_bar): Cleaned up.
8176
8177 2000-11-08 Kenichi Handa <handa@etl.go.jp>
8178
8179 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
8180 font is taller than the frame line, we don't have to bias the
8181 division by two.
8182
8183 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
8184
8185 2000-11-07 Dave Love <fx@gnu.org>
8186
8187 * config.in (HAVE_MKSTEMP): Add.
8188
8189 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
8190
8191 2000-11-07 Gerd Moellmann <gerd@gnu.org>
8192
8193 * window.c (Fset_window_configuration): Don't try to preserve
8194 point in the current buffer, if that buffer is displayed in more
8195 than one window.
8196
8197 * xfaces.c (lookup_named_face): If default face isn't realized,
8198 try to realize it. Return -1 if not successful.
8199 (Fx_list_fonts): Handle case that face cannot be determined.
8200 (Fface_font): Likewise.
8201
8202 2000-11-06 Gerd Moellmann <gerd@gnu.org>
8203
8204 * window.c (displayed_window_lines): Detect partially
8205 visible lines at the bottom correctly.
8206
8207 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
8208
8209 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
8210 when ensuring we don't do visit in indirect buffer.
8211
8212 2000-11-06 Kenichi Handa <handa@etl.go.jp>
8213
8214 * composite.h (compose_chars_in_text): Add prototype.
8215
8216 * composite.c (Vcomposition_function_table): New variable.
8217 (Qcomposition_function_table): New variable.
8218 (run_composition_function): Call
8219 Vcompose_chars_after_function with three arguments.
8220 (compose_chars_in_text): New function.
8221 (syms_of_composite): Modified the doc-string of
8222 Vcompose_chars_after_function. Declare composition-function-table
8223 as a lisp variable, and initialize it.
8224
8225 * xfns.c (x_encode_text): Suppress producing escape sequences for
8226 composition.
8227
8228 * xselect.c: Include composite.h.
8229 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
8230
8231 2000-11-05 Andrew Innes <andrewi@gnu.org>
8232
8233 * w32term.c (x_produce_glyphs): Fix typo in enum name.
8234
8235 * sysdep.c (read_input_waiting): Remove extraneous argument to
8236 read_socket_hook.
8237
8238 * w32fns.c (Fx_server_version): Include w32_build_number in the
8239 return list.
8240
8241 * w32heap.c (w32_build_number): New variable.
8242 (cache_system_info): Set it.
8243
8244 * w32heap.h (w32_build_number): Add extern.
8245
8246 * emacs.c (syms_of_emacs): Update docstring for
8247 system-configuration, to reflect the actual usage on MS-Windows.
8248
8249 2000-10-31 Gerd Moellmann <gerd@gnu.org>
8250
8251 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
8252 process idle timers while waiting for another event.
8253
8254 * dispnew.c (update_frame_line): Handle case where spaces in
8255 the default face are colored.
8256
8257 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
8258 window height hasn't changed.
8259
8260 2000-10-31 Jason Rumney <jasonr@gnu.org>
8261
8262 * w32term.c (x_produce_glyphs): Handle composite characters.
8263 (x_draw_glyph_string_foreground)
8264 (x_draw_composite_glyph_string_foreground): Restore old font.
8265
8266 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
8267
8268 * minibuf.c (read_minibuf): Reset the undo history just before
8269 starting the recursive-edit.
8270
8271 2000-10-30 Gerd Moellmann <gerd@gnu.org>
8272
8273 * xfaces.c (menu_face_change_count): New variable.
8274 (Finternal_set_lisp_face_attribute): Increment it for changes
8275 of the `menu' face.
8276 (realize_basic_faces): Reflect changes in the `menu' faces
8277 in menu bars.
8278
8279 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
8280 dy obtained from the iterator's y-position after moving from
8281 scroll_margin_pos to PT; see comment there.
8282
8283 * xdisp.c (safe_eval_handler): Call add_to_log.
8284
8285 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
8286 is not a symbol or string.
8287
8288 * xdisp.c (echo_area_display): Don't perform a display update from
8289 inside redisplay. The update will happen anyway at the end of
8290 redisplay, and it can confuse redisplay (GC messages while
8291 redisplaying, for instance.)
8292
8293 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
8294
8295 * xrdb.c (x_load_resources): Use the class name in the defaults.
8296
8297 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
8298 (regex_compile): Catch bogus \(\1\).
8299
8300 2000-10-30 Gerd Moellmann <gerd@gnu.org>
8301
8302 * xterm.c (x_alloc_nearest_color): Fix last change to compare
8303 RGB values.
8304
8305 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
8306 we have a color cache, check that the cached color equals the
8307 allocated color. If not, clear the color cache.
8308
8309 * window.c (displayed_window_lines): Change buffers if necessary.
8310 Fix computation of displayed lines.
8311
8312 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
8313 update_menu_bindings to DEFVAR_BOOL.
8314
8315 2000-10-30 Kenichi Handa <handa@etl.go.jp>
8316
8317 * search.c (Fset_match_data): Be sure to make search_regs always sane.
8318
8319 * puresize.h (BASE_PURESIZE): Increase to 680000.
8320
8321 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
8322
8323 2000-10-29 Jason Rumney <jasonr@gnu.org>
8324
8325 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
8326
8327 * w32term.c (w32_bdf_per_char_metric): Negate descent.
8328 (w32_cache_char_metrics): Handle possibility that 'x' does not
8329 exist in a BDF font.
8330 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
8331
8332 * w32bdf.h (bdffont): Add nchars.
8333
8334 * w32bdf.c (set_bdf_font_info): Set it.
8335 (w32_BDF_TextOut): Swap byte order of double byte characters.
8336 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
8337
8338 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
8339
8340 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
8341 don't override the colors in frame's param_alist, unless they are
8342 unspecified.
8343
8344 * term.c (reassert_line_highlight): If inverse_video is non-zero,
8345 reverse the effect of the highlight flag.
8346
8347 2000-10-27 Ken Raeburn <raeburn@gnu.org>
8348
8349 * window.h (Fwindow_live_p): Declare.
8350
8351 * undo.c (record_delete): Check that last_undo_buffer is really a
8352 buffer before applying XBUFFER to it.
8353
8354 * keymap.c (where_is_internal): Pass lisp object, not integer, to
8355 Faref.
8356
8357 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
8358
8359 * lisp.h (KEYMAPP): New macro.
8360 (get_keymap): Remove.
8361 (get_keymap_1): Rename get_keymap.
8362
8363 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
8364
8365 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
8366
8367 * xmenu.c (single_submenu): Use KEYMAPP.
8368 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
8369 Use KEYMAPP rather than Fkeymapp.
8370
8371 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
8372
8373 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
8374 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
8375 Use KEYMAPP rather than Fkeymapp.
8376 (single_submenu): Use KEYMAPP.
8377 (w32_menu_show, w32_dialog_show): Use TRUE.
8378
8379 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
8380
8381 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
8382 (Fkeymapp): Use KEYMAPP.
8383 (get_keymap): Rename from get_keymap_1. Remove old def.
8384 Return t when autoload=0 and error=0 and the keymap needs autoloading.
8385 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
8386 (Fminor_mode_key_binding): Don't raise an error if the binding
8387 is not a keymap.
8388 (Fuse_global_map, Fuse_local_map): Allow autoloading.
8389 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
8390
8391 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
8392 Allow Vspecial_event_map to be autoloaded.
8393 (menu_bar_items): Fetch the keymap rather than using keymapp.
8394 (menu_bar_one_keymap): No need to follow func-indirect any more.
8395 (parse_menu_item): get_keymap_1 -> get_keymap.
8396 (tool_bar_items): Fetch the keymap rather than using keymapp.
8397 (read_key_sequence): Use KEYMAPP.
8398
8399 * intervals.c (get_local_map): Use get_keymap rather than following
8400 function-indirections explicitly.
8401
8402 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
8403
8404 2000-10-27 Jason Rumney <jasonr@gnu.org>
8405
8406 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
8407 point, as Windows has oversized fonts.
8408
8409 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
8410
8411 2000-10-27 Gerd Moellmann <gerd@gnu.org>
8412
8413 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
8414 (freehook, reallochook): Handle null pointer arguments.
8415 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
8416
8417 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
8418
8419 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
8420 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
8421 Giving in to popular pressure to shut up the compiler with casts.
8422
8423 2000-10-27 Gerd Moellmann <gerd@gnu.org>
8424
8425 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
8426 signed value, and use a default value computed from the font's
8427 maximum descent.
8428
8429 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
8430
8431 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
8432 that specify a negative underline position can still use underlines.
8433
8434 * window.c (Fpos_visible_in_window_p): Make POS default to
8435 WINDOW's point, not the current buffer's point.
8436
8437 2000-10-26 Dave Love <fx@gnu.org>
8438
8439 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
8440 when it's necessary.
8441
8442 2000-10-26 Gerd Moellmann <gerd@gnu.org>
8443
8444 * window.c (size_window): Compute size difference from sum of old
8445 child window sizes instead of from parent's size.
8446
8447 * xdisp.c (pos_visible_p): Change current buffer if necessary.
8448 Handle obscured lines at the top of the window.
8449
8450 * frame.c (Fdelete_frame): Doc fix. Move running the hook
8451 down after the last error condition check.
8452
8453 * frame.c (Fdelete_frame): Run delete-frame-hook.
8454
8455 2000-10-26 Kenichi Handa <handa@etl.go.jp>
8456
8457 * coding.c (decode_coding): Fix previous change (check also
8458 CODING_MODE_LAST_BLOCK).
8459
8460 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
8461
8462 * regex.c: More `unsigned char' -> `re_char' changes.
8463 Also change several `int' into `re_wchar_t'.
8464 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
8465 (PUSH_FAILURE_POINTER): Don't cast any more.
8466 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
8467 We want GCC to complain, since this piece of code makes
8468 re_match non-reentrant, which *should* be fixed.
8469 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
8470 (EXTEND_BUFFER): Use RETALLOC.
8471 (SET_LIST_BIT): Don't cast.
8472 (re_wchar_t): New type.
8473 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
8474 that those two functions will always properly return.
8475 (IMMEDIATE_QUIT_CHECK): Cast to void.
8476 (analyse_first): Use recursion rather than an explicit stack.
8477 (re_compile_fastmap): Can't fail anymore.
8478 (re_search_2): Don't check re_compile_fastmap for failure.
8479 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
8480 Now also sets the new value (passed in a new argument).
8481 (re_match_2_internal): Use it.
8482 Also, use a new var `reg' of type size_t when looping through regs
8483 rather than reuse the inappropriate `mcnt'.
8484
8485 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
8486 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
8487 (where_is_internal): Renamed from Fwhere_is_internal.
8488 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
8489 (Fwhere_is_internal): New function wrapping where_is_internal.
8490 (where_is_internal_1): Handle the case where we're filling the cache.
8491 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
8492
8493 2000-10-25 Miles Bader <miles@gnu.org>
8494
8495 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
8496
8497 2000-10-25 Gerd Moellmann <gerd@gnu.org>
8498
8499 * window.c (pos_fully_visible_p): Removed.
8500 (Fpos_visible_in_window_p): Use pos_visible_p to determine
8501 if position is visible and/or fully visible.
8502
8503 * lisp.h (pos_visible_p): Add prototype.
8504
8505 * xdisp.c (pos_visible_p): New function.
8506
8507 2000-10-25 Kenichi Handa <handa@etl.go.jp>
8508
8509 * process.c (send_process): If OBJECT is t, it means that the data
8510 is from C string, but we should encode it. Before calling
8511 setup_raw_text_coding_system, be sure to flush out data by the
8512 previous coding system.
8513
8514 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
8515
8516 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
8517 assignment of startpos to prev when startpos == pos.
8518
8519 * editfns.c (find_field): Set the field stickiness correctly from
8520 overlay fields. Use renamed `text_property_stickiness'.
8521 (text_property_stickiness): Renamed from `char_property_stickiness'.
8522 Only check text properties, not overlays.
8523 * textprop.c (get_char_property_and_overlay): New function.
8524 (Fget_char_property): Use it.
8525 * intervals.h (get_char_property_and_overlay): Add declaration.
8526
8527 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
8528
8529 * keymap.c: Use AREF, ASET and ASIZE macros.
8530 (Fmake_sparse_keymap): Docstring fix.
8531 (synkey): Remove.
8532 (shadow_lookup): Move up.
8533 Handle the case where lookup-key returns an integer.
8534 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
8535 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
8536 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
8537 Simplify/rewrite the keymap-finding code.
8538 Add check for command shadowing, using shadow_lookup.
8539
8540 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
8541
8542 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
8543 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
8544 a symbol.
8545
8546 2000-10-24 Andrew Innes <andrewi@gnu.org>
8547
8548 * dired.c (directory_files_internal_unwind): New function.
8549 (directory_files_internal): Use it to ensure closedir is called
8550 even if expand-file-name or file-attributes throw, eg. because of
8551 a user interrupt. Also enable immediate_quit while calling
8552 re_search, so that matching can be interrupted as well.
8553
8554 2000-10-24 Andrew Innes <andrewi@gnu.org>
8555
8556 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
8557 NT-Emacs only.
8558 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
8559 so that re_search functions only quit when callers expect them to.
8560
8561 2000-10-24 Kenichi Handa <handa@etl.go.jp>
8562
8563 * regex.c (regex_compile): Change the way of handling a range from
8564 a char less than 256 to a char not less than 256.
8565
8566 2000-10-24 Gerd Moellmann <gerd@gnu.org>
8567
8568 * window.c (size_window): Prevent setting window's width or
8569 height to a negative value (esp. with XSETFASTINT).
8570
8571 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
8572 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
8573 (protect_malloc_state) [GC_MALLOC_CHECK &&
8574 GC_PROTECT_MALLOC_STATE]: New function.
8575 (PROTECT_MALLOC_STATE): New macro.
8576 (__malloc_initialize, morecore, _malloc_internal)
8577 (_free_internal) _realloc_internal): Use it to make _heapinfo
8578 read-only outside of gmalloc.
8579
8580 * keymap.c: Update copyright.
8581
8582 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
8583 a symbol.
8584
8585 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
8586
8587 * filelock.c (unlock_all_files): Use unlock_file to expand each
8588 buffer's file_truename before trying remove its lock file.
8589
8590 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
8591
8592 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
8593 or CRLF, decode EOLs.
8594
8595 2000-10-24 Kenichi Handa <handa@etl.go.jp>
8596
8597 * window.c (Fdisplay_buffer): Fix doc.
8598
8599 2000-10-23 Jason Rumney <jasonr@gnu.org>
8600
8601 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
8602 ASCII font of default fontset on Windows.
8603
8604 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
8605 xterm.c comment below).
8606
8607 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
8608
8609 2000-10-23 Gerd Moellmann <gerd@gnu.org>
8610
8611 * xterm.c (x_connection_closed): Reset handling_signal.
8612
8613 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
8614
8615 2000-10-23 Miles Bader <miles@gnu.org>
8616
8617 * window.c (window_scroll_pixel_based, window_scroll_line_based):
8618 Pass nil for FULLY argument to Fpos_visible_in_window_p to
8619 maintain old behavior.
8620 * minibuf.c (Fminibuffer_complete): Likewise.
8621
8622 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
8623
8624 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
8625 that when a font can't be exactly centered, it errs up rather than
8626 down.
8627
8628 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8629
8630 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
8631
8632 2000-10-23 Andrew Choi <akochoi@i-cable.com>
8633
8634 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
8635
8636 * dispnew.c [macintosh]: Include macterm.h.
8637 (init_display) [macintosh]: Initialization for window system.
8638
8639 * emacs.c (main) [macintosh]: Call syms_of_textprop,
8640 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
8641 syms_of_search, x_term_init, and init_keyboard before calling
8642 init_window_once. Also, call syms_of_xmenu.
8643
8644 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
8645 default fontset to Monaco.
8646
8647 * frame.c [macintosh]: Include macterm.h. Remove declarations of
8648 NewMacWindow and DisposeMacWindow.
8649 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
8650 instead of calling NewMacWindow and setting fields of
8651 f->output_data.mac directly. Call init_frame_faces.
8652 (Fdelete_frame) [macintosh]: Remove unused code.
8653 (Fmodify_frame_parameters) [macintosh]: Call
8654 x_set_frame_parameters instead of mac_set_frame_parameters.
8655
8656 * frame.h [macintosh]: Define menu_bar_lines field in struct
8657 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
8658
8659 * keyboard.c [macintosh]: Include macterm.h.
8660 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
8661 and menu_bar_activate_event type events as for X and NT.
8662 (make_lispy_event) [macintosh]: Construct lisp events of type
8663 MENU_BAR_EVENT as for X and NT.
8664
8665 * sysdep.c [macintosh]: Remove declaration for sys_signal.
8666 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
8667 (sys_subshell) [macintosh]: Remove definition entirely.
8668 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
8669 Vwindow_system_version here. Remove initialization of
8670 Vx_bitmap_file_path.
8671 (read_input_waiting): Correct the number of parameters passed to
8672 read_socket_hook.
8673 Move all Macintosh functions to mac/mac.c.
8674
8675 * term.c [macintosh]: Include macterm.h.
8676
8677 * window.c [macintosh]: Include macterm.h.
8678
8679 * xdisp.c [macintosh]: Include macterm.h. Declare
8680 set_frame_menubar and pending_menu_activation.
8681 (echo_area_display) [macintosh]: Do not return if terminal frame
8682 is the selected frame.
8683 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
8684 Allow only the selected frame to set menu bar.
8685 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
8686 calling FRAME_EXTERNAL_MENU_BAR (f).
8687 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
8688
8689 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
8690 and check_x. Declare XCreateGC. Define x_create_gc and
8691 x_free_gc. Initialize font_sort_order.
8692 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
8693 but call x_list_fonts instead of w32_list_fonts.
8694 (Finternal_face_x_get_resource) [macintosh]: Do not call
8695 display_x_get_resource.
8696 (prepare_face_for_display) [macintosh]: Set xgcv.font.
8697 (realize_x_face) [macintosh]: Load the font if it is specified in
8698 ATTRS.
8699 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
8700
8701 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
8702
8703 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
8704 is nil: since we go to the end of submap anyway, we'd end up
8705 setting nil to nil.
8706 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
8707 doesn't obey autoload.
8708
8709 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
8710
8711 * msdos.c (dos_set_window_size): Update screen dimension variables.
8712
8713 2000-10-21 Jason Rumney <jasonr@gnu.org>
8714
8715 * w32term.c (w32_cache_char_metrics): Double check that font is
8716 really fixed pitch before trusting tmPitchAndFamily.
8717
8718 2000-10-21 Andrew Innes <andrewi@gnu.org>
8719
8720 * w32gui.h (w32_char_font_type): Move enum from w32term.c
8721
8722 * w32term.h: Extern decl for w32_cache_char_metrics.
8723
8724 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
8725
8726 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
8727 (w32_unload_font): Free per_char array if present.
8728
8729 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
8730 cached information in emulated XFontStruct to handle common cases
8731 quickly. Do not allocate XCharStruct for return.
8732 (w32_native_per_char_metric): New function.
8733 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
8734 allocating one.
8735 (x_produce_glyphs): Don't get an HDC. Change calls to
8736 w32_per_char_metric to match arg change above. Remove calls to
8737 free results.
8738 (w32_get_glyph_overhangs): Ditto.
8739 (w32_cache_char_metrics): New function.
8740
8741 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
8742 ($(BLD)/casefiddle.$(O)): Remove compile command.
8743 ($(BLD)/gmalloc.$(O)): Remove compile command.
8744 ($(BLD)/dispnew.obj):
8745 ($(BLD)/keyboard.obj):
8746 ($(BLD)/w32inevt.obj):
8747 ($(BLD)/w32bdf.obj):
8748 ($(BLD)/alloc.obj):
8749 ($(BLD)/buffer.obj):
8750 ($(BLD)/editfns.obj):
8751 ($(BLD)/emacs.obj):
8752 ($(BLD)/fileio.obj):
8753 ($(BLD)/fns.obj):
8754 ($(BLD)/indent.obj):
8755 ($(BLD)/insdel.obj):
8756 ($(BLD)/intervals.obj):
8757 ($(BLD)/minibuf.obj):
8758 ($(BLD)/print.obj):
8759 ($(BLD)/scroll.obj):
8760 ($(BLD)/sysdep.obj):
8761 ($(BLD)/textprop.obj):
8762 ($(BLD)/widget.obj):
8763 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
8764 ($(BLD)/term.obj): Add dependency on dispextern.h.
8765
8766 * makefile.nt ($(BLD)\dispnew.obj):
8767 ($(BLD)\keyboard.obj):
8768 ($(BLD)\w32inevt.obj):
8769 ($(BLD)\w32bdf.obj):
8770 ($(BLD)\alloc.obj):
8771 ($(BLD)\buffer.obj):
8772 ($(BLD)\editfns.obj):
8773 ($(BLD)\emacs.obj):
8774 ($(BLD)\fileio.obj):
8775 ($(BLD)\fns.obj):
8776 ($(BLD)\indent.obj):
8777 ($(BLD)\insdel.obj):
8778 ($(BLD)\intervals.obj):
8779 ($(BLD)\minibuf.obj):
8780 ($(BLD)\print.obj):
8781 ($(BLD)\scroll.obj):
8782 ($(BLD)\sysdep.obj):
8783 ($(BLD)\textprop.obj):
8784 ($(BLD)\widget.obj):
8785 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
8786 ($(BLD)\term.obj): Add dependency on dispextern.h
8787
8788 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
8789
8790 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
8791 with an additional argument of Qt.
8792
8793 2000-10-21 Miles Bader <miles@gnu.org>
8794
8795 * window.c (pos_fully_visible_in_window_p): New function.
8796 (Fpos_visible_in_window_p): Add FULLY argument.
8797 Use pos_fully_visible_in_window_p.
8798 (window_scroll_pixel_based, window_scroll_line_based): Update
8799 calls to Fpos_visible_in_window_p.
8800 * lisp.h (Fpos_visible_in_window_p): Update prototype
8801
8802 2000-10-20 Gerd Moellmann <gerd@gnu.org>
8803
8804 * alloc.c (toplevel): Conditionalize compilation of mem_*
8805 functions differently.
8806
8807 2000-10-20 Jason Rumney <jasonr@gnu.org>
8808
8809 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
8810 mem_init where it used to be. mem_z etc not defined otherwise.
8811
8812 2000-10-20 Gerd Moellmann <gerd@gnu.org>
8813
8814 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
8815 GC_MALLOC_CHECK.
8816 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
8817 structure definition and related variabled to the top of the file.
8818 Include this code when GC_MALLOC_CHECK is defined.
8819 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
8820 register/unregister allocated region.
8821 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
8822 which isn't allocated.
8823 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
8824 something which is already in use.
8825 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
8826 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
8827 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
8828 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
8829
8830 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
8831 _malloc_internal instead of malloc.
8832 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
8833 of free.
8834
8835 2000-10-20 Andrew Innes <andrewi@gnu.org>
8836
8837 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
8838 Windows.
8839 (my_strftime) <macro>: Don't use macro arg list when redefining as
8840 _strftime_copytm.
8841 (my_strftime) <function>: Supply 0 as ut argument.
8842
8843 2000-10-19 Jason Rumney <jasonr@altavista.net>
8844
8845 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
8846 including dispextern.h, as it stops faces from working.
8847
8848 * w32fns.c (Fx_create_frame): Don't bother calling
8849 face-set-after-frame-default since the caller does it for us
8850 anyway. Clean up calls to x_get_arg to be consistent with X.
8851
8852 * w32term.c (x_produce_glyphs): Handle
8853 unibyte_display_via_language_environment correctly.
8854 (w32_draw_box_rect): Fix the calculation of width and height.
8855
8856 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
8857 as it has stopped working.
8858 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
8859 menu-bar.
8860
8861 2000-10-19 Gerd Moellmann <gerd@gnu.org>
8862
8863 * eval.c (skip_debugger): Prevent a compiler warning.
8864 (Fcondition_case): Likewise.
8865 (Fbacktrace_frame): Use a null interactive spec.
8866
8867 2000-10-19 Kenichi Handa <handa@etl.go.jp>
8868
8869 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
8870
8871 2000-10-18 Gerd Moellmann <gerd@gnu.org>
8872
8873 * strftime.c: Sync with glibc, file version 1.78.
8874 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
8875 should no longer be used according to ISO 8601.
8876
8877 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
8878 no map for meta_prefix_char, don't try to use it as a keymap.
8879 Instead, if T_OK is non-zero, look up a default binding, if any,
8880 otherwise, if T_OK is zero, return nil.
8881
8882 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
8883 (x_to_xcolors, png_load): Use x_query_color.
8884
8885 * xterm.c (x_color_cells, x_query_colors, x_query_color):
8886 New functions.
8887 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
8888 which can be slow.
8889 (x_copy_color, x_alloc_lighter_color): Likewise.
8890
8891 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
8892 (x_query_color, x_query_colors): Add prototype.
8893
8894 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
8895 check_string_bytes only if not noninteractive, increase count to 50.
8896
8897 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
8898
8899 * insdel.c (adjust_markers_for_delete): Handle before-insertion
8900 markers correctly.
8901
8902 2000-10-17 Gerd Moellmann <gerd@gnu.org>
8903
8904 * alloc.c (pure_bytes_used): Renamed from pureptr.
8905 (ALIGN): New macro.
8906 (pure_alloc): New function.
8907 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
8908 Use it.
8909 (Fpurecopy): Use PURE_POINTER_P.
8910
8911 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
8912 PT has moved backward.
8913
8914 * xdisp.c (cursor_row_p): Take continued lines into account.
8915
8916 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
8917 string's size_byte.
8918 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
8919 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
8920 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
8921 string allocated.
8922
8923 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
8924 of selective display off while searching for the next line start.
8925
8926 2000-10-17 Kenichi Handa <handa@etl.go.jp>
8927
8928 * Makefile.in (term.o): Depend on dispextern.h.
8929
8930 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
8931
8932 * keymap.c (keymap_memberp): Ensure that nil is not a member.
8933
8934 2000-10-16 Gerd Moellmann <gerd@gnu.org>
8935
8936 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
8937 the iterator at the beginning, so that they can be set later on,
8938 for instance in reseat_at_next_visible_line_start, without being
8939 overwritten.
8940
8941 * xfns.c (pbm_format): Add :foreground and :background keywords.
8942 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
8943 (xbm_load): Recognize foreground and background color specifications.
8944
8945 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
8946
8947 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
8948
8949 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
8950
8951 * msdos.c (IT_set_face): Compare highlighted face with the default
8952 face, and invert colors if these faces' colors are identical.
8953 (Fmsdos_remember_default_colors): Don't swap foreground and
8954 background colors in initial_colors[].
8955 (IT_set_frame_parameters): Don't swap frame's foreground and
8956 background pixels. If ALIST includes "(reverse . t)", swap
8957 foreground-color and background-color properties in frame's
8958 param_alist. If the original frame's param_alist doesn't specify
8959 the colors, store unspecified-fg and unspecified-bg, reversed if
8960 required.
8961
8962 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
8963 the colors are unspecified and reversed, reverse fore- and back-
8964 ground in the returned value.
8965 (Fframe_parameter): Ditto.
8966
8967 2000-10-16 Gerd Moellmann <gerd@gnu.org>
8968
8969 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
8970 get_last_unchanged_at_beg_row.
8971 (find_first_unchanged_at_end_row): Renamed from
8972 get_first_unchanged_at_end_row.
8973 (find_first_unchanged_at_end_row): Convert assertions to
8974 unconditional tests which abort. When looking for a row in
8975 unchanged text, don't go further back than first_text_row.
8976
8977 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
8978 Don't add in the last line's height when deciding if the new
8979 position is below the scroll margin.
8980
8981 2000-10-16 Miles Bader <miles@gnu.org>
8982
8983 * editfns.c (Fconstrain_to_field): Check carefully for field
8984 boundaries if either OLD_POS or NEW_POS has a non-nil field
8985 property, even if they're the same.
8986
8987 2000-10-16 Kenichi Handa <handa@etl.go.jp>
8988
8989 * xterm.c (x_draw_box_rect): Fix the calculation of width and
8990 height for XFillRectangle.
8991
8992 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
8993
8994 * syntax.c (Fstring_to_syntax): New function extracted from
8995 Fmodify_syntax_entry.
8996 (Fmodify_syntax_entry): Use it and document the ! and | fences.
8997 (skip_chars, Fforward_comment): Remove unused variables.
8998 (syms_of_syntax): Add defsubr for string-to-syntax.
8999 (describe_syntax): Add code for comment and string fences.
9000
9001 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
9002
9003 * keymap.c (access_keymap): Add AUTOLOAD parameter.
9004 Do the meta->esc mapping. Call get_keyelt before returning.
9005 Start scanning from the second element (the first is always `keymap')
9006 to make it easier to detect when we reach a parent map.
9007 Handle the case of inheriting from a symbol whose function is a map.
9008 (Fkeymap_parent): Also handle the `inherit from symbol' case.
9009 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
9010 (get_keyelt, Flookup_key): Update call to access_keymap.
9011 Remove the meta->esc mappings.
9012 (define_as_prefix): Delete old disabled code.
9013 (menu_item_p): New function.
9014 (where_is_internal_1): Skip over the few remaining menu items.
9015 * lisp.h (access_keymap): Update prototype.
9016 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
9017 Update call to access_keymap.
9018 (follow_key, read_key_sequence): Update calls to access_keymap.
9019 Remove the meta->esc mappings.
9020
9021 2000-10-13 Gerd Moellmann <gerd@gnu.org>
9022
9023 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
9024 with additional argument.
9025
9026 * xdisp.c (cursor_row_p): New function.
9027 (try_cursor_movement, display_line): Use it.
9028
9029 * xdisp.c (append_space): Also save/restore iterator's current
9030 character and its length.
9031
9032 * xdisp.c (init_from_display_pos): Add an assertion.
9033 (handle_stop): Don't set iterator's add_overlay_start.
9034 (handle_invisible_prop): Likewise.
9035 (load_overlay_strings): If text under an overlay is invisible,
9036 take both before- and after-strings into account when the iterator
9037 is positioned either at the start or at the end of the overlay.
9038 (forward_to_next_line_start): Rewritten.
9039 (reseat_at_next_visible_line_start): Rewritten.
9040 (set_iterator_to_next): Add parameter RESEAT_P.
9041
9042 * dispextern.h (struct it): Remove member add_overlay_start.
9043 (set_iterator_to_next): Change prototype.
9044
9045 2000-10-13 Kenichi Handa <handa@etl.go.jp>
9046
9047 * coding.c (code_convert_region): Be sure to initialize
9048 coding->category_idx.
9049 (decode_coding_string): Set coding->src_multibyte and
9050 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
9051 (encode_coding_string): Set coding->src_multibyte and
9052 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
9053
9054 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
9055
9056 * xfns.c (Fx_create_frame): Don't bother calling
9057 face-set-after-frame-default since the caller does it for us anyway.
9058
9059 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
9060
9061 * window.c (coordinates_in_window): Fix detection of vertical line
9062 on character terminals.
9063
9064 2000-10-12 Gerd Moellmann <gerd@gnu.org>
9065
9066 * editfns.c (save_excursion_save): Additionally record the
9067 selected window.
9068 (save_excursion_restore): If buffer was visible in a window, and a
9069 different window was selected, and the old selected window is
9070 still live, restore point in that window.
9071
9072 2000-10-12 Kenichi Handa <handa@etl.go.jp>
9073
9074 * xterm.c (x_produce_glyphs): Handle
9075 unibyte_display_via_language_environment correctly.
9076
9077 * regex.c (regex_compile): Change the way of handling a range from
9078 unibyte char to multibyte char.
9079
9080 * syntax.c (skip_chars): Change the way of handling a range from
9081 unibyte char to multibyte char.
9082
9083 * process.c (read_process_output): Cancel previous change.
9084
9085 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
9086
9087 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
9088
9089 * charset.c (Ffind_charset_string): Doc fix.
9090 (Ffind_charset_region): Doc fix.
9091
9092 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
9093
9094 * process.c (read_process_output): Fix previous change. Adjust
9095 multibyteness of text to insert in a buffer by
9096 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
9097
9098 2000-10-10 Andreas Schwab <schwab@suse.de>
9099
9100 * alloc.c (mark_object): Remove all workarounds installed on
9101 1993-08-08.
9102
9103 2000-10-10 Kenichi Handa <handa@etl.go.jp>
9104
9105 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
9106 (base64_encode_1): Make it work for a text of multibyte form.
9107 (Fbase64_decode_region): Allocate sufficient memory for multibyte
9108 case. Don't call str_to_multibyte because base64_decode_1
9109 produces correct multibyte form for eight-bit codes.
9110 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
9111 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
9112 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
9113 codes.
9114
9115 * charset.h (CHAR_STRING): Optimized for single byte characters.
9116
9117 2000-10-09 Andreas Schwab <schwab@suse.de>
9118
9119 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
9120 -1 after socket is closed, to fall through to error processing.
9121
9122 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
9123
9124 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
9125 variables. If ALIST includes foreground-color or
9126 background-color, change also the colors of the default face for
9127 this frame.
9128
9129 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
9130
9131 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
9132 them extern (they are defined on xfaces.c).
9133 (syms_of_msdos): Don't intern and don't staticpro
9134 Qbackground_color and Qforeground_color.
9135
9136 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
9137
9138 * frame.c (Fframe_parameter): For non-windowed frames, if
9139 f->param_alist says foreground or background color is unspecified,
9140 call tty_color_name to return the color name computed from the
9141 frame's current colors.
9142
9143 2000-10-06 Dave Love <fx@gnu.org>
9144
9145 * terminfo.c (ospeed): Don't declare.
9146
9147 * sysdep.c: Don't include string.h.
9148 (h_errno): Declare conditional also on TRY_AGAIN.
9149
9150 * charset.c (Ffind_charset_string): Doc fix.
9151
9152 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
9153 (Fbase64_decode_region, Fbase64_decode_string): More explicit
9154 error messages.
9155
9156 2000-10-05 Dave Love <fx@gnu.org>
9157
9158 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
9159 position like menu-bar.
9160
9161 2000-10-05 Gerd Moellmann <gerd@gnu.org>
9162
9163 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
9164
9165 * xdisp.c (handle_single_display_prop): Use safe_call1.
9166 (safe_call): Renamed from call_function.
9167 (safe_call1): New function.
9168 (handle_fontified_prop): Use safe_call1 instead of call1.
9169 (safe_eval): Renamed from eval_form.
9170 (safe_eval_handler): Renamed from eval_handler.
9171 (handle_single_display_prop, display_mode_element): Use safe_eval
9172 instead of eval_form.
9173
9174 * xfaces.c (merge_face_heights): Use safe_call instead of
9175 call_function.
9176
9177 * keyboard.c (show_help_echo): Use safe_call instead of
9178 call_function; use safe_eval instead of eval_form.
9179
9180 * lisp.h (safe_call): Renamed from call_function.
9181 (safe_eval): Renamed from eval_form.
9182 (safe_call1): Add prototype.
9183
9184 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
9185
9186 * xfns.c (image_ascent): Rearrange ascent calculation for the
9187 has-a-font case.
9188
9189 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
9190
9191 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
9192 (where_is_internal_1): Don't bother ignoring menu-items any more.
9193
9194 2000-10-04 Gerd Moellmann <gerd@gnu.org>
9195
9196 * keyboard.c (update_menu_bindings): New variable.
9197 (parse_menu_item): Use AREF. If update_menu_bindings
9198 is 0, don't update menu bindings.
9199 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
9200
9201 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
9202
9203 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
9204 to `mark_object'.
9205
9206 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
9207
9208 * syntax.c (forw_comment): Match nestedness of ender/starter.
9209 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
9210 (prev_char_comstart_first): Remove.
9211 (back_comment): Check two-char comment markers more carefully
9212 to better handle overlapping cases like *//* or /* */* */ ...
9213 Match nestedness of ender/starter.
9214
9215 2000-10-02 Dave Love <fx@gnu.org>
9216
9217 * config.in (HAVE_GAI_STRERROR): Add undef.
9218
9219 * process.c (Fopen_network_stream): Use it.
9220
9221 * m/alpha.h (NO_REMAP): Don't define.
9222
9223 2000-10-02 Gerd Moellmann <gerd@gnu.org>
9224
9225 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
9226 return with a string converted to an integer or vice versa when
9227 Vmocklisp_arguments is t.
9228 (Fsignal): Likewise. The function can return for `quit'.
9229 (struct gcpro): Declare member `var' to point to a volatile
9230 Lisp_Object.
9231
9232 * eval.c (error): Prevent compiler warning.
9233
9234 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
9235
9236 * keymap.c (keymap_memberp): New function.
9237 (Fset_keymap_parent): Use it.
9238 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
9239 Use keymap_memberp to avoid creating cycles.
9240 (access_keymap): Use KEYMAPP.
9241
9242 2000-09-30 Gerd Moellmann <gerd@gnu.org>
9243
9244 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
9245 gai_strerror. Make sure xerrno is set if connect fails. Improve
9246 error recovery.
9247
9248 2000-09-29 Jason Rumney <jasonr@gnu.org>
9249
9250 * w32term.c (w32_char_font_type, w32_encode_char)
9251 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
9252 (w32_bdf_per_char_metric): New function.
9253 (w32_per_char_metric): Use it.
9254 (x_draw_glyph_string_background): Always draw background for BDF
9255 glyphs.
9256
9257 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
9258 GDI object which is a scarce resource.
9259
9260 * w32bdf.c (search_file_line): Fix skipping of whitespace.
9261 (get_quoted_string): Fix limit on memchr search.
9262 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
9263 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
9264 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
9265 (get_cached_font_char, cache_char_offset): Use macro
9266 BDF_CODEPOINT_RANGE_COVER_P.
9267 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
9268 (clear_cached_bitmap_slots): New function.
9269 (GET_HEX_VALUE): G-Z, g-z are not hex.
9270 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
9271 (get_bitmap_with_cache): Use new cache implementation.
9272 (create_offscreen_bitmap): New function.
9273 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
9274
9275 * w32term.c (x_produce_glyphs): If the distance from the current
9276 position to the next tab stop is less than a canonical character
9277 width, use the tab stop after that.
9278 (x_draw_glyphs): Handle case START and END are out of bounds more
9279 carefully.
9280 (x_clear_mouse_face): Block/unblock input.
9281 (x_display_and_set_cursor): Don't show a hollow box cursor for
9282 buffers whose cursor_type is nil.
9283
9284 2000-09-29 Gerd Moellmann <gerd@gnu.org>
9285
9286 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
9287
9288 * dispextern.h (updating_frame): Declare extern.
9289
9290 2000-09-29 Andreas Schwab <schwab@suse.de>
9291
9292 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
9293
9294 2000-09-29 Gerd Moellmann <gerd@gnu.org>
9295
9296 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
9297 use its function definition.
9298 (tool_bar_items): Likewise.
9299
9300 * lisp.h (fatal): Declare NO_RETURN.
9301
9302 2000-09-29 Kenichi Handa <handa@etl.go.jp>
9303
9304 * keymap.c: Remove the line "#undef NULL".
9305
9306 2000-09-28 Gerd Moellmann <gerd@gnu.org>
9307
9308 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
9309
9310 2000-09-28 Dave Love <fx@gnu.org>
9311
9312 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
9313
9314 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
9315
9316 * .gdbinit (xreload): Note its need on GNU/Linux.
9317
9318 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
9319 r_alloc, r_alloc_free.
9320
9321 2000-09-28 Kenichi Handa <handa@etl.go.jp>
9322
9323 * syntax.c (skip_chars): Handle negation correctly.
9324
9325 2000-09-27 Gerd Moellmann <gerd@gnu.org>
9326
9327 * xfaces.c (realize_default_face): Call set_lface_from_font_name
9328 with non-zero FORCE_P argument.
9329
9330 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
9331 Add assertions.
9332
9333 * xdisp.c (window_box_height): Add an assertion.
9334
9335 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
9336 tool-bar than is available.
9337 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
9338
9339 2000-09-27 Dave Love <fx@gnu.org>
9340
9341 * s/irix6-5.h: Now works 64-bit. Tidied.
9342
9343 2000-09-26 Gerd Moellmann <gerd@gnu.org>
9344
9345 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
9346 instead of BITS_PER_INT.
9347 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
9348 EMACS_UINT, respectively.
9349 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
9350
9351 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
9352
9353 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
9354
9355 * window.c (freeze_window_starts): Construct last argument for
9356 foreach_window differently.
9357
9358 * xfns.c (x_decode_color): Don't return a Lisp_Object.
9359
9360 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
9361 EMACS_UINT instead of `int' and `unsigned int'.
9362 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
9363
9364 * frame.h (struct frame): Make the `nothing' member of union
9365 output_data an EMACS_INT.
9366
9367 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
9368 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
9369 size in the sdata structure.
9370 (SDATA_NBYTES, SDATA_DATA): New macros.
9371 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
9372 differently for the different layout of the sdata structure.
9373 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
9374 in sdata.
9375 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
9376 Check that size recorded in the string size and size recorded in
9377 the sdata structure agree.
9378
9379 2000-09-25 Dave Love <fx@gnu.org>
9380
9381 * buffer.c: Include stdio.h.
9382
9383 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
9384
9385 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
9386
9387 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
9388 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
9389 (__malloc_extra_blocks): Declare as __malloc_size_t.
9390
9391 2000-09-25 Gerd Moellmann <gerd@gnu.org>
9392
9393 * alloc.c (mark_image): Use GC_NILP instead of NILP.
9394
9395 * keyboard.c (show_help_echo): Set help_echo_showing_p.
9396 (read_char): If help-echo is showing, preserve the echo area
9397 when redisplaying.
9398
9399 * xdisp.c (help_echo_showing_p): New variable.
9400 (set_message): Reset it to 0.
9401 (init_xdisp): Initialize help_echo_showing_p.
9402
9403 * dispextern.h (help_echo_showing_p): Declare extern.
9404
9405 * config.in: Fix typo in __GNUC_MINOR__.
9406
9407 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
9408
9409 * s/freebsd.h (POSIX_SIGNALS): Define.
9410
9411 * xterm.c (x_clear_mouse_face): Block/unblock input.
9412
9413 2000-09-24 Dave Love <fx@gnu.org>
9414
9415 * fns.c (base64_encode_1): Fix last change.
9416
9417 2000-09-22 Gerd Moellmann <gerd@gnu.org>
9418
9419 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
9420
9421 * xdisp.c (try_window_reusing_current_matrix): More fixes
9422 for the case window has a header-line.
9423
9424 2000-09-22 Dave Love <fx@gnu.org>
9425
9426 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
9427 a doc string.
9428
9429 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
9430
9431 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
9432
9433 2000-09-21 Gerd Moellmann <gerd@gnu.org>
9434
9435 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
9436 for GCC >= 2.5.
9437
9438 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
9439 Declare NO_RETURN.
9440
9441 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
9442 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
9443 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
9444 warnings.
9445
9446 * marker.c (byte_char_debug_check): Return void.
9447
9448 * xfns.c (Fx_create_frame): Set default frame parameter value
9449 for tool-bar-lines to 1.
9450
9451 * dispnew.c (scrolling_window): Compare y-positions of rows
9452 equal at the start. Some simplification.
9453
9454 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
9455 reused rows' y-position in the case window has a header-line, and
9456 new window start is greater than old window start.
9457
9458 * process.c (process_sent_to): New variable.
9459 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
9460 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
9461 Declare more parameters volatile.
9462
9463 * lread.c (Vrecursive_load_depth_limit): New variable.
9464 (Fload): Check recursive loads whose recursion depth exceeds
9465 Vrecursive_load_depth_limit.
9466 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
9467
9468 2000-09-20 Gerd Moellmann <gerd@gnu.org>
9469
9470 * fileio.c (Fread_file_name): Doc fix.
9471
9472 * editfns.c (Fmessage_or_box): Doc fix.
9473
9474 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
9475
9476 * xfns.c (xbm_scan): Allow C-style comments.
9477
9478 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
9479 symbols are specified, add color translations to the cache.
9480 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
9481 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
9482 xpm_cache_color.
9483 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
9484 structures to xpm_init_color_cache.
9485
9486 2000-09-19 Gerd Moellmann <gerd@gnu.org>
9487
9488 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
9489
9490 2000-09-19 Andrew Innes <andrewi@gnu.org>
9491
9492 * makefile.nt (bootstrap-emacs): Don't change directory.
9493
9494 2000-09-19 Kenichi Handa <handa@etl.go.jp>
9495
9496 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
9497
9498 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
9499 If output buffer is too small, signal an appropriated error.
9500
9501 2000-09-18 Dave Love <fx@gnu.org>
9502
9503 * keyboard.c (menu_bar_items, tool_bar_items)
9504 (current_active_maps): Remove redundant get_local_map call.
9505
9506 2000-09-18 Gerd Moellmann <gerd@gnu.org>
9507
9508 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
9509 cursor for buffers whose cursor_type is nil.
9510
9511 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
9512 a feature to implement that is already implemented.
9513 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
9514 warnings.
9515
9516 * xfns.c (x_clear_image_1): New function.
9517 (x_clear_image): Use it.
9518 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
9519
9520 * dispnew.c (update_window): Move test for invisible lines
9521 at the top to update_window_line.
9522 (update_window_line): Handle invisible lines here.
9523
9524 * xfns.c (clear_image_cache): Clear current matrices of all
9525 frames sharing an image cache. Block input while freeing
9526 images. Fix timestamp comparison.
9527 (x_clear_image): Also free the mask.
9528
9529 * xfns.c (lookup_image): Block input while loading the image so
9530 that we won't get interrupted in a state where the image isn't yet
9531 set up completely.
9532 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
9533 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
9534 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
9535 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
9536
9537 2000-09-16 Gerd Moellmann <gerd@gnu.org>
9538
9539 * dispnew.c (update_window): Make sure to make desired rows
9540 current even if they are completely invisible at the top
9541 of a window.
9542
9543 2000-09-15 Gerd Moellmann <gerd@gnu.org>
9544
9545 * xfns.c (lookup_image): Build mask before applying an algorithm.
9546 Recognize algorithm `disabled'.
9547 (cross_disabled_images): New variable.
9548 (COLOR_INTENSITY): New macro.
9549 (x_detect_edges): Use COLOR_INTENSITY.
9550 (x_disable_image): New function.
9551 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
9552
9553 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
9554 disabled state, don't apply an image transformation algorithm if
9555 the user specified an image for the disabled state. Use
9556 `:algorithm disabled' for creating a disabled item's image if the
9557 user hasn't specified an image.
9558
9559 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
9560 allocation functions with the XPM lib.
9561 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
9562 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
9563 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
9564 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
9565 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
9566 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
9567 functions, if possible, because these handle color allocation
9568 failure more gracefully.
9569 (Fimage_mask_p): New function.
9570
9571 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
9572 (Qedge_detection, Qheuristic): New symbols.
9573 (syms_of_xfns): Initialize new symbols.
9574 (lookup_image): Handle `:mask X', `:algorithm emboss', and
9575 `algorithm (edge-detection ...)'.
9576 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
9577 (tiff_format, gif_format, gs_format): Add `:mask'.
9578 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
9579 (GIF_MASK, GS_MASK): New enumerators.
9580 (x_laplace_read_row, x_laplace_write_row): Functions removed.
9581 (emboss_matrix, laplace_matrix): New variables.
9582 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
9583 (x_edge_detection): New functions.
9584 (x_laplace): Rewritten in terms of x_detect_edges.
9585 (x_build_heuristic_mask): If image has a mask, free it.
9586
9587 2000-09-14 Andrew Innes <andrewi@gnu.org>
9588
9589 * makefile.w32-in: Revert to Unix line endings.
9590
9591 2000-09-14 Andrew Innes <andrewi@gnu.org>
9592
9593 * makefile.w32-in: Standardize indentation somewhat.
9594 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
9595 cater for differences between shells.
9596
9597 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
9598
9599 2000-09-14 Gerd Moellmann <gerd@gnu.org>
9600
9601 * xterm.c (x_produce_glyphs): If the distance from the current
9602 position to the next tab stop is less than a canonical character
9603 width, use the tab stop after that.
9604
9605 2000-09-14 Dave Love <fx@gnu.org>
9606
9607 * buffer.c (alloc_buffer_text): Fix xmalloc call.
9608
9609 2000-09-14 Gerd Moellmann <gerd@gnu.org>
9610
9611 * xdisp.c (handle_fontified_prop): While running fontification
9612 functions, bind `fontification-functions' and
9613 `after-change-functions' to nil.
9614
9615 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
9616 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
9617
9618 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
9619
9620 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
9621 USE_MMAP_FOR_BUFFERS.
9622
9623 * insdel.c (make_gap): Use enlarge_buffer_text.
9624
9625 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
9626 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
9627 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
9628 from former r_alloc_* functions in ralloc.c.
9629 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
9630 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
9631 (mmap_init) [REL_ALLOC_MMAP]: New function.
9632 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
9633 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
9634 BUFFER_FREE.
9635
9636 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
9637 (enlarge_buffer_text): Add prototype.
9638
9639 * ralloc.c: Remove everything having to do with the use of mmap.
9640
9641 2000-09-13 Gerd Moellmann <gerd@gnu.org>
9642
9643 * sound.c (Fplay_sound): Doc fix.
9644
9645 * keyboard.c: Avoid some more compiler warnings.
9646 (parse_tool_bar_item): Ignore cached key bindings.
9647
9648 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
9649 and allocation of Lisp data.
9650
9651 2000-09-12 Gerd Moellmann <gerd@gnu.org>
9652
9653 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
9654 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
9655 defaults first.
9656
9657 * lread.c (Fload): Put code checking for recursive loads in #if 0.
9658
9659 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
9660
9661 * ccl.c: Comment fixed.
9662 (MAX_MAP_SET_LEVEL): Increased to 30.
9663 (PUSH_MAPPING_STACK): Enclose with do-while block.
9664 (POP_MAPPING_STACK): Likewise.
9665 (stack_idx_of_map_multiple): New variable.
9666 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
9667 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
9668 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
9669 (ccl_driver) <CCL_MapSingle>: Likewise.
9670 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
9671 with the case where looking up process reaches to the end of
9672 map-set, and call CCL programs as the above change.
9673
9674 2000-09-11 Gerd Moellmann <gerd@gnu.org>
9675
9676 * xfns.c (png_load, jpeg_load): Declare some variables volatile
9677 that might be clobbered by longjmp.
9678 (check_x_display_info, x_decode_color, create_frame_xic)
9679 (Fx_display_backing_store, Fx_display_visual_class)
9680 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
9681
9682 * lread.c (init_lread): Set Vloads_in_progress to nil.
9683 (Fload): Show list of recursively loaded files, when signaling an
9684 error.
9685
9686 * lread.c (Vloads_in_progress): New variable.
9687 (record_load_unwind): New function.
9688 (Fload): Check for recursive loads.
9689 (syms_of_lread): Initialize Vloads_in_progress.
9690 (read_integer, read1): Avoid some compiler warnings.
9691
9692 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
9693 compiler warnings.
9694
9695 2000-09-11 Miles Bader <miles@gnu.org>
9696
9697 * editfns.c (Fbuffer_string): Doc fix.
9698
9699 2000-09-10 Gerd Moellmann <gerd@gnu.org>
9700
9701 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
9702
9703 2000-09-09 Ken Raeburn <raeburn@gnu.org>
9704
9705 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
9706 whether to include other header files.
9707
9708 2000-09-09 Gerd Moellmann <gerd@gnu.org>
9709
9710 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9711 by Fmemq as a boolean.
9712
9713 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
9714
9715 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
9716
9717 2000-09-08 Gerd Moellmann <gerd@gnu.org>
9718
9719 * ralloc.c (mmap_fd): Remove initializer which can make it
9720 read-only in a dumped Emacs.
9721 (mmap_fd_1): New variable.
9722 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
9723 restore it from there.
9724 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
9725 unconditionally so that mmap_fd can be initialized there.
9726 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
9727 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
9728 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
9729
9730 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
9731
9732 * xdisp.c (dump_glyph_row): Fix printf format string.
9733 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
9734
9735 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
9736
9737 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
9738 inheritance.
9739
9740 * xdisp.c (try_window_id): When trying to locate cursor in
9741 unchanged rows at the top, handle the case that we can't find it.
9742
9743 * xterm.c (x_draw_glyphs): Handle case START and END are out
9744 of bounds more carefully.
9745
9746 2000-09-08 Dave Love <fx@gnu.org>
9747
9748 * s/sol2.h (REL_ALLOC_MMAP): Define.
9749 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
9750
9751 * ralloc.c: Don't include string.h (redundant).
9752 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
9753 [!MAP_ANON]: Include fcntl.h.
9754 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
9755 (r_alloc, r_re_alloc, r_alloc_free)
9756 (mmap_enlarge, mmap_set_vars): Use it.
9757 (r_alloc_init_fd): New function.
9758 (__morecore) [SYSTEM_MALLOC]: Don't declare.
9759 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
9760 malloc type.
9761
9762 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
9763 Remove vm-limit.o.
9764
9765 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
9766 change to __NetBSD__.
9767
9768 2000-09-08 Kenichi Handa <handa@etl.go.jp>
9769
9770 * search.c (compile_pattern): Check the multibyteness of cached
9771 string and PATTERN.
9772
9773 2000-09-08 Miles Bader <miles@gnu.org>
9774
9775 * xfaces.c (default_face_vector): Function removed.
9776 (Finternal_merge_in_global_face): Restore old global/local
9777 attribute override order. Use inline loop instead of calling
9778 default_face_vector.
9779
9780 2000-09-07 Gerd Moellmann <gerd@gnu.org>
9781
9782 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
9783 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
9784 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
9785 where necessary, in case POINTER_TYPE is `void'.
9786
9787 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
9788
9789 * frame.c (make_terminal_frame): Initialize frame foreground and
9790 background colors to unspecified, for the initial instance of an
9791 MSDOS frame.
9792
9793 2000-09-07 Gerd Moellmann <gerd@gnu.org>
9794
9795 * ralloc.c (mmap_find): Fix overlap computation.
9796 (mmap_enlarge): Compute nbytes before trying to find an
9797 overlapping region.
9798
9799 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
9800 instead of `!='.
9801
9802 * lread.c (syms_of_lread): Change value of regexp
9803 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
9804
9805 * xmenu.c (xdialog_show): When looking up the selection in
9806 menu_items, take `quote' boundaries into account; this corresponds
9807 to a nil ITEM in x-popup-dialog.
9808
9809 2000-09-07 Kenichi Handa <handa@etl.go.jp>
9810
9811 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
9812 not 0x81.
9813 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
9814
9815 * coding.c (encode_coding_sjis_big5): Use translation table for
9816 encoding, not decoding. Fix the handling of latin-jisx0201.
9817 Check for the charset katakana-jisx0201 too.
9818 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
9819 (detect_coding_sjis): Check the byte sequence more rigidly.
9820
9821 2000-09-07 Gerd Moellmann <gerd@gnu.org>
9822
9823 * xfaces.c (Vparam_value_alist): New variable.
9824 (syms_of_xfaces): Initialize it.
9825 (Finternal_set_lisp_face_attribute): Avoid more consing.
9826
9827 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
9828 specially.
9829 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
9830 (Qbackground_mode): New variable.
9831 (syms_of_frame_1): Initialize Qbackground_mode.
9832
9833 * lisp.h (Qdisplay): Declare extern.
9834
9835 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
9836 change face on all frames, and change the default for new frames.
9837
9838 2000-09-07 Dave Love <fx@gnu.org>
9839
9840 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
9841
9842 2000-09-07 Kenichi Handa <handa@etl.go.jp>
9843
9844 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
9845
9846 * charset.c: Include composite.h
9847 (lisp_string_width): New function.
9848 (Fstring_width): Call lisp_string_width instead of strwidth.
9849
9850 * Makefile.in (charset.o): Depends on composite.h.
9851
9852 * process.c (read_process_output): Before inserting the decoded
9853 text in the buffer, adjust the multibyteness.
9854
9855 2000-09-06 Gerd Moellmann <gerd@gnu.org>
9856
9857 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
9858 buffer's text buffer is null, map new memory.
9859
9860 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
9861 POINTER_TYPE and size_t.
9862 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
9863 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
9864 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
9865 [REL_ALLOC_MMAP]: New macros.
9866 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
9867 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
9868 [REL_ALLOC_MMAP]: New functions.
9869
9870 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
9871 before and after unexec.
9872
9873 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
9874 text buffers if necessary.
9875
9876 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
9877 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
9878 in prototypes.
9879
9880 * config.in (HAVE_MMAP): Add #undef.
9881
9882 2000-09-05 Gerd Moellmann <gerd@gnu.org>
9883
9884 * frame.c (Qdisplay_type): New variable.
9885 (syms_of_frame_1): Initialize it.
9886 (Fframe_parameter): New function that avoids consing.
9887 (syms_of_frame): Defsubr it.
9888
9889 * buffer.c (Fother_buffer): Consider buffers as invisible when
9890 they are displayed in a window on an invisible frame.
9891
9892 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
9893 get-largest-window always return nil.
9894
9895 2000-09-04 Gerd Moellmann <gerd@gnu.org>
9896
9897 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
9898 variable; recognize Emacs 19 elc files.
9899
9900 2000-09-04 Miles Bader <miles@gnu.org>
9901
9902 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
9903 before initially popping up the menu, so the menu doesn't flash
9904 when the face settings are significantly different from the defaults.
9905
9906 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
9907
9908 * regex.c (WIDE_CHAR_SUPPORT): New macro.
9909 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
9910 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
9911 (BIT_UNIBYTE): Remove.
9912 (re_match_2_internal): Delete corresponding code and streamline the
9913 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
9914 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
9915 (re_wctype_t): New type.
9916 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
9917 (regex_compile): Use them and fix handling of overly long char classes.
9918
9919 2000-09-03 Andrew Innes <andrewi@gnu.org>
9920
9921 * makefile.w32-in: Change to DOS line endings.
9922
9923 * s/ms-w32.h (ORDINARY_LINK): New define.
9924
9925 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
9926 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
9927
9928 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
9929 (distclean): Delete them here instead.
9930
9931 * w32proc.c (compare_env): Convert to uppercase for comparison,
9932 not lowercase, to match how the native Windows shell works.
9933
9934 2000-09-03 Jason Rumney <jasonr@gnu.org>
9935
9936 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
9937 CVS changes the line-ends when checking in/out on DOS/Windows.
9938
9939 * makefile.nt (emacs): Do not change directory to run temacs, as
9940 the load-path is set relative to current directory.
9941
9942 2000-09-03 Miles Bader <miles@gnu.org>
9943
9944 * xterm.c (x_alloc_lighter_color_for_widget): New function.
9945
9946 2000-09-02 Gerd Moellmann <gerd@gnu.org>
9947
9948 * xdisp.c (redisplay_mode_lines): New function.
9949 (display_mode_lines): Return number of mode lines displayed.
9950 (echo_area_display): Use redisplay_mode_lines to draw garbaged
9951 mode lines. Don't temporarily bind redisplay-dont-pause to t.
9952
9953 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
9954 string.h and strings.h.
9955 (index) [HAVE_INDEX]: Add prototype.
9956
9957 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
9958 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
9959
9960 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
9961 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
9962
9963 2000-09-01 Gerd Moellmann <gerd@gnu.org>
9964
9965 * lread.c (read1): Accept `?' as symbol constituent, for
9966 compatiblity with XEmacs.
9967
9968 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
9969
9970 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
9971 (struct re_pattern_buffer): Remove newline_anchor.
9972 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
9973 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
9974 (re_max_failures, fail_stack): Use size_t rather than unsigned.
9975 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
9976 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
9977 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
9978 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
9979 Get rid of references to newline_anchor.
9980 (regcomp): Allocate and precompute a fastmap.
9981
9982 2000-08-31 Gerd Moellmann <gerd@gnu.org>
9983
9984 * lread.c (openp): GCPRO local variable `filename'.
9985
9986 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
9987
9988 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
9989
9990 * regex.c: Merge some changes from GNU libc. Add prototypes.
9991 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
9992 Use memcmp and memcpy instead of bcopy and bcmp.
9993 (init_syntax_once): Use ISALNUM.
9994 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
9995 (REG_UNSET_VALUE): Remove. Use NULL instead.
9996 (REG_UNSET, re_match_2_internal): Use NULL.
9997 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
9998 New macros.
9999 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
10000 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
10001 (regex_compile): In handle_interval, return an error rather than try to
10002 unfetch the interval if we can't find the closing brace.
10003 Obey the RE_NO_GNU_OPS syntax bit.
10004 (TOLOWER): New macro.
10005 (regcomp): Use it.
10006 (regexec): Allocate regs.start and regs.end as one block.
10007
10008 2000-08-30 Gerd Moellmann <gerd@gnu.org>
10009
10010 * xdisp.c (echo_area_display): Check display_completed instead
10011 of calling detect_input_pending.
10012
10013 * dispnew.c (update_frame): Only set display_completed here; move
10014 the update_begin and update_end calls here from update_frame_1.
10015 (update_frame_1): Don't set display_completed here, don't call
10016 update_begin/update_end.
10017
10018 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
10019 instead of store_frame_param.
10020
10021 2000-08-29 Gerd Moellmann <gerd@gnu.org>
10022
10023 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
10024 desired window matrix hasn't been displayed, use the current row
10025 instead. Make sure that only those frame rows are updated for
10026 which there exists a corresponding enabled desired row.
10027
10028 2000-08-29 Miles Bader <miles@gnu.org>
10029
10030 * xfaces.c (default_face_vector): New function.
10031 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
10032
10033 2000-08-29 Gerd Moellmann <gerd@gnu.org>
10034
10035 * lread.c (openp): Prevent temporary string passed to
10036 Ffile_readable_p from being garbage collected.
10037
10038 2000-08-28 Dave Love <fx@gnu.org>
10039
10040 * keymap.c (store_in_keymap): Add `static' to declaration.
10041
10042 2000-08-28 Gerd Moellmann <gerd@gnu.org>
10043
10044 * emacs.c, callint.c, doc.c, editfns.c
10045 (toplevel) [HAVE_STRING_H]: Include string.h.
10046 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
10047 (index): Remove prototypes which might conflict with non-standard
10048 definitions of index/strchr.
10049
10050 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
10051 (rindex): Define only if !HAVE_RINDEX.
10052
10053 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
10054
10055 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
10056
10057 2000-08-28 Miles Bader <miles@gnu.org>
10058
10059 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
10060 made inconsistent by a font-related attribute in FROM.
10061 (merge_face_inheritance): Add function comment.
10062
10063 2000-08-28 Kenichi Handa <handa@etl.go.jp>
10064
10065 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
10066 the 4th arg (PREV_EVENT) Qt to suppress input method.
10067
10068 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
10069
10070 * regex.c: Indent cpp directives and remove parens after `defined'.
10071 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
10072 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
10073 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
10074 (re_compile_pattern): Use size_t for length.
10075 (init_syntax_once): Move to a better place.
10076 * regex.h: Merge changes from GNU libc. Indent cpp directives.
10077 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
10078
10079 * syntax.c (back_comment): Detect cases where a comment-starter is
10080 actually inside another comment as in: /* a // b */ c // d \n.
10081 Make it clear that `comstart_pos' is unused for nested comments.
10082
10083 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
10084 (KEYMAPP): New macro.
10085 (Fkeymap_parent, Fset_keymap_parent): Use it.
10086 (fix_submap_inheritance): Mark it static.
10087 (define_as_prefix, describe_buffer_bindings, describe_command)
10088 (describe_translation, describe_map): Complete prototypes.
10089
10090 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
10091
10092 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
10093 to better match the key-lookup behavior.
10094
10095 2000-08-27 Gerd Moellmann <gerd@gnu.org>
10096
10097 * xfaces.c (lface_fully_specified_p): Handle :inherit.
10098 (Finternal_set_lisp_face_attribute): Fix typo in error message.
10099
10100 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
10101
10102 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
10103 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
10104 (xterm.o): Depend on coding.h
10105
10106 2000-08-26 Kenichi Handa <handa@etl.go.jp>
10107
10108 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
10109 the corresponding '#endif'.
10110
10111 2000-08-26 Miles Bader <miles@gnu.org>
10112
10113 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
10114 * xfaces.c (QCinherit): New variable.
10115 (syms_of_xfaces): Initialize it.
10116 (LFACE_INHERIT): New macro.
10117 (Finternal_get_lisp_face_attribute)
10118 (merge_face_vector_with_property)
10119 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
10120 (check_lface_attrs): Allow new types of face height. Check
10121 inherit attribute.
10122 (CYCLE_CHECK): New macro.
10123 (merge_face_inheritance): New function.
10124 (merge_face_vectors): Merge inherited faces too. Add F and
10125 CYCLE_CHECK arguments.
10126 (merge_face_vector_with_property, Finternal_merge_in_global_face)
10127 (lookup_named_face, lookup_derived_face, realize_named_face)
10128 (face_at_string_position, face_at_buffer_position): Supply
10129 new F and CYCLE_CHECK arguments to merge_face_vectors.
10130 (merge_face_heights): New function.
10131 (merge_face_vectors, merge_face_vector_with_property)
10132 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
10133 handle relative face heights.
10134 (lface_same_font_attributes_p): Compare heights using EQ.
10135
10136 2000-08-26 Kenichi Handa <handa@etl.go.jp>
10137
10138 * charset.c (char_to_string): Check the character validity.
10139 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
10140
10141 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
10142
10143 * regex.c (PUSH_FAILURE_COUNT): New macro.
10144 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
10145 Handle popping of a register's or a counter's data.
10146 (POP_FAILURE_POINT): Use the new name.
10147 (re_match_2_internal): Push counter data on the stack for succeed_n,
10148 jump_n and set_number_at and remove misleading dead code in succeed_n.
10149
10150 2000-08-25 Gerd Moellmann <gerd@gnu.org>
10151
10152 * xdisp.c (redisplay_internal): If considering all windows on all
10153 frames, update the display for each frame as soon as possible,
10154 instead of first building all desired matrices for all frames, and
10155 then updating them all.
10156 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
10157
10158 2000-08-24 Gerd Moellmann <gerd@gnu.org>
10159
10160 * bytecode.c (mark_byte_stack): Add a comment.
10161
10162 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
10163 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
10164 a graphical frame.
10165
10166 2000-08-24 Kenichi Handa <handa@etl.go.jp>
10167
10168 * minibuf.c (do_completion): Always use compare-string, not
10169 string-equal because the latter doesn't pay attention to
10170 multibyteness of strings.
10171
10172 * process.c (create_process): Don't setup raw-text coding here.
10173 (Fopen_network_stream): Don't set coding->src_multibyte and
10174 coding->dst_multibyte here.
10175 (read_process_output): For process filter, return unibyte string
10176 if default-enable-multibyte-characters is nil.
10177 (send_process): If OBJECT is multibyte text, be sure to encoded it
10178 by the specified coding system for the process. Otherwise, setup
10179 raw-text coding.
10180 (init_process): Don't initialize default-process-coding-system here.
10181
10182 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
10183
10184 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
10185 <scroll-down-aggressively>: Likewise.
10186
10187 2000-08-23 Kenichi Handa <handa@etl.go.jp>
10188
10189 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
10190 zero. Set coding->produced_char correctly.
10191
10192 2000-08-22 Andrew Innes <andrewi@gnu.org>
10193
10194 * makefile.w32-in: New file.
10195
10196 * unexw32.c (unexec): Ignore old_name, and use the actual location
10197 of the current executable instead. Base new_name on this.
10198
10199 * w32proc.c (create_child): Remove reference to security
10200 descriptor, which isn't needed and doesn't compile with mingw32.
10201
10202 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
10203 up dllimport attributes.
10204 (x_update_window_end): Update prototype.
10205
10206 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
10207 extern, which screws up dllimport attributes.
10208
10209 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
10210 up dllimport attributes.
10211
10212 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
10213 screws up dllimport attributes.
10214
10215 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
10216 up dllimport attributes.
10217 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
10218 screws up dllimport attributes.
10219
10220 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
10221 up dllimport attributes.
10222
10223 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
10224 screws up dllimport attributes.
10225
10226 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
10227 screws up dllimport attributes.
10228
10229 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
10230 up dllimport attributes.
10231
10232 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
10233 unnecessary extern, which screws up dllimport attributes.
10234 (main): Ditto.
10235
10236 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
10237 up dllimport attributes.
10238
10239 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
10240 unnecessary extern, which screws up dllimport attributes.
10241
10242 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
10243 screws up dllimport attributes.
10244
10245 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
10246 up dllimport attributes.
10247
10248 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
10249
10250 * w32bdf.c (search_file_line):
10251 (set_bdf_font_info):
10252 (seek_char):
10253 (w32_get_bdf_glyph):
10254 (w32_BDF_to_x_font): Fix compile warnings.
10255
10256 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
10257
10258 * w32select.c: Include keyboard.h before frame.h.
10259
10260 * w32fns.c (max): Define macro.
10261 (JOHAB_CHARSET): Define if not known.
10262 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
10263 (Fx_show_tip): Synch with X version.
10264
10265 * w32xfns.c: Include keyboard.h before frame.h.
10266
10267 * w32fns.c: Include keyboard.h before frame.h.
10268
10269 * w32term.c: Include keyboard.h before frame.h.
10270
10271 * fontset.c: Include keyboard.h before frame.h.
10272
10273 * w32inevt.c: Include keyboard.h before frame.h.
10274 (MOUSE_MOVED): Define if not known.
10275
10276 * minibuf.c: Include keyboard.h before frame.h.
10277
10278 * keyboard.c: Include keyboard.h before frame.h.
10279
10280 * indent.c: Include keyboard.h before frame.h.
10281
10282 * dispnew.c: Include keyboard.h before frame.h.
10283
10284 * buffer.c: Include keyboard.h before frame.h.
10285
10286 * alloc.c: Include keyboard.h before frame.h.
10287
10288 * print.c: Include keyboard.h before frame.h.
10289
10290 * process.c: Include keyboard.h before frame.h.
10291
10292 * scroll.c: Include keyboard.h before frame.h.
10293
10294 * sysdep.c: Include keyboard.h before frame.h.
10295
10296 * term.c: Include keyboard.h before frame.h.
10297
10298 * window.c: Include keyboard.h before frame.h.
10299
10300 * xdisp.c: Include keyboard.h before frame.h.
10301 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
10302
10303 * frame.c: Include keyboard.h before frame.h.
10304
10305 * w32heap.h: Undefine min, max.
10306
10307 * w32gui.h: Undefine min, max.
10308
10309 * unexw32.c: Change PUCHAR to PCHAR.
10310 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
10311 (relocate_offset):
10312 (get_section_info):
10313 (copy_executable_and_dump_data): Remove unnecessary static defs.
10314 (copy_executable_and_dump_data): Fix compile warnings.
10315
10316 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
10317
10318 * w32console.c (min): Define macro.
10319 (clear_frame, write_glyphs): Fix compile warning.
10320
10321 * w32proc.c (compare_env):
10322 (find_child_console): Fix compile warning.
10323
10324 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
10325 sys_errlist instead of _sys_errlist.
10326 (get_emacs_configuration_options): New function.
10327
10328 * s/ms-w32.h (sys_nerr): Provide default definition.
10329 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
10330 name with _ prepended.
10331 (NSIG): Define if not known.
10332 (get_emacs_configuration): Provide extern declaration.
10333 (get_emacs_configuration_options): Provide extern declaration.
10334 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
10335
10336 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
10337 (map_w32_filename):
10338 (read_unc_volume): Fix compile warning.
10339
10340 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
10341 definitions from being used.
10342
10343 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
10344
10345 * w32.c (unc_volume_file_attributes):
10346 (open_unc_volume): Make arg const.
10347
10348 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
10349 (read_input_waiting): Remove excess parameter.
10350
10351 * w32.c (init_environment): Call _access.
10352 (check_windows_init_file): Call _close.
10353 (init_user_info): Call _putenv.
10354 (init_environment): Call _putenv and _strdup.
10355 (init_ntproc): Reset volume info cache on startup.
10356
10357 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
10358 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
10359 cannot override the CRT malloc.
10360
10361 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
10362 (LINK_FLAGS): Append to original value of LINK_FLAGS.
10363
10364 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
10365 unless we are linking with a static CRT.
10366 (RVA_TO_PTR): Cast result to unsigned char*.
10367
10368 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
10369 (add_volume_info): Use xstrdup.
10370
10371 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
10372
10373 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
10374 (do_completion, Fminibuffer_complete_word): Use it.
10375 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
10376 var so it can take non-boolean values.
10377
10378 2000-08-21 Gerd Moellmann <gerd@gnu.org>
10379
10380 * editfns.c (find_field): Formatting changes.
10381 (toplevel): Some old-style function forward declarations
10382 changed to prototypes, some new protypes added, some functions
10383 made static.
10384
10385 * lisp.h (set_time_zone_rule): Add prototype.
10386 (use_dialog_box): External declaration.
10387
10388 * keyboard.c (gen_help_event): Add parameter SIZE.
10389 (kbd_buffer_events_waiting): Slightly rewritten.
10390 (clear_event): New function.
10391 (kbd_buffer_get_event): Use it, and clear the input_events of
10392 HELP_EVENTs.
10393 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
10394 don't fill the newly created array with nils.
10395 (toplevel): Convert some old-style function forward declarations
10396 to prototypes.
10397
10398 * keyboard.h (gen_help_event): Change prototype.
10399
10400 * xterm.c (XTread_socket): Change calls to gen_help_event.
10401
10402 * w32term.c (w32_read_socket): Change calls to gen_help_event.
10403
10404 * eval.c (Fmacroexpand): Doc fix.
10405
10406 2000-08-20 Jason Rumney <jasonr@gnu.org>
10407
10408 * w32term.h (x_display_info_for_display): Remove as this function
10409 does not exist on W32.
10410
10411 * w32term.c (help_echo_window): New variable.
10412 (syms_of_w32term): staticpro it.
10413 (note_mode_line_highlight): Set it.
10414 (XTextExtents16): Removed as there is no equivalent on W32.
10415 (x_compute_glyph_string_overhangs): Incomplete body removed, as
10416 the X way of doing this will not work for W32.
10417 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
10418 (x_draw_image_foreground): Avoid drawing outside of the clip area
10419 when image doesn't have a mask.
10420 (note_mouse_highlight): Process overlays in the right order of
10421 priority. Set help_echo_window.
10422 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
10423 because that's more visible for large images.
10424
10425 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
10426 name to single_keymap_panes.
10427 (w32_menu_show): Set wv->title when dealing with titles.
10428 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
10429
10430 2000-08-21 Miles Bader <miles@gnu.org>
10431
10432 * minibuf.c (do_completion): Try again if we rewrite the input
10433 string, but no completion was done, so that any completion message
10434 will be correct.
10435
10436 2000-08-20 Gerd Moellmann <gerd@gnu.org>
10437
10438 * xfaces.c (lface_equal_p): Compare strings differently.
10439 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
10440 (realize_tty_face): Use them.
10441 (syms_of_xfaces): Initialize new variables.
10442 (map_tty_color): New function, extracted from realize_tty_face.
10443 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
10444 foreground or background color, store the new color name in the
10445 realized face; previous code trying to do this had no effect.
10446 (realize_tty_face): Use map_tty_color.
10447 (Fclear_face_cache): Set face_change_count and ensure thorough
10448 redisplay.
10449
10450 2000-08-19 Gerd Moellmann <gerd@gnu.org>
10451
10452 * undo.c (record_first_change, record_marker_adjustment): Don't
10453 use XBUFFER on last_undo_buffer which might not be a buffer.
10454
10455 2000-08-18 Kenichi Handa <handa@etl.go.jp>
10456
10457 * coding.c (decode_coding_string): Set members consumed,
10458 consumed_char, produced, produced_char of *coding correctly. If
10459 decode_coding doesn't consume any byte, don't try anymore.
10460 (encode_coding_string): Likewise.
10461
10462 2000-08-18 Gerd Moellmann <gerd@gnu.org>
10463
10464 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
10465 conditional have void type, for Standard C compilers.
10466
10467 * xdisp.c (redisplay_internal): Compare windows for equality with
10468 EQ, instead of applying XWINDOW to something that might not
10469 be a window.
10470
10471 2000-08-18 Kenichi Handa <handa@etl.go.jp>
10472
10473 * fontset.c (Finternal_char_font): Search only the selected frame
10474 for a window of the current buffer.
10475
10476 2000-08-18 Gerd Moellmann <gerd@gnu.org>
10477
10478 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
10479 Lisp_Objects.
10480
10481 * keyboard.c (kbd_buffer_get_event): Handle the case that the
10482 second half of a HELP_EVENT is found at the start of kbd_buffer.
10483
10484 2000-08-18 Miles Bader <miles@gnu.org>
10485
10486 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
10487
10488 * editfns.c (save_restriction_save): Rewrite to use markers.
10489 (save_restriction_restore): Rewrite to understand new form of data
10490 saved by save_restriction_save.
10491 (Fsave_restriction): Remove cautionary note in doc-string.
10492
10493 2000-08-17 Gerd Moellmann <gerd@gnu.org>
10494
10495 * fileio.c (build_annotations): Add a comment explaining the
10496 return value of format-annotate-function. Replace a spurious call
10497 to Flength with a CONSP test. Call format-annotate-function with
10498 a fifth arg specifying how many times the function is been called
10499 in a row, to let it choose temporary buffers appropriately.
10500
10501 2000-08-17 Dave Love <fx@gnu.org>
10502
10503 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
10504 declare make_temp_name twice.
10505
10506 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
10507 (unreadpure): Give it an arg.
10508
10509 * unexalpha.c: Prototype fatal_unexec, mark_x,
10510 update_dynamic_symbols. Declare unexec as void.
10511
10512 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
10513 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
10514
10515 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
10516 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
10517
10518 * alloca.c: Use #error.
10519 [POINTER_TYPE]: Use it.
10520
10521 * eval.c (Fdefvar): Doc fix.
10522
10523 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
10524 INITIALIZE_INTERVAL.
10525
10526 * buffer.h: Avoid DECLARE_INTERVALS.
10527
10528 * config.in: Add size_t.
10529
10530 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
10531
10532 * w16select.c (set_clipboard_data): If there's not enough memory
10533 to put text into clipboard, return 1, as Fw16_set_clipboard_data
10534 expects. In case of other failures, return 3.
10535 (system_error_msg): New error message.
10536 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
10537 system_error_msg.
10538
10539 2000-08-16 Gerd Moellmann <gerd@gnu.org>
10540
10541 * term.c (write_glyphs): Also turn off inverse video after turning
10542 off other appearances in case TS_exit_attribute_mode is not equal
10543 to TS_end_standout_mode.
10544 (insert_glyphs): Turn inverse video on/off for each run of glyphs
10545 with the same face.
10546 (turn_off_face): Reset standout_mode only if
10547 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
10548 is equal to TS_end_standout_mode.
10549
10550 2000-08-16 Kenichi Handa <handa@etl.go.jp>
10551
10552 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
10553 sequence at the end of the source block.
10554
10555 * ccl.c (Fccl_program_p): Docstring modified.
10556 (Fccl_execute): Likewise.
10557 (Fccl_execute_on_string): Likewise.
10558
10559 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
10560
10561 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
10562
10563 2000-08-16 Kenichi Handa <handa@etl.go.jp>
10564
10565 The following changes are mainly to fix bugs of
10566 encode/decode-coding-string failing if encoding/decoding return
10567 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
10568 variable conversion_buffer.
10569
10570 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
10571 decrement dst_end to avoid buffer overflow in the later call of
10572 string_as_multibyte
10573
10574 * coding.h (conversion_buffer_size, conversion_buffer)
10575 (get_conversion_buffer): Extern deleted.
10576
10577 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
10578 (conversion_buffer, conversion_buffer_size): Variables deleted.
10579 (get_conversion_buffer): Function deleted.
10580 (struct conversion_buffer): New structure.
10581 (MAX_ALLOCA): New macro.
10582 (allocate_conversion_buffer): New macro.
10583 (extend_conversion_buffer, free_conversion_buffer): New functions.
10584 (ccl_coding_driver): Set coding->result.
10585 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
10586 this is the last block of source.
10587 (encode_coding): Likewise. Handle the source block as the last
10588 one only when the whole source text is consumed.
10589 (decode_coding_string): Handle the case that the output buffer is
10590 too small to decode the whole source text. Use
10591 allocate_conversion_buffer, extend_conversion_buffer and
10592 free_conversion_buffer, not get_conversion_buffer.
10593 (encode_coding_string): Likewise.
10594 (init_coding): Function deleted.
10595 (init_coding_once): Delete code to initialize conversion_buffer_size.
10596
10597 * emacs.c (main): Don't call init_coding.
10598
10599 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
10600
10601 * term.c (write_glyphs): Use a locally declared conversion_buffer.
10602 (insert_glyphs): Likewise.
10603
10604 * w32console.c (write_glyphs): Use a locally declared
10605 conversion_buffer.
10606
10607 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
10608
10609 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
10610 member of display_info is NULL.
10611
10612 2000-08-15 Gerd Moellmann <gerd@gnu.org>
10613
10614 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
10615
10616 * term.c (turn_off_face): Reset standout_mode when resetting
10617 appearances with capability `me'.
10618 (write_glyphs): Switch on inverse video before each face change.
10619
10620 2000-08-14 Dave Love <fx@gnu.org>
10621
10622 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
10623 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
10624 (lisp_free): Declare and make static.
10625
10626 * window.c: Fix embedded comment.
10627 (syms_of_window): Fix doc string.
10628
10629 2000-08-14 Gerd Moellmann <gerd@gnu.org>
10630
10631 * keymap.c (push_key_description): If C without modifiers is < 32,
10632 make sure to print `C-' before `M-', like in the manual.
10633
10634 2000-08-11 Gerd Moellmann <gerd@gnu.org>
10635
10636 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
10637 since they aren't relocated anymore.
10638 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
10639
10640 * xdisp.c (try_cursor_movement): Fix handling of cursor in
10641 partially visible line which is smaller than the window's height.
10642
10643 2000-08-11 Kenichi Handa <handa@etl.go.jp>
10644
10645 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
10646 the multibyte form of eight-bit-control characters.
10647 (Fccl_execute_on_string): Initialize ccl->multibyte.
10648
10649 * ccl.h (struct ccl_program): New member multibyte.
10650
10651 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
10652
10653 2000-08-11 Kenichi Handa <handa@etl.go.jp>
10654
10655 * regex.c (regex_compile) <normal_char>: Pay attention to
10656 multibyteness.
10657 (analyse_first) <exactn>: Setup fastmap correctly for
10658 eight-bit-control characters.
10659
10660 2000-08-11 Kenichi Handa <handa@etl.go.jp>
10661
10662 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
10663
10664 * keyboard.c (make_lispy_event): Handle the new event type
10665 multibyte_char_keystroke.
10666
10667 * xterm.c: Include coding.h.
10668 (XTread_socket): Work around a bug of XmbLookupString. If the
10669 input is from XIM, decode it according to the current locale. In
10670 that case, generate multibyte_char_keystroke events.
10671
10672 2000-08-11 Kenichi Handa <handa@etl.go.jp>
10673
10674 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
10675 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
10676
10677 2000-08-10 Gerd Moellmann <gerd@gnu.org>
10678
10679 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
10680 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
10681 (move_it_in_display_line_to): Record iterator's ascent and descent
10682 before producing glyphs, and restore them when we know the glyph
10683 doesn't fit on the line.
10684 (move_it_to): Restructured so that it's easier to debug. If
10685 moving to a vpos, and not moving to an x or character position,
10686 stop as soon as the specified vpos is reached; don't move further
10687 into that line because that might change the computed line height.
10688 (try_cursor_movement): New function, extracted from the cursor
10689 movement branch of redisplay_window. If ending on a partially
10690 visible line, don't try to scroll if the cursor line is taller
10691 than the window.
10692 (redisplay_window): Use try_cursor_movement.
10693
10694 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
10695 because that function doesn't cope with variable-height lines.
10696
10697 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
10698 box cursor because that's better visible for large images.
10699
10700 2000-08-10 Miles Bader <miles@gnu.org>
10701
10702 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
10703
10704 2000-08-10 Gerd Moellmann <gerd@gnu.org>
10705
10706 * xdisp.c (Vmessages_buffer_name): New variable.
10707 (message_dolog): Use it.
10708 (syms_of_xdisp): Initialize it.
10709
10710 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
10711
10712 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
10713 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
10714 redundant now that keyboard.h is included.
10715
10716 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
10717
10718 * keyboard.c (kbd_buffer_events_waiting): New function.
10719
10720 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
10721
10722 * msdos.c: Include keyboard.h.
10723 (XMenuActivate): Empty no_event events from the event buffer. If
10724 no events are left after that, call clear_input_pending.
10725 (mouse_clear_clicks): New function, code moved from mouse_init.
10726 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
10727 mouse driver to ``forget'' any past clicks.
10728
10729 * Makefile.in (msdos.o): Depend on keyboard.h.
10730
10731 2000-08-09 Gerd Moellmann <gerd@gnu.org>
10732
10733 * lisp.h (input_pending): External declaration.
10734
10735 * dispextern.h (Qredisplay_dont_pause): Declare extern.
10736
10737 * xdisp.c (echo_area_display): Display thoroughly if input is
10738 pending. Bind redisplay-dont-pause to t during the redisplay.
10739 in case input is pending.
10740
10741 * dispnew.c (Qredisplay_dont_pause): New variable.
10742 (syms_of_display): Initialize and staticpro it.
10743 (update_frame_1): Don't interrupt the display for pending input if
10744 redisplay_dont_pause is set.
10745
10746 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
10747
10748 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
10749
10750 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
10751
10752 * callproc.c (Fcall_process): Terminate the unwind-protect around
10753 the post-read-conversion of coding system.
10754
10755 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
10756 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
10757 * buffer.h (overlays_at): Update prototype.
10758 * xdisp.c (next_overlay_change): Update call to overlays_at.
10759 * xfaces.c (face_at_buffer_position): Likewise.
10760 * textprop.c (Fget_char_property): Likewise.
10761 * xterm.c (note_mouse_highlight): Likewise.
10762
10763 * minibuf.c (do_completion): Don't consider a simple change of
10764 case as `completion'.
10765
10766 2000-08-08 Ken Raeburn <raeburn@gnu.org>
10767
10768 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
10769 * undo.c (record_delete): Make sure last_point_position_buffer is
10770 a buffer before comparing pointers.
10771
10772 * coding.h (decode_coding_string): Declare.
10773
10774 * intervals.h (Fprevious_single_char_property_change): Declare.
10775
10776 * textprop.c (Fprevious_single_char_property_change): Don't do
10777 arithmetic directly on lisp objects.
10778
10779 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
10780
10781 * keyboard.h (menu_item_eval_property): Declare.
10782
10783 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
10784 reuse as buffer name, instead of recreating (and discarding) every
10785 time a message is logged.
10786 (with_echo_area_buffer): Make callback arg A2 a lisp object.
10787 (current_message_1, truncate_message_1, set_message_1)
10788 (display_echo_area_1, resize_mini_window_1): Signatures changed.
10789 (current_message, truncate_echo_area, display_echo_area)
10790 (resize_echo_area_axactly): Changed calls.
10791
10792 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
10793 Lisp object.
10794 (Ffind_coding_systems_region_internal): First argument to Fappend
10795 must be an integer, not a Lisp object.
10796
10797 2000-08-08 Kenichi Handa <handa@etl.go.jp>
10798
10799 * charset.c (Fchar_width): Doc fix.
10800
10801 2000-08-08 Gerd Moellmann <gerd@gnu.org>
10802
10803 * charset.c (Fstring_width): Doc fix.
10804
10805 2000-08-07 Gerd Moellmann <gerd@gnu.org>
10806
10807 * xdisp.c (start_display): When starting display on a continuation
10808 line, clear ascent and descent members of the iterator structure;
10809 the height of the continued line does not affect the height of the
10810 continuation line.
10811 (make_cursor_line_fully_visible): Do nothing if cursor is on a
10812 line taller than the window.
10813 (redisplay_window) <forced window start>: Handle case that the
10814 middle of the window is not found in any row.
10815 (dump_glyph_row): Show more information.
10816 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
10817 first text line in a glyph matrix.
10818
10819 * xterm.c (x_draw_image_foreground): Avoid drawing outside
10820 of the clip area when image doesn't have a mask.
10821
10822 * fns.c (sweep_weak_table): Fix survival conditions for
10823 key-or-value and key-and-value weakness.
10824
10825 * .gdbinit (xhashtable): New command.
10826
10827 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
10828 tables out of the list of all weak hash tables.
10829
10830 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
10831 a new buffer is created, make sure echo_area_buffer[] references
10832 the new buffer.
10833
10834 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
10835
10836 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
10837 the doc string.
10838
10839 2000-08-07 Kenichi Handa <handa@etl.go.jp>
10840
10841 * syntax.c (skip_chars): Fix previous change. Make the handling
10842 of unibyte string consistent with that of regex search.
10843
10844 2000-08-05 Gerd Moellmann <gerd@gnu.org>
10845
10846 * xmenu.c (popup_get_selection): Use xfree instead of free.
10847
10848 * fileio.c (Finsert_file_contents): Use xfree instead of free.
10849
10850 * editfns.c (Ftranspose_regions): Use xfree instead of free.
10851
10852 * callproc.c (child_setup): Use xfree instead of free.
10853
10854 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
10855 instead of malloc.
10856 (run_mac_command, closedir): Use `xfree' instead of `free'.
10857
10858 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
10859
10860 * eval.c (error): Use xfree instead of free.
10861
10862 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
10863
10864 * fns.c: Replace `illegal' with `invalid'.
10865 (Fmake_hash_table, make_hash_table): Allow table size of 0.
10866
10867 2000-08-05 Kenichi Handa <handa@etl.go.jp>
10868
10869 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
10870 conversion.
10871
10872 2000-08-04 Noah Friedman <friedman@splode.com>
10873
10874 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
10875 docstring.
10876
10877 2000-08-04 Gerd Moellmann <gerd@gnu.org>
10878
10879 * syntax.c (skip_chars): Fix typo in error message.
10880
10881 2000-08-04 Andreas Schwab <schwab@suse.de>
10882
10883 * m/ia64.h: Moved from s/ia64.h.
10884
10885 2000-08-04 Kenichi Handa <handa@etl.go.jp>
10886
10887 * process.c (read_process_output): Big simplification. Handle
10888 composition and post-read-conversion of coding system correctly.
10889 (send_process): Handle composition correctly.
10890
10891 * callproc.c (Fcall_process): Handle post-read-conversion of
10892 coding system if any.
10893
10894 * coding.c (decode_coding_iso2022): More strict check for handling
10895 single shifting.
10896 (coding_restore_composition): Pay attention to the case that
10897 cmp_data is not set properly (because of invalid code in the
10898 source text).
10899 (run_pre_post_conversion_on_str): Include text properties in the
10900 resulting string.
10901 (decode_coding_string): Set members of coding correctly.
10902
10903 2000-08-03 Gerd Moellmann <gerd@gnu.org>
10904
10905 * s/ia64.h: New file.
10906
10907 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
10908 Use NULL instead of 0 at the end of variable argument list of
10909 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
10910 sizeof (int) < sizeof (void *).
10911
10912 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
10913 of variable argument lists of XtVaGetValues and XtVaSetValues.
10914
10915 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
10916 variable argument lists of XtVaGetValues and XtVaSetValues.
10917
10918 2000-08-02 Gerd Moellmann <gerd@gnu.org>
10919
10920 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
10921 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
10922
10923 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
10924 prototype.
10925
10926 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
10927 in call to Fsingle_key_description.
10928
10929 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
10930 Callers changed.
10931
10932 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
10933
10934 * window.c (display_buffer_reuse_frames): New variable.
10935 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
10936 frames displaying BUFFER.
10937 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
10938
10939 2000-08-01 Miles Bader <miles@gnu.org>
10940
10941 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
10942 when to constrain NEW_POS (they were pretty screwed up before).
10943
10944 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
10945
10946 * msdos.c (run_msdos_command): Save and restore the master
10947 environment, for the case that child_setup signals an error.
10948 When mirroring slashes in DOS shell commands, don't fail when
10949 argv[2] has embedded blanks.
10950 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
10951 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
10952 (dos_ttraw): Call mouse_setup_buttons.
10953
10954 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
10955 using alloca; free it after run_msdos_command returns.
10956
10957 2000-07-27 Dave Love <fx@gnu.org>
10958
10959 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
10960 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
10961
10962 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
10963
10964 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
10965
10966 * editfns.c (lisp_time_argument): Fix last change.
10967
10968 2000-07-27 Gerd Moellmann <gerd@gnu.org>
10969
10970 * fns.c (Fdelete): Make it work on vectors and strings in addition
10971 to lists.
10972
10973 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
10974 (syms_of_fns): Initialize new variables.
10975 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
10976 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
10977 weakness, with t meaning the same as `key-and-value'.
10978
10979 2000-07-27 Kenichi Handa <handa@etl.go.jp>
10980
10981 * coding.h (struct coding_system): Member safe_charset deleted.
10982
10983 * coding.c (Qsafe_charsets): This variable deleted.
10984 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
10985 New variables.
10986 (coding_safe_chars): New function.
10987 (CODING_SAFE_CHAR_P): New macro.
10988 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
10989 checking safe_charsets member of the coding system. Caller changed.
10990 (detect_coding_iso2022): New local variable safe_chars.
10991 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
10992 safe_charsets member of the coding system.
10993 (decode_coding_iso2022): New local variable safe_chars.
10994 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
10995 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
10996 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
10997 (ENCODE_UNSAFE_CHARACTER): New macro.
10998 (encode_coding_iso2022): New local variable safe_chars. Check
10999 unsafe chars.
11000 (setup_coding_system): Delete the code to initialize
11001 coding->safe_charses
11002 (intersection, find_safe_codings): New functions.
11003 (Ffind_coding_systems_region_internal): New function.
11004 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
11005 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
11006 variable and initialize it.
11007
11008 * fns.c (char_table_ref_and_index): New function.
11009
11010 * lisp.h (char_table_ref_and_index): Add prototype.
11011
11012 2000-07-26 Sam Steingold <sds@gnu.org>
11013
11014 * editfns.c (lisp_time_argument): Added third argument `usec'.
11015 (Ffloat_time): New built-in Lisp function.
11016
11017 2000-07-26 Gerd Moellmann <gerd@gnu.org>
11018
11019 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
11020 for the character code.
11021
11022 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
11023 GNU/Linux.
11024
11025 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
11026 if called for a popup menu.
11027 (xmenu_show): Store help string in widget values.
11028
11029 2000-07-26 Dave Love <fx@gnu.org>
11030
11031 * syswait.h: Move some definitions.
11032 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
11033 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
11034 perspicuous definitions.
11035 (WTERMSIG): Fix bit pattern used.
11036
11037 2000-07-26 Kenichi Handa <handa@etl.go.jp>
11038
11039 * print.c (print_object): If vector printing is truncated, print
11040 "..." to indicate it as well as the case of list printing.
11041
11042 2000-07-25 Gerd Moellmann <gerd@gnu.org>
11043
11044 * xdisp.c (next_element_from_display_vector): Improve comments.
11045
11046 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
11047 for the character code, and the rest for the face id as in 20.x.
11048 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
11049
11050 * window.c (window_display_table): Cleaned up.
11051
11052 * syntax.c (Fforward_word): Add last arg nil in call of
11053 Fconstrain_to_field.
11054
11055 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
11056
11057 * fileio.c (Frename_file) [DOS_NT]: If the file names are
11058 identical but for the letter-case, don't call
11059 barf_or_query_if_file_exists.
11060
11061 2000-07-25 Miles Bader <miles@gnu.org>
11062
11063 * editfns.c (find_field): Honor special `boundary' fields.
11064 (Qboundary): New variables.
11065 (syms_of_editfns): Initialize Qboundary.
11066 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
11067 Use scan_buffer instead of find_before_next_newline, because it
11068 allows us to detect the boundary case where there's a newline at
11069 the search limit.
11070 * lisp.h (Fconstrain_to_field): Update external declaration.
11071
11072 2000-07-24 Gerd Moellmann <gerd@gnu.org>
11073
11074 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
11075 if that is nil.
11076
11077 2000-07-24 Dave Love <fx@gnu.org>
11078
11079 * s/sunos4-0.h, s/sol2.h:
11080 (LIBS_TERMCAP): Move from m/sparc.h.
11081
11082 * m/sparc.h (TERMINFO): Moved to system files (probably only
11083 relevant for sunos4 judging by its vintage).
11084 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
11085 __arch64__.
11086
11087 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
11088
11089 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
11090 name to single_keymap_panes.
11091
11092 2000-07-24 Andreas Schwab <schwab@suse.de>
11093
11094 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
11095
11096 2000-07-24 Gerd Moellmann <gerd@gnu.org>
11097
11098 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
11099 parameters instead of using int parameters. Expect FN to accept
11100 EMACS_INT parameters.
11101 (display_echo_area, resize_echo_area_axactly, current_message)
11102 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
11103 with new argument list.
11104 (resize_mini_window_1): New callback function.
11105 (current_message_1, truncate_message_1, set_message_1): Change
11106 parameter lists to the new format expected by with_echo_area_buffer.
11107
11108 2000-07-24 Kenichi Handa <handa@etl.go.jp>
11109
11110 * fontset.c (fontset_ref): Remove INLINE declaration.
11111 (fontset_ref_via_base): Likewise.
11112 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
11113 to downcase.
11114
11115 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
11116
11117 * msdos.c (IT_note_mouse_highlight): Process overlays in the
11118 correct order of priority. If help echo was found in an overlay,
11119 use that overlay as the object in which the help echo was found.
11120
11121 2000-07-22 Miles Bader <miles@gnu.org>
11122
11123 * textprop.c (Fprevious_single_char_property_change): The initial
11124 property value should be from the position preceding POSITION, not
11125 following it.
11126
11127 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
11128
11129 * coding.c (syms_of_coding): Doc fix for
11130 inhibit-iso-escape-detection.
11131
11132 2000-07-21 Gerd Moellmann <gerd@gnu.org>
11133
11134 * xterm.c (note_mouse_highlight): Process overlays in the right
11135 order of priority.
11136
11137 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
11138
11139 * xterm.c (note_mouse_highlight): If help-echo was found in an
11140 overlay, use that overlay as the object in which the help was found.
11141
11142 * window.c (foreach_window_1): Fix typo reversing an if-condition.
11143
11144 * window.c (foreach_window): Instead of a fake variable argument
11145 list, take one USER_DATA argument.
11146 (foreach_window_1): Likewise, and call callback functions with two
11147 args, the window and USER_DATA.
11148 (struct check_window_data): New struct.
11149 (check_window_containing): Use it.
11150 (window_from_coordinates): Set up a struct check_window_data for
11151 foreach_window.
11152 (add_window_to_list, freeze_window_start): Change parameters
11153 according to new calling convention.
11154
11155 * window.h (foreach_window): Change prototype.
11156
11157 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
11158
11159 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
11160
11161 * xmenu.c (menu_help_callback): Call show_help_echo with
11162 additional arguments OBJECT and POS.
11163
11164 2000-07-21 Kenichi Handa <handa@etl.go.jp>
11165
11166 * data.c (Faset): Allow storing any multibyte character in a
11167 string. Convert unibyte string to multibyte if necessary.
11168
11169 * xfns.c (x_encode_text): New function.
11170 (x_set_name): Use x_encode_text.
11171 (x_set_title): Likewise.
11172
11173 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
11174
11175 * xterm.h (x_encode_text): Add prototype.
11176
11177 2000-07-20 Dave Love <fx@gnu.org>
11178
11179 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
11180 xfree, not free.
11181
11182 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
11183
11184 * msdos.c (help_echo_window): New variable.
11185 (syms_of_msdos): Initialize and staticpro it.
11186 (IT_note_mode_line_highlight): Set help_echo_window.
11187 (IT_note_mouse_highlight): Ditto.
11188 (dos_rawgetc): Store help_echo_window in the second event produced
11189 for HELP_EVENTs.
11190
11191 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
11192 Record the object that generated the help echo and the position of
11193 that object in help_echo_object and help_echo_pos. Record that
11194 some glyphs in a row are displayed in mouse-face.
11195 (IT_update_begin): Don't clear mouse highlight unless one of the
11196 enabled glyph rows is marked as being displayed in mouse-face.
11197 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
11198 and position recorded in help_echo_object and help_echo_pos to the
11199 event queue.
11200 (IT_menu_display): Accept a new argument PN: the pane number of
11201 the current menu pane. Record the pane number and the item
11202 number of the item which has associated help string.
11203 (XMenuActivate): Update the prototype for help_callback in
11204 function declaration. Call IT_menu_display with the current menu
11205 pane number as an additional argument. Call help_callback with
11206 two additional arguments: the pane number and the item number of
11207 the menu item associated with the help text.
11208 (help_echo_object, help_echo_pos): New variables.
11209 (syms_of_msdos): Initialize them and staticpro help_echo_object.
11210
11211 * msdos.h (XMenuActivate): Update prototype.
11212
11213 2000-07-19 Gerd Moellmann <gerd@gnu.org>
11214
11215 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
11216 Add some more prototypes.
11217
11218 * xterm.c, xterm.h: Add some more prototypes.
11219
11220 * lisp.h (Fnext_single_char_property_change): Add prototype.
11221
11222 * dispnew.c (direct_output_for_insert): Remove confusing
11223 outer local variable mouse_face_overwritten_p.
11224 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
11225
11226 * alloc.c (allocate_string_data): Don't copy old string contents.
11227
11228 2000-07-19 Kenichi Handa <handa@etl.go.jp>
11229
11230 * coding.c (code_convert_region): Delete text properties before
11231 shrinking the conversion region.
11232
11233 2000-07-18 Gerd Moellmann <gerd@gnu.org>
11234
11235 * dispnew.c (update_text_area): Write the whole row if it
11236 has mouse-face in it.
11237
11238 * xfaces.c (face-alternative-font-family-alist): Remove
11239 DEFVAR_LISP; staticpro instead.
11240
11241 * xmenu.c (menu_help_callback): Call show_help_echo with
11242 new arguments.
11243
11244 * keyboard.c (show_help_echo): Add parameter WINDOW.
11245 (read_char): Call show_help_echo with window extracted from Lisp
11246 help event.
11247 (gen_help_event): Add parameter WINDOW.
11248
11249 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
11250
11251 * xterm.c (help_echo_window): New variable.
11252 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
11253 (XTread_socket): Pass help_echo_window to gen_help_event.
11254 (syms_of_xterm): Initialize and staticpro help_echo_window.
11255
11256 2000-07-18 Dave Love <fx@gnu.org>
11257
11258 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
11259
11260 2000-07-18 Gerd Moellmann <gerd@gnu.org>
11261
11262 * alloc.c (allocate_string_data): If string had already data
11263 assigned, copy old contents to new string data.
11264
11265 * coding.c (syms_of_coding): Fix typo in spelling of variable
11266 `inhibit-iso-escape-detection'.
11267
11268 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
11269
11270 * Makefile.in: Add dependencies on dispextern.h.
11271 (alloca.o): Don't define malloc and define EMACS_FREE instead of
11272 `free'; both can conflict with system header files.
11273
11274 2000-07-18 Kenichi Handa <handa@etl.go.jp>
11275
11276 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
11277 undefined.
11278
11279 2000-07-18 Dave Love <fx@gnu.org>
11280
11281 * window.c (Fwindow_list): Declare arg `window'.
11282
11283 2000-07-18 Kenichi Handa <handa@etl.go.jp>
11284
11285 * coding.c (setup_coding_system): Don't override the explicitly
11286 specified designations.
11287
11288 2000-07-15 Miles Bader <miles@gnu.org>
11289
11290 * editfns.c (char_property_eq, char_property_stickiness): Renamed
11291 from `text_property_eq' and `text_property_stickiness', respectively.
11292 (find_field, Fconstrain_to_field, char_property_eq)
11293 (char_property_stickiness): Changed to call char-property functions
11294 instead of text-property-only ones.
11295
11296 * textprop.c (Fnext_single_char_property_change): Made a subr (was
11297 `next_single_char_property_change'). Do more error checking, and
11298 cleanup limit behavior.
11299 (Fprevious_single_char_property_change): New function.
11300 (syms_of_textprop): Initialize new subrs.
11301
11302 * xdisp.c (display_prop_end, invisible_text_between_p):
11303 Call Fnext_single_char_property_change instead of
11304 next_single_char_property_change.
11305
11306 2000-07-15 Jason Rumney <jasonr@gnu.org>
11307
11308 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
11309 after menu is finished with.
11310 (add_menu_item): Only consider wv->title as a menu title.
11311 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
11312
11313 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
11314 null title.
11315 (FONT_REGEXP): Remove unused macro, and its sub-components.
11316 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
11317
11318 * w32term.c (help_echo_object, help_echo_pos): New variables.
11319 (note_mode_line_highlight): Store additional information about the
11320 help-echo in help_echo_object and help_echo_pos. Check both
11321 `local-map' and `keymap' properties for changing the cursor
11322 (note_mouse_highlight): Store additional information about the
11323 help-echo in help_echo_object and help_echo_pos.
11324 (note_tool_bar_highlight): Set help_echo_object to nil and
11325 help_echo_pos to -1.
11326 (w32_read_socket): Use gen_help_event instead of filling
11327 input_events manually.
11328 (syms_of_w32term): Staticpro help_echo_object.
11329 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
11330 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
11331 (x_clear_mouse_face): New function.
11332 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
11333 (x_update_window_begin): No need to turn off the mouse
11334 highlight here.
11335 (show_mouse_face): Set the mouse_face_p flag of glyph rows
11336 depending on whether they contain glyphs highlighted in mouse-face.
11337 (x_fill_stretch_glyph_string): Consume runs of stretch
11338 glyphs instead of a single one.
11339 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
11340 with new argument list.
11341 (x_set_glyph_string_gc): Make sure the face's GC is valid.
11342 (x_append_glyph, x_append_composite_glyph)
11343 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
11344 changes in struct glyph starting 1999-12-27. See comments for
11345 xterm.c on 2000-07-05.
11346
11347 2000-07-14 Sam Steingold <sds@gnu.org>
11348
11349 * xfaces.c (realize_x_face): Fix the last patch:
11350 check `default_face' before dereferencing.
11351
11352 2000-07-14 Dave Love <fx@gnu.org>
11353
11354 * syntax.c (back_comment): Add null default in switch (for pcc).
11355
11356 2000-07-14 Kenichi Handa <handa@etl.go.jp>
11357
11358 * xfaces.c (realize_x_face): Make fontset using the base of the
11359 default_face's fontset, not using the default fontset.
11360
11361 * coding.c (inhibit_iso_escape_detection): New variable.
11362 (syms_of_coding): Make it a Lisp variable.
11363 (detect_coding_iso2022): If inhibit_iso_escape_detection is
11364 nonzero, ignore ISO2022's escape sequence.
11365
11366 2000-07-14 Gerd Moellmann <gerd@gnu.org>
11367
11368 * alloca.c (malloc) [emacs]: Define as xmalloc.
11369
11370 * xfns.c (Fx_show_tip): If frame parameters contain a position,
11371 use that instead of the mouse position. Add parameters DX and DY.
11372
11373 * dispextern.h (Fx_show_tip): Adjust number of parameters
11374 in prototype.
11375
11376 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
11377 if HELP is a function, call it with OBJECT and POS as parameters
11378 to get the help to display.
11379 (gen_help_event, kbd_buffer_store_help_event): New functions.
11380 (kbd_buffer_get_event): Construct the Lisp help-event differently.
11381 (read_char): Call show_help_echo with new parameters.
11382
11383 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
11384 Add prototypes.
11385
11386 * xterm.c (help_echo_object, help_echo_pos): New variables.
11387 (note_mode_line_highlight): Store additional information about the
11388 help-echo in help_echo_object and help_echo_pos. Check both
11389 `local-map' and `keymap' properties for changing the cursor
11390 (note_mouse_highlight): Store additional information about the
11391 help-echo in help_echo_object and help_echo_pos.
11392 (note_tool_bar_highlight): Set help_echo_object to nil and
11393 help_echo_pos to -1.
11394 (XTread_socket): Use gen_help_event instead of filling
11395 input_events manually.
11396 (syms_of_xterm): Staticpro help_echo_object.
11397
11398 * xmenu.c (menu_highlight_callback): Use
11399 kbd_buffer_store_help_event instead of setting up and input_event
11400 structure manually.
11401
11402 * xdisp.c (eval_form): GCPRO argument sexpr.
11403 (call_function): New function.
11404 (handle_single_display_prop): Use call_function and FUNCTIONP
11405 instead of checking whether if font_height is a symbol and
11406 using eval_form.
11407
11408 * eval.c (internal_condition_case_2): New function.
11409
11410 * lisp.h (FUNCTIONP): New macro.
11411 (internal_condition_case_2, call_function): Add prototypes.
11412
11413 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
11414 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
11415 Always set `arg' member of input_events.
11416 (construct_menu_click): Unused function removed.
11417
11418 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
11419
11420 * w32term.c (construct_mouse_click, construct_mouse_wheel)
11421 (construct_drag_n_drop, x_scroll_bar_handle_click)
11422 (w32_read_socket): Always set `arg' member of input_events.
11423
11424 * keyboard.c (show_help_echo): Use eval_form. Add comment.
11425
11426 * lisp.h (eval_form): Add prototype.
11427
11428 * xdisp.c (eval_form): Make it externally visible.
11429
11430 2000-07-13 Gerd Moellmann <gerd@gnu.org>
11431
11432 * xterm.c (x_handle_tool_bar_click): Store the frame in the
11433 frame_or_window slot of TOOL_BAR_EVENT input events instead of
11434 consing. For prefix events, store the frame in the `arg' slot of
11435 the event, otherwise store the key there.
11436 (XTread_socket): Instead of consing, use the frame_or_window slot
11437 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
11438
11439 * xmenu.c (menu_highlight_callback): Store help string in the
11440 `arg' member of the input event; don't cons.
11441 (menubar_selection_callback): Use the `arg' slot of input events
11442 to queue additional information, instead of consing.
11443
11444 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
11445
11446 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
11447 TOOL_BAR_EVENTs.
11448 (w32_read_socket): Adapt to changes in HELP_EVENTs.
11449
11450 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
11451 input events to queue additional information, instead of consing.
11452
11453 * keyboard.c (kbd_buffer_gcpro): Renamed from
11454 kbd_buffer_frame_or_window. Now used for all Lisp objects
11455 referenced from the input queue.
11456 (kbd_buffer_store_event): Always use structure assignment for
11457 copying input events. Record all Lisp objects referenced from
11458 events in kbd_buffer_gcpro.
11459 (kbd_buffer_get_event): Construct Lisp `help-echo' events
11460 differently from input events. Test for prefix menu_bar_events
11461 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
11462 event in kbd_buffer_gcpro to nil.
11463 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
11464 frame_or_window is equal to its arg member as prefix events.
11465 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
11466 used by an input event to nil.
11467 (init_keyboard): Use two times the size of the input queue
11468 for kbd_buffer_gcpro.
11469 (syms_of_keyboard): Likewise.
11470
11471 * emacs.c (handle_USR2_signal, handle_USR1_signal):
11472 Use USER_SIGNAL_EVENT.
11473
11474 * termhooks.h (struct input_event): Add member `arg'.
11475 (MENU_BAR_EVENT): Renamed from menu_bar_event.
11476 (USER_SIGNAL_EVENT): Renamed from user_signal.
11477
11478 * xfaces.c (ASET): Remove definition.
11479
11480 * lisp.h (AREF, ASET, ASIZE): New macros.
11481
11482 * fontset.c (AREF, ASIZE): Remove definitions.
11483
11484 * fns.c (AREF): Remove definition.
11485
11486 * composite.c (AREF): Remove definition.
11487
11488 2000-07-12 Gerd Moellmann <gerd@gnu.org>
11489
11490 * dispnew.c (redraw_overlapped_rows): Add missing local.
11491 (scrolling_window): Remove debug code.
11492
11493 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
11494 Before scrolling, turn off a mouse-highlight in the window
11495 being scrolled.
11496
11497 * xterm.c (x_update_window_end): Add parameter
11498 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
11499 redisplay in XTframe_up_to_date.
11500 (x_clear_mouse_face): New function.
11501 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
11502
11503 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
11504 current glyph row.
11505 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
11506 it when any row is written to that contains glyphs highlighted in
11507 mouse-face.
11508 (update_window): Call the window update end hook with new
11509 parameter MOUSE_FACE_OVERWRITTEN_P.
11510 (direct_output_for_insert): Give up if row contains mouse-face.
11511
11512 * dispextern.h (struct redisplay_interface): Add parameter
11513 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
11514 (clear_mouse_face): New function pointer member.
11515
11516 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
11517
11518 * syntax.c (back_comment): Use one switch rather than a few `if's.
11519 Obey open_paren_in_column_0_is_defun_start.
11520 When reverting to the `slow' method, try to nicely handle the case
11521 of nested comments by checking that the comment-starter we found
11522 does indeed match the comment-ender.
11523 (scan_sexps_forward, scan_sexps_forward):
11524 Ignore excessive opening parenthesis rather than throwing an error.
11525
11526 2000-07-11 Gerd Moellmann <gerd@gnu.org>
11527
11528 * doc.c (Fsubstitute_command_keys): Handle case that a GC
11529 in Fwhere_is_internal or get_keymap_1 relocates string contents.
11530
11531 * dispnew.c (direct_output_forward_char): Give up if currently
11532 displaying a message instead of the minibuffer contents.
11533
11534 * xterm.c (x_update_window_begin): No need to turn off the mouse
11535 highlight here.
11536 (show_mouse_face): Set the mouse_face_p flag of glyph rows
11537 depending on whether they contain glyphs highlighted in mouse-face.
11538
11539 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
11540 compare the mouse_face_p flags of both rows.
11541
11542 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
11543
11544 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
11545
11546 * keyboard.c (show_help_echo): Accept additional parameter
11547 ok_to_overwrite_keystroke_echo.
11548 (read_char): Call show_help_echo with a zero
11549 ok_to_overwrite_keystroke_echo argument.
11550 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
11551 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
11552 ok_to_overwrite_keystroke_echo argument.
11553 * w32menu.c (w32_menu_display_help): Call show_help_echo with
11554 non-zero ok_to_overwrite_keystroke_echo argument.
11555
11556 2000-07-10 Gerd Moellmann <gerd@gnu.org>
11557
11558 * xdisp.c (try_window_id): If changes are all below what is
11559 displayed in the window, and point is in the window, we still
11560 might have to find point on the display.
11561
11562 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
11563 glyphs instead of a single one.
11564 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
11565 with new argument list.
11566 (x_set_glyph_string_gc): Make sure the face's GC is valid.
11567
11568 * keymap.c (get_keymap_1): Add comment that this function can GC.
11569 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
11570 comment that functions can GC.
11571 (Fset_keymap_parent): GCPRO arg KEYMAP.
11572
11573 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
11574
11575 * msdos.c (XMenuActivate): After exiting the menu, restore the
11576 echo area message and erase it.
11577
11578 2000-07-10 Kenichi Handa <handa@etl.go.jp>
11579
11580 * fontset.c (Ffontset_info): Make the return value more compatible
11581 with that of Emacs 20.
11582
11583 2000-07-07 Gerd Moellmann <gerd@gnu.org>
11584
11585 * eval.c (Fsignal): Handle case that backtrace_list is null.
11586
11587 2000-07-07 Kenichi Handa <handa@etl.go.jp>
11588
11589 * ccl.c (Fccl_execute): Typo fixed.
11590
11591 2000-07-06 Gerd Moellmann <gerd@gnu.org>
11592
11593 * window.c (window_loop): Add missing gcpro1 local variable.
11594
11595 * window.c (Fwindow_list): Reverse list at the end.
11596 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
11597 means allow windows on OWINDOW's frame, only.
11598 (window_loop): Simplified; use Fwindow_list.
11599
11600 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
11601
11602 2000-07-05 Gerd Moellmann <gerd@gnu.org>
11603
11604 * xterm.c (XTread_socket): Increment handling_signal at the start,
11605 decrement it at the end.
11606
11607 * eval.c (handling_signal): New variable.
11608 (Fsignal): Abort if handling_signal is non-zero.
11609
11610 * lisp.h (handling_signal): External declaration.
11611
11612 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
11613
11614 2000-07-05 Ken Raeburn <raeburn@gnu.org>
11615
11616 Sound support for NetBSD through "Linux emulation" support:
11617 * config.in (HAVE_SOUNDCARD_H): Undef.
11618 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
11619 * Makefile.in (LIBSOUND): New variable.
11620 (LIBES): Include it.
11621 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
11622 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
11623 (vox_open): Use DEFAULT_SOUND_DEVICE.
11624 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
11625
11626 2000-07-05 Gerd Moellmann <gerd@gnu.org>
11627
11628 * print.c (print_error_message): If Vsignaling_function is set,
11629 show it in *Messages*.
11630
11631 * lisp.h (Vsignaling_function): External declaration.
11632
11633 * eval.c (Vsignaling_function): New variable.
11634 (Fsignal): Compute it.
11635 (syms_of_eval): Staticpro it.
11636
11637 2000-07-05 Dave Love <fx@gnu.org>
11638
11639 * syswait.h: Use the autoconf recommended approach. Old code
11640 #if'd out in case we need to revert.
11641
11642 * config.in (HAVE_SYS_WAIT_H): Added.
11643
11644 2000-07-05 Andrew Innes <andrewi@gnu.org>
11645
11646 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
11647 when non-NULL instead of __morecore, to take account of buffer
11648 memory. This also solves a problem with spurious memory warnings
11649 on Windows.
11650
11651 * ralloc.c: Make real_morecore non-static.
11652
11653 * eval.c (internal_condition_case): Comment out abort if
11654 interrupt_input_blocked is not zero.
11655
11656 * makefile.nt: Add support for `bootstrap' and related targets.
11657 Include minimal debug info in emacs.exe in release build.
11658 Remove all dependencies on lisp.h, and fixup some others.
11659
11660 * w32.c (init_environment): Install code from 20.7 for providing
11661 default values for environment variables, based on the
11662 executable's own location.
11663 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
11664 (sys_socket): Install socket inheritance bug fix from 20.7.
11665
11666 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
11667 here via blockinput.h).
11668
11669 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
11670
11671 * w32menu.c (w32_menu_display_help):
11672 * xmenu.c (menu_help_callback): Use show_help_echo.
11673
11674 * keyboard.h (show_help_echo): Declare.
11675
11676 * keyboard.c (show_help_echo): New function, extracted from read_char.
11677 Feval its `msg' argument if it's a cons cell.
11678 (read_char): Use it.
11679 (follow_key): Pass `autoload' to get_keyelt.
11680
11681 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
11682 (note_tool_bar_highlight, XTread_socket):
11683 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
11684 (dos_rawgetc):
11685 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
11686 (note_tool_bar_highlight, w32_read_socket):
11687 Do not gratuitously ignore non-string `help-echo' properties.
11688
11689 2000-07-05 Gerd Moellmann <gerd@gnu.org>
11690
11691 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
11692
11693 * window.c (delete_all_subwindows): Reset Vwindow_list.
11694
11695 * xterm.c (x_append_glyph, x_append_composite_glyph)
11696 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
11697 changes in struct glyph starting 1999-12-27. Some bit-fields of
11698 struct glyph were not set, which made glyphs unequal when compared
11699 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
11700 effects were the result. This also depended on the contents of
11701 memory returned by xmalloc. If flickering happens again, activate
11702 the code in clear_glyph_row that's in #if 0. If the flickering is
11703 gone with that, chances are that it is caused by something similar.
11704
11705 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
11706
11707 * dispextern.h: Add some comments.
11708
11709 * window.c (add_window_to_list): Add parameter LIST.
11710 (window_list): Order list so that, for each frame, windows are
11711 in canonical order, and so that frames appear in the list in
11712 the order given by Vframe_list.
11713 (next_window): Reverse the handling of NEXT_P.
11714
11715 2000-07-04 Gerd Moellmann <gerd@gnu.org>
11716
11717 * window.c (Vwindow_list): New variable.
11718 (make_window, delete_window): Set Vwindow_list to nil.
11719 (check_window_containing): New function.
11720 (window_from_coordinates): Rewritten.
11721 (add_window_to_list, window_list, candidate_window_p)
11722 (decode_next_window_args, next_window): New functions.
11723 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
11724 (Fwindow_list): New function.
11725 (Fother_window): Cleaned up.
11726 (foreach_window): Add a longer "variable argument list". Let
11727 callback function return 0 to indicate that cycling over windows
11728 should stop.
11729 (foreach_window_1): Likewise.
11730 (freeze_window_start): Return int.
11731 (init_window): New function.
11732 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
11733
11734 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
11735 input_event with bzero.
11736 (main): Call init_window.
11737
11738 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
11739 a menu filter.
11740
11741 2000-07-04 Kenichi Handa <handa@etl.go.jp>
11742
11743 * composite.h (make_composition_value_copy): Extern it.
11744
11745 * composite.c (make_composition_value_copy): New function.
11746
11747 * editfns.c (Fformat): While copying text properties, make each
11748 composition property value a copy.
11749
11750 * fns.c (concat): While copying text properties, make each
11751 composition property value a copy.
11752
11753 2000-07-03 Gerd Moellmann <gerd@gnu.org>
11754
11755 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
11756
11757 * fns.c (sweep_weak_table): Mark only objects that are not
11758 marked already.
11759
11760 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
11761 include those frames as candidates which have their focus
11762 redirected to the minibuffer frame.
11763
11764 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
11765
11766 * fns.c (Fputhash): Return `value' rather than nil.
11767
11768 2000-06-30 Gerd Moellmann <gerd@gnu.org>
11769
11770 * frame.c (next_frame): Don't check focus redirection in case
11771 MINIBUF is a window. Doing so excludes frames using MINIBUF
11772 unless their focus is redirected, which contradicts the
11773 specification of next-frame, and leads to infinite loops in
11774 certain situations when cycling through windows with next-window.
11775
11776 2000-06-30 Kenichi Handa <handa@etl.go.jp>
11777
11778 * coding.c (code_convert_region): Even if the length of text is
11779 zero, try to convert it if coding->type is coding_type_ccl.
11780 (decode_coding_string, encode_coding_string): Likewise.
11781
11782 2000-06-28 Gerd Moellmann <gerd@gnu.org>
11783
11784 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
11785 the display if windows_or_buffers_changed.
11786
11787 * dispnew.c (struct row_entry): New structure.
11788 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
11789 (row_table_size, old_lines, new_lines, old_lines_size)
11790 (new_lines_size, run_pool, runs_size, runs): New variables.
11791 (add_row_entry): New function.
11792 (scrolling_window): Use data structures allocated with xmalloc and
11793 held in global variables, instead of allocating them with alloca and
11794 holding them in local variables. Use a larger hash table whose
11795 size depends on glyph matrix sizes. Don't use bzero to clear the
11796 hash table; instead, clear used slots only.
11797
11798 * fns.c (next_almost_prime): Make it externally visible.
11799
11800 * lisp.h (next_almost_prime): Add prototype.
11801
11802 * s/isc4-0.h (sigunblock): Define.
11803
11804 * s/sco5.h (sigunblock): Define.
11805
11806 2000-06-27 Dave Love <fx@gnu.org>
11807
11808 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
11809 (moved to osf5-0.h).
11810 [!NOT_C_CODE]: Protect string.h stuff.
11811
11812 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
11813 (sys_siglist, NSIG): Definitions moved here from osf1.h.
11814
11815 2000-06-27 Gerd Moellmann <gerd@gnu.org>
11816
11817 * xdisp.c (resize_mini_window): Subtract the extra line spacing
11818 below the last line from the needed window height.
11819
11820 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
11821
11822 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
11823 (Fwidget_get): Use it.
11824 (syms_of_fns): Defsubr it.
11825
11826 2000-06-26 Gerd Moellmann <gerd@gnu.org>
11827
11828 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
11829 display info for XIM.
11830 (xim_open_dpy): Likewise.
11831 (xim_close_dpy): Don't free the display info's XIM.
11832
11833 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
11834
11835 * config.in (USE_XIM): New define.
11836
11837 * keymap.c (get_keyelt): For menu-items containing a `:filter
11838 FILTER', apply FILTER to the menu-item's definition to get the
11839 real definition to use.
11840
11841 * lisp.h (QCfilter): External declaration.
11842
11843 * xfns.c (Fimage_size): New function.
11844 (syms_of_xfns): Defsubr it.
11845
11846 2000-06-26 Andreas Schwab <schwab@suse.de>
11847
11848 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
11849 Fstring_as_unibyte.
11850
11851 2000-06-25 Dave Love <fx@gnu.org>
11852
11853 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
11854
11855 * Makefile.in (blockinput.h): Depend on atimer.h.
11856 (atimer.h): Depend on systime.h.
11857
11858 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
11859
11860 * atimer.h: Protect against multiple inclusion. Include systime.h.
11861
11862 * lisp.h (swap_in_global_binding): Declare.
11863
11864 2000-06-24 Ken Raeburn <raeburn@gnu.org>
11865
11866 * process.c (Fopen_network_stream): Turn off atimers for duration
11867 of call to connect. (Patch from Gerd.)
11868
11869 2000-06-23 Dave Love <fx@gnu.org>
11870
11871 * ralloc.c: Maybe include unistd.h
11872
11873 * emacs.c (setgrp): Undefine before defining.
11874 (malloc_warning, set_time_zone_rule, index): Prototype.
11875
11876 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
11877 HAVE_STRUCT_TIMEZONE.
11878
11879 * s/osf1.h: Move string.h hack here from alpha.h and make it
11880 conditional.
11881 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
11882 _XOPEN_SOURCE.
11883 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
11884 (SOCKLEN_TYPE): Don't define.
11885
11886 * m/alpha.h: Remove string.h hack.
11887
11888 * s/osf5-0.h: New file.
11889
11890 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
11891 include time.h, done by systime.h.
11892 [__FreeBSD__]: Remove redundant includes.
11893
11894 * callproc.c (setpgrp): Undefine before defining.
11895 (delete_temp_file): Return Qnil to avoid warning.
11896
11897 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
11898
11899 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
11900 HAVE_X_WINDOWS.
11901
11902 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
11903
11904 * composite.h (compose_text): Declare.
11905
11906 * xterm.c: Don't include sys/types.h unconditionally. Don't
11907 protect its inclusion with !USG (following xmenu.c).
11908
11909 2000-06-23 Gerd Moellmann <gerd@gnu.org>
11910
11911 * xfns.c (x_create_tip_frame): Initialize frame's colors like
11912 in x_create_frame.
11913
11914 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
11915
11916 * coding.c (decode_eol_post_ccl): Special handling for undecided
11917 and inconsistent EOL types.
11918
11919 2000-06-22 Gerd Moellmann <gerd@gnu.org>
11920
11921 * xrdb.c (x_load_resources): Add default resource for scroll bar's
11922 trough color and main window's background color.
11923
11924 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
11925
11926 * xterm.h (Xt_app_con): External declaration.
11927
11928 * widget.c (EmacsFrameRealize): Fix typo.
11929
11930 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
11931
11932 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
11933 (handle_invisible_prop): Record the start of invisible text in
11934 it->add_overlay_start.
11935 (struct overlay_entry): Add member `overlay'.
11936 (handle_overlay_change): Simplify.
11937 (next_overlay_string): After having processed overlay strings at the
11938 end of the buffer, record that fact in
11939 it->overlay_strings_at_end_processed_p.
11940 (compare_overlay_entries): If before- and after-strings come
11941 from the same overlay, let before-strings come first.
11942 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
11943 (load_overlay_strings): Take it->add_overlay_start into account
11944 when adding overlay strings.
11945
11946 * dispextern.h (struct it): Add member add_overlay_start.
11947
11948 2000-06-22 Dave Love <fx@gnu.org>
11949
11950 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
11951
11952 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
11953
11954 2000-06-22 Kenichi Handa <handa@etl.go.jp>
11955
11956 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
11957 is greater than 0.
11958
11959 2000-06-21 Dave Love <fx@gnu.org>
11960
11961 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
11962
11963 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
11964
11965 * syntax.c (back_comment): Simplify string-parity counting (with
11966 the added benefit of handling multiple string-styles as long as
11967 they are not intertwined).
11968 Jump to the slow code as soon as a comment starter is found in
11969 a "string_lossage" position. Fixes the case: " /* " /* " */.
11970
11971 2000-06-21 Dave Love <fx@gnu.org>
11972
11973 * Makefile.in: Use GETLOADAVG_LIBS.
11974
11975 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
11976 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
11977
11978 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
11979
11980 * syntax.c (describe_syntax): Recognize the `n'estable bit.
11981 (Fforward_comment, scan_lists):
11982 Check the comstyle of single-char comment-starters.
11983 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
11984 we're just at the beginning of the comment (f.ex with (*) ... (*)).
11985 Check the comstyle of single-char comment-starters.
11986 Clarify control-flow around the Scomment case.
11987
11988 2000-06-20 Dave Love <fx@gnu.org>
11989
11990 * fns.c (make_hash_table, maybe_resize_hash_table):
11991 Cast arg of next_almost_prime.
11992
11993 * tparam.c [emacs]: Include lisp.h.
11994
11995 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
11996 and unistd.h.
11997
11998 2000-06-20 Gerd Moellmann <gerd@gnu.org>
11999
12000 * keyboard.c (adjust_point_for_property): Check if display
12001 property should be treated as intangible by looking at its value.
12002
12003 * xdisp.c (single_display_prop_intangible_p)
12004 (display_prop_intangible_p): New functions.
12005
12006 * dispextern.h (display_prop_intangible_p): Add prototype.
12007
12008 * xdisp.c (dump_glyph_row): Show type of glyph->object.
12009
12010 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
12011 argument to sigprocmask.
12012
12013 * s/sco5.h (sigblock): Redefined to pass a pointer as second
12014 argument to sigprocmask.
12015
12016 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
12017 sigprocmask_set, and pass a pointer to it to sigprocmask.
12018
12019 * sysdep.c (sigprocmask_set): New variable.
12020
12021 * fileio.c (make_temp_name): Don't use `%s' in string passed to
12022 report_file_error.
12023
12024 2000-06-20 Sam Steingold <sds@gnu.org>
12025
12026 * xrdb.c: Don't declare xmalloc, xrealloc.
12027
12028 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
12029
12030 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
12031 (re_comp): Cast gettext return value to avoid complaints when
12032 !HAVE_LIBINTL.
12033
12034 2000-06-20 Dave Love <fx@gnu.org>
12035
12036 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
12037
12038 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
12039
12040 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
12041
12042 * m/alpha.h: Don't declare xmalloc, xrealloc.
12043
12044 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
12045
12046 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
12047
12048 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
12049
12050 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
12051 HAVE_GETWD.
12052
12053 * keyboard.h (poll_for_input_1): Declare.
12054
12055 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
12056
12057 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
12058
12059 * doprnt.c: Don't declare xmalloc, xrealloc.
12060
12061 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
12062 (getenv, ctime, getwd): Removed.
12063 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
12064
12065 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
12066 x_set_tool_bar_lines.
12067
12068 * config.in: Add HAVE_GETWD. Move some definitions above
12069 machine/system includes.
12070
12071 2000-06-20 Kenichi Handa <handa@etl.go.jp>
12072
12073 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
12074
12075 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
12076 contain information about ENCODING.
12077
12078 * fontset.c (FONTSET_ASCII): Use the first element of char table
12079 for an ASCII font, not defalt slot.
12080 (fontset_ref_via_base): If FONTSET doesn't contain information for
12081 C, try the default fontset.
12082 (make_fontset): Don't copy the default fontset.
12083 (fontset_font_pattern): Likewise.
12084 (accumulate_font_info): If ELT is nil, use the corresponding
12085 element in the default fontset.
12086
12087 2000-06-19 Dave Love <fx@gnu.org>
12088
12089 * syntax.c (Fparse_partial_sexp): Doc fix.
12090
12091 * regex.h: Test PROTOTYPES as well as __STDC__.
12092
12093 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
12094 errno, strerror. Put text after #endif in comment.
12095
12096 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
12097
12098 * xterm.c (x_frame_of_widget): Likewise.
12099
12100 2000-06-19 Gerd Moellmann <gerd@gnu.org>
12101
12102 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
12103 to Vfundamental_mode_abbrev_table.
12104
12105 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
12106 bogus objects are marked. This slows down GC by ~80 percent, but
12107 it might be worth trying when debugging GC-related problems.
12108 This feature requires conservative stack marking to be enabled.
12109
12110 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
12111 returns XLookupChars, reset `modifiers' to zero.
12112
12113 2000-06-19 Dave Love <fx@gnu.org>
12114
12115 * mktime.c: Unprotoized.
12116
12117 2000-06-19 Richard Stallman <rms@gnu.org>
12118
12119 * data.c (set_internal): If variable is frame-local,
12120 store the new value immediately into the frame parameter alist.
12121
12122 2000-06-19 Ken Raeburn <raeburn@gnu.org>
12123
12124 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
12125 in the custom handler pointer.
12126
12127 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
12128 value, or checks for CHAR_META can fail when Lisp_Object is a
12129 union type.
12130 * keymap.c (get_keyelt): Likewise.
12131
12132 2000-06-19 Kenichi Handa <handa@etl.go.jp>
12133
12134 * ccl.h (struct ccl_program): New member eol_type.
12135 (struct ccl_spec): New member cr_carryover.
12136
12137 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
12138 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
12139
12140 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
12141 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
12142 (decode_eol_post_ccl): New function.
12143 (decode_coding): Don't detect EOL format here for CCL based coding
12144 systems.
12145 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
12146 decode_eol_post_ccl after running the CCL program.
12147 (code_convert_region): Don't detect EOL format here for CCL based
12148 coding systems.
12149 (decode_coding_string): Likewise.
12150
12151 2000-06-18 Ken Raeburn <raeburn@gnu.org>
12152
12153 * charset.c (update_charset_table): Use XINT on "iso_final_char"
12154 when treating it as an integer.
12155
12156 * coding.h (encode_coding_string): Declare.
12157
12158 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
12159 it as an integer.
12160
12161 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
12162 "xkeymap" to avoid shadowing the "enum map_type" value that needs
12163 to be passed to get_local_map.
12164
12165 * sound.c (Fplay_sound): Don't call make_number on
12166 Frun_hook_with_args count argument.
12167
12168 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
12169 for lisp objects in X event structure data field, when lisp
12170 objects are represented with unions.
12171 (x_scroll_bar_to_input_event): Ditto.
12172
12173 2000-06-16 Ken Raeburn <raeburn@gnu.org>
12174
12175 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
12176 termination of string. Fix sense of test whether
12177 Vline_number_display_limit is an integer.
12178
12179 2000-06-16 Gerd Moellmann <gerd@gnu.org>
12180
12181 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
12182 only if HAVE_X_WINDOWS.
12183
12184 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
12185 of titles.
12186
12187 * dispnew.c (update_frame_1): Handle case that cursor vpos is
12188 out of bounds.
12189
12190 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
12191
12192 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
12193 of its headers.
12194
12195 2000-06-15 Kenichi Handa <handa@etl.go.jp>
12196
12197 * coding.c (decode_coding_emacs_mule): Always set src_base at the
12198 start of the while loop.
12199
12200 2000-06-15 Gerd Moellmann <gerd@gnu.org>
12201
12202 * atimer.c (alarm_signal_handler): Add forward declaration.
12203
12204 * data.c (set_internal): Remove debug code.
12205
12206 2000-06-14 Gerd Moellmann <gerd@gnu.org>
12207
12208 * Makefile.in (bootstrap-temacs): Add `-I../src'.
12209
12210 * unexec.c (toplevel) [COFF]: Include coff.h.
12211
12212 * s/lynxos.h: New file.
12213
12214 * keymap.c (Fsingle_key_description): Enclose function key and
12215 event symbol names in angle brackets.
12216
12217 * xdisp.c (setup_echo_area_for_printing): Call
12218 message_log_maybe_newline if message_buf_print is not set.
12219
12220 * print.c (printchar, strout): Don't check message_buf_print
12221 before calling setup_echo_area_for_printing because that
12222 function does something useful even when message_buf_print is
12223 already set.
12224
12225 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
12226 New variables.
12227 (ensure_echo_area_buffers): Initialize echo buffer's
12228 truncate lines setting to nil.
12229 (with_echo_area_buffer): Don't set the echo buffer's truncate
12230 lines setting here.
12231 (set_message_1): Set it here instead, based on the value
12232 of message_truncate_lines.
12233 (resize_mini_window): Handle case that lines are truncated.
12234 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
12235 DEFVAR_BOOL message-truncate-lines.
12236
12237 * keyboard.c (read_char): Bind message-truncate-lines to t
12238 while displaying a help-echo.
12239
12240 * lisp.h (Qmessage_truncate_lines): External declaration.
12241
12242 2000-06-13 Gerd Moellmann <gerd@gnu.org>
12243
12244 * xdisp.c (Vline_number_display_limit): Renamed from
12245 line_number_display_limit.
12246 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
12247 Extend documentation string. Initialize
12248 Vline_number_display_limit to nil meaning no limit.
12249 (decode_mode_spec): Use Vline_number_display_limit with its new
12250 meaning.
12251
12252 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
12253
12254 2000-06-13 Richard Stallman <rms@gnu.org>
12255
12256 * frame.c (Fmodify_frame_parameters): Doc fix.
12257
12258 * xfns.c (x_set_frame_parameters): Comment fix.
12259
12260 * frame.c (store_frame_param): Call swap_in_global_binding if the
12261 variable's current binding was chosen based on this frame.
12262
12263 * data.c (swap_in_global_binding): New function.
12264
12265 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
12266
12267 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
12268 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
12269
12270 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
12271
12272 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
12273
12274 2000-06-12 Jason Rumney <jasonr@gnu.org>
12275
12276 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
12277
12278 * w32.h (EMACS_W32_H): Renamed from _NT_H_
12279
12280 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
12281
12282 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
12283
12284 2000-06-12 Gerd Moellmann <gerd@gnu.org>
12285
12286 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
12287 (syms_of_xfaces): Defsubr Sdump_colors.
12288 (x_free_colors): Don't treat b&w specially on default visual.
12289 (x_free_dpy_colors): New function.
12290 (free_face_colors): Don't check visual class; it's done
12291 in x_free_colors.
12292
12293 * xterm.c (x_frame_of_widget): New function.
12294 (x_alloc_nearest_color_for_widget): Use it.
12295 (x_copy_dpy_color): New function.
12296 (x_destroy_window): Free various colors.
12297
12298 2000-06-12 Kenichi Handa <handa@etl.go.jp>
12299
12300 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
12301
12302 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
12303
12304 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
12305
12306 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
12307
12308 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
12309
12310 2000-06-11 Dave Love <fx@gnu.org>
12311
12312 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
12313
12314 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
12315
12316 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
12317
12318 2000-06-11 Gerd Moellmann <gerd@gnu.org>
12319
12320 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
12321 to `XEvent *'.
12322
12323 2000-06-10 Kenichi Handa <handa@etl.go.jp>
12324
12325 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
12326 (regex_compile): Fix the code for handling the case of single byte
12327 char and multibyte char being mixed in a range within [...].
12328
12329 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
12330 and dst_multibyte members of coding.
12331
12332 * charset.c (update_charset_table): Update the table
12333 bytes_by_char_head.
12334 (init_charset_once): Initialize elements of bytes_by_char_head to
12335 1 except for leading codes for private charases.
12336
12337 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
12338 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
12339
12340 2000-06-09 Ken Raeburn <raeburn@gnu.org>
12341
12342 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
12343 access the data it doesn't point to.
12344
12345 2000-06-08 Gerd Moellmann <gerd@gnu.org>
12346
12347 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
12348 will be translated to a switch-frame event when reading the
12349 event queue. This is necessary because Emacs otherwise won't
12350 perform a switch-frame to a new frame until some other event, for
12351 example a keystroke event, forces it to do so. This has various
12352 effects, one visible being that the cursor of a frame created with
12353 C-x 5 2 or switched to with a window manager key binding like
12354 A-TAB stays hollow because selected_window isn't on the newly
12355 focused frame until the switch-frame is performed.
12356
12357 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
12358 generating a switch-frame event if necessary.
12359
12360 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
12361
12362 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
12363 it's an integer.
12364
12365 2000-06-08 Kenichi Handa <handa@etl.go.jp>
12366
12367 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
12368
12369 2000-06-07 Gerd Moellmann <gerd@gnu.org>
12370
12371 * window.c (displayed_window_lines): Take empty lines at
12372 the bottom of a window into account.
12373
12374 * window.c (displayed_window_lines): New function.
12375 (Fmove_to_window_line): Use displayed_window_lines to determine
12376 the number of lines to move, instead of using the window's height.
12377
12378 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
12379 to stop reading, even if the form read sets point to a different
12380 value when evaluated.
12381
12382 * xdisp.c (display_line): Fix code deciding in which line to
12383 put the cursor.
12384
12385 2000-06-07 Kenichi Handa <handa@etl.go.jp>
12386
12387 * fileio.c (e_write): Free composition data if stored in
12388 coding->cmp_data.
12389
12390 2000-06-06 Gerd Moellmann <gerd@gnu.org>
12391
12392 * xdisp.c (display_line): Set row's and iterator's
12393 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
12394 Set cursor even if row ends in the middle of a character.
12395 (dump_glyph_row): Print values of new flags.
12396 (redisplay_window) <cursor movement in unchanged window>: When
12397 point has been moved forward, and PT is at the end of the cursor
12398 row, don't place the cursor in the next row if the cursor row ends
12399 in the middle of a character or at ZV.
12400
12401 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
12402 (struct glyph_row): Add starts_in_middle_of_char_p and
12403 ends_in_middle_of_char_p.
12404 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
12405 ends_in_middle_of_char_p flag.
12406 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
12407
12408 * term.c (append_glyph): Revert change of 2000-06-06.
12409
12410 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
12411 padding glyph not fitting on line as whole character not
12412 fitting on line.
12413
12414 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
12415 this isn't true for images with `:ascent 100'.
12416
12417 2000-06-06 Kenichi Handa <handa@etl.go.jp>
12418
12419 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
12420 as modified if it is originally unmodified.
12421
12422 * term.c (encode_terminal_code): Change the way to check if
12423 terminal coding does any conversion.
12424 (append_glyph): Set glyph->pixel_width correctly.
12425
12426 * xdisp.c (display_line): While checking line continuation, pay
12427 attention to a padding glyph.
12428
12429 2000-06-05 Gerd Moellmann <gerd@gnu.org>
12430
12431 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
12432
12433 2000-06-05 Dave Love <fx@gnu.org>
12434
12435 * xdisp.c: Include fontset.h.
12436
12437 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
12438
12439 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
12440
12441 * dispnew.c: Conditionally include term.h.
12442
12443 * coding.h: Declare code_convert_string_norecord.
12444
12445 * frame.h (struct frame): Use volatile unconditionally.
12446
12447 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
12448
12449 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
12450
12451 * systime.h: Protect against multiple inclusion.
12452 (timezone) [USG5_4]: Define as time_t.
12453
12454 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
12455 (Foptimize_char_table, make_temp_name): Declare.
12456
12457 * Makefile.in (xdisp.o): Depend on fontset.h.
12458
12459 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
12460
12461 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
12462 (Foptimize_char_table, make_temp_name): Declare.
12463
12464 * s/irix4-0.h:
12465 * s/irix5-0.h:
12466 * s/netbsd.h: Don't define autoconfiscated MATHERR.
12467
12468 2000-06-02 Dave Love <fx@gnu.org>
12469
12470 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
12471
12472 2000-06-02 Gerd Moellmann <gerd@gnu.org>
12473
12474 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
12475 result face, set flags in that face indicating that colors may not
12476 be freed.
12477
12478 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
12479 glyph, use the ASCII NUL character to determine the face.
12480
12481 2000-06-02 Dave Love <fx@gnu.org>
12482
12483 * sysdep.c: Conditionally include stdlib.h, unistd.h.
12484 (VFORK_RETURN_TYPE): Remove.
12485
12486 * config.in: Add NO_MATHERR.
12487
12488 2000-06-01 Dave Love <fx@gnu.org>
12489
12490 * cmds.c (internal_self_insert): Don't check
12491 Vbefore_change_function, Vafter_change_function.
12492
12493 * insdel.c (signal_before_change, signal_after_change): Likewise.
12494
12495 * buffer.c (Vbefore_change_function, Vafter_change_function):
12496 Variables and their initializations deleted.
12497
12498 * callint.c (Fcall_interactively): Doc fix.
12499
12500 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
12501
12502 2000-05-31 Dave Love <fx@gnu.org>
12503
12504 * textprop.c: Revert last change -- duplicated.
12505
12506 2000-05-31 Gerd Moellmann <gerd@gnu.org>
12507
12508 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
12509 in #if 0.
12510
12511 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
12512
12513 2000-05-31 Jason Rumney <jasonr@gnu.org>
12514
12515 * search.c (Fre_search_forward, Fre_search_backward)
12516 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
12517
12518 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
12519
12520 2000-05-30 Jason Rumney <jasonr@gnu.org>
12521
12522 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
12523 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
12524
12525 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
12526
12527 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
12528 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
12529 expand a nil default_filename.
12530
12531 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
12532 pointer to glyph_to_pixel_coords, not a frame.
12533
12534 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
12535 coding.h to dependencies.
12536
12537 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
12538
12539 * w32console.c (glyph_to_pixel_coords): Change first parameter to
12540 window pointer to be consistent with w32term.c and xterm.c.
12541
12542 * w32fns.c: Format and doc changes to bring closer to xfns.c.
12543 (VIETNAMESE_CHARSET): Define if not defined in system headers.
12544 (Qline_spacing, Qcenter): New variables.
12545 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
12546 (x_set_line_spacing): New function.
12547 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
12548 (x_specified_cursor_type): New function.
12549 (x_set_cursor_type): Use it.
12550 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
12551 and icon strings.
12552 (validate_x_resource_name, x_get_resource_string): Measure lengths
12553 of external strings in bytes.
12554 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
12555 GetTextExtentPoint32 with NULL title.
12556 (Fx_create_frame): Initialize Qline_spacing.
12557 (w32_load_system_font): Initialize font->double_byte_p.
12558 (x_to_w32_charset): Use Vw32_charset_info_alist.
12559 (Image, busy cursor, tooltip functions): Merged changes from
12560 xfns.c. Not yet functional on Windows.
12561
12562 * w32gui.h (W32FontStruct): Add double_byte_p member.
12563
12564 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
12565 (emacs_button_translation): Use it.
12566 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
12567 in `mask' to be set.
12568
12569 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
12570 menu strings.
12571
12572 * w32term.c: Format and doc changes to bring closer to xterm.c.
12573 (w32_char_font_type): New enum.
12574 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
12575 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
12576 (w32_encode_char): New function.
12577 (x_encode_char): Removed.
12578 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
12579 x_encode_char and w32_font_is_double_byte.
12580 (x_produce_image_glyph): Use image_ascent.
12581 (x_produce_glyphs): Use new version of w32_per_char_metric and
12582 handle NULL return value. Allow extra line spacing.
12583 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
12584 (w32_get_glyph_overhangs): Remove unicode_p param. Use
12585 w32_font_type member of glyph instead.
12586 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
12587 (fast_find_position): Make sure not to consider rows not visible
12588 in the window.
12589 (w32_read_socket) [WM_MENUSELECT]: Cannot call
12590 w32_menu_display_help with input blocked, as it can abort.
12591 (x_display_and_set_cursor): Choose cursor depending
12592 on buffer-local value of cursor_type.
12593 (x_draw_bar_cursor): Add parameter WIDTH.
12594
12595 * w32term.h (CP_DEFAULT): Define.
12596 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
12597
12598 2000-05-30 Gerd Moellmann <gerd@gnu.org>
12599
12600 * search.c (Fre_search_forward, Fre_search_backward)
12601 (Fposix_search_backward, Fposix_search_forward): Doc fix.
12602
12603 2000-05-30 Kenichi Handa <handa@etl.go.jp>
12604
12605 * coding.c (detect_coding_iso2022): Fix code for checking
12606 CODING_CATEGORY_MASK_ISO_8_2.
12607
12608 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
12609
12610 * regex.c (PREFETCH_NOLIMIT): New function.
12611 (re_match_2_internal): Use it and adjust the end_match_2 logic.
12612
12613 2000-05-29 Gerd Moellmann <gerd@gnu.org>
12614
12615 * syntax.c (find_defun_start): Move test for
12616 open_paren_in_column_0_is_defun_start outside of the loop.
12617
12618 * xdisp.c (redisplay_window): Really switch buffers when
12619 displaying mode lines, and temporarily set selected_frame to the
12620 frame of the window that's redisplayed.
12621
12622 * xfaces.c (free_realized_faces): Block/unblock input.
12623 (free_realized_multibyte_face): Ditto.
12624
12625 2000-05-29 Dave Love <fx@gnu.org>
12626
12627 * textprop.c (Qkeymap): New variable.
12628 (syms_of_textprop): Intern it.
12629
12630 * keymap.c: Include intervals.h.
12631 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
12632
12633 * Makefile.in (keymap.o): Depend on intervals.h.
12634
12635 * keyboard.c (menu_bar_items, tool_bar_items)
12636 (Fexecute_extended_command): Deal with `keymap' property.
12637 (read_key_sequence): Track map from `keymap' property as well as
12638 `local_map'.
12639
12640 * intervals.c (get_local_map): Extra arg to allow looking for
12641 `keymap' too.
12642
12643 * intervals.h (map_property): New enum.
12644 (get_local_map): Extra arg using it.
12645 (Qkeymap): Declare.
12646
12647 * lisp.h (get_local_map): Don't declare here.
12648
12649 2000-05-29 Kenichi Handa <handa@etl.go.jp>
12650
12651 * Makefile.in (callproc.o): Depend on composite.h.
12652
12653 * callproc.c: Include composite.h.
12654 (Fcall_process): Handle composition correctly.
12655
12656 * coding.h (coding_allocate_composition_data): Extern it.
12657 (coding_restore_composition): Likewise.
12658
12659 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
12660 yet allocated, finish decoding with result
12661 CODING_FINISH_INSUFFICIENT_CMP.
12662 (coding_allocate_composition_data): Make it non-static.
12663 (coding_restore_composition): Likewise.
12664
12665 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
12666
12667 * charset.c (syms_of_charset): Revert last change.
12668
12669 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
12670
12671 * term.c (produce_glyphs): Treat characters from the eight-bit-*
12672 charsets as unibyte, with 1-column screen width. Sent by Kenichi
12673 Handa.
12674
12675 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
12676
12677 * charset.c (syms_of_charset): Set width of character sets
12678 eight-bit-control and eight-bit-graphic to 1 column.
12679
12680 2000-05-26 Gerd Moellmann <gerd@gnu.org>
12681
12682 * config.in (HAVE_SPEED_T): New define.
12683
12684 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
12685 `extern speed_t'.
12686
12687 2000-05-26 Dave Love <fx@gnu.org>
12688
12689 * coding.c (shrink_decoding_region): Initialize eol_conversion.
12690
12691 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
12692 (Fsubr_arity): New function.
12693 (syms_of_data): Install them.
12694
12695 2000-05-26 Kenichi Handa <handa@etl.go.jp>
12696
12697 * charset.c (init_charset_once): Set the table bytes_by_char_head
12698 correctly.
12699
12700 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
12701 the default fontset to what Emacs uses by default.
12702 (check_registry_encoding): This function deleted.
12703 (Fset_fontset_font): Remove the adhoc condition for the default
12704 fontset. Allow cons in FONTNAME.
12705
12706 * fns.c (map_char_table): Ignore char-table entries for
12707 charsets eight-bit-control and eight-bit-graphic.
12708
12709 2000-05-25 Ken Raeburn <raeburn@gnu.org>
12710
12711 * emacs.c (main): Initialize keyboard syms before initializing
12712 window code, so face names are available.
12713
12714 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
12715
12716 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
12717 of an anchor at the beginning of a shy-group.
12718
12719 2000-05-25 Gerd Moellmann <gerd@gnu.org>
12720
12721 * xdisp.c (handle_invisible_prop): Don't try to skip over
12722 invisible text if end of text is already reached.
12723
12724 2000-05-25 Dave Love <fx@gnu.org>
12725
12726 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
12727
12728 * coding.c (encode_eol): Add null statement after label.
12729
12730 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
12731
12732 * w16select.c (Fw16_set_clipboard_data): Fix the change from
12733 2000-05-20.
12734
12735 2000-05-25 Kenichi Handa <handa@etl.go.jp>
12736
12737 * ccl.c (ccl_driver): Fix previous change.
12738
12739 2000-05-25 Kenichi Handa <handa@etl.go.jp>
12740
12741 * coding.c (run_pre_post_conversion_on_str): Set point to the
12742 beginning of buffer before calling coding->post_read_conversion.
12743 (decode_coding_string): Give correct args to
12744 run_pre_post_conversion_on_str.
12745 (encode_coding_string): Likewise.
12746
12747 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
12748 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
12749 eight-bit-graphic correctly.
12750
12751 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
12752
12753 * fileio.c (Finsert_file_contents): Even if a file is not found,
12754 execute codes for setting up coding system. Call
12755 after-insert-file-functions unconditionally.
12756
12757 2000-05-24 Gerd Moellmann <gerd@gnu.org>
12758
12759 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
12760 BSD_PGRPS are not defined.
12761
12762 2000-05-24 Kenichi Handa <handa@etl.go.jp>
12763
12764 * charset.c (update_charset_table): Accept nil in LONG_NAME and
12765 DESCRIPTION.
12766 (syms_of_charset): Avoid building same strings.
12767
12768 2000-05-23 Gerd Moellmann <gerd@gnu.org>
12769
12770 * lread.c (Fload): Add a comment about the meaning of
12771 Vuser_init_file being t.
12772
12773 * puresize.h (BASE_PURESIZE): Increase to 675000.
12774
12775 * s/gnu-linux.h (setpgrp): Don't define it here because this
12776 prevents compilation on GNU/Linux systems with glib 2.2.
12777
12778 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
12779 as setpgid.
12780
12781 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
12782
12783 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
12784 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
12785 version.
12786 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
12787
12788 2000-05-23 Kenichi Handa <handa@etl.go.jp>
12789
12790 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
12791
12792 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
12793
12794 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
12795
12796 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
12797
12798 2000-05-22 Kenichi Handa <handa@etl.go.jp>
12799
12800 * keyboard.c (read_char): Allow character codes 128..255 to be
12801 handled by input-method-function.
12802
12803 * insdel.c (adjust_markers_for_replace): Fix previous change.
12804 (adjust_after_replace): If PREV_TEXT is nil, call
12805 adjust_markers_for_insert, not adjust_markers_for_replace.
12806
12807 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
12808
12809 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
12810 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
12811 [HAVE_GRANDPT]: Define.
12812 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
12813
12814 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
12815 like SYSV_PTYS.
12816
12817 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
12818
12819 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
12820
12821 2000-05-20 Kenichi Handa <handa@etl.go.jp>
12822
12823 The following changes are to handle 8-bit characters in a
12824 multibyte buffer/string without facing with byte combining
12825 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
12826 eight-bit-graphic (for 0xA0..0xFF) are introduced.
12827
12828 * Makefile.in (fns.o): Depend on charset.h.
12829
12830 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
12831 convert it to unibyte.
12832 (make_string): Use parse_str_as_multibyte, not chars_in_text.
12833
12834 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
12835 apparent char boundary.
12836 (Fset_buffer_multibyte): Convert 8-bit characters in the range
12837 0x80..0x9F to/from multibyte form.
12838
12839 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
12840 to unibyte.
12841
12842 * callproc.c (Fcall_process): Always encode an argument string if
12843 it is multibyte. Setup src_multibyte and dst_multibyte members of
12844 process_coding properly.
12845
12846 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
12847 SPLIT_NON_ASCII_CHAR.
12848
12849 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
12850 as is.
12851 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
12852
12853 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
12854 (SPLIT_CHARACTER_SEQ): This macro deleted.
12855 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
12856 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
12857 and eight-bit-graphic.
12858 (char_to_string): Likewise. Signal an error for too large
12859 character code.
12860 (char_printable_p): Return 0 for 8-bit characters.
12861 (update_charset_table): Update iso_charset_table only when a final
12862 character is non-negative.
12863 (find_charset_in_text): Renamed from find_charset_in_str.
12864 Arguments and return value changed. Callers changed.
12865 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
12866 be -1 if CHARSET is used only internally.
12867 (Fmake_char_internal): Handle new charsets; eight-bit-control and
12868 eight-bit-graphic.
12869 (Fcharset_after): Simplified.
12870 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
12871 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
12872 (multibyte_chars_in_text): Simplified by assuming there's no
12873 invalid multibyte sequence.
12874 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
12875 (str_as_unibyte): New functions.
12876 (Fstring): Simpified by assuming that byte combining never happens.
12877 (init_charset_once): Initialization for
12878 LEADING_CODE_8_BIT_CONTROL.
12879 (syms_of_charset): Intern and staticpro Qeight_bit_control and
12880 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
12881 eight-bit-control and eight-bit-graphic.
12882
12883 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
12884 (CHARSET_8_BIT_GRAPHIC): New macros.
12885 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
12886 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
12887 (CHARSET_REVERSE_CHARSET): Likewise.
12888 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
12889 eight-bit-graphic.
12890 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
12891 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
12892 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
12893 encounter an invalid multibyte sequence.
12894 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
12895 sequence is always valid.
12896 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
12897 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
12898 (CHAR_STRING): For 8-bit characters, call char_to_string.
12899 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
12900 multibyte sequence is always valid.
12901 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
12902 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
12903 (str_as_unibyte): Extern them.
12904 (BCOPY_SHORT): Fix a bug.
12905 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
12906 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
12907 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
12908 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
12909
12910 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
12911 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
12912 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
12913 (EMIT_BYTES): New macros.
12914 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
12915 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
12916 macros deleted.
12917 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
12918 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
12919 check the validity of multibyte sequence.
12920 (decode_coding_emacs_mule): New function.
12921 (encode_coding_emacs_mule): New macro.
12922 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
12923 the source.
12924 (DECODE_ISO_CHARACTER): Just return a character code.
12925 (DECODE_COMPOSITION_START): Set coding->result instead of result.
12926 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
12927 EMIT_CHAR to produced decoded characters. Exit the loop only by
12928 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
12929 block here.
12930 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
12931 only position codes for an invalid character.
12932 (encode_designation_at_bol): Return new destination pointer. 5th
12933 arg DSTP is changed to DST.
12934 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
12935 from the source by ONE_MORE_CHAR. Don't handle the case of last
12936 block here.
12937 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
12938 macros deleted.
12939 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
12940 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
12941 TWO_MORE_BYTES to fetch a byte from the source.
12942 (encode_eol): Pay attention to coding->src_multibyte.
12943 (detect_coding, detect_eol): Preserve members src_multibyte and
12944 dst_multibyte.
12945 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
12946 (encoding_buffer_size): Set magnification to 3 for all coding
12947 systems that require encoding.
12948 (ccl_coding_driver): For decoding, be sure that the result is
12949 valid multibyte sequence.
12950 (decode_coding): Initialize coding->errors and coding->result.
12951 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
12952 and raw-text, always call decode_eol. Handle the case of last
12953 block here. If not coding->dst_multibyte, convert the resulting
12954 sequence to unibyte.
12955 (encode_coding): Initialize coding->errors and coding->result.
12956 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
12957 and raw-text, always call encode_eol. Handle the case of last
12958 block here.
12959 (shrink_decoding_region, shrink_encoding_region): Detect cases
12960 that we can't skip data more rigidly.
12961 (code_convert_region): Setup src_multibyte and dst_multibyte
12962 members of coding. For decoding, if the buffer is multibyte,
12963 convert the source sequence to unibyte in advance. For encoding,
12964 if the buffer is multibyte, convert the resulting sequence to
12965 multibyte afterward.
12966 (run_pre_post_conversion_on_str): New function.
12967 (code_convert_string): Deleted and divided into the following two.
12968 (decode_coding_string, encode_coding_string): New functions.
12969 (code_convert_string1, code_convert_string_norecord): Call one of
12970 above.
12971 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
12972 MAKE_NON_ASCII_CHAR.
12973 (Fset_terminal_coding_system_internal)
12974 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
12975 and dst_multibyte members.
12976 (init_coding_once): Initialize iso_code_class with new enum
12977 ISO_control_0 and ISO_control_1.
12978
12979 * coding.h (enum iso_code_class_type): Member ISO_control_code is
12980 devided into ISO_control_0 and ISO_control_1.
12981 (struct coding_system): New members src_multibyte, dst_multibyte,
12982 errors, and result. Delete member fake_multibyte.
12983 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
12984 nonzero.
12985 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
12986 nonzero.
12987
12988 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
12989 (Faset): Likewise.
12990
12991 * editfns.c (Fformat): Be sure to convert 8-bit characters to
12992 multibyte form.
12993 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
12994 combining occurs.
12995 (Ftranspose_region): Delete codes for handling byte combining.
12996
12997 * fileio.c (Finsert_file_contents): Setup src_multibyte and
12998 dst_multibyte members of coding. On handling REPLACE on unibyte
12999 buffer, convert the result of decode_coding to unibyte. On
13000 inserting into a mutibyte buffer, always call code_convert_region.
13001 (e_write): Setup coding->src_multibyte according to the
13002 multibyteness of the source (buffer or string).
13003
13004 * fns.c (concat): Handle 8-bit characters correctly.
13005 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
13006 unibyte in the result.
13007 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
13008 valid multibyte form in the result.
13009 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
13010 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
13011 return -1, signal an error.
13012 (base64_encode_1): New arg MULTIBYTE. Get each character by
13013 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
13014 character is found, return -1.
13015 (Fbase64_decode_region): Delete codes for handling byte-combining.
13016 Treat each decoded byte as a unibyte character.
13017 (Fbase64_decode_string): Return unibyte string.
13018 (Fcompare_strings, concat, string_byte_to_char): Use
13019 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
13020 FETCH_STRING_CHAR_ADVANCE.
13021 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
13022 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
13023
13024 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
13025 SPLIT_NON_ASCII_CHAR.
13026 (fontset_ref_via_base, fontset_set): Likewise
13027
13028 * insdel.c (adjust_markers_for_record_delete): Deleted.
13029 (adjust_markers_for_insert): Argument changed. Caller changed.
13030 (adjust_markers_for_replace): Likewise.
13031 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
13032 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
13033 (copy_text): Delete unused local varialbe c_save. For converting
13034 to multibyte, be sure to make all 8-bit characters in valid
13035 multibyte form.
13036 (count_size_as_multibyte): Handle 8-bit characters correctly.
13037 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
13038 (adjust_after_replace, replace_range, del_range_2)
13039 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
13040 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
13041 (adjust_after_replace, replace_range, del_range_2) Delete codes for
13042 handling byte combining.
13043 (adjust_before_replace): Deleted.
13044
13045 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
13046 SPLIT_NON_ASCII_CHAR.
13047 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
13048 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
13049 (Fkey_description): Likewise.
13050
13051 * lread.c (read1): On reading multibyte string, be sure to make
13052 all 8-bit chararacters in valid multibyte form.
13053 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
13054
13055 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
13056 unconditionally.
13057
13058 * process.c (Fstart_process): GCPRO current_dir before calling
13059 Ffind_operation_coding_system. Encode arguments here.
13060 (create_process): Don't encode arguments here. Setup
13061 src_multibyte and dst_multibyte members of struct coding.
13062 (read_process_output): Setup src_multibyte and dst_multibyte
13063 members of struct coding. If the output is to multibyte buffer,
13064 always decode the output of the process. Adjust the
13065 representation of 8-bit characters to the multibyteness of the output.
13066 (send_process): Setup coding->src_multibyte according to the
13067 multibyteness of the source.
13068
13069 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
13070 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
13071 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
13072
13073 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
13074
13075 * w16select.c (Fw16_set_clipboard_data): Setup members
13076 src_multibyte and dst_multibyte of coding. Adjusted for the
13077 change for find_charset_in_str.
13078 (Fw16_get_clipboard_data): Likewise.
13079
13080 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
13081 dst_multibyte of coding.
13082 (x_to_w32_font): Likewise.
13083
13084 * w32select.c (Fw32_set_clipboard_data): Setup members
13085 src_multibyte and dst_multibyte of coding. Adjusted for the
13086 change for find_charset_in_str.
13087 (Fw32_get_clipboard_data): Likewise.
13088
13089 * xdisp.c (get_next_display_element): Handle 8-bit characters
13090 correctly.
13091 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
13092 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
13093
13094 * xselect.c (selection_data_to_lisp_data): Setup members
13095 src_multibyte and dst_multibyte of coding. Adjusted for the
13096 change for find_charset_in_str.
13097 (lisp_data_to_selection_data): Likewise.
13098
13099 2000-05-19 Gerd Moellmann <gerd@gnu.org>
13100
13101 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
13102
13103 * dispextern.h (Vimage_types): Add extern declaration.
13104
13105 * xdisp.c (Vimage_types): Moved here from xfns.c.
13106 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
13107
13108 * xfns.c (Vimages_types): Moved to xdisp.c.
13109 (syms_of_xfns): Move `image-types' to xdisp.c.
13110
13111 * w32fns.c (Vimage_types): Removed.
13112 (syms_of_w32fns): Remove `image-types'.
13113
13114 2000-05-18 Kenichi Handa <handa@etl.go.jp>
13115
13116 * fns.c (map_char_table): Pay attention to character number of
13117 charset. Check the validity of charset at the first level. For
13118 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
13119 the default value.
13120
13121 * fontset.c: Include "buffer.h".
13122 (fs_load_font): If the face has fontset, record the face ID in
13123 that fontset.
13124 (Finternal_char_font): New function.
13125 (accumulate_font_info): New function.
13126 (Ffontset_info): Rewritten for the new fontset implementation.
13127 (syms_of_fontset): Register Vdefault_fontset in the first element
13128 of Vfontset_table. Include Vdefault_fontset in
13129 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
13130 function.
13131
13132 2000-05-16 Dave Love <fx@gnu.org>
13133
13134 * m/iris5d.h: Deleted -- unused.
13135
13136 2000-05-16 Gerd Moellmann <gerd@gnu.org>
13137
13138 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
13139 `invalid' instead of `illegal'.
13140
13141 * indent.c (Fmove_to_column): When ending within a tab, insert
13142 spaces first so that markers at the end of the tab get adjusted.
13143
13144 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
13145 buffer list that wasn't selected in that frame.
13146
13147 * filelock.c (get_boot_time): To obtain an 8 char file name, which
13148 is needed on mescaline, use a 2 char prefix, and call
13149 make_temp_name with second arg non-zero.
13150
13151 * fileio.c (make_temp_name): New function, extracted from
13152 Fmake_temp_name.
13153 (Fmake_temp_name): Use it.
13154
13155 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
13156
13157 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
13158
13159 2000-05-15 Gerd Moellmann <gerd@gnu.org>
13160
13161 * Makefile.in (lisp): Add env.elc.
13162
13163 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
13164
13165 2000-05-12 Gerd Moellmann <gerd@gnu.org>
13166
13167 * search.c (Freplace_match): Handle case of `\N' in the
13168 replacement when there's no group N.
13169
13170 2000-05-11 Gerd Moellmann <gerd@gnu.org>
13171
13172 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
13173 of the message to message_dolog.
13174
13175 * keyboard.c (read_char): Don't clear current message for help
13176 events; let the code handling help events handle this. Change
13177 code detecting help events that should be ignored.
13178
13179 * xdisp.c (handle_single_display_prop): Don't try to set PT if
13180 we're interating over a string.
13181
13182 2000-05-09 Dave Love <fx@gnu.org>
13183
13184 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
13185 that offset before writing. Move gcpro region past call of
13186 Ffile_regular_p.
13187
13188 2000-05-04 Dave Love <fx@gnu.org>
13189
13190 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
13191
13192 2000-05-04 Gerd Moellmann <gerd@gnu.org>
13193
13194 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
13195 of inserted characters when BUF equals the current buffer, and PT
13196 is in front of or equal to FROM.
13197
13198 2000-05-03 Gerd Moellmann <gerd@gnu.org>
13199
13200 * xdisp.c (handle_single_display_prop): If display property value
13201 is invalid, or something not supported on the frame, restore
13202 iterator's position to what it was initially. Make sure to return
13203 0 for invalid and unsupported property values.
13204
13205 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
13206 that x_per_char_metric returns null.
13207
13208 2000-05-02 Gerd Moellmann <gerd@gnu.org>
13209
13210 * xterm.h (struct face): Add forward declaration.
13211 (struct image): Ditto.
13212 (image_ascent): Add prototype.
13213
13214 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
13215 (x_draw_image_relief, x_draw_image_foreground_1): Call function
13216 image_ascent instead of using IMAGE_ASCENT.
13217
13218 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
13219 (IMAGE_ASCENT): Removed.
13220
13221 * xfns.c (Qcenter): New variable.
13222 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
13223 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
13224 (image_ascent): New function.
13225 (lookup_image): Recognize `:ascent center'.
13226 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
13227 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
13228 (xbm_load): Don't set image's ascent here.
13229 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
13230 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
13231 check ascent values here.
13232 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
13233 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
13234 (syms_of_xfns): Initialize Qcenter.
13235
13236 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
13237 to the limits, increase the limits.
13238
13239 2000-05-01 Kenichi Handa <handa@etl.go.jp>
13240
13241 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
13242 Check Vfont_encoding_alist against the full name of the opened font.
13243
13244 2000-04-28 Gerd Moellmann <gerd@gnu.org>
13245
13246 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
13247 taller than the window.
13248
13249 2000-04-28 Kenichi Handa <handa@etl.go.jp>
13250
13251 * xfaces.c (realize_x_face): Fix the argument of the second
13252 xassert. BASE_FACE may not be a face for ASCII.
13253
13254 2000-04-27 Gerd Moellmann <gerd@gnu.org>
13255
13256 * print.c (print_object): Treat print-length < 0 as nil.
13257
13258 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
13259
13260 * s/freebsd.h (TERMCAP_OBJ): Removed.
13261 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
13262
13263 * lread.c (read1): Don't treat period followed by certain
13264 characters as symbol start.
13265
13266 * xfns.c (slurp_file): New function.
13267 (xbm_image_p): Handle case of in-memory XBM files.
13268 (xbm_scan): Rewritten to work on memory buffers instead of files.
13269 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
13270 Work on memory buffers instead of files. If DATA is null test
13271 if buffer looks like an in-memory XBM file.
13272 (xbm_load_image): Renamed from xbm_load_image_file. Work on
13273 memory buffers instead of files.
13274 (xbm_file_p): New function.
13275 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
13276
13277 * lread.c (end_of_file_error): New function.
13278 (read1): Call it instead of signaling `end-of-file' directly.
13279
13280 * print.c (print_error_message): Print data of `end-of-file'
13281 with Fprinc instead of Fprin1.
13282
13283 2000-04-26 Ken Raeburn <raeburn@gnu.org>
13284
13285 * window.c (freeze_window_start): Check that minibuffer scroll
13286 window isn't nil before extracting the window structure pointer
13287 from it.
13288
13289 * undo.c (record_delete): If we hit the end of the undo list, stop
13290 picking elements apart.
13291
13292 2000-04-26 Gerd Moellmann <gerd@gnu.org>
13293
13294 * xdisp.c (display_line): If lines are continued, restore
13295 iterator's ascent/descent information to the values before the
13296 first glyph not fitting on the line.
13297
13298 2000-04-25 Gerd Moellmann <gerd@gnu.org>
13299
13300 * xdisp.c (try_window_id) <all changes above window start>: Adjust
13301 positions in glyph matrix. Don't compute new window end positions.
13302
13303 * dispnew.c (increment_matrix_positions): Renamed from
13304 increment_glyph_matrix_buffer_positions.
13305 (increment_row_positions): Renamed from
13306 increment_glyph_row_buffer_positions.
13307
13308 * dispextern.h: Change names of renamed functions from dispnew.c
13309 in prototypes.
13310
13311 2000-04-24 Gerd Moellmann <gerd@gnu.org>
13312
13313 * fileio.c (Fdo_auto_save): Create directories for auto-save
13314 list file if necessary.
13315
13316 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
13317 from buffer or frame.
13318 (automatic_hscrolling_p): New variable.
13319 (hscroll_windows): Scroll windows horizontally only if automatic
13320 hscrolling is allowed.
13321 (syms_of_xdisp): New variable `automatic-hscrolling'.
13322
13323 * frame.h (struct frame): Add member extra_line_spacing.
13324
13325 * xfns.c (x_set_line_spacing): New function.
13326 (Fx_create_frame): Set line spacing from resources.
13327 (Qline_spacing): New variable.
13328 (syms_of_xfns): Initialize Qline_spacing.
13329
13330 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
13331
13332 * buffer.c (init_buffer_once): Handle extra_line_spacing.
13333 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
13334 (reset_buffer): Don't initialize extra2 and extra3. Initialize
13335 extra_line_spacing from default value.
13336 (init_buffer_once): Initialize default value of extra_line_spacing.
13337
13338 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
13339 and extra3.
13340
13341 * xterm.c (x_produce_glyphs): Remove reference to struct it's
13342 prompt_width. Add extra line spacing.
13343
13344 * term.c (produce_glyphs): Remove reference to struct it's
13345 prompt_width.
13346
13347 * dispextern.h (struct it): Remove member prompt_width, add
13348 extra_line_spacing.
13349
13350 2000-04-22 Gerd Moellmann <gerd@gnu.org>
13351
13352 * dispnew.c (update_frame_line): When writing a whole line, make
13353 sure cursor is in the right row afterwards, otherwise a use of
13354 capability `ch' in cmgoto might leave the cursor in the row below.
13355
13356 2000-04-21 Gerd Moellmann <gerd@gnu.org>
13357
13358 * lisp.h (struct Lisp_Buffer_Cons): Remove.
13359
13360 * keyboard.c (timer_check): Fix typo in comment.
13361
13362 2000-04-21 Kenichi Handa <handa@etl.go.jp>
13363
13364 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
13365 name change: ch -> character.
13366
13367 2000-04-20 Gerd Moellmann <gerd@gnu.org>
13368
13369 * keyboard.c (echo_message_buffer): New variable.
13370 (echo_now): Set echo_message_buffer to the echo area buffer used
13371 to display the echo.
13372 (cancel_echoing): Reset echo_message_buffer to nil.
13373 (read_char): Code rewritten that handles canceling an echo or
13374 echoing a dash, respectively.
13375
13376 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
13377 directory doesn't exist.
13378
13379 2000-04-19 Dave Love <fx@gnu.org>
13380
13381 * fns.c (syms_of_fns): Defsubr mapc.
13382 (concat): Don't allow numeric args.
13383 (Fconcat): Doc change.
13384
13385 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
13386
13387 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
13388 instead define end_match(1|2) more carefully.
13389 Use GET_CHAR_BEFORE_2 for `begline'.
13390
13391 2000-04-19 Gerd Moellmann <gerd@gnu.org>
13392
13393 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
13394 on 64-bit systems where NULL is defined as `0'.
13395
13396 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
13397 the `variable argument list' to make it work on Alpha.
13398
13399 * m/alpha.h (_LP64) [!_LP64]: Define.
13400 (ORDINARY_LINK): Define for NetBSD.
13401
13402 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
13403
13404 2000-04-19 Dave Love <fx@gnu.org>
13405
13406 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
13407 change.
13408
13409 * Makefile.in (LIBS): Don't use.
13410 (GETLOADAVG_OBJ): Define again.
13411 (otherobj): Add GETLOADAVG_OBJ.
13412
13413 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
13414
13415 2000-04-18 Gerd Moellmann <gerd@gnu.org>
13416
13417 * lread.c (read_filtered_event): Cancel and start busy cursor.
13418
13419 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
13420 that the per-character metrics may be null.
13421
13422 2000-04-17 Gerd Moellmann <gerd@gnu.org>
13423
13424 * buffer.c (clone_per_buffer_values): New function.
13425 (Fmake_indirect_buffer): Add optional argument CLONE. Call
13426 clone_per_buffer_values if CLONE is not nil.
13427
13428 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
13429
13430 2000-04-16 Dave Love <fx@gnu.org>
13431
13432 * Makefile.in: Remove obsolete localcpp stuff.
13433 (GETLOADAVG_OBJ): Don't define.
13434 (obj): Move LIBOBJS...
13435 (otherobj): ... to here.
13436 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
13437 whitespace-only lines after the continuation (Irix).
13438
13439 2000-04-14 Gerd Moellmann <gerd@gnu.org>
13440
13441 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
13442
13443 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
13444
13445 2000-04-14 Dave Love <fx@gnu.org>
13446
13447 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
13448 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
13449 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
13450 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
13451 NLIST_STRUCT.
13452
13453 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
13454 autoconfiscated HAVE_GETLOADAVG.
13455
13456 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
13457 BROKEN_MKTIME.
13458
13459 2000-04-14 Gerd Moellmann <gerd@gnu.org>
13460
13461 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
13462 (fill_in_lock_file_name): Avoid existing files that aren't links.
13463
13464 2000-04-14 Dave Love <fx@gnu.org>
13465
13466 * Makefile.in (LIBS, LIBOBJS): New variable.
13467 (INTERVAL_SRC): Convert to make variable.
13468 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
13469 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
13470 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
13471 add LIBOBJS.
13472 (SOME_MACHINE_OBJECTS): Remove interval stuff.
13473 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
13474 (shortlisp): Add facemenu, float-sup, frame.
13475 (SOME_MACHINE_LISP): Remove them from here.
13476 (LIBES): Change unused LDLIBS to autoconf LIBS.
13477
13478 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
13479
13480 2000-04-14 Kenichi Handa <handa@etl.go.jp>
13481
13482 * composite.c (update_compositions): If FROM and TO are not in a
13483 valid range, do nothing.
13484
13485 2000-04-13 Gerd Moellmann <gerd@gnu.org>
13486
13487 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
13488
13489 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
13490
13491 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
13492 as TERMCAP_OBJ.
13493
13494 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
13495
13496 * fileio.c (a_write): Remove redundant semi-colons.
13497 (e_write): Return -1 if failed to write all the data.
13498 This fixes the changes made at 1999-12-15.
13499
13500 2000-04-12 Dave Love <fx@gnu.org>
13501
13502 * fns.c (mapcar1): Test for null vals to support mapc.
13503 (Fmapc): New function.
13504
13505 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
13506
13507 * msdos.c (NUM_MOUSE_BUTTONS): Define.
13508 (IT_frame_up_to_date): Support the buffer local value of
13509 cursor-type, if defined.
13510
13511 2000-04-10 Dave Love <fx@gnu.org>
13512
13513 * editfns.c (preceding-char, following-char): Doc fix.
13514
13515 2000-04-10 Ken Raeburn <raeburn@gnu.org>
13516
13517 * Makefile.in (temacs): Revert 2000-03-12 change.
13518
13519 2000-04-10 Jason Rumney <jasonr@gnu.org>
13520
13521 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
13522
13523 2000-04-10 Gerd Moellmann <gerd@gnu.org>
13524
13525 * xdisp.c (setup_echo_area_for_printing): Choose an echo
13526 area buffer, if it's not set up yet.
13527
13528 * indent.c (compute_motion): Set immediate_quit.
13529
13530 2000-04-09 Gerd Moellmann <gerd@gnu.org>
13531
13532 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
13533 (realize_tty_face): Suppress boldness if colors are the inverse of
13534 the default colors, and tty_suppress_bold_inverse_default_colors_p
13535 is set.
13536 (Ftty_suppress_bold_inverse_default_colors): New function.
13537 (syms_of_xfaces): Defsubr it.
13538
13539 * buffer.c (Frestore_buffer_modified_p): New function.
13540 (syms_of_buffer): Defsubr it.
13541
13542 2000-04-08 Ken Raeburn <raeburn@gnu.org>
13543
13544 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
13545 charset id (int) argument, not a charset (Lisp_Object).
13546
13547 * coding.h (code_convert_string): Declare.
13548 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
13549 object, as the fourth argument to code_convert_string.
13550
13551 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
13552 (Fset_fontset_font): Use EQ to compare lisp objects.
13553
13554 2000-04-05 Ken Raeburn <raeburn@gnu.org>
13555
13556 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
13557 a pointer that looks like a lisp object.
13558 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
13559 zero, instead see whether it's an integer object, since they can't
13560 have intervals.
13561 (GET_INTERVAL_OBJECT): Simply assign to the destination.
13562
13563 * dispnew.c (allocate_matrices_for_frame_redisplay)
13564 (direct_output_forward_char): Use X(U)INT and make_number as needed
13565 to convert between (unsigned) int values and lisp integers.
13566 * keyboard.c (read_key_sequence): Likewise.
13567 * lread.c (substitute_object_recurse): Likewise.
13568 * fns.c (concat, hash_lookup, hash_remove): Likewise.
13569 * minibuf.c (do_completion, Fminibuffer_complete_word)
13570 (Fminibuffer_completion_help): Likewise.
13571 * term.c (produce_special_glyphs): Likewise.
13572
13573 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
13574 * print.c (print_preprocess, print_object): Likewise.
13575
13576 * search.c (compile_pattern): Use NILP when checking for nil.
13577
13578 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
13579 __OPTIMIZE__]: Provide a GNU C macro version that handles
13580 lisp-object unions.
13581 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
13582 field, to better cope with ENABLE_CHECKING and calls that modify a
13583 Lisp_Object using its old value.
13584
13585 2000-04-04 Gerd Moellmann <gerd@gnu.org>
13586
13587 * window.c (compare_window_configurations): Signal an error
13588 if parameters C1 or C2 aren't window configurations.
13589
13590 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
13591 AFTER_POTENTIAL_GC calls around calls to functions that can
13592 signal an error and thus invoke the debugger.
13593
13594 2000-04-03 Gerd Moellmann <gerd@gnu.org>
13595
13596 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
13597 an error if decoding fails.
13598
13599 * keyboard.c (lispy_mouse_names): Variable removed.
13600 (Vlispy_mouse_stem): New variable.
13601 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
13602 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
13603 for any mouse button number. Increase size of mouse_syms and
13604 button_down_location as needed. Call modify_event_symbol with
13605 different arguments.
13606 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
13607 Call modify_event_symbol with different arguments.
13608 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
13609 for any button number. Call modify_event_symbol with different
13610 arguments.
13611 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
13612 Accept a string for NAME_ALIST_OR_STEM.
13613
13614 * lisp.h (larger_vector): Add prototype.
13615
13616 * fns.c (larger_vector): Make externally visible.
13617
13618 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
13619
13620 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
13621
13622 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
13623 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
13624 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
13625 we are between str1 and str2.
13626 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
13627 (PATFETCH): Use `TRANSLATE'.
13628 (PATFETCH_RAW): Fetch multibyte char if applicable.
13629 (PATUNFETCH): Remove.
13630 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
13631 When writing a char, write it directly into the pattern buffer rather
13632 than going needlessly through a temp char-array.
13633 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
13634 multibyte magic and remove the useless `#ifdef emacs'.
13635 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
13636 buffer.
13637
13638 * regex.h (struct re_pattern_buffer): Make field `multibyte'
13639 conditional on `emacs'.
13640
13641 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
13642
13643 2000-04-01 Ken Raeburn <raeburn@gnu.org>
13644
13645 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
13646 non-union-type versions of XMARK and friends here, because XMARK
13647 and friends won't work on an integer field if NO_UNION_TYPE is not
13648 defined.
13649 (make_number): Define as a function if it's not defined as a macro.
13650
13651 * composite.c (run_composite_function): Use NILP when checking for nil.
13652 (syms_of_composite): Delete local var NARGS, pass an int as first
13653 argument to Fmake_hash_table.
13654
13655 * editfns.c (text_property_stickiness): Use NILP to test
13656 Lisp_Object boolean value.
13657 (Fmessage_or_box): Don't use NILP to test int variable.
13658 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
13659 problems reading from and changing the same lisp value in an
13660 XSETSTRING call.
13661
13662 2000-04-01 Gerd Moellmann <gerd@gnu.org>
13663
13664 * term.c (TN_no_color_video): New variable.
13665 (term_init): Intitialize TN_no_color_video.
13666 (enum no_color_bit): New enumeration.
13667 (MAY_USE_WITH_COLORS_P): New macro.
13668 (turn_on_face): Use it to determine if attributes may be used
13669 combined with colors.
13670
13671 2000-04-01 Ken Raeburn <raeburn@gnu.org>
13672
13673 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
13674 with int lvalues via casts; instead, just yield lisp object lvalues.
13675 (enlarge_window): Variable sizep now points to Lisp_Object. Use
13676 proper accessor macros.
13677 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
13678 (grow_mini_window): Fix typo getting int value of root->height.
13679
13680 * xdisp.c (compute_string_pos): Fix order of arguments to
13681 string_pos_nchars_ahead.
13682 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
13683 count arg to variable-arg routines like Frun_hook_with_args and
13684 Fformat.
13685 (back_to_previous_visible_line_start)
13686 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
13687 fixed-arg routines like Fget_char_property and Fmake_string.
13688 (reconsider_clip_changes): Use XINT when comparing integer lisp
13689 objects, or passing them as int arguments.
13690 (mark_window_display_accurate, insert_left_trunc_glyphs)
13691 (append_space, extend_face_to_end_of_line): Use make_number when
13692 storing or passing integer values as lisp objects.
13693 (set_cursor_from_row, highlight_trailing_whitespace): Use
13694 INTEGERP, not implicit test against zero, for glyph object.
13695 (try_window_id): Don't use make_number when we want an int value.
13696
13697 * xfaces.c (xlfd_symbolic_value): Make last argument a
13698 Lisp_Object, to be consistent with callers.
13699 (Fbitmap_spec_p): Use XINT to get numeric value of height.
13700 (lface_hash): Apply XFASTINT to lisp values before folding in.
13701
13702 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
13703 fill in window width and height. Pass an int, not a lisp object,
13704 as first arg to Finsert.
13705
13706 2000-04-01 Gerd Moellmann <gerd@gnu.org>
13707
13708 * xfaces.c (realize_basic_faces): Block input while realizing
13709 the faces.
13710
13711 * keyboard.c (lispy_mouse_names): Add additional mouse names.
13712
13713 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
13714
13715 2000-03-31 Gerd Moellmann <gerd@gnu.org>
13716
13717 * xterm.c (x_produce_glyphs): When displaying unibyte text
13718 or ASCII, handle case that per-char metric is null.
13719
13720 2000-03-30 Ken Raeburn <raeburn@gnu.org>
13721
13722 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
13723
13724 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
13725 (XSUBR, XBUFFER): Verify correct object type before returning
13726 pointer, using eassert.
13727 * frame.h (XFRAME): Likewise.
13728
13729 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
13730 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
13731 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
13732 * data.c (set_internal): Likewise.
13733 * dispextern.h (WINDOW_WANTS_MODELINE_P)
13734 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
13735 * fileio.c (auto_save_1): Likewise.
13736 * insdel.c (check_markers): Likewise.
13737 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
13738 * undo.c (record_insert): Likewise.
13739 * vmsproc.c (child_sig): Likewise.
13740 * window.c (unshow_buffer, window_loop): Likewise.
13741 * xterm.c (x_erase_phys_cursor): Likewise.
13742
13743 2000-03-30 Gerd Moellmann <gerd@gnu.org>
13744
13745 * xfns.c (free_image_cache): Free the cache structure itself
13746 last, after all its members have been freed.
13747
13748 * lisp.h (xstrdup): Add prototype.
13749
13750 * alloc.c (xstrdup): Moved here from xfaces.c.
13751 (allocating_for_lisp): Variable removed.
13752 (lisp_malloc): Block input around the calls to malloc and mem_insert.
13753
13754 * xfaces.c (realize_tty_face): Use find_symbol_value instead
13755 of Fsymbol_value.
13756 (xstrdup): Moved to alloc.c.
13757
13758 2000-03-29 Ken Raeburn <raeburn@gnu.org>
13759
13760 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
13761
13762 * emacs.c (main): Fix sense of no-loadup test.
13763
13764 * config.in (ENABLE_CHECKING): Undef.
13765
13766 * lisp.h (struct interval): Replace "parent" field with a union of
13767 interval pointer and Lisp_Object; add new bitfield to use as
13768 discriminant. Change other flag fields to bitfields.
13769 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
13770 is defined and the supplied test fails, print a message and abort.
13771 (eassert): New macro. Use CHECK to provide an assert-like facility.
13772
13773 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
13774 pointers; abort if the value looks like a lisp object.
13775 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
13776 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
13777 Modify for new interval parent definition.
13778
13779 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
13780 (UNMARK_BALANCE_INTERVALS): Update references that need an
13781 addressable lisp object in the interval structure.
13782 (die): New function.
13783 (suppress_checking): New variable.
13784
13785 * intervals.c (interval_start_pos): Just return 0 if there's no
13786 parent object.
13787
13788 2000-03-29 Gerd Moellmann <gerd@gnu.org>
13789
13790 * lread.c (read1): Accept `.' (period) as symbol start like in CL
13791 and earlier Emacs versions.
13792
13793 * keyboard.c (Ftop_level): Cancel busy-cursor.
13794
13795 * eval.c (call_debugger): Cancel busy-cursor.
13796
13797 2000-03-29 Kenichi Handa <handa@etl.go.jp>
13798
13799 * search.c (Freplace_match): Adjust multibyteness of the current
13800 buffer and NEWTEXT. Free allocated memory before signaling an error.
13801
13802 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
13803
13804 * regex.c (analyse_first): New function obtained by ripping out most
13805 of re_compile_fastmap and generalizing it a little bit so that it
13806 can also just return whether a given (sub)pattern can match the empty
13807 string or not.
13808 (regex_compile): Use `analyse_first' to decide whether the loop-check
13809 needs to be done or not for *, +, *? and +? (the loop check is costly
13810 for non-greedy repetition).
13811 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
13812
13813 2000-03-28 Dave Love <fx@gnu.org>
13814
13815 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
13816
13817 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
13818
13819 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
13820
13821 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
13822 an expression.
13823 (enum re_opcode_t): Update description of succeed_n.
13824 (PATFETCH): Always define.
13825 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
13826 operators, char classes, shy-groups and intervals).
13827 Optimize special cases of intervals so as to only use succeed_n and
13828 jump_n when really needed.
13829 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
13830 that we don't have to handle the special cases any more.
13831 Simplify on_failure_jump handling as well.
13832
13833 2000-03-28 Jason Rumney <jasonr@gnu.org>
13834
13835 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
13836
13837 2000-03-27 Gerd Moellmann <gerd@gnu.org>
13838
13839 * s/freebsd.h (GC_SETJMP_WORKS): Define.
13840
13841 * s/msdos.h (GC_SETJMP_WORKS): Define.
13842
13843 * alloc.c (mark_maybe_object): New function.
13844 (mark_memory): Use it.
13845 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
13846 (setjmp_tested_p, longjmp_done): New variables.
13847 (test_setjmp): New function.
13848 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
13849 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
13850
13851 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
13852 to DEC_TEXT_POS and INC_TEXT_POS.
13853
13854 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
13855 with parameter MULTIBYTE_P.
13856
13857 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
13858
13859 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
13860 buffers because it looks for multibyte character byte sequences
13861 which don't exist in unibyte text.
13862
13863 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
13864
13865 * xfaces.c (register_color, unregister_color, unregister_colors)
13866 [DEBUG_X_COLORS]: New functions.
13867 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
13868
13869 * xfns.c (x_set_cursor_color): Get color reference counts right.
13870
13871 * xterm.c (x_copy_color): New function.
13872 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
13873
13874 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
13875 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
13876 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
13877 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
13878 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
13879 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
13880 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
13881 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
13882 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
13883 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
13884
13885 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
13886 names for handling per-buffer variables.
13887
13888 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
13889 instead of MAX_BUFFER_LOCAL_VARS.
13890 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
13891
13892 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
13893
13894 * xfns.c (x_specified_cursor_type): New function.
13895 (x_set_cursor_type): Use it.
13896
13897 * buffer.h (struct buffer): Add cursor_type.
13898
13899 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
13900
13901 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
13902 (print_partial_compiled_pattern, re_compile_fastmap):
13903 Handle new opcode.
13904 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
13905 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
13906 executing it as well as when popping it off the stack to find infinite
13907 loops in non-greedy repetition operators.
13908
13909 2000-03-26 Gerd Moellmann <gerd@gnu.org>
13910
13911 * doc.c (Qfunction_documentation): New variable.
13912 (syms_of_doc): Initialize Qfunction_documentation.
13913 (Fdocumentation): If FUNCTION is a symbol with non-nil
13914 `function-documentation' property, return a documentation derived
13915 from that.
13916
13917 * buffer.c (syms_of_buffer): Add default-cursor-type.
13918 (init_buffer_once): Don't let cursor_type have a local value
13919 in every buffer.
13920
13921 * xterm.c (x_display_and_set_cursor): Choose cursor depending
13922 on buffer-local value of cursor_type.
13923 (x_draw_bar_cursor): Add parameter WIDTH.
13924
13925 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
13926 (init_buffer_once): Set default cursor_type value to t.
13927 Mark cursor_type as local everywhere.
13928 (syms_of_buffer): New per-buffer variable cursor-type.
13929
13930 * buffer.h (struct buffer): Remove member local_var_flags,
13931 add local_flags.
13932 (MAX_BUFFER_LOCAL_VARS): New macro.
13933 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
13934 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
13935 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
13936 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
13937
13938 * print.c (print_object): Use new macros for per-buffer variables.
13939
13940 * category.c (Fset_category_table): Use new macros for per-buffer
13941 variables.
13942
13943 * buffer.c (buffer_permanent_local_flags): Make a char array.
13944 (max_buffer_local_idx): New variable.
13945 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
13946 for new handling of per-buffer variables.
13947 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
13948 (init_buffer_once): Initialize per-buffer vars differently.
13949 Set max_buffer_local_idx.
13950
13951 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
13952 variables.
13953
13954 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
13955
13956 * data.c (do_symval_forwarding, store_symval_forwarding)
13957 (find_symbol_value, set_internal, default_value, Fset_default)
13958 (Fkill_local_variable, Flocal_variable_p): Use new macros for
13959 per-buffer variables.
13960
13961 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
13962
13963 2000-03-24 Gerd Moellmann <gerd@gnu.org>
13964
13965 * xterm.c (x_term_init): Unblock input around call1 of
13966 Qvendor_specific_keysyms.
13967
13968 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
13969 (find_defun_start): Consider an open parenthesis in column 0
13970 a defun start only if open_paren_in_column_0_is_defun_start is set.
13971 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
13972
13973 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
13974
13975 * eval.c (Fautoload): Add entry in load-history (if after dump).
13976 * lread.c (load-history): Update docstring.
13977
13978 2000-03-24 Gerd Moellmann <gerd@gnu.org>
13979
13980 * indent.c (Fvertical_motion): Always use the current buffer.
13981 Temporarily change the window's buffer, if necessary.
13982
13983 2000-03-23 Gerd Moellmann <gerd@gnu.org>
13984
13985 * xterm.c (fast_find_position): Make sure not to consider rows
13986 not visible in the window.
13987
13988 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
13989
13990 * regex.c (enum syntaxcode): Provide default for non-Emacs.
13991 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
13992
13993 2000-03-22 Jason Rumney <jasonr@gnu.org>
13994
13995 * w32menu.c (single_submenu): Set help string to NULL if none.
13996 (w32_menu_show): Set help string correctly.
13997 (add-menu-item): Set help string in MIIM_DATA for menu item.
13998 Load SetMenuItemInfoA explicitly.
13999 (w32_menu_display_help): New function.
14000
14001 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
14002 (QCdata): Moved to xdisp.c.
14003
14004 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
14005 (Vw32_charset_to_codepage_alist): Removed.
14006 (Vw32_charset_info_alist): New variable.
14007 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
14008 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
14009 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
14010 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
14011 with TODO comment.
14012 (w32_codepage_for_font): Use Vw32_charset_info_alist.
14013 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
14014 Define Vw32_charset_info_alist and w32_charset symbols.
14015
14016 2000-03-22 Jason Rumney <jasonr@gnu.org>
14017
14018 * makefile.nt (w32bdf.obj): Update dependencies.
14019
14020 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
14021
14022 * w32fns.c: Include fontset.h after dispextern.h.
14023 (Fx_create_frame): Do not create fontset.
14024 (w32_load_system_font): Doc fix.
14025 (Fx_close_connection): Free full_name if it is not shared.
14026
14027 * w32term.c: Include fontset.h after dispextern.h.
14028 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
14029 Callers updated.
14030 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
14031 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
14032 (w32_font_is_double_byte): New function, needs body.
14033 (x_append_glyph): Set glyph->glyph_not_available_p.
14034 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
14035 it->charset. If it->multibyte_p is zero and it->c is a multibyte
14036 character, convert it to a unibyte character.
14037 (struct glyph_string): Delete member `charset'.
14038 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
14039 calculating it is found.
14040 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
14041 the case that per char metric is not available correctly.
14042 (x_fill_glyph_string): Handle the case that the specific glyph is
14043 not available correctly.
14044 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
14045 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
14046 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
14047 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
14048 fontset. Don't call FS_LOAD_FONT.
14049
14050 2000-03-22 Ken Raeburn <raeburn@gnu.org>
14051
14052 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
14053 (INT_LISPLIKE): New macro.
14054 (NULL_INTERVAL_P): Use it.
14055 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
14056 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
14057 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
14058
14059 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
14060 explicit references to "parent" field of struct interval and
14061 associated unclean type conversions.
14062 * intervals.c (create_root_interval, root_interval, rotate_right)
14063 (rotate_left, balance_possible_root_interval, split_interval_right)
14064 (split_interval_left, interval_start_pos, find_interval)
14065 (next_interval, previous_interval, update_interval)
14066 (adjust_intervals_for_insertion, delete_node, delete_interval)
14067 (adjust_intervals_for_deletion, merge_interval_right)
14068 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
14069 (copy_intervals_to_string): Likewise.
14070 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
14071 Likewise.
14072 * syntax.c (update_syntax_table): Likewise.
14073
14074 * intervals.c (reproduce_tree_obj): New function, like
14075 reproduce_tree but takes a Lisp_Object for the parent. Declare
14076 with prototype.
14077 (graft_intervals_into_buffer): Use it when appropriate.
14078 (reproduce_tree): Declare with prototype.
14079 (balance_possible_root_interval): Check that the parent is a lisp
14080 object before trying to examine its type.
14081
14082 2000-03-22 Gerd Moellmann <gerd@gnu.org>
14083
14084 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
14085 as strings only if both are known to be strings.
14086
14087 * s/openbsd.h (LIBS_TERMCAP): Undef.
14088
14089 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
14090
14091 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
14092 definitions for non-Emacs compilation.
14093 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
14094 outside of `#ifdef emacs'.
14095 (print_partial_compiled_pattern): Update.
14096 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
14097 (re_compile_fastmap): Merge handling of charset and charset_not (for
14098 emacs and non-emacs compilation as well).
14099 Similarly for (not)categoryspec and (not)syntaxspec.
14100 Don't use the fastmap when reaching `anychar' since the added
14101 complexity is not justified.
14102 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
14103 and (not)syntaxspec. Merge (not)categoryspec.
14104
14105 2000-03-22 Kenichi Handa <handa@etl.go.jp>
14106
14107 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
14108 (FACE_FOR_CHAR): Define them differently for the configuration of
14109 --without-x.
14110
14111 2000-03-21 Dave Love <fx@gnu.org>
14112
14113 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
14114 doc string.
14115
14116 2000-03-21 Gerd Moellmann <gerd@gnu.org>
14117
14118 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
14119 (lface_fully_specified_p): Don't check contents of
14120 LFACE_FONT_INDEX because that attribute is optional.
14121 (realize_x_face): Remove now unwarranted xassert.
14122
14123 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
14124
14125 The following changes are to make font selection based on
14126 characters, not charset. In addition, they recover fontset
14127 facilities while utilizing the new font selection mechanism.
14128
14129 * Makefile.in (fontset.o): Depend on dispextern.h.
14130
14131 * alloc.c (mark_face_cache): Don't mark face->registry.
14132
14133 * dispextern.h (struct glyph): New member glyph_not_available_p.
14134 Use 22 bits for face_id.
14135 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
14136 (struct face): Delete member registry, new member ascii_face.
14137 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
14138 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
14139 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
14140 (struct it): Delete member charset, new member glyph_not_available_p.
14141
14142 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
14143 (struct fontset_info, struct fontset_data): Structs removed.
14144 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
14145 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
14146 (fs_load_font, fs_query_fontset): Adjusted for new argument.
14147 (fs_free_face_fontset, fontset_font_pattern)
14148 (face_suitable_for_char_p, face_for_char)
14149 (make_fontset_for_ascii_face): Extern them.
14150 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
14151 (FS_LOAD_FACE_FONT): New macro.
14152
14153 * fontset.c: All codes rewritten or adjusted for the change of
14154 fontset implementation. Now fontset is represented by char table.
14155 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
14156 Variables removed.
14157 (my_strcasecmp): Function removed.
14158 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
14159 (AREF, ASIZE): New macros.
14160 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
14161 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
14162 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
14163 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
14164 (fontset_id_valid_p, font_family_registry, fontset_name)
14165 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
14166 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
14167 New functions.
14168 (fs_load_font): New arg FACE. Caller changed.
14169 (fs_query_fontset): Argument changed. Caller changed.
14170 (Fquery_fontset): call fs_query_fontset.
14171 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
14172 Functions removed.
14173 (clear_fontset_elements, check_registry_encoding)
14174 (check_fontset_name): New functions.
14175 (syms_of_fontset): Set char-table-extra-slots property of fontset
14176 to 3. Staticpro and initialize Vfontset_table and
14177 Vdefault_fontset. Defsubr fontset_font and fontset_list.
14178
14179 * frame.h (struct frame): Member `fontset_data' removed.
14180 (FRAME_FONTSET_DATA): Macro removed.
14181
14182 * frame.c (make_frame): Don't allocate f->fontset_data.
14183 (Fdelete_frame): Don't free f->fontset_data.
14184
14185 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
14186
14187 * xdisp.c (charset_at_position): Function removed.
14188 (init_iterator): Don't set member charset of struct `it'.
14189 (handle_face_prop, reseat_to_string, set_iterator_to_next)
14190 (next_element_from_display_vector, insert_left_trunc_glyphs):
14191 Likewise.
14192 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
14193 FACE_FOR_CHARSET.
14194 (get_next_display_element, append_space)
14195 (extend_face_to_end_of_line): Likewise.
14196
14197 * xfaces.c (Qx_charset_registry, Vface_default_registry):
14198 Variables removed.
14199 (clear_font_table, frame_update_line_height, load_face_font):
14200 Adjusted for the change of fontset implementation.
14201 (load_face_fontset_font): Function removed.
14202 (pixel_point_size): New function.
14203 (font_list): Argument type changed. Caller changed.
14204 (LFACE_FONT): New macro.
14205 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
14206 (set_lface_from_font_name): Type of arg FONTNAME is changed to
14207 Lisp_Object. Determine the font name by actually loading a font
14208 by the specified pattern. Set LFACE_FONT (lface) to the specified
14209 pattern. Even if a font is not found, don't try alternatives.
14210 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
14211 (set_font_frame_param): If `font' is specified in lface, use it.
14212 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
14213 (lface_same_font_attributes_p): Likewise.
14214 (make_realized_face): Arguent changed. Caller changed. Set
14215 face->ascii_face to face itself.
14216 (free_realized_face): Free face->fontset if face is for ASCII.
14217 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
14218 (deduce_unibyte_registry, x_charset_registry): Functions removed.
14219 (free_realized_multibyte_face): New function.
14220 (lookup_face, lookup_named_face, lookup_derived_face): Argument
14221 changed. Caller changed.
14222 (try_font_list): Argument type changed.
14223 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
14224 (choose_face_font): Argument changed. Handle fontset properly.
14225 (choose_face_fontset_font): Function removed.
14226 (realize_default_face, realize_named_face): Don't remove the
14227 former face here.
14228 (realize_face): Argument changed. Caller changed. Remove face
14229 with the arg former_face_id in advance. Load font for the new face.
14230 (realize_x_face): Argument changed. Caller changed. For a
14231 multibyte character, share fontset with base_face. For a single
14232 byte character, make a new realized fontset. Don't load a font here.
14233 (realize_tty_face): Argument changed. Caller changed.
14234 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
14235 (face_at_buffer_position): Don't check multibyte_p for returning
14236 DEFAULT_FACE_ID.
14237 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
14238 FACE_SUITABLE_FOR_CHARSET_P.
14239 (syms_of_xfaces): Remove code for Qx_charset_registry and
14240 Vface_default_registry.
14241
14242 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
14243 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
14244 (x_per_char_metric): Don't try FONT->default_char. Even if
14245 pcm->width is zero, glyph bits may exist.
14246 (x_encode_char): Always initialize char2b->byte1.
14247 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
14248 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
14249 (x_append_glyph): Set glyph->glyph_not_available_p.
14250 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
14251 it->charset. Handle the case that per char metric is not
14252 available. If it->multibyte_p is zero and it->c is a multibyte
14253 character, convert it to a unibyte character.
14254 (struct glyph_string): Delete member `charset'.
14255 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
14256 the case that per char metric is not available correctly.
14257 (x_fill_glyph_string): Handle the case that the specific glyph is
14258 not available correctly.
14259 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
14260 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
14261 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
14262 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
14263 fontset. Don't call FS_LOAD_FONT.
14264
14265 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
14266 (x_create_tip_frame): Likewise.
14267 (Fx_close_connection): Free full_name of font_info.
14268
14269 * fns.c (optimize_sub_char_table): New function.
14270 (Foptimize_char_table): New function.
14271 (syms_of_fns): Defsubr Soptimize_char_table.
14272
14273 2000-03-20 Gerd Moellmann <gerd@gnu.org>
14274
14275 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
14276 only if buffer is displayed in some window.
14277
14278 * xdisp.c (handle_single_display_prop): Initialize local `value'.
14279 (try_window_reusing_current_matrix): Don't call scroll run
14280 function if run's current and desired position are the same;
14281 this prevents cursor flickering.
14282
14283 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
14284
14285 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
14286
14287 * regex.c (RE_STRING_CHAR): New macro.
14288 (GET_CHAR_AFER_2): Remove.
14289 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
14290 (enum re_opcode_t): Remove on_failure_jump_exclusive.
14291 (print_partial_compiled_pattern, re_compile_fastmap)
14292 (re_match_2_internal): Remove on_failure_jump_exclusive.
14293 (regex_compile): Turn optimizable P+ loops into PP*, so that the
14294 optimization only need to work for * (ie. can use of_keep_string_jump).
14295 Remove the special case for .*\n since it is now covered by the general
14296 optimization.
14297 (re_search_2): Don't bother with `room'.
14298 (skip_one_char): New function.
14299 (skip_noops): Simplify since `memory' is not needed any more.
14300 (mutually_exclusive_p): Restructure slightly to use `switch' and
14301 add handling for "all" remaining cases.
14302 (re_match_2_internal): Change on_failure_jump_smart to use
14303 on_failure_keep_string_jump (and redirect the end-of-loop jump)
14304 rather than on_failure_jump_exclusive.
14305
14306 2000-03-19 Gerd Moellmann <gerd@gnu.org>
14307
14308 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
14309 number of bits per RGB because it's everywhere used as the depth
14310 of the visual.
14311
14312 * term.c (calculate_costs): Remove code dealing with X frames.
14313
14314 2000-03-19 Richard M. Stallman <rms@gnu.org>
14315
14316 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
14317
14318 2000-03-18 Gerd Moellmann <gerd@gnu.org>
14319
14320 * lread.c (read_integer): Unread the last char not consumed.
14321
14322 2000-03-17 Gerd Moellmann <gerd@gnu.org>
14323
14324 * xterm.c (x_update_window_cursor): Don't update in frames
14325 which are in the process of being deleted.
14326
14327 2000-03-16 Gerd Moellmann <gerd@gnu.org>
14328
14329 * Makefile.in (mostlyclean): Add `*.core'.
14330 (clean): Add `bootstrap-emacs'.
14331
14332 * lread.c (read_integer): New function.
14333 (read1): Support read syntax #o, #x, #b, #r.
14334
14335 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
14336
14337 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
14338 make sure POINTER_TO_OFFSET gives the same value before and after
14339 PREFETCH. Use `dfail' to guarantee "atomic" matching.
14340 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
14341 (debug): Now only active if > 0 rather than if != 0.
14342 (DEBUG_*): Update for the new meaning of `debug'.
14343 (print_partial_compiled_pattern): Add missing `succeed' case. Use
14344 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
14345 in `succeed_n', `jump_n' and `set_number_at'.
14346 (store_op1, store_op2, insert_op1, insert_op2)
14347 (at_begline_loc_p, at_endline_loc_p): Add prototype.
14348 (group_in_compile_stack): Move to after its arg's types are
14349 declared and add a prototype.
14350 (PATFETCH): Define in terms of PATFETCH_RAW.
14351 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
14352 (QUIT): Redefine as a nop except for NTemacs.
14353 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
14354 indentation of the greedy-op and shy-group code.
14355 (at_(beg|end)line_loc_p): Fix argument's types.
14356 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
14357 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
14358 (MATCHING_IN_FIRST_STRING): Remove.
14359 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
14360 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
14361 QUIT unconditionally.
14362
14363 2000-03-15 Gerd Moellmann <gerd@gnu.org>
14364
14365 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
14366 a sole completion.
14367
14368 * process.c (send_process): Add a hint that the function
14369 can call Lisp code to its comment.
14370
14371 * lread.c (load_dangerous_libraries): New variable.
14372 (Vbytecomp_version_regexp): New variable.
14373 (safe_to_load_p): New function.
14374 (Fload): Handle files not compiled with Emacs specially.
14375 (syms_of_lread): New Lisp variable load-dangerous-libraries.
14376
14377 2000-03-14 Gerd Moellmann <gerd@gnu.org>
14378
14379 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
14380
14381 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
14382 support functions only if HAVE_X11R6_XIM is defined.
14383 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
14384
14385 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
14386
14387 * xfns.c (X_I18N_INHIBITED): Don't define.
14388 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
14389 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
14390
14391 * config.in (HAVE_X_I18N): Moved here from xterm.h.
14392 (HAVE_X11R6_XIM): Define.
14393
14394 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
14395
14396 * xterm.c (x_term_init): Add support for X resource `synchronous'.
14397 If set, call XSynchronize.
14398
14399 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
14400
14401 * regex.c: Declare a new type `re_char' used throughout the code
14402 for the string char type. It's `const unsigned char' to match the
14403 rest of Emacs. Consistently make sure all pointers to strings use
14404 it and make sure all pointers into the pattern use `unsigned char'.
14405 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
14406 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
14407 code duplication.
14408
14409 * charset.h (GET_CHAR_AFTER_2): Remove.
14410 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
14411
14412 2000-03-12 Ken Raeburn <raeburn@gnu.org>
14413
14414 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
14415 variable before the invocation of YMF_PASS_LDFLAGS, in case both
14416 of them try to use backquotes.
14417
14418 2000-03-12 Dave Love <fx@gnu.org>
14419
14420 * unexelf.c: Restore changes of 1999-10-19.
14421 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
14422 fix its type and alignment; copy it from current process.
14423
14424 2000-03-12 Gerd Moellmann <gerd@gnu.org>
14425
14426 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
14427 has been found. Fix bug not computing timer's predecessor.
14428
14429 * fileio.c (Fread_file_name): Handle case that DIR contains a
14430 file name.
14431
14432 * window.c (Fsave_window_excursion): Doc fix.
14433
14434 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
14435
14436 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
14437
14438 * msdos.c (vga_installed): New function, code moved from
14439 dos_set_window_size.
14440 (Qbar, Qcursor_type, outside_cursor): New variables.
14441 (syms_of_msdos): Intern and staticpro them.
14442 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
14443 shape used outside Emacs when called for the first time.
14444 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
14445 cursor shape used outside Emacs.
14446 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
14447 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
14448 type has changed.
14449 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
14450 parameters specify the cursor. Make qreverse a global
14451 variable (renamed to Qreverse).
14452
14453 2000-03-09 Gerd Moellmann <gerd@gnu.org>
14454
14455 * fns.c (Fy_or_n_p): Cancel busy-cursor.
14456
14457 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
14458
14459 This is a big redesign of failure-stack and register handling, prompted
14460 by bugs revealed when trying to add shy-groups. Overall, what happened
14461 is that loops are now structured a little differently, groups can be
14462 shy and the code is a little simpler.
14463
14464 * regex.h: Update the copyright.
14465 (RE_SHY_GROUPS): New value.
14466 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
14467 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
14468
14469 * regex.c (enum re_opcode_t): Remove jump_past_alt,
14470 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
14471 on_failure_jump_(exclusive, loop and smart). Also fix the comment
14472 for (start|stop)_memory since they now only take one argument (the
14473 second has becomes unnecessary).
14474 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
14475 (print_compiled_pattern): Use %ld to printf long ints and flush to
14476 make debugging a little easier.
14477 (union fail_stack_elt): Make the integer unsigned.
14478 (struct fail_stack_type): Add a `frame' element.
14479 (INIT_FAIL_STACK): Init `frame' as well.
14480 (POP_PATTERN_OP): New macro for re_compile_fastmap.
14481 (DEBUG_PUSH, DEBUG_POP): Remove.
14482 (NUM_REG_ITEMS): Remove.
14483 (NUM_NONREG_ITEMS): Adjust.
14484 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
14485 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
14486 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
14487 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
14488 New macros.
14489 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
14490 address pushed is not the destination of the jump but the source
14491 of it instead.
14492 (NUM_FAILURE_ITEMS): Remove.
14493 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
14494 registers before the actual failure point). Don't hardcode any
14495 meaning for str==NULL anymore.
14496 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
14497 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
14498 Remove.
14499 (REG_UNSET_VALUE): Use NULL (why not?).
14500 (compile_range): Remove declaration since it doesn't exist.
14501 (struct compile_stack_elt_t): Remove inner_group_offset.
14502 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
14503 (regex_grow_registers): Remove dead code.
14504 (FIXUP_ALT_JUMP): New macro.
14505 (regex_compile): Add shy-groups Change loops to use
14506 on_failure_jump_smart&jump instead of
14507 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
14508 initial (dummy_failure_)jump. Remove c1_base (looks like unused
14509 variable to me). Use `jump' instead of `jump_past_alt' and don't
14510 bother with push_dummy_failure in alternatives since it is now
14511 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
14512 emacs' for (re)allocating the stack.
14513 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
14514 from loop when bufp->can_be_null rather than jumping to `done'.
14515 Avoid jumping backwards so as to ensure termination. Use
14516 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
14517 backreferences. Remove dead code in handling of `anychar'.
14518 (skip_noops, mutually_exclusive_p): New functions taken from the
14519 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
14520 improve mutually_exclusive_p to handle ".+\n".
14521 (lowest_active_reg, highest_active_reg)
14522 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
14523 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
14524 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
14525 variables. Push register (in `start_memory') on the stack rather
14526 than storing it in old_reg(start|end). Remove the cycle detection
14527 from `stop_memory', replaced by the use of on_failure_jump_loop
14528 for greedy loops. Add code for the new on_failure_jump_<foo>.
14529 Remove ad-hoc code in `on_failure_jump' to push more registers in
14530 the case of a loop. Take out code from `maybe_pop_jump' into
14531 separate functions and adapt it to the semantics of
14532 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
14533 and push_dummy_failure. Remove dummy_failure handling and
14534 handling of `failures to jump to on_failure_jump' (this last one
14535 was already dead code, it seems).
14536 (group_match_null_string_p, alt_match_null_string_p)
14537 (common_op_match_null_string_p): Remove.
14538
14539 2000-03-08 Dave Love <fx@gnu.org>
14540
14541 * config.in: Don't depend on __STDC__ for volatile.
14542 Add POINTER_TYPE, PTR, PROTOTYPES.
14543
14544 * hftctl.c, strftime.c: Use PROTOTYPES.
14545 * eval.c (find_handler_clause): Likewise.
14546
14547 * mem-limits.h: Use POINTER_TYPE.
14548
14549 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
14550 (memory_warnings): Declare using POINTER_TYPE.
14551
14552 2000-03-08 Gerd Moellmann <gerd@gnu.org>
14553
14554 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
14555
14556 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
14557
14558 * xfns.c: Remove obsolete code in #if 0.
14559 (Fx_focus_frame): New function.
14560
14561 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
14562
14563 * coding.c (coding_category_name): Add coding-category-utf-8,
14564 coding-category-utf-16-be, coding-category-utf-16-le.
14565 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
14566 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
14567 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
14568 (detect_coding_utf_8): New function.
14569 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
14570 UTF_16_LOW_SURROGATE_P): New macros.
14571 (detect_coding_utf_16): New function
14572 (detect_coding_mask): When priorities are specified, skip any
14573 categories that have `nil' coding-system. Fix bug of returning
14574 wrong mask when PRIORITIES is specified and detect_coding_XXX()
14575 returns a mask not set in PRIORITIES.
14576 (detect_eol_type_in_2_octet_form): New function.
14577 (detect_eol): selects detect_eol_type_XXX to call according to
14578 cooding->category_idx.
14579 (detect_coding_system): Remove `nil' coding-system in the result.
14580 (Fupdate_coding_systems_internal): Update all coding-categories.
14581
14582 * coding.h (CODING_CATEGORY_IDX_UTF_8)
14583 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
14584 New macros.
14585 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
14586 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
14587 (CODING_CATEGORY_IDX_UTF_16_LE)
14588 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
14589 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
14590 (CODING_CATEGORY_MASK_ANY): Include the above macros.
14591 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
14592
14593 2000-03-07 Gerd Moellmann <gerd@gnu.org>
14594
14595 * doc.c (Fdocumentation_property): If value is not a string,
14596 and doesn't refer to etc/DOC, evaluate it to obtain a string.
14597
14598 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
14599 close the display with XtCloseDisplay. This caused a bus error
14600 on OpenWindows.
14601
14602 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
14603 complete but not unique.
14604
14605 2000-03-06 Gerd Moellmann <gerd@gnu.org>
14606
14607 * process.c (send_process): Remove local variable `procname' that
14608 might become invalid when a GC happens. Instead, access the
14609 process name slot directly.
14610
14611 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
14612 orig_height if set.
14613
14614 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
14615 orig_height if set.
14616
14617 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
14618
14619 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
14620 glyph matrices have been freed.
14621
14622 2000-03-05 Gerd Moellmann <gerd@gnu.org>
14623
14624 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
14625 (bootstrap-temacs): Set LC_ALL to C like for temacs.
14626
14627 * xfns.c (QCdata): Moved to xdisp.c.
14628
14629 * xdisp.c (QCdata): Moved here from xfns.c.
14630 (syms_of_xdisp): Initialize QCdata.
14631
14632 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
14633
14634 * window.c (coordinates_in_window): Use
14635 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
14636 FRAME_INTERNAL_BORDER_WIDTH.
14637
14638 * xdisp.c (try_window_id): Recompute unchanged information if
14639 it is obviously invalid.
14640
14641 * xterm.c (x_term_init): Create a colormap if not using the
14642 default visual.
14643
14644 * xterm.h (select_visual): Change prototype.
14645
14646 * xfns.c (select_visual): Rewritten. Recognize user-specified
14647 visual classes.
14648 (visual_classes): New variable.
14649
14650 2000-03-04 Gerd Moellmann <gerd@gnu.org>
14651
14652 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
14653 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
14654 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
14655 (x_decode_color): Don't handle allocation of white and black specially.
14656 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
14657 XtNcolormap resources.
14658 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
14659 (Fx_create_frame): Initialize color members of x_output structure.
14660 (xpm_load): Pass colormap to XPM lib.
14661
14662 * xfaces.c (x_free_colors): Access colormap of frame using
14663 FRAME_X_COLORMAP. Be paranoid about freeing black and white
14664 when default colormap is used.
14665
14666 * xterm.c (x_term_init): Set Colormap member of x_display_info
14667 structure. Copy colormap if resource `privateColormap' is
14668 specified (PseudoColor only).
14669 (x_setup_relief_color): Access colormap of frame using
14670 FRAME_X_COLORMAP.
14671
14672 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
14673 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
14674
14675 2000-03-04 Jason Rumney <jasonr@gnu.org>
14676
14677 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
14678 other non-platform-specific equivalents.
14679 [WINDOWSNT]: Include w32term.h, fontset.h and define X
14680 specific functions and macros as their w32 equivalents where
14681 non-platform-specifics are not available.
14682 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
14683 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
14684 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
14685 (frame_update_line_height): Use macros to access f->output_data.
14686 (defined_color): Remove FIXME comments; fixed.
14687 (x_face_list_fonts, prepare_face_for_display): Put X specifics
14688 into #ifdef blocks. Add WINDOWSNT blocks.
14689 (Fx_list_fonts): Use macros for accessing font data.
14690 (set_lface_from_font_name): Different default fonts for X and
14691 WINDOWSNT.
14692 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
14693 scalable for backward compatibility.
14694 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
14695 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
14696
14697 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
14698 syms_of_w32faces.
14699
14700 * makefile.nt (w32faces.obj): Remove.
14701 (xfaces.obj): Add.
14702
14703 2000-03-03 Jason Rumney <jasonr@gnu.org>
14704
14705 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
14706 correct parameters.
14707
14708 2000-03-03 Ken Raeburn <raeburn@gnu.org>
14709
14710 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
14711 standard ELF definitions here if the system header does not.
14712
14713 2000-03-03 Gerd Moellmann <gerd@gnu.org>
14714
14715 * xterm.c (PER_CHAR_METRIC): Removed.
14716 (x_per_char_metric_1, x_default_char): New functions.
14717 (x_per_char_metric): If font's default char is invalid, return
14718 metrics of a suitably chosen usable default char.
14719 (x_draw_glyph_string_foreground): If font has an invalid default
14720 char, replace occurrences of unprintable chars with a suitably
14721 chosen usable default char.
14722
14723 2000-03-02 Gerd Moellmann <gerd@gnu.org>
14724
14725 * xterm.c (note_mouse_highlight): Return quickly if frame's
14726 glyph matrices have been freed.
14727
14728 * dispnew.c (free_glyphs): Block input while freeing matrices.
14729
14730 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
14731
14732 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
14733 Use x_free_colors.
14734
14735 * dispextern.h (x_free_colors): Add prototype.
14736
14737 * xfaces.c (x_free_colors): New function.
14738 (unload_color, free_face_colors): Use it.
14739
14740 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
14741
14742 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
14743
14744 * window.c [MSDOS]: Include msdos.h.
14745
14746 2000-03-02 Dave Love <fx@gnu.org>
14747
14748 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
14749
14750 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
14751 set C_OPTIMIZE_SWITCH for gcc.
14752
14753 2000-03-02 Kenichi Handa <handa@etl.go.jp>
14754
14755 * coding.c (coding_save_composition): Be sure to allocate
14756 composition data area in coding even if there's no composition in
14757 the current run.
14758
14759 2000-03-01 Jason Rumney <jasonr@gnu.org>
14760
14761 * w32term.c: Equivalent changes to those made to xterm.c on
14762 2000-02-25 and 2000-02-24.
14763
14764 * w32fns.c: Equivalent changes to those made to xfns.c on
14765 2000-02-25 and 2000-02-21.
14766
14767 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
14768 correct line-end convention is followed.
14769
14770 * w32menu.c [HAVE_BOXES]: Remove #undef.
14771 (single_keymap_panes): Remove code for simulating checkmarks.
14772 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
14773 Remove code for drawing simulated checkmarks.
14774 (w32_menu_show): make unibyte help string correctly.
14775 (add_menu_item): draw standard Windows checkmarks. Draw radio
14776 buttons as radio buttons if possible.
14777
14778 2000-03-01 Gerd Moellmann <gerd@gnu.org>
14779
14780 * sysdep.c (start_of_text): Don't define this function for NetBSD
14781 with ELF.
14782
14783 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
14784 Don't define.
14785 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
14786 (LINKER): Don't undef if __NetBSD__ is defined.
14787
14788 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
14789
14790 * fileio.c [__NetBSD__]: Define `unix'.
14791
14792 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
14793
14794 2000-02-29 Gerd Moellmann <gerd@gnu.org>
14795
14796 * atimer.c (start_atimer): Don't abort when timers are stopped.
14797 (append_atimer_lists): New function.
14798 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
14799 arbitrary lists of stopped and running atimers.
14800
14801 * atimer.c (cancel_atimer): Handle canceling an atimer when
14802 some timers are stopped.
14803
14804 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
14805 after canceling it.
14806
14807 * fns.c (maybe_resize_hash_table): Handle case of new size
14808 coming out as being the same as old size.
14809
14810 2000-02-27 Jason Rumney <jasonr@gnu.org>
14811
14812 * makefile.nt: Add atimer.h to dependencies.
14813 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
14814 * w32console.c: Only disable window system features for dispextern.h
14815 (initialize_w32_display): Build a display info for the console.
14816 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
14817 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
14818 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
14819 as 2 button mice.
14820 * w32gui.h (struct W32FontStruct): Revert last change after change
14821 to xdisp.c.
14822 * w32menu.c (single_submenu): Set up help string.
14823 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
14824 (w32_dialog_show): Set up help string.
14825 * w32term.c (w32_display_info_for_display): Remove unused function.
14826 (w32_draw_bitmap): Use pre-built bitmaps.
14827 (w32_initialize_display_info): New function to initialize parts of
14828 display info that are common to both GUI and console frames.
14829 (w32_term_init): Use w32_initialize_display_info. Do not set
14830 Vw32_num_mouse_buttons here, as it is not called for console
14831 frames. Build bitmaps for indicating truncated lines etc.
14832 (x_delete_display): Destroy pre-built bitmaps.
14833 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
14834 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
14835
14836 2000-02-27 Dave Love <fx@gnu.org>
14837
14838 * lisp.h: Add a bunch of prototypes.
14839
14840 2000-02-26 Kenichi Handa <handa@etl.go.jp>
14841
14842 * keyboard.c (read_char): Set `usec' correctly.
14843
14844 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
14845
14846 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
14847 `lambda', set reg[RRR] to the map index.
14848 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
14849 reg[RRR] to 0. Otherwise, set it to -1.
14850
14851 2000-02-25 Gerd Moellmann <gerd@gnu.org>
14852
14853 * emacs.c (main): Remove code snippet commented out with `//'.
14854
14855 2000-02-25 Richard M. Stallman <rms@gnu.org>
14856
14857 * fileio.c (Ffile_symlink_p): If result starts with a `/'
14858 and contains a `:', prepend `/:'.
14859
14860 * window.c (select_window_1): If selected_window is nil,
14861 don't "swap out" the buffer's point.
14862 (Fset_window_configuration): Set selected_window to nil
14863 before calling Fselect_window.
14864 (unshow_buffer): Don't set point in buffer from window's point
14865 if another more recently selected window also shows the buffer.
14866
14867 2000-02-25 Gerd Moellmann <gerd@gnu.org>
14868
14869 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
14870
14871 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
14872 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
14873 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
14874 New variables.
14875 (DEFAULT_BUSY_CURSOR_DELAY): New define.
14876 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
14877 (hide_busy_cursor): New functions.
14878 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
14879
14880 * minibuf.c (read_minibuf): Cancel busy-cursor.
14881
14882 * keyboard.c (command_loop_1): Call start_busy_cursor before
14883 Fcommand_execute and cancel_busy_cursor after it.
14884 (timer_check): Remove busy-cursor code.
14885 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
14886 cursor timer.
14887
14888 * process.c (wait_reading_process_input): Remove busy-cursor code.
14889
14890 * eval.c (Fsignal): Call cancel_busy_cursor instead of
14891 Fx_hide_busy_cursor.
14892
14893 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
14894 Remove prototyoes.
14895 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
14896
14897 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
14898
14899 * xterm.c (XTread_socket): Remove busy-cursor code.
14900
14901 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
14902 (build_frame_matrix_from_leaf_window): Put code handling
14903 glyph row's not being a slice of a frame row in #if 0.
14904 (sync_window_with_frame_matrix_rows): New function.
14905 (frame_row_to_window): New function.
14906 (mirror_line_dance): Handle copies between windows.
14907
14908 * lread.c (Fload): Use `xfree' instead of `free'.
14909 (init_obarray): Use `xmalloc' instead of `malloc'.
14910
14911 * window.c (Fset_window_buffer): Set WINDOW to the window
14912 after decoding.
14913 (coordinates_in_window): Take frame's internal border width
14914 into account.
14915
14916 2000-02-24 Gerd Moellmann <gerd@gnu.org>
14917
14918 * xterm.c (x_display_and_set_cursor): Display cursor of
14919 non-selected windows depending on the setting of
14920 cursor_in_non_selected_windows.
14921
14922 * xdisp.c (cursor_in_non_selected_windows): New variable.
14923 (syms_of_xdisp): DEFVAR_BOOL it.
14924
14925 2000-02-23 Gerd Moellmann <gerd@gnu.org>
14926
14927 * data.c (Fstring_to_number): If number is greater than what
14928 fits into an integer, return a float.
14929
14930 * eval.c (specbind): Remove references to
14931 keyword_symbols_constant_flag.
14932
14933 * data.c (keyword_symbols_constant_flag): Removed.
14934 (Fmakunbound, set_internal, syms_of_data): Remove references to
14935 keyword_symbols_constant_flag.
14936
14937 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
14938
14939 2000-02-23 Kenichi Handa <handa@etl.go.jp>
14940
14941 * syntax.c (multibyte_syntax_as_symbol): New variable.
14942 (syms_of_syntax): Declare it as a Lisp variable.
14943 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
14944 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
14945 nonzero, treat all multibyte characters as symbol.
14946 (init_syntax_once): Give syntax `word' to all multibyte characters.
14947
14948 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
14949
14950 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
14951 a deleted frame.
14952
14953 2000-02-21 Gerd Moellmann <gerd@gnu.org>
14954
14955 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
14956
14957 * xfns.c (x_window_to_frame, x_any_window_to_frame)
14958 (x_non_menubar_window_to_frame): Check the busy-cursor window.
14959
14960 2000-02-21 Dave Love <fx@gnu.org>
14961
14962 * frame.c (Vmouse_position_function): New variable.
14963 (Fmouse_position): Use it.
14964 (syms_of_frame): Install it.
14965
14966 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
14967
14968 2000-02-20 Gerd Moellmann <gerd@gnu.org>
14969
14970 * fileio.c (Finsert_file_contents): Unbind the binding of
14971 standard-output done by temp_output_buffer_setup.
14972
14973 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
14974 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
14975 (specbind, unbind_to): Handle most common case of non-constant
14976 symbol with trivial value specially.
14977
14978 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
14979
14980 2000-02-20 Richard M. Stallman <rms@gnu.org>
14981
14982 * data.c (Fmake_variable_buffer_local): Doc fix.
14983 Init found_for_buffer to 0.
14984 (Fmake_variable_frame_local): If the variable has already
14985 been buffer-local, set the check_frame field.
14986
14987 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
14988
14989 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
14990 produced for CODING_MODE_LAST_BLOCK requires.
14991
14992 2000-02-18 Dave Love <fx@gnu.org>
14993
14994 * keyboard.c (echo_keystrokes): Remove declaration.
14995 (Vecho_keystrokes) New variable.
14996 (read_char, record_menu_key, read_key_sequence): Use it to allow
14997 use of float value.
14998 (syms_of_keyboard): Change Vecho_keystrokes declaration.
14999
15000 * lread.c: Undef feature selection macros before defining.
15001
15002 2000-02-18 Gerd Moellmann <gerd@gnu.org>
15003
15004 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
15005 for symbols other than the symbol in question.
15006
15007 2000-02-17 Dave Love <fx@gnu.org>
15008
15009 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
15010
15011 2000-02-17 Gerd Moellmann <gerd@gnu.org>
15012
15013 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
15014
15015 * alloc.c (enum mem_type): Compile unconditionally.
15016
15017 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
15018
15019 * xfaces.c (tty_defined_color): Don't return faulire indication
15020 for unspecified-fg and unspecified-bg pseudo-colors.
15021
15022 2000-02-17 Gerd Moellmann <gerd@gnu.org>
15023
15024 * alloc.c (mark_object): Don't mark symbol names in pure space.
15025 (gc_sweep): Don't unmark symbol names in pure space.
15026
15027 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
15028 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
15029 [GC_MARK_STACK]: New defines.
15030 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
15031 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
15032
15033 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
15034
15035 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
15036 allocate_buffer instead of xmalloc.
15037
15038 * alloc.c (toplevel): Include setjmp.h.
15039 (PURE_POINTER_P): New define.
15040 (enum mem_type) [GC_MARK_STACK]: New enumeration.
15041 (Vdead) [GC_MARK_STACK]: New variable.
15042 (lisp_malloc): Add parameter TYPE, call mem_insert if
15043 GC_MARK_STACK is defined.
15044 (allocate_buffer): New function.
15045 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
15046 (free_float) [GC_MARK_STACK]: Set type to Vdead.
15047 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
15048 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
15049 (MEM_NIL) [GC_MARK_STACK]: New define.
15050 (struct mem_node) [GC_MARK_STACK]: New structure.
15051 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
15052 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
15053 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
15054 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
15055 (mark_stack) [GC_MARK_STACK]: New functions.
15056 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
15057 (clear_marks): Removed.
15058 (gc_sweep): Set free conses' car, free floats' type, free
15059 symbols' function to Vdead. Use lisp_free to free buffers.
15060 (init_alloc_once): Initialize Vdead.
15061 (survives_gc_p): Return non-zero for pure objects.
15062
15063 * alloc.c: Add comments throughout the file.
15064
15065 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
15066 that unblocks alarms.
15067
15068 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
15069 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
15070 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
15071
15072 * frame.c (make_frame): Set frame initiallly to `garbaged'.
15073
15074 2000-02-17 Kenichi Handa <handa@etl.go.jp>
15075
15076 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
15077 avoid infinite error signaling. Allocate sufficient memory for
15078 eol_str in the case that eoltype is Lisp_Int.
15079
15080 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
15081
15082 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
15083 depends on the previous behavior.
15084
15085 2000-02-16 Gerd Moellmann <gerd@gnu.org>
15086
15087 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
15088
15089 2000-02-15 Gerd Moellmann <gerd@gnu.org>
15090
15091 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
15092
15093 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
15094 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
15095 write(2).
15096
15097 2000-02-15 Richard M. Stallman <rms@gnu.org>
15098
15099 * data.c (set_internal): Don't make variable buffer-local
15100 if within a let-binding for the same buffer.
15101 (let_shadows_buffer_binding_p): New function.
15102
15103 * eval.c (specbind): For buffer-local value,
15104 record the current buffer also.
15105 (unbind_to): Cope with that change.
15106
15107 2000-02-15 Gerd Moellmann <gerd@gnu.org>
15108
15109 * window.c (Fsave_window_excursion): Doc fix.
15110
15111 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
15112
15113 * syntax.c (back_comment): Make sure we only consider comment-starters
15114 of the relevant style and return -1 in case of a failure to find the
15115 beginning of the comment.
15116 (Fforward_comment): If back_comment fails, go back to the position just
15117 after the comment-end.
15118 (scan_lists): Add comment describing a very minor bug.
15119
15120 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
15121
15122 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
15123 `completion-regexp-list' in the docstring.
15124
15125 2000-02-14 Dave Love <fx@gnu.org>
15126
15127 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
15128
15129 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
15130
15131 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
15132 to Emacs' syntax. Also fix the comment about set/not-set meanings
15133 since Emacs syntax is not the value 0 any more.
15134 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
15135 since it's now part of RE_SYNTAX_EMACS.
15136
15137 2000-02-12 Dave Love <fx@gnu.org>
15138
15139 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
15140
15141 2000-02-12 Gerd Moellmann <gerd@gnu.org>
15142
15143 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
15144
15145 2000-02-12 Dave Love <fx@gnu.org>
15146
15147 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
15148
15149 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
15150 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
15151 * s/hpux.h: Don't define HAVE_VFORK.
15152
15153 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
15154
15155 * s/nextstep.h: Don't define HAVE_ALLOCA.
15156
15157 * config.in: Add vfork bits.
15158
15159 2000-02-12 Gerd Moellmann <gerd@gnu.org>
15160
15161 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
15162 unwind function to undo the effect of stopping atimers.
15163
15164 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
15165
15166 * atimer.c (stopped_atimers): New variable.
15167 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
15168 New functions.
15169
15170 * atimer.h (stop_other_atimers, run_all_atimers)
15171 (unwind_stop_other_atimers): Add function prototypes.
15172
15173 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
15174
15175 2000-02-11 Ken Raeburn <raeburn@gnu.org>
15176
15177 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
15178 library may depend on jpeg.
15179 (atimer.o): Depends on atimer.c.
15180
15181 2000-02-11 Kenichi Handa <handa@etl.go.jp>
15182
15183 * insdel.c (del_range_1): Call update_compositions.
15184 (del_range_both): Call update_compositions just once..
15185
15186 2000-02-10 Dave Love <fx@gnu.org>
15187
15188 * xfns.c (create_frame_xic): Fix initialization of automatic
15189 aggregates for pcc.
15190
15191 2000-02-09 Kenichi Handa <handa@etl.go.jp>
15192
15193 * ccl.c (CCL_MAKE_CHAR): New macro.
15194 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
15195 registers by CCL_MAKE_CHAR before calling translate_char.
15196 <CCL_TranslateCharacterConstTbl> Likewise.
15197
15198 2000-02-08 Dave Love <fx@gnu.org>
15199
15200 * lread.c (__EXTENSIONS__): Define.
15201
15202 2000-02-08 Gerd Moellmann <gerd@gnu.org>
15203
15204 * puresize.h (BASE_PURESIZE): Increase to 650000.
15205
15206 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
15207
15208 * msdos.c (XMenuActivate): Turn off the cursor after displaying
15209 the help message.
15210
15211 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
15212
15213 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
15214 md, mh, mb, mr, and me to the fake termcap entry.
15215
15216 2000-02-06 Ken Raeburn <raeburn@gnu.org>
15217
15218 * sound.c (sound_cleanup): Don't call device close routine if the
15219 function pointer is null.
15220
15221 2000-02-06 Andrew Innes <andrewi@gnu.org>
15222
15223 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
15224 around image definitions and prototypes.
15225 (gamma_correct) [WINDOWSNT]: New prototype.
15226
15227 * w32term.c (x_make_frame_visible): Replace call to
15228 input_poll_signal with poll_for_input.
15229
15230 * window.c [WINDOWSNT]: Include w32term.h.
15231
15232 * xdisp.c [WINDOWSNT]: Include w32term.h.
15233
15234 * makefile.nt: Add dependencies on w32gui.h.
15235 (OBJ1): Include atimer.obj.
15236 ($(BLD)\atimer.obj): New dependency rule.
15237
15238 * w32.c (sigmask): New function (does nothing).
15239 (sigunblock): Ditto.
15240
15241 * frame.c [WINDOWSNT]: Include w32term.h.
15242
15243 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
15244
15245 * lread.c (syms_of_lread): Fix literal newlines.
15246
15247 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
15248 the string constant limit (2048 bytes) in MSVC.
15249 (main): Ditto.
15250
15251 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
15252
15253 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
15254 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
15255 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
15256 dispatch the event.
15257
15258 2000-02-04 Dave Love <fx@gnu.org>
15259
15260 * fileio.c: Remove some unused vars.
15261 (_GNU_SOURCE): Define (for euidaccess).
15262
15263 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
15264
15265 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
15266 gcpro1, gcpro2.
15267 (read_minibuf): Deal with allow_props correctly.
15268
15269 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
15270
15271 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
15272
15273 2000-02-03 Ken Raeburn <raeburn@gnu.org>
15274
15275 * search.c (compile_pattern): If a cache entry has a nil regexp,
15276 fill in that entry instead of clobbering a previously cached
15277 string regexp.
15278
15279 2000-02-02 Ken Raeburn <raeburn@gnu.org>
15280
15281 * puresize.h (BASE_PURESIZE): Increase to 610000.
15282
15283 2000-02-02 Gerd Moellmann <gerd@gnu.org>
15284
15285 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
15286 can GC.
15287
15288 2000-02-02 Kenichi Handa <handa@etl.go.jp>
15289
15290 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
15291 instead of incrementing ic directly.
15292 <CCL_WriteExprConst> Likewise.
15293 <ccl_set_expr>: Set ic to jump_address.
15294
15295 * fileio.c (e_write): Fix the handling of
15296 CODING_FINISH_INSUFFICIENT_SRC.
15297
15298 2000-02-01 Dave Love <fx@gnu.org>
15299
15300 * editfns.c (Fpropertize): Doc fix.
15301
15302 * process.c (Fstart_process): Doc fix.
15303
15304 * eval.c: Fix various doc strings not to duplicate information
15305 from help-manyarg-func-alist.
15306
15307 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
15308
15309 * doc.c (Vhelp_manyarg_func_alist): New variable.
15310 (Fdocumentation): Use it.
15311 (syms_of_doc): Define it.
15312
15313 2000-01-31 Gerd Moellmann <gerd@gnu.org>
15314
15315 * xterm.c (xim_open_dpy): Remove unused local variable.
15316
15317 * emacs.c (USAGE): Use term `display options' instead of `X options'.
15318
15319 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
15320 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
15321
15322 * fns.c (sweep_weak_table): New function.
15323 (sweep_weak_hash_tables): Use it. Keep on marking until there
15324 is no more change.
15325
15326 2000-01-30 Gerd Moellmann <gerd@gnu.org>
15327
15328 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
15329 that XTread_socket does not crash by trying to call XNoOp on a
15330 closed display.
15331
15332 2000-01-30 Jason Rumney <jasonr@gnu.org>
15333
15334 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
15335 Change selected_frame to SELECTED_FRAME ().
15336 (w32_console_mouse_position): Remove #ifndef MULE from around
15337 `insist' parameter.
15338
15339 * makefile.nt: Remove dosfns.obj.
15340
15341 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
15342
15343 * w32fns.c (w32_defined_color): Check for valid frame before
15344 applying gamma correction. Eliminate dependency on frame elsewhere.
15345 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
15346 (w32_to_x_font): Use resx and resy not height_in and width_in.
15347 (x_to_w32_font): Doc fix.
15348 (xlfd_strip_height): New function to strip and return font height.
15349 (w32_font_match): Compare height separately from rest of xlfd
15350 spec, using xlfd_strip_height.
15351
15352 * w32term.c (w32_term_init): Swap resx and height_in, resy and
15353 width_in. Use w32_defined_color in place of defined_color.
15354
15355 * w32faces.c: Merge more of DOS and X specifics in preparation for
15356 merge with xfaces.c.
15357 (defined_color): Remove FIXME comment.
15358 (tty_color_name): Provide w32-specific function.
15359 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
15360
15361 * w32console.c (turn_on_face, turn_off_face): Removed.
15362 (w32_face_attributes): New function.
15363 (Global_variables): Reduce scope where possible.
15364 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
15365 fill attribute.
15366 (hl_mode): Don't modify text attributes.
15367 (write_glyphs): Don't do anything if len <= 0. Use
15368 w32_face_attributes to get attributes for drawing. Write
15369 terminating codes using char_attr_normal.
15370 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
15371 (update_begin, update_end): Likewise.
15372 (vga_stdcolor_name): New function.
15373 (initialize_w32_display): Remove char_attr_reverse and char_attr.
15374 (Fset_screen_color): Remove char_attr_reverse.
15375
15376 2000-01-29 Gerd Moellmann <gerd@gnu.org>
15377
15378 * xfns.c (xic_set_preeditarea): Take window parameter and
15379 window-relative pixel-positions.
15380
15381 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
15382 is its frame's selected window.
15383 (xim_instantiate_callback): Likewise.
15384
15385 * xfns.c (x_create_im): Removed.
15386 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
15387 (supported_xim_styles): Renamed from supported_styles.
15388 (best_xim_style): Renamed from best_style.
15389 (create_frame_xic): Renamed from xic_create_frame.
15390 (free_frame_xic): Renamed from xic_destroy_frame.
15391
15392 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
15393
15394 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
15395 our frames, call XFilterEvent with 2nd parameter `None'.
15396 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
15397 returning XBufferOverflow.
15398 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
15399 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
15400 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
15401 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
15402 (xim_initialize, xim_close)
15403 [HAVE_X_I18N && HAVE_X11R6]: New functions.
15404 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
15405 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
15406 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
15407
15408 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
15409 and `xim_styles'.
15410 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
15411 `xic_style' and `xic_xfs'.
15412 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
15413 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
15414 (FRAME_XIM): Removed.
15415
15416 * xfns.c (supported_styles): New variable.
15417 (DEFAULT_STYLE, DEFAULT_FONT): New macros
15418 (xic_create_xfontset, best_style, xic_create_frame)
15419 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
15420 (xic_set_xfontset): New functions.
15421
15422 2000-01-28 Dave Love <fx@gnu.org>
15423
15424 * s/irix6-5.h: Revert last change after change to irix5-0.h.
15425
15426 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
15427
15428 2000-01-28 Gerd Moellmann <gerd@gnu.org>
15429
15430 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
15431 for *scratch* if it already existed.
15432
15433 * emacs.c (USAGE): New macro.
15434 (main): Use it to display usage information.
15435
15436 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
15437
15438 Support for the menu-help feature:
15439
15440 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
15441
15442 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
15443 part of the line to the termscript file.
15444 (IT_clear_to_end): Clear the entire line, not just its beginning.
15445 (menu_help_message, prev_menu_help_message): New variables.
15446 (IT_menu_make_room): Make room for the help_text member.
15447 (IT_menu_display): New argument disp_help; all callers changed.
15448 If disp_help is non-zero, store the help text of the active menu
15449 item in menu_help_message.
15450 (XMenuAddPane): Initialize the help_text member to NULL.
15451 (XMenuAddSelection): New argument help_text. Store it in the
15452 XMenu structure.
15453 (XMenuActivate): New argument help_callback. If the value of
15454 menu_help_message has changed since the last time, display the
15455 menu help message text while waiting for the mouse to move. Clear
15456 the echo area before exiting.
15457 (XMenuDestroy): Free the help_text member.
15458
15459 2000-01-27 Gerd Moellmann <gerd@gnu.org>
15460
15461 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
15462 XMenuAddSelection. Pass help callback to XMenuActivate.
15463 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
15464
15465 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
15466
15467 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
15468 and EMACS_SET_USECS.
15469
15470 2000-01-26 Dave Love <fx@gnu.org>
15471
15472 * editfns.c (Fchar_after, Fchar_before): Doc fix.
15473
15474 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
15475 an error may be signalled.
15476
15477 2000-01-26 Gerd Moellmann <gerd@gnu.org>
15478
15479 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
15480 LD_SWITCH_SYSTEM inherited from irix5-0.h.
15481
15482 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
15483
15484 2000-01-25 Gerd Moellmann <gerd@gnu.org>
15485
15486 * charset.c (Fstring): If there is a multibyte char among
15487 the args, always return a multibyte string.
15488
15489 2000-01-25 Gerd Moellmann <gerd@gnu.org>
15490
15491 * sysdep.c (sys_select): Turn atimers off and on instead of
15492 recording and restoring old alarm handler
15493
15494 * process.c (toplevel): Include atimer.h.
15495 (create_process_1): Rewritten.
15496 (create_process): Use atimers instead of alarm.
15497 (wait_reading_process_input) [hpux]: Turn atimers off instead
15498 of turning off SIGALRM.
15499 (wait_reading_process_input): Turn off atimers instead off
15500 calling stop_polling.
15501
15502 * emacs.c (main): Call init_atimer.
15503
15504 * keyboard.c (toplevel): Include systime.h and atimer.h.
15505 (polling_for_input): Removed because unused.
15506 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
15507 (poll_timer): New variable.
15508 (poll_for_input, poll_for_input_1): New functions.
15509 (start_polling, stop_polling): Rewritten.
15510
15511 * keyboard.h (polling_for_input): Removed.
15512
15513 * atimer.h, atimer.c: New files.
15514
15515 * Makefile.in (obj): Add atimer.o.
15516 (atimer.o): New target.
15517
15518 * blockinput.h (pending_atimers): Add extern declaration.
15519 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
15520
15521 * lisp.h (popup_activated_flag): Add extern declaration.
15522
15523 * xmenu.c (popup_activated_flag): Make externally visible.
15524 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
15525 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
15526
15527 * xterm.c (toplevel): Include atimer.h.
15528 (toolkit_scroll_bar_interaction): New variable.
15529 (Fxt_process_timeouts): Removed.
15530 (x_process_timeouts): New function.
15531 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
15532 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
15533 (x_make_frame_visible): Call poll_for_input_1 instead of
15534 input_poll_signal. Don't call alarm.
15535 (x_initialize): Install timer calling x_process_timeouts.
15536
15537 2000-01-24 Dave Love <fx@gnu.org>
15538
15539 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
15540 Don't use -cckr -- apparently not now necessary.
15541
15542 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
15543
15544 * msdos.c (IT_menu_display): Truncate long menu lines at the right
15545 screen boundary.
15546
15547 2000-01-23 Jason Rumney <jasonr@gnu.org>
15548
15549 * w32fns.c (w32_defined_color): Apply gamma correction before
15550 trying to map to the palette.
15551 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
15552 to w32_clear_rect.
15553
15554 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
15555 here. Callers changed to always pass real device context.
15556 (w32_draw_bitmap): Likewise.
15557 (w32_get_glyph_overhangs): Likewise.
15558 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
15559 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
15560 pfnSetScrollInfo and SetScrollRange.
15561 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
15562 back into MULE characters after decoding them.
15563 (x_get_glyph_face_and_encoding): Likewise.
15564 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
15565 GetCharABCWidthsW fails, since this is defined on Windows 9x.
15566 (x_produce_glyphs): Calculate per char metrics for a character
15567 that we know exists in default font when font_not_found_p is true.
15568
15569 2000-01-22 Jason Rumney <jasonr@gnu.org>
15570
15571 * makefile.nt (intervals.obj, composite.obj): New modules.
15572 (composite.h): Added as dependency where appropriate.
15573
15574 * w32gui.h (XGCValue): New struct for emulating X GCs.
15575
15576 * w32term.h (XCharStruct): New struct for emulating X.
15577
15578 * w32console.c (turn_on_face, turn_off_face): New functions.
15579 (change_line_highlight): New prototype for new redisplay.
15580 (write_glyphs): Support multibyte text. Support faces.
15581
15582 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
15583
15584 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
15585 throughout. struct frame * in place of FRAME_PTR.
15586 Skeleton support for images, toolbars, tooltips from xfns.c.
15587 (Fx_create_frame): Use system default for default scroll bar width.
15588 (w32_get_arg): Renamed from x_get_arg.
15589 (Fx_file_dialog): New function.
15590 (w32_list_fonts): Check cache before asking system.
15591 (Vw32_enable_synthesized_fonts): New variable.
15592 (Vw32_enable_italics): Obsolete, removed.
15593
15594 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
15595 Use SELECTED_FRAME macro.
15596
15597 * w32menu.c: Add skeleton support for help strings on menus.
15598 (add_menu_item): Native checkbox and radio support added, but not
15599 yet enabled due to bugs.
15600 (push_menu_item): Add parameters type, selection and help.
15601 Callers updated.
15602 Formatting changes to reduce unnecessary diffs with xmenu.c.
15603
15604 * w32select.c (Fw32_set_clipboard_data): Update call to
15605 find_charset_in_str.
15606
15607 * w32term.c: Complete rewrite for new redisplay based on new
15608 xterm.c with necessary sections merged back in from old w32term.c.
15609
15610 2000-01-21 Richard M. Stallman <rms@gnu.org>
15611
15612 * data.c (set_internal): Further fix in same criterion.
15613
15614 2000-01-20 Richard M. Stallman <rms@gnu.org>
15615
15616 * data.c (set_internal): Fix the criteria for whether
15617 to swap out the old cached binding.
15618
15619 2000-01-19 Dave Love <fx@gnu.org>
15620
15621 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
15622
15623 2000-01-18 Kenichi Handa <handa@etl.go.jp>
15624
15625 * regex.c (re_compile_fastmap): While checking a range table for
15626 `charset', skip flag bits for a character class correctly.
15627
15628 2000-01-17 Gerd Moellmann <gerd@gnu.org>
15629
15630 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
15631
15632 * xfns.c (x_window): Call lw_create_widget with new parameter list.
15633
15634 * widget.c (EmacsFrameSetCharSize): Change size of children first
15635 because of problems with main window geometry management under Lesstif.
15636
15637 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
15638 MENU_ITEMS_ITEM_.*.
15639 (MENU_ITEMS_ITEM_HELP): New enumerator.
15640 (push_menu_item): Add parameter HELP. Record help in menu_items.
15641 (single_menu_item, single_submenu, list_of_items): Call
15642 push_menu_item with new parameter.
15643 (single_submenu): Set help string in widget value.
15644 (menu_highlight_callback): New function.
15645 (set_frame_menubar): Call lw_create_widget with new
15646 parameter list.
15647 (xmenu_show, xdialog_show): Ditto.
15648
15649 2000-01-13 Gerd Moellmann <gerd@gnu.org>
15650
15651 * sound.c (Fplay_sound): Improve doc string.
15652
15653 2000-01-11 Richard M. Stallman <rms@gnu.org>
15654
15655 * lisp.h (set_internal): Enter the new arg.
15656
15657 * eval.c (specbind): Record buffer-local variables specially,
15658 indicating which buffer's binding was saved.
15659 (unbind_to): Restore buffer-local variables specially
15660 in the proper buffer.
15661
15662 * data.c (set_internal): New arg BUF.
15663
15664 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
15665 * data.c (Fset): Pass new arg to set_internal.
15666 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
15667
15668 2000-01-11 Gerd Moellmann <gerd@gnu.org>
15669
15670 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
15671
15672 2000-01-11 Richard M. Stallman <rms@gnu.org>
15673
15674 * minibuf.c (Ftry_completion): Doc fix.
15675
15676 2000-01-11 Gerd Moellmann <gerd@gnu.org>
15677
15678 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
15679 vector, too.
15680
15681 2000-01-11 Andreas Schwab <schwab@suse.de>
15682
15683 * coding.c (code_convert_region): Initialize total_skip.
15684
15685 2000-01-08 Dave Love <fx@gnu.org>
15686
15687 * eval.c (Fuser_variable_p): Check customizability too.
15688
15689 2000-01-07 Gerd Moellmann <gerd@gnu.org>
15690
15691 * minibuf.c (Fcompleting_read): Doc fix.
15692
15693 2000-01-05 Gerd Moellmann <gerd@gnu.org>
15694
15695 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
15696 -L /usr/local/lib.
15697
15698 * xfns.c (x_create_im): New function to set IM and IC of a frame.
15699 Check that input style is supported before trying to create an
15700 IC for it.
15701 (x_window): Call x_create_im.
15702
15703 2000-01-04 Gerd Moellmann <gerd@gnu.org>
15704
15705 * xfns.c (current_gif_memory_src): New variable.
15706 (gif_load): Record the address of the current memory source
15707 in current_gif_memory_src.
15708 (gif_read_from_memory): Use current_gif_memory_src.
15709
15710 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
15711 macros statement form.
15712
15713 * sound.c (struct sound): Renamed from struct sound_file.
15714 (struct sound): Add members `data' and `header_size'.
15715 (enum sound_attr): Add SOUND_DATA.
15716 (current_sound, current_sound_device): Variables renamed from
15717 sound_file and sound_device.
15718 (parse_sound): Parse :data.
15719 (parse_sound): Handle sound data in strings.
15720 (find_sound_type): Function renamed from find_sound_file_type.
15721 (wav_init, au_init): Fail if sound's header_size is smaller than
15722 needed header size.
15723 (wav_play, au_play): Play sounds from string data.
15724
15725 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
15726
15727 * lisp.h: Add prototype for allocate_string_data.
15728
15729 * alloc.c (Fgarbage_collect): Return number of live and free strings.
15730
15731 * alloc.c (mark_buffer): Remove code in #if 0.
15732 (gc_sweep): Ditto.
15733 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
15734 (strings_consed): New variable.
15735 (allocate_string): Set it.
15736 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
15737 (Fmemory_use_counts): Return strings_consed. Use Flist.
15738
15739 * alloc.c: General cleanup in comments etc. Remove conditional
15740 compilation for `standalone'.
15741
15742 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
15743
15744 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
15745 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
15746 (DONT_COPY_FLAG): Removed.
15747 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
15748 (struct sdata, struct sblock): New
15749 (struct string_block): Rewritten.
15750 (STRINGS_IN_STRING_BLOCK): New macro.
15751 (oldest_sblock, current_sblock, total_strings, total_free_strings)
15752 (large_sblocks, string_blocks, string_free_list): New variables.
15753 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
15754 (init_strings): Rewritten.
15755 (allocate_string, allocate_string_data, compact_small_strings)
15756 (free_large_strings, sweep_strings): New functions.
15757 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
15758 (struct string_block_head, current_string_block)
15759 (first_string_block, large_string_blocks, STRING_FULLSIZE)
15760 (STRING_PAD): Removed.
15761 (make_uninit_multibyte_string, make_pure_string): Rewritten.
15762 (Fgarbage_collect): Don't set mark bit in large strings.
15763 (mark_object): Mark strings differently. Mark symbol names
15764 differently.
15765 (survives_gc_p): Test marked strings differently.
15766 (gc_sweep): Sweep strings differently, unmark strings in
15767 symbol names.
15768 (compact_strings): Removed.
15769
15770 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
15771
15772 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
15773 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
15774
15775 2000-01-04 Kenichi Handa <handa@etl.go.jp>
15776
15777 * fileio.c (Finsert_file_contents): Signal error if visiting file
15778 in a non-empty buffer.
15779
15780 * term.c (encode_terminal_code): Fix the previous change.
15781
15782 2000-01-03 Gerd Moellmann <gerd@gnu.org>
15783
15784 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
15785 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
15786
15787 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
15788
15789 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
15790
15791 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
15792 need to test for MSDOS frames.
15793
15794 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
15795
15796 * dosfns.c (unspecified_colors): Remove.
15797 (msdos_stdcolor_idx): Use global variables unspecified_fg and
15798 unspecified_bg.
15799 (msdos_stdcolor_name): Return strings for unspecified fore- and
15800 back-ground colors.
15801
15802 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
15803 (syms_of_xfaces): Remove their staticpro's.
15804 (tty_color_name): Return Lisp strings for unspecified fore- and
15805 back-ground colors.
15806 (Finternal_set_lisp_face_attribute): Remove the special treatment
15807 for Qunspecified_{f,b}g.
15808 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
15809
15810 2000-01-03 Gerd Moellmann <gerd@gnu.org>
15811
15812 * xdisp.c (reseat_at_next_visible_line_start): Position before
15813 newline only if ending up on a newline.
15814 (next_element_from_ellipsis): Return success. Handle case of
15815 displaying no ellipsis. Fix case of ellipsis defined in display table.
15816 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
15817 returns 0.
15818
15819 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
15820
15821 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
15822 (Fcolor_supported_p): Renamed from face-color-supported-p.
15823
15824 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
15825
15826 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
15827 list of colors renamed to tty-defined-color-alist.
15828 (tty_color_name): Pass the frame to tty-color-by-index.
15829 (realize_tty_face): tty-color-alist is now a function which
15830 accepts the frame as argument.
15831
15832 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
15833
15834 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
15835
15836 * term.c (insert_glyphs): Pass glyph, not &glyph, to
15837 encode_terminal_code.
15838
15839 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
15840
15841 * dispnew.c (mode_line_string): Support termcap frames as well.
15842
15843 2000-01-01 Gerd Moellmann <gerd@gnu.org>
15844
15845 * syntax.c (Fforward_word): Undo previous change.
15846
15847 * editfns.c (Fconstrain_to_field): Don't constrain if
15848 inhibit-field-text-motion is non-nil.
15849 (Fline_beginning_position): Undo previous change.
15850 (Fline_end_position): Ditto.
15851
15852 * syntax.c (Fforward_word): Notice field boundaries only if
15853 inhibit-field-text-motion is nil.
15854
15855 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
15856
15857 * editfns.c (Vinhibit_field_text_motion): New variable.
15858 (inhibit-field-text-motion): New DEFVAR_LISP.
15859 (Fline_beginning_position, Fline_end_position): Notice field
15860 boundaries only if inhibit-field-text-motion is nil.
15861
15862 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
15863 All calls adjusted.
15864 (x_build_heuristic_mask): Likewise.
15865 (xbm_load_image_from_file): Change error output.
15866 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
15867 (gif_load, gs_load, x_kill_gs_process): Ditto.
15868
15869 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
15870 color indices when accessing raster pixels.
15871 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
15872 one of :file or :data.
15873 (enum pbm_keyword_index): Add PBM_DATA.
15874 (pbm_format): Add :data.
15875 (pbm_image_p): Allow either :file or :data.
15876 (pbm_read_file): New function.
15877 (pbm_scan_number): Rewritten to read from string.
15878 (pbm_load): Support :data.
15879
15880 See ChangeLog.8 for earlier changes.
15881
15882 ;; Local Variables:
15883 ;; coding: iso-2022-7bit
15884 ;; End:
15885
15886 Copyright (C) 2001 Free Software Foundation, Inc.
15887 Copying and distribution of this file, with or without modification,
15888 are permitted provided the copyright notice and this notice are preserved.