(isearch-resume): New function.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
a95cb10a
GM
12000-07-26 Gerd Moellmann <gerd@gnu.org>
2
3 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
4 if called for a popup menu.
5 (xmenu_show): Store help string in widget values.
6
b4a12321
DL
72000-07-26 Dave Love <fx@gnu.org>
8
9 * syswait.h: Move some definitions.
10 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
11 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
12 perspicuous definitions.
13 (WTERMSIG): Fix bit pattern used.
14
13f5ad37
KH
152000-07-26 Kenichi Handa <handa@etl.go.jp>
16
17 * print.c (print_object): If vector printing is truncated, print
18 "..." to indicate it as well as the case of list printing.
19
070fe99c
GM
202000-07-25 Gerd Moellmann <gerd@gnu.org>
21
969065c3
GM
22 * xdisp.c (next_element_from_display_vector): Improve comments.
23
24 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
25 for the character code, and the rest for the face id as in 20.x.
26 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
27
28 * window.c (window_display_table): Cleaned up.
29
070fe99c
GM
30 * syntax.c (Fforward_word): Add last arg nil in call of
31 Fconstrain_to_field.
32
bad77ef7
EZ
332000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
34
969065c3 35 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
36 identical but for the letter-case, don't call
37 barf_or_query_if_file_exists.
38
c28da489
MB
392000-07-25 Miles Bader <miles@gnu.org>
40
41 * editfns.c (find_field): Honor special `boundary' fields.
42 (Qboundary): New variables.
43 (syms_of_editfns): Initialize Qboundary.
44 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
45 Use scan_buffer instead of find_before_next_newline, because it
46 allows us to detect the boundary case where there's a newline at
47 the search limit.
48 * lisp.h (Fconstrain_to_field): Update external declaration.
49
e3c31fd5
GM
502000-07-24 Gerd Moellmann <gerd@gnu.org>
51
52 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
53 if that is nil.
c28da489 54
c66c29a2
DL
552000-07-24 Dave Love <fx@gnu.org>
56
57 * s/sunos4-0.h, s/sol2.h:
58 (LIBS_TERMCAP): Move from m/sparc.h.
59
60 * m/sparc.h (TERMINFO): Moved to system files (probably only
61 relevant for sunos4 judging by its vintage).
62 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
63 __arch64__.
64
fbe0a958
EZ
652000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
66
67 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
68 name to single_keymap_panes.
69
7d88e5c9
AS
702000-07-24 Andreas Schwab <schwab@suse.de>
71
72 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
73
e024b101
GM
742000-07-24 Gerd Moellmann <gerd@gnu.org>
75
76 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
77 parameters instead of using int parameters. Expect FN to accept
78 EMACS_INT parameters.
79 (display_echo_area, resize_echo_area_axactly, current_message)
80 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
81 with new argument list.
82 (resize_mini_window_1): New callback function.
83 (current_message_1, truncate_message_1, set_message_1): Change
84 parameter lists to the new format expected by
85 with_echo_area_buffer.
86
25c1a9ce
KH
872000-07-24 Kenichi Handa <handa@etl.go.jp>
88
89 * fontset.c (fontset_ref): Remove INLINE declaration.
90 (fontset_ref_via_base): Likewise.
91 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
92 to downcase.
93
7f987ac0
EZ
942000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
95
96 * msdos.c (IT_note_mouse_highlight): Process overlays in the
97 correct order of priority. If help echo was found in an overlay,
98 use that overlay as the object in which the help echo was found.
99
e2db3069
MB
1002000-07-22 Miles Bader <miles@gnu.org>
101
102 * textprop.c (Fprevious_single_char_property_change): The initial
103 property value should be from the position preceding POSITION, not
104 following it.
105
5e3203e4
EZ
1062000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
107
108 * coding.c (syms_of_coding): Doc fix for
109 inhibit-iso-escape-detection.
110
62145073
GM
1112000-07-21 Gerd Moellmann <gerd@gnu.org>
112
c20aeb83
GM
113 * xterm.c (note_mouse_highlight): Process overlays in the right
114 order of priority.
115
743934db
GM
116 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
117
118 * xterm.c (note_mouse_highlight): If help-echo was found in an
119 overlay, use that overlay as the object in which the help was
120 found.
121
d1dc7e43
GM
122 * window.c (foreach_window_1): Fix typo reversing an if-condition.
123
62145073
GM
124 * window.c (foreach_window): Instead of a fake variable argument
125 list, take one USER_DATA argument.
126 (foreach_window_1): Likewise, and call callback functions with two
127 args, the window and USER_DATA.
128 (struct check_window_data): New struct.
129 (check_window_containing): Use it.
130 (window_from_coordinates): Set up a struct check_window_data for
131 foreach_window.
132 (add_window_to_list, freeze_window_start): Change parameters
133 according to new calling convention.
134
135 * window.h (foreach_window): Change prototype.
136
137 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
138
1392000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
140
141 * xmenu.c (menu_help_callback): Call show_help_echo with
142 additional arguments OBJECT and POS.
143
11270583
KH
1442000-07-21 Kenichi Handa <handa@etl.go.jp>
145
07b14857
KH
146 * data.c (Faset): Allow storing any multibyte character in a
147 string. Convert unibyte string to multibyte if necessary.
148
11270583
KH
149 * xfns.c (x_encode_text): New function.
150 (x_set_name): Use x_encode_text.
151 (x_set_title): Likewise.
152
153 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
154
155 * xterm.h (x_encode_text): Add prototype.
156
bc75b4fd
DL
1572000-07-20 Dave Love <fx@gnu.org>
158
159 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
160 xfree, not free.
161
48c14970
EZ
1622000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
163
164 * msdos.c (help_echo_window): New variable.
165 (syms_of_msdos): Initialize and staticpro it.
166 (IT_note_mode_line_highlight): Set help_echo_window.
167 (IT_note_mouse_highlight): Ditto.
168 (dos_rawgetc): Store help_echo_window in the second event produced
169 for HELP_EVENTs.
170
171 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
172 Record the object that generated the help echo and the position of
173 that object in help_echo_object and help_echo_pos. Record that
174 some glyphs in a row are displayed in mouse-face.
175 (IT_update_begin): Don't clear mouse highlight unless one of the
176 enabled glyph rows is marked as being displayed in mouse-face.
177 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
178 and position recorded in help_echo_object and help_echo_pos to the
179 event queue.
180 (IT_menu_display): Accept a new argument PN: the pane number of
181 the current menu pane. Record the pane number and the item
182 number of the item which has associated help string.
183 (XMenuActivate): Update the prototype for help_callback in
184 function declaration. Call IT_menu_display with the current menu
185 pane number as an additional argument. Call help_callback with
186 two additional arguments: the pane number and the item number of
187 the menu item associated with the help text.
188 (help_echo_object, help_echo_pos): New variables.
189 (syms_of_msdos): Initialize them and staticpro help_echo_object.
190
191 * msdos.h (XMenuActivate): Update prototype.
192
4279296d
GM
1932000-07-19 Gerd Moellmann <gerd@gnu.org>
194
47db06aa
GM
195 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
196 Add some more prototypes.
197
198 * xterm.c, xterm.h: Add some more prototypes.
199
200 * lisp.h (Fnext_single_char_property_change): Add prototype.
201
202 * dispnew.c (direct_output_for_insert): Remove confusing
203 outer local variable mouse_face_overwritten_p.
204 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
205
4279296d
GM
206 * alloc.c (allocate_string_data): Don't copy old string contents.
207
670acd62
KH
2082000-07-19 Kenichi Handa <handa@etl.go.jp>
209
210 * coding.c (code_convert_region): Delete text properties before
211 shrinking the conversion region.
212
7cea38bc
GM
2132000-07-18 Gerd Moellmann <gerd@gnu.org>
214
dc1cac59
GM
215 * dispnew.c (update_text_area): Write the whole row if it
216 has mouse-face in it.
217
85a8aca9
GM
218 * xfaces.c (face-alternative-font-family-alist): Remove
219 DEFVAR_LISP; staticpro instead.
220
7cea38bc
GM
221 * xmenu.c (menu_help_callback): Call show_help_echo with
222 new arguments.
223
224 * keyboard.c (show_help_echo): Add parameter WINDOW.
225 (read_char): Call show_help_echo with window extracted from Lisp
226 help event.
227 (gen_help_event): Add parameter WINDOW.
228
229 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
230
231 * xterm.c (help_echo_window): New variable.
232 (note_mouse_highlight, note_tool_bar_highlight): Set
233 help_echo_window.
234 (XTread_socket): Pass help_echo_window to gen_help_event.
235 (syms_of_xterm): Initialize and staticpro help_echo_window.
236
f8276b77
DL
2372000-07-18 Dave Love <fx@gnu.org>
238
239 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
240 systime.h.
241
088831a6
GM
2422000-07-18 Gerd Moellmann <gerd@gnu.org>
243
3d6cd763
GM
244 * alloc.c (allocate_string_data): If string had already data
245 assigned, copy old contents to new string data.
246
247 * coding.c (syms_of_coding): Fix typo in spelling of variable
248 `inhibit-iso-escape-detection'.
249
088831a6
GM
250 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
251
252 * Makefile.in: Add dependencies on dispextern.h.
253 (alloca.o): Don't define malloc and define EMACS_FREE instead of
254 `free'; both can conflict with system header files.
255
bc8a8d55
KH
2562000-07-18 Kenichi Handa <handa@etl.go.jp>
257
258 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
259 undefined.
260
069f5950
DL
2612000-07-18 Dave Love <fx@gnu.org>
262
263 * window.c (Fwindow_list): Declare arg `window'.
264
aa96c820
KH
2652000-07-18 Kenichi Handa <handa@etl.go.jp>
266
267 * coding.c (setup_coding_system): Don't override the explicitly
268 specified designations.
269
06be8d32
MB
2702000-07-15 Miles Bader <miles@gnu.org>
271
272 * editfns.c (char_property_eq, char_property_stickiness): Renamed
273 from `text_property_eq' and `text_property_stickiness', respectively.
274 (find_field, Fconstrain_to_field, char_property_eq)
275 (char_property_stickiness): Changed to call char-property functions
276 instead of text-property-only ones.
277
278 * textprop.c (Fnext_single_char_property_change): Made a subr (was
279 `next_single_char_property_change'). Do more error checking, and
280 cleanup limit behavior.
281 (Fprevious_single_char_property_change): New function.
282 (syms_of_textprop): Initialize new subrs.
283
284 * xdisp.c (display_prop_end, invisible_text_between_p):
285 Call Fnext_single_char_property_change instead of
286 next_single_char_property_change.
287
3fddcdc3
JR
2882000-07-15 Jason Rumney <jasonr@gnu.org>
289
290 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
291 after menu is finished with.
292 (add_menu_item): Only consider wv->title as a menu title.
293 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
294
295 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
296 null title.
297 (FONT_REGEXP): Remove unused macro, and its sub-components.
298 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
299
300 * w32term.c (help_echo_object, help_echo_pos): New variables.
301 (note_mode_line_highlight): Store additional information about the
302 help-echo in help_echo_object and help_echo_pos. Check both
303 `local-map' and `keymap' properties for changing the cursor
304 (note_mouse_highlight): Store additional information about the
305 help-echo in help_echo_object and help_echo_pos.
306 (note_tool_bar_highlight): Set help_echo_object to nil and
307 help_echo_pos to -1.
308 (w32_read_socket): Use gen_help_event instead of filling
309 input_events manually.
310 (syms_of_w32term): Staticpro help_echo_object.
311 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
312 set, arrange for a mouse-highlight redisplay in
313 XTframe_up_to_date.
314 (x_clear_mouse_face): New function.
315 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
316 (x_update_window_begin): No need to turn off the mouse
317 highlight here.
318 (show_mouse_face): Set the mouse_face_p flag of glyph rows
319 depending on whether they contain glyphs highlighted in
320 mouse-face.
321 (x_fill_stretch_glyph_string): Consume runs of stretch
322 glyphs instead of a single one.
323 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
324 with new argument list.
325 (x_set_glyph_string_gc): Make sure the face's GC is valid.
326 (x_append_glyph, x_append_composite_glyph)
327 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
328 changes in struct glyph starting 1999-12-27. See comments for
329 xterm.c on 2000-07-05.
330
178c5d9c
SS
3312000-07-14 Sam Steingold <sds@gnu.org>
332
333 * xfaces.c (realize_x_face): Fix the last patch:
334 check `default_face' before dereferencing.
335
6fe533f6
DL
3362000-07-14 Dave Love <fx@gnu.org>
337
069f5950 338 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 339
dd7b81cf
KH
3402000-07-14 Kenichi Handa <handa@etl.go.jp>
341
0693904a 342 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 343 default_face's fontset, not using the default fontset.
0693904a 344
dd7b81cf
KH
345 * coding.c (inhibit_iso_escape_detection): New variable.
346 (syms_of_coding): Make it a Lisp variable.
347 (detect_coding_iso2022): If inhibit_iso_escape_detection is
348 nonzero, ignore ISO2022's escape sequence.
349
d5aa31d8
GM
3502000-07-14 Gerd Moellmann <gerd@gnu.org>
351
e5acf0ca
GM
352 * alloca.c (malloc) [emacs]: Define as xmalloc.
353
bd23a692
GM
354 * xfns.c (Fx_show_tip): If frame parameters contain a position,
355 use that instead of the mouse position. Add parameters DX and DY.
356
357 * dispextern.h (Fx_show_tip): Adjust number of parameters
358 in prototype.
359
9662da0b
GM
360 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
361 if HELP is a function, call it with OBJECT and POS as parameters
362 to get the help to display.
363 (gen_help_event, kbd_buffer_store_help_event): New functions.
364 (kbd_buffer_get_event): Construct the Lisp help-event differently.
365 (read_char): Call show_help_echo with new parameters.
366
178c5d9c 367 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
368 Add prototypes.
369
370 * xterm.c (help_echo_object, help_echo_pos): New variables.
371 (note_mode_line_highlight): Store additional information about the
372 help-echo in help_echo_object and help_echo_pos. Check both
373 `local-map' and `keymap' properties for changing the cursor
374 (note_mouse_highlight): Store additional information about the
375 help-echo in help_echo_object and help_echo_pos.
376 (note_tool_bar_highlight): Set help_echo_object to nil and
377 help_echo_pos to -1.
378 (XTread_socket): Use gen_help_event instead of filling
379 input_events manually.
380 (syms_of_xterm): Staticpro help_echo_object.
381
382 * xmenu.c (menu_highlight_callback): Use
383 kbd_buffer_store_help_event instead of setting up and input_event
384 structure manually.
385
386 * xdisp.c (eval_form): GCPRO argument sexpr.
387 (call_function): New function.
388 (handle_single_display_prop): Use call_function and FUNCTIONP
389 instead of checking whether if font_height is a symbol and
390 using eval_form.
391
392 * eval.c (internal_condition_case_2): New function.
393
394 * lisp.h (FUNCTIONP): New macro.
395 (internal_condition_case_2, call_function): Add prototypes.
396
d5aa31d8
GM
397 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
398 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
399 Always set `arg' member of input_events.
400 (construct_menu_click): Unused function removed.
401
402 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
403
404 * w32term.c (construct_mouse_click, construct_mouse_wheel)
405 (construct_drag_n_drop, x_scroll_bar_handle_click)
406 (w32_read_socket): Always set `arg' member of input_events.
407
408 * keyboard.c (show_help_echo): Use eval_form. Add comment.
409
410 * lisp.h (eval_form): Add prototype.
411
412 * xdisp.c (eval_form): Make it externally visible.
413
0f1a9b23
GM
4142000-07-13 Gerd Moellmann <gerd@gnu.org>
415
416 * xterm.c (x_handle_tool_bar_click): Store the frame in the
417 frame_or_window slot of TOOL_BAR_EVENT input events instead of
418 consing. For prefix events, store the frame in the `arg' slot of
419 the event, otherwise store the key there.
420 (XTread_socket): Instead of consing, use the frame_or_window slot
421 of HELP_EVENTs for the frame, and the `arg' slot for the help
422 string.
423
424 * xmenu.c (menu_highlight_callback): Store help string in the
425 `arg' member of the input event; don't cons.
426 (menubar_selection_callback): Use the `arg' slot of input events
427 to queue additional information, instead of consing.
428
429 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
430
431 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
432 TOOL_BAR_EVENTs.
433 (w32_read_socket): Adapt to changes in HELP_EVENTs.
434
435 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
436 input events to queue additional information, instead of consing.
437
438 * keyboard.c (kbd_buffer_gcpro): Renamed from
439 kbd_buffer_frame_or_window. Now used for all Lisp objects
440 referenced from the input queue.
441 (kbd_buffer_store_event): Always use structure assignment for
442 copying input events. Record all Lisp objects referenced from
443 events in kbd_buffer_gcpro.
444 (kbd_buffer_get_event): Construct Lisp `help-echo' events
445 differently from input events. Test for prefix menu_bar_events
446 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
447 event in kbd_buffer_gcpro to nil.
448 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
449 frame_or_window is equal to its arg member as prefix events.
450 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
451 used by an input event to nil.
452 (init_keyboard): Use two times the size of the input queue
453 for kbd_buffer_gcpro.
454 (syms_of_keyboard): Likewise.
455
456 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
457 USER_SIGNAL_EVENT.
458
459 * termhooks.h (struct input_event): Add member `arg'.
460 (MENU_BAR_EVENT): Renamed from menu_bar_event.
461 (USER_SIGNAL_EVENT): Renamed from user_signal.
462
463 * xfaces.c (ASET): Remove definition.
464
465 * lisp.h (AREF, ASET, ASIZE): New macros.
466
467 * fontset.c (AREF, ASIZE): Remove definitions.
468
469 * fns.c (AREF): Remove definition.
178c5d9c 470
0f1a9b23
GM
471 * composite.c (AREF): Remove definition.
472
712eaef2
GM
4732000-07-12 Gerd Moellmann <gerd@gnu.org>
474
d8ee7803
GM
475 * dispnew.c (redraw_overlapped_rows): Add missing local.
476 (scrolling_window): Remove debug code.
477
712eaef2
GM
478 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
479 Before scrolling, turn off a mouse-highlight in the window
480 being scrolled.
481
482 * xterm.c (x_update_window_end): Add parameter
483 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
484 redisplay in XTframe_up_to_date.
485 (x_clear_mouse_face): New function.
486 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
487
488 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
489 current glyph row.
490 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
491 it when any row is written to that contains glyphs highlighted in
492 mouse-face.
493 (update_window): Call the window update end hook with new
494 parameter MOUSE_FACE_OVERWRITTEN_P.
495 (direct_output_for_insert): Give up if row contains mouse-face.
496
497 * dispextern.h (struct redisplay_interface): Add parameter
498 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
499 (clear_mouse_face): New function pointer member.
500
02010917
SM
5012000-07-11 Stefan Monnier <monnier@cs.yale.edu>
502
503 * syntax.c (back_comment): Use one switch rather than a few `if's.
504 Obey open_paren_in_column_0_is_defun_start.
505 When reverting to the `slow' method, try to nicely handle the case
506 of nested comments by checking that the comment-starter we found
507 does indeed match the comment-ender.
508 (scan_sexps_forward, scan_sexps_forward):
509 Ignore excessive opening parenthesis rather than throwing an error.
510
d76c03ea
GM
5112000-07-11 Gerd Moellmann <gerd@gnu.org>
512
513 * doc.c (Fsubstitute_command_keys): Handle case that a GC
514 in Fwhere_is_internal or get_keymap_1 relocates string contents.
515
516 * dispnew.c (direct_output_forward_char): Give up if currently
517 displaying a message instead of the minibuffer contents.
518
519 * xterm.c (x_update_window_begin): No need to turn off the mouse
520 highlight here.
521 (show_mouse_face): Set the mouse_face_p flag of glyph rows
522 depending on whether they contain glyphs highlighted in
523 mouse-face.
524
525 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
526 compare the mouse_face_p flags of both rows.
527
528 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
529
d55ead18
EZ
5302000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
531
532 * keyboard.c (show_help_echo): Accept additional parameter
533 ok_to_overwrite_keystroke_echo.
534 (read_char): Call show_help_echo with a zero
535 ok_to_overwrite_keystroke_echo argument.
536 * keyboard.h (show_help_echo): Update prototype of
537 show_help_echo.
538 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
539 ok_to_overwrite_keystroke_echo argument.
540 * w32menu.c (w32_menu_display_help): Call show_help_echo with
541 non-zero ok_to_overwrite_keystroke_echo argument.
542
df75b1a3
GM
5432000-07-10 Gerd Moellmann <gerd@gnu.org>
544
4b92c49a
GM
545 * xdisp.c (try_window_id): If changes are all below what is
546 displayed in the window, and point is in the window, we still
547 might have to find point on the display.
548
549 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
550 glyphs instead of a single one.
551 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
552 with new argument list.
553 (x_set_glyph_string_gc): Make sure the face's GC is valid.
554
df75b1a3
GM
555 * keymap.c (get_keymap_1): Add comment that this function can GC.
556 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
557 comment that functions can GC.
558 (Fset_keymap_parent): GCPRO arg KEYMAP.
559
4314cf3e
EZ
5602000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
561
562 * msdos.c (XMenuActivate): After exiting the menu, restore the
563 echo area message and erase it.
564
ab49ce15
KH
5652000-07-10 Kenichi Handa <handa@etl.go.jp>
566
567 * fontset.c (Ffontset_info): Make the return value more compatible
568 with that of Emacs 20.
569
090a072f
GM
5702000-07-07 Gerd Moellmann <gerd@gnu.org>
571
572 * eval.c (Fsignal): Handle case that backtrace_list is null.
573
f92de4a6
KH
5742000-07-07 Kenichi Handa <handa@etl.go.jp>
575
576 * ccl.c (Fccl_execute): Typo fixed.
577
dd8888a1
GM
5782000-07-06 Gerd Moellmann <gerd@gnu.org>
579
e5c81191 580 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 581
dd8888a1
GM
582 * window.c (Fwindow_list): Reverse list at the end.
583 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
584 means allow windows on OWINDOW's frame, only.
585 (window_loop): Simplified; use Fwindow_list.
586
587 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
588
485266d0
GM
5892000-07-05 Gerd Moellmann <gerd@gnu.org>
590
591 * xterm.c (XTread_socket): Increment handling_signal at the start,
592 decrement it at the end.
593
594 * eval.c (handling_signal): New variable.
595 (Fsignal): Abort if handling_signal is non-zero.
596
597 * lisp.h (handling_signal): External declaration.
178c5d9c 598
485266d0
GM
599 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
600
80fcd514
KR
6012000-07-05 Ken Raeburn <raeburn@gnu.org>
602
603 Sound support for NetBSD through "Linux emulation" support:
604 * config.in (HAVE_SOUNDCARD_H): Undef.
605 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
606 * Makefile.in (LIBSOUND): New variable.
607 (LIBES): Include it.
608 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
609 <soundcard.h>.
610 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
611 elsewhere.
612 (vox_open): Use DEFAULT_SOUND_DEVICE.
613 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
614
d5c5cddd
GM
6152000-07-05 Gerd Moellmann <gerd@gnu.org>
616
617 * print.c (print_error_message): If Vsignaling_function is set,
618 show it in *Messages*.
619
620 * lisp.h (Vsignaling_function): External declaration.
621
622 * eval.c (Vsignaling_function): New variable.
623 (Fsignal): Compute it.
624 (syms_of_eval): Staticpro it.
625
65171e3a
DL
6262000-07-05 Dave Love <fx@gnu.org>
627
628 * syswait.h: Use the autoconf recommended approach. Old code
629 #if'd out in case we need to revert.
630
178c5d9c 631 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 632
e2c46326
AI
6332000-07-05 Andrew Innes <andrewi@gnu.org>
634
635 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
636 when non-NULL instead of __morecore, to take account of buffer
637 memory. This also solves a problem with spurious memory warnings
638 on Windows.
639
640 * ralloc.c: Make real_morecore non-static.
641
642 * eval.c (internal_condition_case): Comment out abort if
643 interrupt_input_blocked is not zero.
644
645 * makefile.nt: Add support for `bootstrap' and related targets.
646 Include minimal debug info in emacs.exe in release build.
647 Remove all dependencies on lisp.h, and fixup some others.
648
649 * w32.c (init_environment): Install code from 20.7 for providing
650 default values for environment variables, based on the
651 executable's own location.
652 (map_w32_filename): Handle filenames that are longer than
653 MAX_PATH.
654 (sys_socket): Install socket inheritance bug fix from 20.7.
655
656 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
657 here via blockinput.h).
658
a027a91b
SM
6592000-07-05 Stefan Monnier <monnier@cs.yale.edu>
660
e4b31601
SM
661 * w32menu.c (w32_menu_display_help):
662 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
663
664 * keyboard.h (show_help_echo): Declare.
665
666 * keyboard.c (show_help_echo): New function, extracted from read_char.
667 Feval its `msg' argument if it's a cons cell.
668 (read_char): Use it.
4cf8d9d5 669 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 670
178c5d9c 671 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 672 (note_tool_bar_highlight, XTread_socket):
178c5d9c 673 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
674 (dos_rawgetc):
675 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
676 (note_tool_bar_highlight, w32_read_socket):
677 Do not gratuitously ignore non-string `help-echo' properties.
678
88d75730
GM
6792000-07-05 Gerd Moellmann <gerd@gnu.org>
680
969f7e79
GM
681 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
682
71201b00
GM
683 * window.c (delete_all_subwindows): Reset Vwindow_list.
684
88d75730
GM
685 * xterm.c (x_append_glyph, x_append_composite_glyph)
686 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
687 changes in struct glyph starting 1999-12-27. Some bit-fields of
688 struct glyph were not set, which made glyphs unequal when compared
689 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
690 effects were the result. This also depended on the contents of
691 memory returned by xmalloc. If flickering happens again, activate
692 the code in clear_glyph_row that's in #if 0. If the flickering is
693 gone with that, chances are that it is caused by something
694 similar.
695
696 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 697
88d75730
GM
698 * dispextern.h: Add some comments.
699
700 * window.c (add_window_to_list): Add parameter LIST.
701 (window_list): Order list so that, for each frame, windows are
702 in canonical order, and so that frames appear in the list in
703 the order given by Vframe_list.
704 (next_window): Reverse the handling of NEXT_P.
705
53654733
GM
7062000-07-04 Gerd Moellmann <gerd@gnu.org>
707
87efd256
GM
708 * window.c (Vwindow_list): New variable.
709 (make_window, delete_window): Set Vwindow_list to nil.
710 (check_window_containing): New function.
711 (window_from_coordinates): Rewritten.
712 (add_window_to_list, window_list, candidate_window_p)
713 (decode_next_window_args, next_window): New functions.
714 (Fnext_window, Fprevious_window): Rewritten in terms of
715 next_window.
716 (Fwindow_list): New function.
717 (Fother_window): Cleaned up.
718 (foreach_window): Add a longer "variable argument list". Let
719 callback function return 0 to indicate that cycling over windows
720 should stop.
721 (foreach_window_1): Likewise.
722 (freeze_window_start): Return int.
723 (init_window): New function.
724 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
725
726 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
727 input_event with bzero.
728 (main): Call init_window.
729
53654733
GM
730 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
731 a menu filter.
732
4a8c194f
KH
7332000-07-04 Kenichi Handa <handa@etl.go.jp>
734
735 * composite.h (make_composition_value_copy): Extern it.
736
737 * composite.c (make_composition_value_copy): New function.
738
739 * editfns.c (Fformat): While copying text properties, make each
740 composition property value a copy.
741
742 * fns.c (concat): While copying text properties, make each
743 composition property value a copy.
744
831a6cb0
GM
7452000-07-03 Gerd Moellmann <gerd@gnu.org>
746
2f516940
GM
747 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
748
178c5d9c 749 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
750 marked already.
751
831a6cb0
GM
752 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
753 include those frames as candidates which have their focus
754 redirected to the minibuffer frame.
755
d9c4f922
SM
7562000-07-03 Stefan Monnier <monnier@cs.yale.edu>
757
758 * fns.c (Fputhash): Return `value' rather than nil.
759
3780bc22
GM
7602000-06-30 Gerd Moellmann <gerd@gnu.org>
761
97d176db
GM
762 * frame.c (next_frame): Don't check focus redirection in case
763 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
764 unless their focus is redirected, which contradicts the
765 specification of next-frame, and leads to infinite loops in
766 certain situations when cycling through windows with next-window.
767
dca9961d
KH
7682000-06-30 Kenichi Handa <handa@etl.go.jp>
769
770 * coding.c (code_convert_region): Even if the length of text is
771 zero, try to convert it if coding->type is coding_type_ccl.
772 (decode_coding_string, encode_coding_string): Likewise.
773
d5483ab1
GM
7742000-06-28 Gerd Moellmann <gerd@gnu.org>
775
af5c25e1 776 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 777 the display if windows_or_buffers_changed.
af5c25e1
GM
778
779 * dispnew.c (struct row_entry): New structure.
780 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
781 (row_table_size, old_lines, new_lines, old_lines_size)
782 (new_lines_size, run_pool, runs_size, runs): New variables.
783 (add_row_entry): New function.
784 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 785 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
786 holding them in local variables. Use a larger hash table whose
787 size depends on glyph matrix sizes. Don't use bzero to clear the
788 hash table; instead, clear used slots only.
789
790 * fns.c (next_almost_prime): Make it externally visible.
791
792 * lisp.h (next_almost_prime): Add prototype.
793
d5483ab1
GM
794 * s/isc4-0.h (sigunblock): Define.
795
796 * s/sco5.h (sigunblock): Define.
797
93e40f40
DL
7982000-06-27 Dave Love <fx@gnu.org>
799
800 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
801 (moved to osf5-0.h).
802 [!NOT_C_CODE]: Protect string.h stuff.
803
804 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
805 (sys_siglist, NSIG): Definitions moved here from osf1.h.
806
3c4b7685
GM
8072000-06-27 Gerd Moellmann <gerd@gnu.org>
808
97d176db 809 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
810 below the last line from the needed window height.
811
32cad0aa
SM
8122000-06-26 Stefan Monnier <monnier@cs.yale.edu>
813
814 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
815 (Fwidget_get): Use it.
816 (syms_of_fns): Defsubr it.
817
2c69ced2
GM
8182000-06-26 Gerd Moellmann <gerd@gnu.org>
819
178c5d9c 820 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
821 display info for XIM.
822 (xim_open_dpy): Likewise.
823 (xim_close_dpy): Don't free the display info's XIM.
824
825 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
826
827 * config.in (USE_XIM): New define.
828
3fc720e4
GM
829 * keymap.c (get_keyelt): For menu-items containing a `:filter
830 FILTER', apply FILTER to the menu-item's definition to get the
831 real definition to use.
832
833 * lisp.h (QCfilter): External declaration.
834
2c69ced2
GM
835 * xfns.c (Fimage_size): New function.
836 (syms_of_xfns): Defsubr it.
837
f978b2a2
AS
8382000-06-26 Andreas Schwab <schwab@suse.de>
839
840 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
841 Fstring_as_unibyte.
842
94cc7892
DL
8432000-06-25 Dave Love <fx@gnu.org>
844
845 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
846 tgetnum.
847
848 * Makefile.in (blockinput.h): Depend on atimer.h.
849 (atimer.h): Depend on systime.h.
850
851 * blockinput.h: Protect against multiple inclusion. Include
852 atimer.h.
853
854 * atimer.h: Protect against multiple inclusion. Include
855 systime.h.
856
857 * lisp.h (swap_in_global_binding): Declare.
858
b8c24556
KR
8592000-06-24 Ken Raeburn <raeburn@gnu.org>
860
861 * process.c (Fopen_network_stream): Turn off atimers for duration
862 of call to connect. (Patch from Gerd.)
863
8cf8560b
DL
8642000-06-23 Dave Love <fx@gnu.org>
865
511c7541
DL
866 * ralloc.c: Maybe include unistd.h
867
8cf8560b
DL
868 * emacs.c (setgrp): Undefine before defining.
869 (malloc_warning, set_time_zone_rule, index): Prototype.
870
871 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
872 HAVE_STRUCT_TIMEZONE.
873
874 * s/osf1.h: Move string.h hack here from alpha.h and make it
875 conditional.
876 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
877 _XOPEN_SOURCE.
878 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
879 (SOCKLEN_TYPE): Don't define.
880
881 * m/alpha.h: Remove string.h hack.
882
883 * s/osf5-0.h: New file.
884
885 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
886 include time.h, done by systime.h.
887 [__FreeBSD__]: Remove redundant includes.
888
3fc720e4 889 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
890 (delete_temp_file): Return Qnil to avoid warning.
891
892 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
893
894 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
895 HAVE_X_WINDOWS.
896
897 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
898
899 * composite.h (compose_text): Declare.
900
901 * xterm.c: Don't include sys/types.h unconditionally. Don't
902 protect its inclusion with !USG (following xmenu.c).
903
ea055732
GM
9042000-06-23 Gerd Moellmann <gerd@gnu.org>
905
906 * xfns.c (x_create_tip_frame): Initialize frame's colors like
907 in x_create_frame.
908
74b01b80
EZ
9092000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
910
911 * coding.c (decode_eol_post_ccl): Special handling for undecided
912 and inconsistent EOL types.
913
64f3a166
GM
9142000-06-22 Gerd Moellmann <gerd@gnu.org>
915
16cf31f7
GM
916 * xrdb.c (x_load_resources): Add default resource for scroll bar's
917 trough color and main window's background color.
918
178c5d9c 919 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
920 differently.
921
922 * xterm.h (Xt_app_con): External declaration.
923
924 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 925
486a103d
GM
926 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
927
64f3a166
GM
928 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
929 (handle_invisible_prop): Record the start of invisible text in
930 it->add_overlay_start.
931 (struct overlay_entry): Add member `overlay'.
932 (handle_overlay_change): Simplify.
933 (next_overlay_string): After having processed overlay strings at the
934 end of the buffer, record that fact in
935 it->overlay_strings_at_end_processed_p.
936 (compare_overlay_entries): If before- and after-strings come
937 from the same overlay, let before-strings come first.
938 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
939 (load_overlay_strings): Take it->add_overlay_start into account
940 when adding overlay strings.
941
942 * dispextern.h (struct it): Add member add_overlay_start.
943
bb746ea6
DL
9442000-06-22 Dave Love <fx@gnu.org>
945
946 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
947
948 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
949
a8f573f3
KH
9502000-06-22 Kenichi Handa <handa@etl.go.jp>
951
952 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
953 is greater than 0.
954
9f2bbc92
DL
9552000-06-21 Dave Love <fx@gnu.org>
956
178c5d9c 957 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 958
3ee5041c
SM
9592000-06-21 Stefan Monnier <monnier@cs.yale.edu>
960
961 * syntax.c (back_comment): Simplify string-parity counting (with
962 the added benefit of handling multiple string-styles as long as
963 they are not intertwined).
964 Jump to the slow code as soon as a comment starter is found in
965 a "string_lossage" position. Fixes the case: " /* " /* " */.
966
4c343001
DL
9672000-06-21 Dave Love <fx@gnu.org>
968
969 * Makefile.in: Use GETLOADAVG_LIBS.
970
971 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
972 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
973
e6365855
SM
9742000-06-20 Stefan Monnier <monnier@cs.yale.edu>
975
976 * syntax.c (describe_syntax): Recognize the `n'estable bit.
977 (Fforward_comment, scan_lists):
978 Check the comstyle of single-char comment-starters.
979 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
980 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
981 Check the comstyle of single-char comment-starters.
982 Clarify control-flow around the Scomment case.
e6365855 983
5700d2cc
DL
9842000-06-20 Dave Love <fx@gnu.org>
985
d355bd8a
SM
986 * fns.c (make_hash_table, maybe_resize_hash_table):
987 Cast arg of next_almost_prime.
5700d2cc 988
178c5d9c 989 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
990
991 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
992 and unistd.h.
993
4a27bdfb
GM
9942000-06-20 Gerd Moellmann <gerd@gnu.org>
995
a61d762c
GM
996 * keyboard.c (adjust_point_for_property): Check if display
997 property should be treated as intangible by looking at its
998 value.
999
178c5d9c 1000 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
1001 (display_prop_intangible_p): New functions.
1002
1003 * dispextern.h (display_prop_intangible_p): Add prototype.
1004
1005 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 1006
4a27bdfb
GM
1007 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
1008 argument to sigprocmask.
1009
1010 * s/sco5.h (sigblock): Redefined to pass a pointer as second
1011 argument to sigprocmask.
1012
1013 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
1014 sigprocmask_set, and pass a pointer to it to sigprocmask.
1015
1016 * sysdep.c (sigprocmask_set): New variable.
1017
1018 * fileio.c (make_temp_name): Don't use `%s' in string passed to
1019 report_file_error.
1020
427ec082
SS
10212000-06-20 Sam Steingold <sds@gnu.org>
1022
1023 * xrdb.c: Don't declare xmalloc, xrealloc.
1024
8972fe79 10252000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
1026
1027 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
1028 (re_comp): Cast gettext return value to avoid complaints when
1029 !HAVE_LIBINTL.
1030
074b6efe
DL
10312000-06-20 Dave Love <fx@gnu.org>
1032
f85c008a
DL
1033 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
1034 HAVE_GETTIMEOFDAY.
1035
5700d2cc 1036 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 1037
d355bd8a 1038 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
1039
1040 * m/alpha.h: Don't declare xmalloc, xrealloc.
1041
0af4f205
DL
1042 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
1043
1044 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
1045
1046 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
1047
1048 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
1049 HAVE_GETWD.
1050
074b6efe
DL
1051 * keyboard.h (poll_for_input_1): Declare.
1052
1053 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
1054
1055 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
1056
1057 * doprnt.c: Don't declare xmalloc, xrealloc.
1058
1059 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
1060 (getenv, ctime, getwd): Removed.
1061 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
1062
1063 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
1064 x_set_tool_bar_lines.
1065
1066 * config.in: Add HAVE_GETWD. Move some definitions above
1067 machine/system includes.
1068
68a5e97b
KH
10692000-06-20 Kenichi Handa <handa@etl.go.jp>
1070
95417e1e
KH
1071 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
1072
68a5e97b
KH
1073 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
1074 contain information about ENCODING.
1075
1076 * fontset.c (FONTSET_ASCII): Use the first element of char table
1077 for an ASCII font, not defalt slot.
1078 (fontset_ref_via_base): If FONTSET doesn't contain information for
1079 C, try the default fontset.
1080 (make_fontset): Don't copy the default fontset.
1081 (fontset_font_pattern): Likewise.
1082 (accumulate_font_info): If ELT is nil, use the corresponding
1083 element in the default fontset.
1084
3b4fa1b2
DL
10852000-06-19 Dave Love <fx@gnu.org>
1086
943e731c
DL
1087 * syntax.c (Fparse_partial_sexp): Doc fix.
1088
1089 * regex.h: Test PROTOTYPES as well as __STDC__.
1090
3b4fa1b2
DL
1091 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
1092 errno, strerror. Put text after #endif in comment.
1093
1094 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
1095 pcc).
1096
1097 * xterm.c (x_frame_of_widget): Likewise.
1098
cdf0357b
GM
10992000-06-19 Gerd Moellmann <gerd@gnu.org>
1100
1101 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1102 to Vfundamental_mode_abbrev_table.
1103
1104 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1105 bogus objects are marked. This slows down GC by ~80 percent, but
1106 it might be worth trying when debugging GC-related problems.
1107 This feature requires conservative stack marking to be enabled.
1108
1109 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1110 returns XLookupChars, reset `modifiers' to zero.
1111
998e9f8c
DL
11122000-06-19 Dave Love <fx@gnu.org>
1113
1114 * mktime.c: Unprotoized.
1115
18e21ce8 11162000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1117
1118 * data.c (set_internal): If variable is frame-local,
1119 store the new value immediately into the frame parameter alist.
1120
140c4ac6
KR
11212000-06-19 Ken Raeburn <raeburn@gnu.org>
1122
14358466
KR
1123 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1124 in the custom handler pointer.
1125
140c4ac6
KR
1126 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1127 value, or checks for CHAR_META can fail when Lisp_Object is a
1128 union type.
1129 * keymap.c (get_keyelt): Likewise.
1130
10d7bf84
KH
11312000-06-19 Kenichi Handa <handa@etl.go.jp>
1132
1133 * ccl.h (struct ccl_program): New member eol_type.
1134 (struct ccl_spec): New member cr_carryover.
1135
1136 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1137 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1138
1139 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1140 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1141 (decode_eol_post_ccl): New function.
1142 (decode_coding): Don't detect EOL format here for CCL based coding
1143 systems.
1144 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1145 decode_eol_post_ccl after running the CCL program.
1146 (code_convert_region): Don't detect EOL format here for CCL based
1147 coding systems.
1148 (decode_coding_string): Likewise.
1149
52e386c2
KR
11502000-06-18 Ken Raeburn <raeburn@gnu.org>
1151
1152 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1153 when treating it as an integer.
1154
1155 * coding.h (encode_coding_string): Declare.
1156
1157 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1158 it as an integer.
1159
1160 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1161 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1162 to be passed to get_local_map.
1163
1164 * sound.c (Fplay_sound): Don't call make_number on
1165 Frun_hook_with_args count argument.
1166
1167 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1168 for lisp objects in X event structure data field, when lisp
1169 objects are represented with unions.
1170 (x_scroll_bar_to_input_event): Ditto.
1171
b357b9d4
KR
11722000-06-16 Ken Raeburn <raeburn@gnu.org>
1173
1174 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1175 termination of string. Fix sense of test whether
1176 Vline_number_display_limit is an integer.
b357b9d4 1177
a871441d
GM
11782000-06-16 Gerd Moellmann <gerd@gnu.org>
1179
a9021acd
GM
1180 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1181 only if HAVE_X_WINDOWS.
1182
6344985d
GM
1183 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1184 of titles.
1185
427ec082 1186 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1187 out of bounds.
1188
228b083e
EZ
11892000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1190
1191 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1192 of its headers.
1193
c25b53a2
KH
11942000-06-15 Kenichi Handa <handa@etl.go.jp>
1195
1196 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1197 start of the while loop.
1198
a6981b11
GM
11992000-06-15 Gerd Moellmann <gerd@gnu.org>
1200
e9924e52
GM
1201 * atimer.c (alarm_signal_handler): Add forward declaration.
1202
a6981b11
GM
1203 * data.c (set_internal): Remove debug code.
1204
25fa6deb
GM
12052000-06-14 Gerd Moellmann <gerd@gnu.org>
1206
dce6b995
GM
1207 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1208
9f817ea4
GM
1209 * unexec.c (toplevel) [COFF]: Include coff.h.
1210
1211 * s/lynxos.h: New file.
1212
1213 * keymap.c (Fsingle_key_description): Enclose function key and
1214 event symbol names in angle brackets.
1215
8a4e3c0c
GM
1216 * xdisp.c (setup_echo_area_for_printing): Call
1217 message_log_maybe_newline if message_buf_print is not set.
1218
1219 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1220 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1221 function does something useful even when message_buf_print is
1222 already set.
1223
25fa6deb
GM
1224 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1225 variables.
1226 (ensure_echo_area_buffers): Initialize echo buffer's
1227 truncate lines setting to nil.
1228 (with_echo_area_buffer): Don't set the echo buffer's truncate
1229 lines setting here.
8a4e3c0c 1230 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1231 of message_truncate_lines.
1232 (resize_mini_window): Handle case that lines are truncated.
1233 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1234 message-truncate-lines.
1235
1236 * keyboard.c (read_char): Bind message-truncate-lines to t
1237 while displaying a help-echo.
1238
1239 * lisp.h (Qmessage_truncate_lines): External declaration.
1240
163dcff3
GM
12412000-06-13 Gerd Moellmann <gerd@gnu.org>
1242
1681ead6
GM
1243 * xdisp.c (Vline_number_display_limit): Renamed from
1244 line_number_display_limit.
1245 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1246 Extend documentation string. Initialize
1247 Vline_number_display_limit to nil meaning no limit.
1248 (decode_mode_spec): Use Vline_number_display_limit with its new
1249 meaning.
1250
163dcff3
GM
1251 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1252
18e21ce8 12532000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1254
1255 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1256
163dcff3
GM
1257 * xfns.c (x_set_frame_parameters): Comment fix.
1258
1259 * frame.c (store_frame_param): Call swap_in_global_binding if the
1260 variable's current binding was chosen based on this frame.
1261
1262 * data.c (swap_in_global_binding): New function.
1263
a704139d
EZ
12642000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1265
1266 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1267 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1268
9b6610db
EZ
12692000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1270
1271 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1272
c68833d2
JR
12732000-06-12 Jason Rumney <jasonr@gnu.org>
1274
1275 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1276
1277 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1278
1279 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1280
1281 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1282
ed1056b3
GM
12832000-06-12 Gerd Moellmann <gerd@gnu.org>
1284
1285 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1286 (syms_of_xfaces): Defsubr Sdump_colors.
1287 (x_free_colors): Don't treat b&w specially on default visual.
1288 (x_free_dpy_colors): New function.
1289 (free_face_colors): Don't check visual class; it's done
1290 in x_free_colors.
1291
1292 * xterm.c (x_frame_of_widget): New function.
1293 (x_alloc_nearest_color_for_widget): Use it.
1294 (x_copy_dpy_color): New function.
1295 (x_destroy_window): Free various colors.
1296
5050a2ef
KH
12972000-06-12 Kenichi Handa <handa@etl.go.jp>
1298
1299 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1300
1301 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1302
1303 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1304
1305 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1306
1307 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1308
fb1b041d
DL
13092000-06-11 Dave Love <fx@gnu.org>
1310
1311 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1312
ff96b5f4
EZ
13132000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1314
1315 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1316
db8eeecd
GM
13172000-06-11 Gerd Moellmann <gerd@gnu.org>
1318
ed1056b3 1319 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1320 to `XEvent *'.
1321
49b71c5f
KH
13222000-06-10 Kenichi Handa <handa@etl.go.jp>
1323
c479bd55
KH
1324 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1325 (regex_compile): Fix the code for handling the case of single byte
1326 char and multibyte char being mixed in a range within [...].
1327
ff6a65c2
KH
1328 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1329 and dst_multibyte members of coding.
1330
49b71c5f
KH
1331 * charset.c (update_charset_table): Update the table
1332 bytes_by_char_head.
1333 (init_charset_once): Initialize elements of bytes_by_char_head to
1334 1 except for leading codes for private charases.
1335
1336 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1337 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1338 sequence.
1339
9e80b57d
KR
13402000-06-09 Ken Raeburn <raeburn@gnu.org>
1341
1342 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1343 access the data it doesn't point to.
1344
f83fe4b4
GM
13452000-06-08 Gerd Moellmann <gerd@gnu.org>
1346
1347 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1348 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1349 event queue. This is necessary because Emacs otherwise won't
1350 perform a switch-frame to a new frame until some other event, for
1351 example a keystroke event, forces it to do so. This has various
1352 effects, one visible being that the cursor of a frame created with
1353 C-x 5 2 or switched to with a window manager key binding like
1354 A-TAB stays hollow because selected_window isn't on the newly
1355 focused frame until the switch-frame is performed.
1356
1357 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1358 generating a switch-frame event if necessary.
1359
1360 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1361
1362 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1363 it's an integer.
1364
0890801b
KH
13652000-06-08 Kenichi Handa <handa@etl.go.jp>
1366
1367 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1368 charset.
1369
173cbca8
GM
13702000-06-07 Gerd Moellmann <gerd@gnu.org>
1371
3091c2a6
GM
1372 * window.c (displayed_window_lines): Take empty lines at
1373 the bottom of a window into account.
427ec082 1374
f38952fe
GM
1375 * window.c (displayed_window_lines): New function.
1376 (Fmove_to_window_line): Use displayed_window_lines to determine
1377 the number of lines to move, instead of using the window's height.
1378
1379 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1380 to stop reading, even if the form read sets point to a different
1381 value when evaluated.
1382
427ec082 1383 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1384 put the cursor.
1385
6ba6c818
KH
13862000-06-07 Kenichi Handa <handa@etl.go.jp>
1387
1388 * fileio.c (e_write): Free composition data if stored in
1389 coding->cmp_data.
1390
5f1aea9a
GM
13912000-06-06 Gerd Moellmann <gerd@gnu.org>
1392
666852af
GM
1393 * xdisp.c (display_line): Set row's and iterator's
1394 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1395 Set cursor even if row ends in the middle of a character.
1396 (dump_glyph_row): Print values of new flags.
1397 (redisplay_window) <cursor movement in unchanged window>: When
1398 point has been moved forward, and PT is at the end of the cursor
1399 row, don't place the cursor in the next row if the cursor row ends
1400 in the middle of a character or at ZV.
1401
1402 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1403 (struct glyph_row): Add starts_in_middle_of_char_p and
1404 ends_in_middle_of_char_p.
1405 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1406 ends_in_middle_of_char_p flag.
1407 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1408
d13f3e2e
GM
1409 * term.c (append_glyph): Revert change of 2000-06-06.
1410
1411 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1412 padding glyph not fitting on line as whole character not
1413 fitting on line.
1414
5f1aea9a
GM
1415 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1416 this isn't true for images with `:ascent 100'.
1417
10cda9b0
KH
14182000-06-06 Kenichi Handa <handa@etl.go.jp>
1419
ed00559d
KH
1420 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1421 as modified if it is originally unmodified.
1422
10cda9b0
KH
1423 * term.c (encode_terminal_code): Change the way to check if
1424 terminal coding does any conversion.
1425 (append_glyph): Set glyph->pixel_width correctly.
1426
1427 * xdisp.c (display_line): While checking line continuation, pay
1428 attention to a padding glyph.
1429
1969fae2
GM
14302000-06-05 Gerd Moellmann <gerd@gnu.org>
1431
1432 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1433
162ccef4
DL
14342000-06-05 Dave Love <fx@gnu.org>
1435
f19f32dd
DL
1436 * xdisp.c: Include fontset.h.
1437
1438 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1439
1440 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1441
1442 * dispnew.c: Conditionally include term.h.
1443
1444 * coding.h: Declare code_convert_string_norecord.
1445
1446 * frame.h (struct frame): Use volatile unconditionally.
1447
1448 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1449
1450 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1451
1452 * systime.h: Protect against multiple inclusion.
1453 (timezone) [USG5_4]: Define as time_t.
1454
1455 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1456 (Foptimize_char_table, make_temp_name): Declare.
1457
1458 * Makefile.in (xdisp.o): Depend on fontset.h.
1459
1460 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1461
1462 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1463 (Foptimize_char_table, make_temp_name): Declare.
1464
427ec082 1465 * s/irix4-0.h:
162ccef4
DL
1466 * s/irix5-0.h:
1467 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1468
2082fe81
DL
14692000-06-02 Dave Love <fx@gnu.org>
1470
1471 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1472
dcf671d2
GM
14732000-06-02 Gerd Moellmann <gerd@gnu.org>
1474
1475 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1476 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1477 be freed.
1478
1479 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1480 glyph, use the ASCII NUL character to determine the face.
1481
d42122a3
DL
14822000-06-02 Dave Love <fx@gnu.org>
1483
1484 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1485 (VFORK_RETURN_TYPE): Remove.
427ec082 1486
d42122a3
DL
1487 * config.in: Add NO_MATHERR.
1488
dd432f16
DL
14892000-06-01 Dave Love <fx@gnu.org>
1490
90aa4ea8
DL
1491 * cmds.c (internal_self_insert): Don't check
1492 Vbefore_change_function, Vafter_change_function.
1493
1494 * insdel.c (signal_before_change, signal_after_change): Likewise.
1495
1496 * buffer.c (Vbefore_change_function, Vafter_change_function):
1497 Variables and their initializations deleted.
1498
2330c9d4
DL
1499 * callint.c (Fcall_interactively): Doc fix.
1500
dd432f16
DL
1501 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1502
bf9e8804
DL
15032000-05-31 Dave Love <fx@gnu.org>
1504
1505 * textprop.c: Revert last change -- duplicated.
1506
3694b4ab
GM
15072000-05-31 Gerd Moellmann <gerd@gnu.org>
1508
1509 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1510 in #if 0.
1511
1512 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1513
f14156cd
JR
15142000-05-31 Jason Rumney <jasonr@gnu.org>
1515
8119aab8
JR
1516 * search.c (Fre_search_forward, Fre_search_backward)
1517 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1518
f14156cd
JR
1519 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1520
4aab9be3
JR
15212000-05-30 Jason Rumney <jasonr@gnu.org>
1522
1523 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1524 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1525
1526 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1527 member.
1528
1529 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1530 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1531 expand a nil default_filename.
1532
1533 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1534 pointer to glyph_to_pixel_coords, not a frame.
1535
1536 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1537 coding.h to dependencies.
1538
1539 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1540
1541 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1542 window pointer to be consistent with w32term.c and xterm.c.
1543
1544 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1545 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1546 (Qline_spacing, Qcenter): New variables.
1547 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1548 (x_set_line_spacing): New function.
1549 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1550 macros.
1551 (x_specified_cursor_type): New function.
1552 (x_set_cursor_type): Use it.
1553 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1554 and icon strings.
1555 (validate_x_resource_name, x_get_resource_string): Measure lengths
1556 of external strings in bytes.
1557 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1558 GetTextExtentPoint32 with NULL title.
1559 (Fx_create_frame): Initialize Qline_spacing.
1560 (w32_load_system_font): Initialize font->double_byte_p.
1561 (x_to_w32_charset): Use Vw32_charset_info_alist.
1562 (Image, busy cursor, tooltip functions): Merged changes from
1563 xfns.c. Not yet functional on Windows.
1564
1565 * w32gui.h (W32FontStruct): Add double_byte_p member.
1566
1567 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1568 (emacs_button_translation): Use it.
1569 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1570 in `mask' to be set.
1571
1572 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1573 menu strings.
1574
1575 * w32term.c: Format and doc changes to bring closer to xterm.c.
1576 (w32_char_font_type): New enum.
1577 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1578 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1579 (w32_encode_char): New function.
1580 (x_encode_char): Removed.
1581 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1582 x_encode_char and w32_font_is_double_byte.
1583 (x_produce_image_glyph): Use image_ascent.
1584 (x_produce_glyphs): Use new version of w32_per_char_metric and
1585 handle NULL return value. Allow extra line spacing.
1586 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1587 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1588 w32_font_type member of glyph instead.
1589 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1590 (fast_find_position): Make sure not to consider rows not visible
1591 in the window.
1592 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1593 w32_menu_display_help with input blocked, as it can abort.
1594 (x_display_and_set_cursor): Choose cursor depending
1595 on buffer-local value of cursor_type.
1596 (x_draw_bar_cursor): Add parameter WIDTH.
1597
1598 * w32term.h (CP_DEFAULT): Define.
1599 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1600
10fc3187
GM
16012000-05-30 Gerd Moellmann <gerd@gnu.org>
1602
1603 * search.c (Fre_search_forward, Fre_search_backward)
1604 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1605
d0555360
KH
16062000-05-30 Kenichi Handa <handa@etl.go.jp>
1607
1608 * coding.c (detect_coding_iso2022): Fix code for checking
1609 CODING_CATEGORY_MASK_ISO_8_2.
1610
f1ad044f
SM
16112000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1612
1613 * regex.c (PREFETCH_NOLIMIT): New function.
1614 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1615
84ec3b4b
GM
16162000-05-29 Gerd Moellmann <gerd@gnu.org>
1617
66254a13
GM
1618 * syntax.c (find_defun_start): Move test for
1619 open_paren_in_column_0_is_defun_start outside of the loop.
1620
49e70dec
GM
1621 * xdisp.c (redisplay_window): Really switch buffers when
1622 displaying mode lines, and temporarily set selected_frame to the
1623 frame of the window that's redisplayed.
1624
84ec3b4b
GM
1625 * xfaces.c (free_realized_faces): Block/unblock input.
1626 (free_realized_multibyte_face): Ditto.
1627
869a3a14
DL
16282000-05-29 Dave Love <fx@gnu.org>
1629
1630 * textprop.c (Qkeymap): New variable.
1631 (syms_of_textprop): Intern it.
1632
1633 * keymap.c: Include intervals.h.
1634 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1635
1636 * Makefile.in (keymap.o): Depend on intervals.h.
1637
1638 * keyboard.c (menu_bar_items, tool_bar_items)
1639 (Fexecute_extended_command): Deal with `keymap' property.
1640 (read_key_sequence): Track map from `keymap' property as well as
1641 `local_map'.
1642
1643 * intervals.c (get_local_map): Extra arg to allow looking for
1644 `keymap' too.
1645
1646 * intervals.h (map_property): New enum.
1647 (get_local_map): Extra arg using it.
1648 (Qkeymap): Declare.
1649
84ec3b4b 1650 * lisp.h (get_local_map): Don't declare here.
869a3a14 1651
89d0c844
KH
16522000-05-29 Kenichi Handa <handa@etl.go.jp>
1653
1654 * Makefile.in (callproc.o): Depend on composite.h.
1655
1656 * callproc.c: Include composite.h.
1657 (Fcall_process): Handle composition correctly.
1658
1659 * coding.h (coding_allocate_composition_data): Extern it.
1660 (coding_restore_composition): Likewise.
1661
1662 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1663 yet allocated, finish decoding with result
1664 CODING_FINISH_INSUFFICIENT_CMP.
1665 (coding_allocate_composition_data): Make it non-static.
1666 (coding_restore_composition): Likewise.
1667
797a084a
EZ
16682000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1669
1670 * charset.c (syms_of_charset): Revert last change.
1671
cf872af5
EZ
16722000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1673
1674 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1675 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1676 Handa.
cf872af5 1677
5b1ae051
EZ
16782000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1679
1680 * charset.c (syms_of_charset): Set width of character sets
1681 eight-bit-control and eight-bit-graphic to 1 column.
1682
34ec9ebe
GM
16832000-05-26 Gerd Moellmann <gerd@gnu.org>
1684
1685 * config.in (HAVE_SPEED_T): New define.
1686
1687 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1688 `extern speed_t'.
1689
dd854dc2
DL
16902000-05-26 Dave Love <fx@gnu.org>
1691
1692 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1693
1694 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1695 (Fsubr_arity): New function.
1696 (syms_of_data): Install them.
1697
ba9f8f95
KH
16982000-05-26 Kenichi Handa <handa@etl.go.jp>
1699
0f3e0672
KH
1700 * charset.c (init_charset_once): Set the table bytes_by_char_head
1701 correctly.
1702
cebefb44
KH
1703 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1704 the default fontset to what Emacs uses by default.
0f3e0672
KH
1705 (check_registry_encoding): This function deleted.
1706 (Fset_fontset_font): Remove the adhoc condition for the default
1707 fontset. Allow cons in FONTNAME.
cebefb44 1708
0f3e0672
KH
1709 * fns.c (map_char_table): Ignore char-table entries for
1710 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1711
7a18af49
KR
17122000-05-25 Ken Raeburn <raeburn@gnu.org>
1713
1714 * emacs.c (main): Initialize keyboard syms before initializing
1715 window code, so face names are available.
1716
d2af47df
SM
17172000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1718
1719 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1720 of an anchor at the beginning of a shy-group.
1721
fc6a6a4e
GM
17222000-05-25 Gerd Moellmann <gerd@gnu.org>
1723
1724 * xdisp.c (handle_invisible_prop): Don't try to skip over
1725 invisible text if end of text is already reached.
1726
005f0d35
DL
17272000-05-25 Dave Love <fx@gnu.org>
1728
02513cdd
DL
1729 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1730
005f0d35
DL
1731 * coding.c (encode_eol): Add null statement after label.
1732
89f6ca4e
EZ
17332000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1734
1735 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1736 2000-05-20.
1737
a4e1759e
KH
17382000-05-25 Kenichi Handa <handa@etl.go.jp>
1739
1740 * ccl.c (ccl_driver): Fix previous change.
1741
eacfd7fe
KH
17422000-05-25 Kenichi Handa <handa@etl.go.jp>
1743
46ab33a9
KH
1744 * coding.c (run_pre_post_conversion_on_str): Set point to the
1745 beginning of buffer before calling coding->post_read_conversion.
1746 (decode_coding_string): Give correct args to
1747 run_pre_post_conversion_on_str.
1748 (encode_coding_string): Likewise.
1749
eacfd7fe
KH
1750 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1751 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1752 eight-bit-graphic correctly.
1753
f8569325
DL
17542000-05-24 Kenichi HANDA <handa@etl.go.jp>
1755
1756 * fileio.c (Finsert_file_contents): Even if a file is not found,
1757 execute codes for setting up coding system. Call
1758 after-insert-file-functions unconditionally.
1759
04545643
GM
17602000-05-24 Gerd Moellmann <gerd@gnu.org>
1761
1762 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1763 BSD_PGRPS are not defined.
1764
747d90ea
KH
17652000-05-24 Kenichi Handa <handa@etl.go.jp>
1766
1767 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1768 DESCRIPTION.
1769 (syms_of_charset): Avoid building same strings.
1770
716e3b88
GM
17712000-05-23 Gerd Moellmann <gerd@gnu.org>
1772
1773 * lread.c (Fload): Add a comment about the meaning of
1774 Vuser_init_file being t.
1775
1776 * puresize.h (BASE_PURESIZE): Increase to 675000.
1777
1778 * s/gnu-linux.h (setpgrp): Don't define it here because this
1779 prevents compilation on GNU/Linux systems with glib 2.2.
1780
1781 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1782 as setpgid.
427ec082 1783
9aeb39fa
EZ
17842000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1785
1786 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1787 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1788 version.
1789 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1790
29ced61b
KH
17912000-05-23 Kenichi Handa <handa@etl.go.jp>
1792
0574a2ed
KH
1793 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1794 unconditionally.
1795
3d80f24d
KH
1796 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1797
1798 * term.c (encode_terminal_code): Set coding->src_multibyte
1799 properly.
1800
29ced61b
KH
1801 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1802
d7e00792
KH
18032000-05-22 Kenichi Handa <handa@etl.go.jp>
1804
c9d80d38
KH
1805 * keyboard.c (read_char): Allow character codes 128..255 to be
1806 handled by input-method-function.
1807
d7e00792
KH
1808 * insdel.c (adjust_markers_for_replace): Fix previous change.
1809 (adjust_after_replace): If PREV_TEXT is nil, call
1810 adjust_markers_for_insert, not adjust_markers_for_replace.
1811
087121cc 18122000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1813
087121cc
GM
1814 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1815 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1816 [HAVE_GRANDPT]: Define.
1817 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1818
1819 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1820 like SYSV_PTYS.
1821
1822 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1823
1824 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1825
c9671f81
KH
18262000-05-20 Kenichi Handa <handa@etl.go.jp>
1827
1828 The following changes are to handle 8-bit characters in a
1829 multibyte buffer/string without facing with byte combining
1830 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1831 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1832
1833 * Makefile.in (fns.o): Depend on charset.h.
1834
1835 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1836 convert it to unibyte.
1837 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1838
1839 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1840 apparent char boundary.
1841 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1842 0x80..0x9F to/from multibyte form.
1843
1844 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1845 to unibyte.
1846
1847 * callproc.c (Fcall_process): Always encode an argument string if
1848 it is multibyte. Setup src_multibyte and dst_multibyte members of
1849 process_coding properly.
ce75fd23 1850
c9671f81
KH
1851 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1852 SPLIT_NON_ASCII_CHAR.
1853
1854 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1855 as is.
1856 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1857
1858 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1859 variables.
1860 (SPLIT_CHARACTER_SEQ): This macro deleted.
1861 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1862 valid.
1863 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1864 and eight-bit-graphic.
1865 (char_to_string): Likewise. Signal an error for too large
1866 character code.
1867 (char_printable_p): Return 0 for 8-bit characters.
1868 (update_charset_table): Update iso_charset_table only when a final
1869 character is non-negative.
1870 (find_charset_in_text): Renamed from find_charset_in_str.
1871 Arguments and return value changed. Callers changed.
1872 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1873 be -1 if CHARSET is used only internally.
1874 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1875 eight-bit-graphic.
1876 (Fcharset_after): Simplified.
1877 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1878 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1879 (multibyte_chars_in_text): Simplified by assuming there's no
1880 invalid multibyte sequence.
1881 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1882 str_as_unibyte): New functions.
1883 (Fstring): Simpified by assuming that byte combining never
1884 happens.
1885 (init_charset_once): Initialization for
1886 LEADING_CODE_8_BIT_CONTROL.
1887 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1888 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1889 eight-bit-control and eight-bit-graphic.
1890
1891 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1892 CHARSET_8_BIT_GRAPHIC): New macros.
1893 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1894 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1895 (CHARSET_REVERSE_CHARSET): Likewise.
1896 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1897 eight-bit-graphic.
1898 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1899 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1900 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1901 encounter an invalid multibyte sequence.
1902 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1903 sequence is always valid.
1904 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1905 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1906 macros.
1907 (CHAR_STRING): For 8-bit characters, call char_to_string.
1908 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1909 multibyte sequence is always valid.
1910 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1911 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1912 str_as_unibyte): Extern them.
1913 (BCOPY_SHORT): Fix a bug.
1914 (CHAR_LEN): This macro deleted. Callers changed to use
1915 CHAR_BYTES.
1916 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1917 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1918 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1919
bd4bde7f 1920 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1921 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1922 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1923 EMIT_BYTES): New macros.
1924 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1925 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1926 macros deleted.
1927 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1928 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1929 check the validity of multibyte sequence.
1930 (decode_coding_emacs_mule): New function.
1931 (encode_coding_emacs_mule): New macro.
1932 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1933 the source.
1934 (DECODE_ISO_CHARACTER): Just return a character code.
1935 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1936 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1937 EMIT_CHAR to produced decoded characters. Exit the loop only by
1938 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1939 block here.
1940 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1941 only position codes for an invalid character.
1942 (encode_designation_at_bol): Return new destination pointer. 5th
1943 arg DSTP is changed to DST.
1944 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1945 from the source by ONE_MORE_CHAR. Don't handle the case of last
1946 block here.
1947 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1948 macros deleted.
1949 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1950 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1951 TWO_MORE_BYTES to fetch a byte from the source.
1952 (encode_eol): Pay attention to coding->src_multibyte.
1953 (detect_coding, detect_eol): Preserve members src_multibyte and
1954 dst_multibyte.
1955 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1956 (encoding_buffer_size): Set magnification to 3 for all coding
1957 systems that require encoding.
1958 (ccl_coding_driver): For decoding, be sure that the result is
1959 valid multibyte sequence.
1960 (decode_coding): Initialize coding->errors and coding->result.
1961 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1962 and raw-text, always call decode_eol. Handle the case of last
1963 block here. If not coding->dst_multibyte, convert the resulting
1964 sequence to unibyte.
1965 (encode_coding): Initialize coding->errors and coding->result.
1966 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1967 and raw-text, always call encode_eol. Handle the case of last
1968 block here.
1969 (shrink_decoding_region, shrink_encoding_region): Detect cases
1970 that we can't skip data more rigidly.
1971 (code_convert_region): Setup src_multibyte and dst_multibyte
1972 members of coding. For decoding, if the buffer is multibyte,
1973 convert the source sequence to unibyte in advance. For encoding,
1974 if the buffer is multibyte, convert the resulting sequence to
1975 multibyte afterward.
1976 (run_pre_post_conversion_on_str): New function.
1977 (code_convert_string): Deleted and divided into the following two.
1978 (decode_coding_string, encode_coding_string): New functions.
1979 (code_convert_string1, code_convert_string_norecord): Call one of
1980 above.
1981 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1982 MAKE_NON_ASCII_CHAR.
1983 (Fset_terminal_coding_system_internal,
1984 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1985 and dst_multibyte members.
1986 (init_coding_once): Initialize iso_code_class with new enum
1987 ISO_control_0 and ISO_control_1.
1988
1989 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1990 devided into ISO_control_0 and ISO_control_1.
1991 (struct coding_system): New members src_multibyte, dst_multibyte,
1992 errors, and result. Delete member fake_multibyte.
1993 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1994 nonzero.
1995 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1996 nonzero.
1997
1998 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1999 (Faset): Likewise.
2000
2001 * editfns.c (Fformat): Be sure to convert 8-bit characters to
2002 multibyte form.
2003 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
2004 combining occurs.
2005 (Ftranspose_region): Delete codes for handling byte combining.
2006
2007 * fileio.c (Finsert_file_contents): Setup src_multibyte and
2008 dst_multibyte members of coding. On handling REPLACE on unibyte
2009 buffer, convert the result of decode_coding to unibyte. On
2010 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 2011 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
2012 multibyteness of the source (buffer or string).
2013
2014 * fns.c (concat): Handle 8-bit characters correctly.
2015 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
2016 unibyte in the result.
2017 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
2018 valid multibyte form in the result.
2019 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2020 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
2021 return -1, signal an error.
2022 (base64_encode_1): New arg MULTIBYTE. Get each character by
2023 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
2024 character is found, return -1.
2025 (Fbase64_decode_region): Delete codes for handling byte-combining.
2026 Treat each decoded byte as a unibyte character.
2027 (Fbase64_decode_string): Return unibyte string.
2028 (Fcompare_strings, concat, string_byte_to_char): Use
2029 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
2030 FETCH_STRING_CHAR_ADVANCE.
2031 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2032 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
2033
2034 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
2035 SPLIT_NON_ASCII_CHAR.
2036 (fontset_ref_via_base, fontset_set): Likewise
2037
2038 * insdel.c (adjust_markers_for_record_delete): Deleted.
2039 (adjust_markers_for_insert): Argument changed. Caller changed.
2040 (adjust_markers_for_replace): Likewise.
2041 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
2042 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
2043 (copy_text): Delete unused local varialbe c_save. For converting
2044 to multibyte, be sure to make all 8-bit characters in valid
2045 multibyte form.
2046 (count_size_as_multibyte): Handle 8-bit characters correctly.
2047 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2048 adjust_after_replace, replace_range, del_range_2)
2049 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
2050 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2051 adjust_after_replace, replace_range, del_range_2) Delete codes for
2052 handling byte combining.
2053 (adjust_before_replace): Deleted.
427ec082 2054
c9671f81
KH
2055 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
2056 SPLIT_NON_ASCII_CHAR.
2057 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2058 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
2059 unconditionally.
2060 (Fkey_description): Likewise.
2061
2062 * lread.c (read1): On reading multibyte string, be sure to make
2063 all 8-bit chararacters in valid multibyte form.
2064 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2065
2066 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
2067 unconditionally.
2068
2069 * process.c (Fstart_process): GCPRO current_dir before calling
2070 Ffind_operation_coding_system. Encode arguments here.
2071 (create_process): Don't encode arguments here. Setup
2072 src_multibyte and dst_multibyte members of struct coding.
2073 (read_process_output): Setup src_multibyte and dst_multibyte
2074 members of struct coding. If the output is to multibyte buffer,
2075 always decode the output of the process. Adjust the
2076 representation of 8-bit characters to the multibyteness of the
2077 output.
2078 (send_process): Setup coding->src_multibyte according to the
2079 multibyteness of the source.
2080
2081 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
2082 unconditionally.
2083 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
2084 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
2085
2086 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
2087 CHAR_LEN.
2088
2089 * w16select.c (Fw16_set_clipboard_data): Setup members
2090 src_multibyte and dst_multibyte of coding. Adjusted for the
2091 change for find_charset_in_str.
2092 (Fw16_get_clipboard_data): Likewise.
2093
2094 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
2095 dst_multibyte of coding.
2096 (x_to_w32_font): Likewise.
2097
2098 * w32select.c (Fw32_set_clipboard_data): Setup members
2099 src_multibyte and dst_multibyte of coding. Adjusted for the
2100 change for find_charset_in_str.
2101 (Fw32_get_clipboard_data): Likewise.
2102
2103 * xdisp.c (get_next_display_element): Handle 8-bit characters
2104 correctly.
2105 (next_element_from_display_vector): Use CHAR_BYTES instead of
2106 CHAR_LEN.
2107 (disp_char_vector): Use SPLIT_CHAR instead of
2108 SPLIT_NON_ASCII_CHAR.
2109
2110 * xselect.c (selection_data_to_lisp_data): Setup members
2111 src_multibyte and dst_multibyte of coding. Adjusted for the
2112 change for find_charset_in_str.
2113 (lisp_data_to_selection_data): Likewise.
2114
5f64c9e0
GM
21152000-05-19 Gerd Moellmann <gerd@gnu.org>
2116
2b63d473
GM
2117 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2118 buffer.
2119
5f64c9e0
GM
2120 * dispextern.h (Vimage_types): Add extern declaration.
2121
2122 * xdisp.c (Vimage_types): Moved here from xfns.c.
2123 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2124
2125 * xfns.c (Vimages_types): Moved to xdisp.c.
2126 (syms_of_xfns): Move `image-types' to xdisp.c.
2127
2128 * w32fns.c (Vimage_types): Removed.
2129 (syms_of_w32fns): Remove `image-types'.
2130
813086ea
KH
21312000-05-18 Kenichi Handa <handa@etl.go.jp>
2132
2133 * fns.c (map_char_table): Pay attention to character number of
2134 charset. Check the validity of charset at the first level. For
2135 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2136 the default value.
2137
2138 * fontset.c: Include "buffer.h".
2139 (fs_load_font): If the face has fontset, record the face ID in
2140 that fontset.
2141 (Finternal_char_font): New function.
2142 (accumulate_font_info): New function.
2143 (Ffontset_info): Rewritten for the new fontset implementation.
2144 (syms_of_fontset): Register Vdefault_fontset in the first element
2145 of Vfontset_table. Include Vdefault_fontset in
2146 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2147 function.
2148
bdaebbf0
DL
21492000-05-16 Dave Love <fx@gnu.org>
2150
2151 * m/iris5d.h: Deleted -- unused.
2152
cb613bb8
GM
21532000-05-16 Gerd Moellmann <gerd@gnu.org>
2154
b15f3b77
GM
2155 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2156 `invalid' instead of `illegal'.
2157
2158 * indent.c (Fmove_to_column): When ending within a tab, insert
2159 spaces first so that markers at the end of the tab get adjusted.
2160
835c1b36
GM
2161 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2162 buffer list that wasn't selected in that frame.
2163
cb613bb8
GM
2164 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2165 is needed on mescaline, use a 2 char prefix, and call
2166 make_temp_name with second arg non-zero.
2167
2168 * fileio.c (make_temp_name): New function, extracted from
2169 Fmake_temp_name.
2170 (Fmake_temp_name): Use it.
2171
f685bea9
EZ
21722000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2173
2174 * window.c (coordinates_in_window): Subtract 1 when computing
2175 right_x.
2176
a1b8d58b
GM
21772000-05-15 Gerd Moellmann <gerd@gnu.org>
2178
2179 * Makefile.in (lisp): Add env.elc.
2180
2181 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2182
a265079f
GM
21832000-05-12 Gerd Moellmann <gerd@gnu.org>
2184
2185 * search.c (Freplace_match): Handle case of `\N' in the
2186 replacement when there's no group N.
2187
da4496b6
GM
21882000-05-11 Gerd Moellmann <gerd@gnu.org>
2189
0ace421a
GM
2190 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2191 of the message to message_dolog.
2192
1172eb8d
GM
2193 * keyboard.c (read_char): Don't clear current message for help
2194 events; let the code handling help events handle this. Change
2195 code detecting help events that should be ignored.
2196
da4496b6
GM
2197 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2198 we're interating over a string.
2199
0623e40f
DL
22002000-05-09 Dave Love <fx@gnu.org>
2201
2202 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2203 that offset before writing. Move gcpro region past call of
2204 Ffile_regular_p.
2205
bae2503b
DL
22062000-05-04 Dave Love <fx@gnu.org>
2207
2208 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2209
ec82fb2f
GM
22102000-05-04 Gerd Moellmann <gerd@gnu.org>
2211
2212 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2213 of inserted characters when BUF equals the current buffer, and PT
2214 is in front of or equal to FROM.
2215
cbf18892
GM
22162000-05-03 Gerd Moellmann <gerd@gnu.org>
2217
4ff40dd0
GM
2218 * xdisp.c (handle_single_display_prop): If display property value
2219 is invalid, or something not supported on the frame, restore
2220 iterator's position to what it was initially. Make sure to return
2221 0 for invalid and unsupported property values.
2222
cbf18892
GM
2223 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2224 that x_per_char_metric returns null.
2225
1b0672c3
GM
22262000-05-02 Gerd Moellmann <gerd@gnu.org>
2227
576da55d
GM
2228 * xterm.h (struct face): Add forward declaration.
2229 (struct image): Ditto.
2230 (image_ascent): Add prototype.
2231
2232 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2233 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2234 image_ascent instead of using IMAGE_ASCENT.
2235
2236 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2237 (IMAGE_ASCENT): Removed.
2238
2239 * xfns.c (Qcenter): New variable.
2240 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2241 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2242 (image_ascent): New function.
2243 (lookup_image): Recognize `:ascent center'.
2244 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2245 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2246 (xbm_load): Don't set image's ascent here.
2247 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2248 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2249 check ascent values here.
2250 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2251 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2252 (syms_of_xfns): Initialize Qcenter.
2253
1b0672c3
GM
2254 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2255 to the limits, increase the limits.
2256
0d7811ed
KH
22572000-05-01 Kenichi Handa <handa@etl.go.jp>
2258
2259 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2260 Check Vfont_encoding_alist against the full name of the opened
2261 font.
2262
a943a5ca
GM
22632000-04-28 Gerd Moellmann <gerd@gnu.org>
2264
2265 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2266 taller than the window.
2267
5dba1e29
KH
22682000-04-28 Kenichi Handa <handa@etl.go.jp>
2269
2270 * xfaces.c (realize_x_face): Fix the argument of the second
2271 xassert. BASE_FACE may not be a face for ASCII.
2272
353964e3
GM
22732000-04-27 Gerd Moellmann <gerd@gnu.org>
2274
c76e04a8
GM
2275 * print.c (print_object): Treat print-length < 0 as nil.
2276
2277 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2278
2279 * s/freebsd.h (TERMCAP_OBJ): Removed.
2280 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2281
2282 * lread.c (read1): Don't treat period followed by certain
2283 characters as symbol start.
2284
2285 * xfns.c (slurp_file): New function.
2286 (xbm_image_p): Handle case of in-memory XBM files.
2287 (xbm_scan): Rewritten to work on memory buffers instead of files.
2288 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2289 Work on memory buffers instead of files. If DATA is null test
2290 if buffer looks like an in-memory XBM file.
2291 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2292 memory buffers instead of files.
2293 (xbm_file_p): New function.
2294 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2295
353964e3
GM
2296 * lread.c (end_of_file_error): New function.
2297 (read1): Call it instead of signaling `end-of-file' directly.
2298
427ec082 2299 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2300 with Fprinc instead of Fprin1.
2301
24d744ac
KR
23022000-04-26 Ken Raeburn <raeburn@gnu.org>
2303
2304 * window.c (freeze_window_start): Check that minibuffer scroll
2305 window isn't nil before extracting the window structure pointer
2306 from it.
2307
2308 * undo.c (record_delete): If we hit the end of the undo list, stop
2309 picking elements apart.
2310
7464346d
GM
23112000-04-26 Gerd Moellmann <gerd@gnu.org>
2312
2313 * xdisp.c (display_line): If lines are continued, restore
2314 iterator's ascent/descent information to the values before the
2315 first glyph not fitting on the line.
2316
612839b6
GM
23172000-04-25 Gerd Moellmann <gerd@gnu.org>
2318
2319 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2320 positions in glyph matrix. Don't compute new window end
2321 positions.
2322
2323 * dispnew.c (increment_matrix_positions): Renamed from
2324 increment_glyph_matrix_buffer_positions.
2325 (increment_row_positions): Renamed from
2326 increment_glyph_row_buffer_positions.
2327
2328 * dispextern.h: Change names of renamed functions from dispnew.c
2329 in prototypes.
2330
cc181e95
GM
23312000-04-24 Gerd Moellmann <gerd@gnu.org>
2332
abfcc168
GM
2333 * fileio.c (Fdo_auto_save): Create directories for auto-save
2334 list file if necessary.
2335
cc181e95
GM
2336 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2337 from buffer or frame.
2338 (automatic_hscrolling_p): New variable.
2339 (hscroll_windows): Scroll windows horizontally only if automatic
2340 hscrolling is allowed.
2341 (syms_of_xdisp): New variable `automatic-hscrolling'.
2342
2343 * frame.h (struct frame): Add member extra_line_spacing.
2344
2345 * xfns.c (x_set_line_spacing): New function.
2346 (Fx_create_frame): Set line spacing from resources.
2347 (Qline_spacing): New variable.
2348 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2349
cc181e95
GM
2350 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2351
2352 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2353 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2354 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2355 extra_line_spacing from default value.
2356 (init_buffer_once): Initialize default value of extra_line_spacing.
2357
2358 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2359 and extra3.
2360
2361 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2362 prompt_width. Add extra line spacing.
2363
2364 * term.c (produce_glyphs): Remove reference to struct it's
2365 prompt_width.
2366
2367 * dispextern.h (struct it): Remove member prompt_width, add
2368 extra_line_spacing.
2369
58827478
GM
23702000-04-22 Gerd Moellmann <gerd@gnu.org>
2371
2372 * dispnew.c (update_frame_line): When writing a whole line, make
2373 sure cursor is in the right row afterwards, otherwise a use of
2374 capability `ch' in cmgoto might leave the cursor in the row below.
2375
25a87f42
GM
23762000-04-21 Gerd Moellmann <gerd@gnu.org>
2377
2378 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2379
2380 * keyboard.c (timer_check): Fix typo in comment.
2381
54edf5c2
KH
23822000-04-21 Kenichi Handa <handa@etl.go.jp>
2383
2384 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2385 name change: ch -> character.
2386
3a64eef5
GM
23872000-04-20 Gerd Moellmann <gerd@gnu.org>
2388
2389 * keyboard.c (echo_message_buffer): New variable.
2390 (echo_now): Set echo_message_buffer to the echo area buffer used
2391 to display the echo.
2392 (cancel_echoing): Reset echo_message_buffer to nil.
2393 (read_char): Code rewritten that handles canceling an echo or
2394 echoing a dash, respectively.
2395
2396 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2397 directory doesn't exist.
2398
6142fdcb
DL
23992000-04-19 Dave Love <fx@gnu.org>
2400
2401 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2402 (concat): Don't allow numeric args.
2403 (Fconcat): Doc change.
6142fdcb 2404
ac6b5352
SM
24052000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2406
2407 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2408 instead define end_match(1|2) more carefully.
2409 Use GET_CHAR_BEFORE_2 for `begline'.
2410
cb9215e4
GM
24112000-04-19 Gerd Moellmann <gerd@gnu.org>
2412
5e3dac3f
GM
2413 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2414 on 64-bit systems where NULL is defined as `0'.
2415
2416 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2417 the `variable argument list' to make it work on Alpha.
2418
cb9215e4
GM
2419 * m/alpha.h (_LP64) [!_LP64]: Define.
2420 (ORDINARY_LINK): Define for NetBSD.
2421
2422 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2423
f532dca0
DL
24242000-04-19 Dave Love <fx@gnu.org>
2425
c750667e
DL
2426 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2427 change.
2428
2429 * Makefile.in (LIBS): Don't use.
2430 (GETLOADAVG_OBJ): Define again.
2431 (otherobj): Add GETLOADAVG_OBJ.
2432
f532dca0
DL
2433 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2434
1c7e22fd
GM
24352000-04-18 Gerd Moellmann <gerd@gnu.org>
2436
f6d3257b
GM
2437 * lread.c (read_filtered_event): Cancel and start busy cursor.
2438
427ec082 2439 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2440 that the per-character metrics may be null.
2441
e10f64e7
GM
24422000-04-17 Gerd Moellmann <gerd@gnu.org>
2443
0daee095
GM
2444 * buffer.c (clone_per_buffer_values): New function.
2445 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2446 clone_per_buffer_values if CLONE is not nil.
2447
e10f64e7
GM
2448 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2449
38687d43
DL
24502000-04-16 Dave Love <fx@gnu.org>
2451
2452 * Makefile.in: Remove obsolete localcpp stuff.
2453 (GETLOADAVG_OBJ): Don't define.
2454 (obj): Move LIBOBJS...
2455 (otherobj): ... to here.
2456 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2457 whitespace-only lines after the continuation (Irix).
2458
c21c7262
GM
24592000-04-14 Gerd Moellmann <gerd@gnu.org>
2460
2461 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2462
2463 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2464
314767c0
DL
24652000-04-14 Dave Love <fx@gnu.org>
2466
2467 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2468 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2469 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2470 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2471 NLIST_STRUCT.
2472
2473 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2474 autoconfiscated HAVE_GETLOADAVG.
2475
2476 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2477 BROKEN_MKTIME.
2478
a2522dca
GM
24792000-04-14 Gerd Moellmann <gerd@gnu.org>
2480
2481 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2482 (fill_in_lock_file_name): Avoid existing files that aren't
2483 links.
2484
33744b5d
DL
24852000-04-14 Dave Love <fx@gnu.org>
2486
c21c7262 2487 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2488 (INTERVAL_SRC): Convert to make variable.
2489 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2490 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2491 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2492 add LIBOBJS.
2493 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2494 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2495 (shortlisp): Add facemenu, float-sup, frame.
2496 (SOME_MACHINE_LISP): Remove them from here.
2497 (LIBES): Change unused LDLIBS to autoconf LIBS.
2498
2499 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2500
9d3d5916
KH
25012000-04-14 Kenichi Handa <handa@etl.go.jp>
2502
2503 * composite.c (update_compositions): If FROM and TO are not in a
2504 valid range, do nothing.
2505
198e3c7a
GM
25062000-04-13 Gerd Moellmann <gerd@gnu.org>
2507
2508 * tparam.c (tparam1): Abort when encountering an unknown
2509 `%'-specifier.
2510
2511 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2512 terminfo.o.
2513
2514 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2515 as TERMCAP_OBJ.
2516
055a28c9
EZ
25172000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2518
2519 * fileio.c (a_write): Remove redundant semi-colons.
2520 (e_write): Return -1 if failed to write all the data.
2521 This fixes the changes made at 1999-12-15.
2522
f5c75033
DL
25232000-04-12 Dave Love <fx@gnu.org>
2524
2525 * fns.c (mapcar1): Test for null vals to support mapc.
2526 (Fmapc): New function.
2527
0c3cfc51
EZ
25282000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2529
2530 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2531 (IT_frame_up_to_date): Support the buffer local value of
2532 cursor-type, if defined.
2533
33465a31
DL
25342000-04-10 Dave Love <fx@gnu.org>
2535
2536 * editfns.c (preceding-char, following-char): Doc fix.
2537
6ed56568
KR
25382000-04-10 Ken Raeburn <raeburn@gnu.org>
2539
2540 * Makefile.in (temacs): Revert 2000-03-12 change.
2541
7cf80d4e
JR
25422000-04-10 Jason Rumney <jasonr@gnu.org>
2543
2544 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2545
34f3f342
GM
25462000-04-10 Gerd Moellmann <gerd@gnu.org>
2547
1a1b1895
GM
2548 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2549 area buffer, if it's not set up yet.
2550
34f3f342
GM
2551 * indent.c (compute_motion): Set immediate_quit.
2552
be0dbdab
GM
25532000-04-09 Gerd Moellmann <gerd@gnu.org>
2554
c45be9ac
GM
2555 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2556 variable.
2557 (realize_tty_face): Suppress boldness if colors are the inverse of
2558 the default colors, and tty_suppress_bold_inverse_default_colors_p
2559 is set.
2560 (Ftty_suppress_bold_inverse_default_colors): New function.
2561 (syms_of_xfaces): Defsubr it.
2562
be0dbdab
GM
2563 * buffer.c (Frestore_buffer_modified_p): New function.
2564 (syms_of_buffer): Defsubr it.
2565
e8413c3b
KR
25662000-04-08 Ken Raeburn <raeburn@gnu.org>
2567
87f67317
KR
2568 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2569 charset id (int) argument, not a charset (Lisp_Object).
2570
e8413c3b
KR
2571 * coding.h (code_convert_string): Declare.
2572 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2573 object, as the fourth argument to code_convert_string.
2574
2575 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2576 value.
2577 (Fset_fontset_font): Use EQ to compare lisp objects.
2578
7c752c80
KR
25792000-04-05 Ken Raeburn <raeburn@gnu.org>
2580
c0333abc
KR
2581 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2582 a pointer that looks like a lisp object.
2583 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2584 zero, instead see whether it's an integer object, since they can't
2585 have intervals.
2586 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2587
7c752c80
KR
2588 * dispnew.c (allocate_matrices_for_frame_redisplay,
2589 direct_output_forward_char): Use X(U)INT and make_number as needed
2590 to convert between (unsigned) int values and lisp integers.
2591 * keyboard.c (read_key_sequence): Likewise.
2592 * lread.c (substitute_object_recurse): Likewise.
2593 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2594 * minibuf.c (do_completion, Fminibuffer_complete_word,
2595 Fminibuffer_completion_help): Likewise.
2596 * term.c (produce_special_glyphs): Likewise.
2597
2598 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2599 * print.c (print_preprocess, print_object): Likewise.
2600
2601 * search.c (compile_pattern): Use NILP when checking for nil.
2602
74e49b38
KR
2603 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2604 __OPTIMIZE__]: Provide a GNU C macro version that handles
2605 lisp-object unions.
2606 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2607 field, to better cope with ENABLE_CHECKING and calls that modify a
2608 Lisp_Object using its old value.
2609
685e5ed2
GM
26102000-04-04 Gerd Moellmann <gerd@gnu.org>
2611
c407c570
GM
2612 * window.c (compare_window_configurations): Signal an error
2613 if parameters C1 or C2 aren't window configurations.
2614
685e5ed2
GM
2615 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2616 AFTER_POTENTIAL_GC calls around calls to functions that can
2617 signal an error and thus invoke the debugger.
2618
587a49ab
GM
26192000-04-03 Gerd Moellmann <gerd@gnu.org>
2620
62f20204
GM
2621 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2622 an error if decoding fails.
2623
587a49ab
GM
2624 * keyboard.c (lispy_mouse_names): Variable removed.
2625 (Vlispy_mouse_stem): New variable.
2626 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2627 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2628 for any mouse button number. Increase size of mouse_syms and
2629 button_down_location as needed. Call modify_event_symbol with
2630 different arguments.
2631 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2632 Call modify_event_symbol with different arguments.
2633 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2634 for any button number. Call modify_event_symbol with different
2635 arguments.
2636 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2637 Accept a string for NAME_ALIST_OR_STEM.
2638
2639 * lisp.h (larger_vector): Add prototype.
2640
2641 * fns.c (larger_vector): Make externally visible.
2642
2643 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2644
2d1675e4
SM
26452000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2646
2647 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2648 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2649 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2650 we are between str1 and str2.
2651 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2652 (PATFETCH): Use `TRANSLATE'.
2653 (PATFETCH_RAW): Fetch multibyte char if applicable.
2654 (PATUNFETCH): Remove.
2655 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2656 When writing a char, write it directly into the pattern buffer rather
2657 than going needlessly through a temp char-array.
2658 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2659 multibyte magic and remove the useless `#ifdef emacs'.
2660 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2661 buffer.
2662
2663 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2664 conditional on `emacs'.
2665
2666 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2667
cc2d8c6b
KR
26682000-04-01 Ken Raeburn <raeburn@gnu.org>
2669
2670 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2671 non-union-type versions of XMARK and friends here, because XMARK
2672 and friends won't work on an integer field if NO_UNION_TYPE is not
2673 defined.
2674 (make_number): Define as a function if it's not defined as a
2675 macro.
2676
09654086
KR
2677 * composite.c (run_composite_function): Use NILP when checking for
2678 nil.
2679 (syms_of_composite): Delete local var NARGS, pass an int as first
2680 argument to Fmake_hash_table.
2681
2387b382
KR
2682 * editfns.c (text_property_stickiness): Use NILP to test
2683 Lisp_Object boolean value.
2684 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2685 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2686 problems reading from and changing the same lisp value in an
2687 XSETSTRING call.
2688
27660e89
GM
26892000-04-01 Gerd Moellmann <gerd@gnu.org>
2690
2691 * term.c (TN_no_color_video): New variable.
2692 (term_init): Intitialize TN_no_color_video.
2693 (enum no_color_bit): New enumeration.
2694 (MAY_USE_WITH_COLORS_P): New macro.
2695 (turn_on_face): Use it to determine if attributes may be used
2696 combined with colors.
2697
3578db3c
KR
26982000-04-01 Ken Raeburn <raeburn@gnu.org>
2699
2700 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2701 with int lvalues via casts; instead, just yield lisp object
2702 lvalues.
2703 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2704 proper accessor macros.
2705 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2706 (grow_mini_window): Fix typo getting int value of root->height.
2707
6fc556fd
KR
2708 * xdisp.c (compute_string_pos): Fix order of arguments to
2709 string_pos_nchars_ahead.
2710 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2711 count arg to variable-arg routines like Frun_hook_with_args and
2712 Fformat.
587a49ab
GM
2713 (back_to_previous_visible_line_start)
2714 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2715 fixed-arg routines like Fget_char_property and Fmake_string.
2716 (reconsider_clip_changes): Use XINT when comparing integer lisp
2717 objects, or passing them as int arguments.
587a49ab
GM
2718 (mark_window_display_accurate, insert_left_trunc_glyphs)
2719 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2720 storing or passing integer values as lisp objects.
2721 (set_cursor_from_row, highlight_trailing_whitespace): Use
2722 INTEGERP, not implicit test against zero, for glyph object.
2723 (try_window_id): Don't use make_number when we want an int value.
2724
2725 * xfaces.c (xlfd_symbolic_value): Make last argument a
2726 Lisp_Object, to be consistent with callers.
2727 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2728 (lface_hash): Apply XFASTINT to lisp values before folding in.
2729
2730 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2731 fill in window width and height. Pass an int, not a lisp object,
2732 as first arg to Finsert.
2733
6e7b2457
GM
27342000-04-01 Gerd Moellmann <gerd@gnu.org>
2735
610d841e
GM
2736 * xfaces.c (realize_basic_faces): Block input while realizing
2737 the faces.
2738
6e7b2457
GM
2739 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2740
2741 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2742
aa110c0c
GM
27432000-03-31 Gerd Moellmann <gerd@gnu.org>
2744
2745 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2746 or ASCII, handle case that per-char metric is null.
aa110c0c 2747
8801a864
KR
27482000-03-30 Ken Raeburn <raeburn@gnu.org>
2749
c6129d7e
KR
2750 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2751
8801a864
KR
2752 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2753 XSUBR, XBUFFER): Verify correct object type before returning
2754 pointer, using eassert.
2755 * frame.h (XFRAME): Likewise.
2756
2757 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2758 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2759 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2760 type.
2761 * data.c (set_internal): Likewise.
2762 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2763 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2764 * fileio.c (auto_save_1): Likewise.
2765 * insdel.c (check_markers): Likewise.
2766 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2767 * undo.c (record_insert): Likewise.
2768 * vmsproc.c (child_sig): Likewise.
2769 * window.c (unshow_buffer, window_loop): Likewise.
2770 * xterm.c (x_erase_phys_cursor): Likewise.
2771
8e7af858
GM
27722000-03-30 Gerd Moellmann <gerd@gnu.org>
2773
2774 * xfns.c (free_image_cache): Free the cache structure itself
2775 last, after all its members have been freed.
2776
2777 * lisp.h (xstrdup): Add prototype.
2778
2779 * alloc.c (xstrdup): Moved here from xfaces.c.
2780 (allocating_for_lisp): Variable removed.
2781 (lisp_malloc): Block input around the calls to malloc and
2782 mem_insert.
2783
2784 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2785 of Fsymbol_value.
2786 (xstrdup): Moved to alloc.c.
2787
e0b8c689
KR
27882000-03-29 Ken Raeburn <raeburn@gnu.org>
2789
b96f9fb7
KR
2790 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2791
2792 * emacs.c (main): Fix sense of no-loadup test.
2793
e0b8c689
KR
2794 * config.in (ENABLE_CHECKING): Undef.
2795
2796 * lisp.h (struct interval): Replace "parent" field with a union of
2797 interval pointer and Lisp_Object; add new bitfield to use as
2798 discriminant. Change other flag fields to bitfields.
2799 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2800 is defined and the supplied test fails, print a message and
2801 abort.
2802 (eassert): New macro. Use CHECK to provide an assert-like
2803 facility.
2804
2805 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2806 pointers; abort if the value looks like a lisp object.
2807 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2808 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2809 Modify for new interval parent definition.
2810
2811 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2812 UNMARK_BALANCE_INTERVALS): Update references that need an
2813 addressable lisp object in the interval structure.
2814 (die): New function.
2815 (suppress_checking): New variable.
2816
2817 * intervals.c (interval_start_pos): Just return 0 if there's no
2818 parent object.
2819
f83c5440
GM
28202000-03-29 Gerd Moellmann <gerd@gnu.org>
2821
2822 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2823 and earlier Emacs versions.
2824
2825 * keyboard.c (Ftop_level): Cancel busy-cursor.
2826
2827 * eval.c (call_debugger): Cancel busy-cursor.
2828
fdce64ff
KH
28292000-03-29 Kenichi Handa <handa@etl.go.jp>
2830
2831 * search.c (Freplace_match): Adjust multibyteness of the current
2832 buffer and NEWTEXT. Free allocated memory before signaling an
2833 error.
2834
f6a3f532
SM
28352000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2836
2837 * regex.c (analyse_first): New function obtained by ripping out most
2838 of re_compile_fastmap and generalizing it a little bit so that it
2839 can also just return whether a given (sub)pattern can match the empty
2840 string or not.
2841 (regex_compile): Use `analyse_first' to decide whether the loop-check
2842 needs to be done or not for *, +, *? and +? (the loop check is costly
2843 for non-greedy repetition).
2844 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2845
e9b309ac
DL
28462000-03-28 Dave Love <fx@gnu.org>
2847
bb15bd9a
DL
2848 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2849 alpha.
2850
e9b309ac
DL
2851 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2852
ed0767d8
SM
28532000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2854
2855 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2856 an expression.
2857 (enum re_opcode_t): Update description of succeed_n.
2858 (PATFETCH): Always define.
2859 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2860 operators, char classes, shy-groups and intervals).
2861 Optimize special cases of intervals so as to only use succeed_n and
2862 jump_n when really needed.
2863 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2864 that we don't have to handle the special cases any more.
2865 Simplify on_failure_jump handling as well.
2866
e11e7e46
JR
28672000-03-28 Jason Rumney <jasonr@gnu.org>
2868
2869 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2870
88faab89
GM
28712000-03-27 Gerd Moellmann <gerd@gnu.org>
2872
182ff242
GM
2873 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2874
2875 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2876
182ff242
GM
2877 * alloc.c (mark_maybe_object): New function.
2878 (mark_memory): Use it.
2879 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2880 (setjmp_tested_p, longjmp_done): New variables.
2881 (test_setjmp): New function.
2882 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2883 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2884
c1005d06
GM
2885 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2886 to DEC_TEXT_POS and INC_TEXT_POS.
2887
2888 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2889 with parameter MULTIBYTE_P.
2890
427ec082 2891 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2892 MULTIBYTE_P.
2893
7439e5b9 2894 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2895 buffers because it looks for multibyte character byte sequences
2896 which don't exist in unibyte text.
7439e5b9 2897
d9c545da
GM
2898 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2899
11fd416e 2900 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2901 [DEBUG_X_COLORS]: New functions.
2902 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2903
2904 * xfns.c (x_set_cursor_color): Get color reference counts right.
2905
2906 * xterm.c (x_copy_color): New function.
2907 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2908
2909 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2910 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2911 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2912 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2913 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2914 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2915 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2916 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2917 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2918 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2919
11fd416e
GM
2920 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2921 names for handling per-buffer variables.
d9c545da
GM
2922
2923 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2924 instead of MAX_BUFFER_LOCAL_VARS.
2925 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2926
2927 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2928
88faab89
GM
2929 * xfns.c (x_specified_cursor_type): New function.
2930 (x_set_cursor_type): Use it.
2931
2932 * buffer.h (struct buffer): Add cursor_type.
2933
d80f42b7
SM
29342000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2935
2936 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2937 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2938 opcode.
d80f42b7
SM
2939 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2940 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2941 executing it as well as when popping it off the stack to find infinite
2942 loops in non-greedy repetition operators.
2943
89e80928
GM
29442000-03-26 Gerd Moellmann <gerd@gnu.org>
2945
3d4ff2dd
GM
2946 * doc.c (Qfunction_documentation): New variable.
2947 (syms_of_doc): Initialize Qfunction_documentation.
2948 (Fdocumentation): If FUNCTION is a symbol with non-nil
2949 `function-documentation' property, return a documentation derived
2950 from that.
2951
bd96bd79
GM
2952 * buffer.c (syms_of_buffer): Add default-cursor-type.
2953 (init_buffer_once): Don't let cursor_type have a local value
2954 in every buffer.
2955
19d1bc27
GM
2956 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2957 on buffer-local value of cursor_type.
2958 (x_draw_bar_cursor): Add parameter WIDTH.
2959
2960 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2961 (init_buffer_once): Set default cursor_type value to t.
2962 Mark cursor_type as local everywhere.
2963 (syms_of_buffer): New per-buffer variable cursor-type.
2964
89e80928
GM
2965 * buffer.h (struct buffer): Remove member local_var_flags,
2966 add local_flags.
2967 (MAX_BUFFER_LOCAL_VARS): New macro.
2968 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2969 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2970 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2971 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2972
2973 * print.c (print_object): Use new macros for per-buffer
2974 variables.
2975
2976 * category.c (Fset_category_table): Use new macros for per-buffer
2977 variables.
2978
2979 * buffer.c (buffer_permanent_local_flags): Make a char array.
2980 (max_buffer_local_idx): New variable.
2981 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2982 for new handling of per-buffer variables.
2983 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2984 (init_buffer_once): Initialize per-buffer vars differently.
2985 Set max_buffer_local_idx.
2986
2987 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2988 variables.
2989
2990 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2991 variables.
2992
2993 * data.c (do_symval_forwarding, store_symval_forwarding)
2994 (find_symbol_value, set_internal, default_value, Fset_default)
2995 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2996 per-buffer variables.
2997
2998 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2999
9a0dd3dc
GM
30002000-03-24 Gerd Moellmann <gerd@gnu.org>
3001
b68c375f
GM
3002 * xterm.c (x_term_init): Unblock input around call1 of
3003 Qvendor_specific_keysyms.
3004
9a0dd3dc
GM
3005 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
3006 (find_defun_start): Consider an open parenthesis in column 0
3007 a defun start only if open_paren_in_column_0_is_defun_start is set.
3008 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
3009
7973e637
SM
30102000-03-24 Stefan Monnier <monnier@cs.yale.edu>
3011
3012 * eval.c (Fautoload): Add entry in load-history (if after dump).
3013 * lread.c (load-history): Update docstring.
3014
39210e90
GM
30152000-03-24 Gerd Moellmann <gerd@gnu.org>
3016
3017 * indent.c (Fvertical_motion): Always use the current buffer.
3018 Temporarily change the window's buffer, if necessary.
3019
72db3ab5
GM
30202000-03-23 Gerd Moellmann <gerd@gnu.org>
3021
3022 * xterm.c (fast_find_position): Make sure not to consider rows
3023 not visible in the window.
3024
990b2375
SM
30252000-03-22 Stefan Monnier <monnier@cs.yale.edu>
3026
3027 * regex.c (enum syntaxcode): Provide default for non-Emacs.
3028 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
3029
ff4df011
JR
30302000-03-22 Jason Rumney <jasonr@gnu.org>
3031
3032 * w32menu.c (single_submenu): Set help string to NULL if none.
3033 (w32_menu_show): Set help string correctly.
3034 (add-menu-item): Set help string in MIIM_DATA for menu item.
3035 Load SetMenuItemInfoA explicitly.
3036 (w32_menu_display_help): New function.
427ec082 3037
ff4df011
JR
3038 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
3039 (QCdata): Moved to xdisp.c.
3040
3041 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
3042 (Vw32_charset_to_codepage_alist): Removed.
3043 (Vw32_charset_info_alist): New variable.
3044 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
3045 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
3046 greek, hebrew, thai, johab, mac, unicode]): New symbols.
3047 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
3048 with TODO comment.
3049 (w32_codepage_for_font): Use Vw32_charset_info_alist.
3050 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
3051 Define Vw32_charset_info_alist and w32_charset symbols.
3052
30532000-03-22 Jason Rumney <jasonr@gnu.org>
3054
3055 * makefile.nt (w32bdf.obj): Update dependencies.
3056
3057 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
3058
3059 * w32fns.c: Include fontset.h after dispextern.h.
3060 (Fx_create_frame): Do not create fontset.
3061 (w32_load_system_font): Doc fix.
3062 (Fx_close_connection): Free full_name if it is not shared.
3063
3064 * w32term.c: Include fontset.h after dispextern.h.
3065 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
3066 updated.
3067 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
3068 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
3069 (w32_font_is_double_byte): New function, needs body.
3070 (x_append_glyph): Set glyph->glyph_not_available_p.
3071 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3072 it->charset. If it->multibyte_p is zero and it->c is a multibyte
3073 character, convert it to a unibyte character.
3074 (struct glyph_string): Delete member `charset'.
3075 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
3076 calculating it is found.
3077 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3078 the case that per char metric is not available correctly.
3079 (x_fill_glyph_string): Handle the case that the specific glyph is
3080 not available correctly.
3081 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3082 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3083 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3084 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3085 fontset. Don't call FS_LOAD_FONT.
3086
439d5cb4
KR
30872000-03-22 Ken Raeburn <raeburn@gnu.org>
3088
3089 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
3090 (INT_LISPLIKE): New macro.
3091 (NULL_INTERVAL_P): Use it.
3092 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
3093 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
3094 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
3095
3096 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
3097 explicit references to "parent" field of struct interval and
3098 associated unclean type conversions.
3099 * intervals.c (create_root_interval, root_interval, rotate_right,
3100 rotate_left, balance_possible_root_interval, split_interval_right,
3101 split_interval_left, interval_start_pos, find_interval,
3102 next_interval, previous_interval, update_interval,
3103 adjust_intervals_for_insertion, delete_node, delete_interval,
3104 adjust_intervals_for_deletion, merge_interval_right,
3105 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3106 copy_intervals_to_string): Likewise.
3107 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3108 Likewise.
3109 * syntax.c (update_syntax_table): Likewise.
3110
3111 * intervals.c (reproduce_tree_obj): New function, like
3112 reproduce_tree but takes a Lisp_Object for the parent. Declare
3113 with prototype.
3114 (graft_intervals_into_buffer): Use it when appropriate.
3115 (reproduce_tree): Declare with prototype.
3116 (balance_possible_root_interval): Check that the parent is a lisp
3117 object before trying to examine its type.
3118
ee1c5b21
GM
31192000-03-22 Gerd Moellmann <gerd@gnu.org>
3120
3121 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3122 as strings only if both are known to be strings.
3123
3124 * s/openbsd.h (LIBS_TERMCAP): Undef.
3125
1fb352e0
SM
31262000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3127
3128 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3129 definitions for non-Emacs compilation.
3130 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3131 outside of `#ifdef emacs'.
3132 (print_partial_compiled_pattern): Update.
3133 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3134 (re_compile_fastmap): Merge handling of charset and charset_not (for
3135 emacs and non-emacs compilation as well).
3136 Similarly for (not)categoryspec and (not)syntaxspec.
3137 Don't use the fastmap when reaching `anychar' since the added
3138 complexity is not justified.
3139 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3140 and (not)syntaxspec. Merge (not)categoryspec.
3141
fdaa1f77
KH
31422000-03-22 Kenichi Handa <handa@etl.go.jp>
3143
ff1a0d8e
KH
3144 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3145 FACE_FOR_CHAR): Define them differently for the configuration of
3146 --without-x.
fdaa1f77 3147
d152fb46
DL
31482000-03-21 Dave Love <fx@gnu.org>
3149
3150 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3151 doc string.
3152
d2cafc8c
GM
31532000-03-21 Gerd Moellmann <gerd@gnu.org>
3154
3155 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3156 (lface_fully_specified_p): Don't check contents of
3157 LFACE_FONT_INDEX because that attribute is optional.
3158 (realize_x_face): Remove now unwarranted xassert.
3159
9111d4b5
KH
31602000-03-21 Kenichi HANDA <handa@etl.go.jp>
3161
3162 The following changes are to make font selection based on
3163 characters, not charset. In addition, they recover fontset
3164 facilities while utilizing the new font selection mechanism.
3165
6c4bfdc0
KH
3166 * Makefile.in (fontset.o): Depend on dispextern.h.
3167
3168 * alloc.c (mark_face_cache): Don't mark face->registry.
3169
9111d4b5
KH
3170 * dispextern.h (struct glyph): New member glyph_not_available_p.
3171 Use 22 bits for face_id.
3172 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3173 (struct face): Delete member registry, new member ascii_face.
3174 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3175 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3176 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3177 (struct it): Delete member charset, new member
3178 glyph_not_available_p.
3179
3180 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3181 (struct fontset_info, struct fontset_data): Structs removed.
3182 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3183 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3184 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3185 (fs_free_face_fontset, fontset_font_pattern,
3186 face_suitable_for_char_p, face_for_char,
3187 make_fontset_for_ascii_face): Extern them.
3188 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3189 (FS_LOAD_FACE_FONT): New macro.
3190
3191 * fontset.c: All codes rewritten or adjusted for the change of
3192 fontset implementation. Now fontset is represented by char table.
3193 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3194 removed.
3195 (my_strcasecmp): Function removed.
3196 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3197 variables.
3198 (AREF, ASIZE): New macros.
3199 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3200 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3201 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3202 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3203 fontset_id_valid_p, font_family_registry, fontset_name,
3204 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3205 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3206 New functions.
3207 (fs_load_font): New arg FACE. Caller changed.
3208 (fs_query_fontset): Argument changed. Caller changed.
3209 (Fquery_fontset): call fs_query_fontset.
3210 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3211 Functions removed.
3212 (clear_fontset_elements, check_registry_encoding,
3213 check_fontset_name): New functions.
3214 (syms_of_fontset): Set char-table-extra-slots property of fontset
3215 to 3. Staticpro and initialize Vfontset_table and
3216 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3217
3218 * frame.h (struct frame): Member `fontset_data' removed.
3219 (FRAME_FONTSET_DATA): Macro removed.
3220
3221 * frame.c (make_frame): Don't allocate f->fontset_data.
3222 (Fdelete_frame): Don't free f->fontset_data.
3223
6c4bfdc0
KH
3224 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3225
9111d4b5
KH
3226 * xdisp.c (charset_at_position): Function removed.
3227 (init_iterator): Don't set member charset of struct `it'.
3228 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3229 next_element_from_display_vector, insert_left_trunc_glyphs):
3230 Likewise.
3231 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3232 FACE_FOR_CHARSET.
3233 (get_next_display_element, append_space,
3234 extend_face_to_end_of_line): Likewise.
3235
3236 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3237 Variables removed.
3238 (clear_font_table, frame_update_line_height, load_face_font):
3239 Adjusted for the change of fontset implementation.
3240 (load_face_fontset_font): Function removed.
3241 (pixel_point_size): New function.
3242 (font_list): Argument type changed. Caller changed.
3243 (LFACE_FONT): New macro.
3244 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3245 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3246 Lisp_Object. Determine the font name by actually loading a font
3247 by the specified pattern. Set LFACE_FONT (lface) to the specified
3248 pattern. Even if a font is not found, don't try alternatives.
3249 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3250 (set_font_frame_param): If `font' is specified in lface, use it.
3251 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3252 (lface_same_font_attributes_p): Likewise.
3253 (make_realized_face): Arguent changed. Caller changed. Set
3254 face->ascii_face to face itself.
3255 (free_realized_face): Free face->fontset if face is for ASCII.
3256 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3257 deduce_unibyte_registry, x_charset_registry): Functions removed.
3258 (free_realized_multibyte_face): New function.
3259 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3260 changed. Caller changed.
3261 (try_font_list): Argument type changed.
3262 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3263 (choose_face_font): Argument changed. Handle fontset properly.
3264 (choose_face_fontset_font): Function removed.
3265 (realize_default_face, realize_named_face): Don't remove the
3266 former face here.
3267 (realize_face): Argument changed. Caller changed. Remove face
3268 with the arg former_face_id in advance. Load font for the new
3269 face.
3270 (realize_x_face): Argument changed. Caller changed. For a
3271 multibyte character, share fontset with base_face. For a single
3272 byte character, make a new realized fontset. Don't load a font
3273 here.
3274 (realize_tty_face): Argument changed. Caller changed.
3275 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3276 (face_at_buffer_position): Don't check multibyte_p for returning
3277 DEFAULT_FACE_ID.
3278 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3279 FACE_SUITABLE_FOR_CHARSET_P.
3280 (syms_of_xfaces): Remove code for Qx_charset_registry and
3281 Vface_default_registry.
3282
6c4bfdc0
KH
3283 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3284 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3285 (x_per_char_metric): Don't try FONT->default_char. Even if
3286 pcm->width is zero, glyph bits may exist.
3287 (x_encode_char): Always initialize char2b->byte1.
3288 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3289 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3290 changed.
3291 (x_append_glyph): Set glyph->glyph_not_available_p.
3292 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3293 it->charset. Handle the case that per char metric is not
3294 available. If it->multibyte_p is zero and it->c is a multibyte
3295 character, convert it to a unibyte character.
3296 (struct glyph_string): Delete member `charset'.
3297 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3298 the case that per char metric is not available correctly.
3299 (x_fill_glyph_string): Handle the case that the specific glyph is
3300 not available correctly.
3301 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3302 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3303 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3304 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3305 fontset. Don't call FS_LOAD_FONT.
3306
3307 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3308 (x_create_tip_frame): Likewise.
3309 (Fx_close_connection): Free full_name of font_info.
3310
3311 * fns.c (optimize_sub_char_table): New function.
3312 (Foptimize_char_table): New function.
3313 (syms_of_fns): Defsubr Soptimize_char_table.
3314
b33dd3b0
GM
33152000-03-20 Gerd Moellmann <gerd@gnu.org>
3316
3317 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3318 only if buffer is displayed in some window.
3319
3320 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3321 (try_window_reusing_current_matrix): Don't call scroll run
3322 function if run's current and desired position are the same;
3323 this prevents cursor flickering.
3324
4e8a9132
SM
33252000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3326
3327 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3328
3329 * regex.c (RE_STRING_CHAR): New macro.
3330 (GET_CHAR_AFER_2): Remove.
3331 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3332 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3333 (print_partial_compiled_pattern, re_compile_fastmap)
3334 (re_match_2_internal): Remove on_failure_jump_exclusive.
3335 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3336 optimization only need to work for * (ie. can use of_keep_string_jump).
3337 Remove the special case for .*\n since it is now covered by the general
3338 optimization.
3339 (re_search_2): Don't bother with `room'.
3340 (skip_one_char): New function.
3341 (skip_noops): Simplify since `memory' is not needed any more.
3342 (mutually_exclusive_p): Restructure slightly to use `switch' and
3343 add handling for "all" remaining cases.
3344 (re_match_2_internal): Change on_failure_jump_smart to use
3345 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3346 rather than on_failure_jump_exclusive.
3347
2136fdd4
GM
33482000-03-19 Gerd Moellmann <gerd@gnu.org>
3349
3350 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3351 number of bits per RGB because it's everywhere used as the depth
3352 of the visual.
3353
3354 * term.c (calculate_costs): Remove code dealing with X frames.
3355
18e21ce8 33562000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3357
3358 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3359
d7b511c4
GM
33602000-03-18 Gerd Moellmann <gerd@gnu.org>
3361
3362 * lread.c (read_integer): Unread the last char not consumed.
3363
16b5d424
GM
33642000-03-17 Gerd Moellmann <gerd@gnu.org>
3365
3366 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3367 which are in the process of being deleted.
16b5d424 3368
1fa28578
GM
33692000-03-16 Gerd Moellmann <gerd@gnu.org>
3370
83488cce
GM
3371 * Makefile.in (mostlyclean): Add `*.core'.
3372 (clean): Add `bootstrap-emacs'.
3373
1fa28578
GM
3374 * lread.c (read_integer): New function.
3375 (read1): Support read syntax #o, #x, #b, #r.
3376
99633e97
SM
33772000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3378
1fa28578
GM
3379 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3380 make sure POINTER_TO_OFFSET gives the same value before and after
3381 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3382 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3383 (debug): Now only active if > 0 rather than if != 0.
3384 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3385 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3386 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3387 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3388 (store_op1, store_op2, insert_op1, insert_op2)
3389 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3390 (group_in_compile_stack): Move to after its arg's types are
3391 declared and add a prototype.
99633e97 3392 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3393 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3394 wrapper.
99633e97 3395 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3396 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3397 indentation of the greedy-op and shy-group code.
99633e97
SM
3398 (at_(beg|end)line_loc_p): Fix argument's types.
3399 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3400 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3401 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3402 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3403 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3404 QUIT unconditionally.
99633e97 3405
699238d9
GM
34062000-03-15 Gerd Moellmann <gerd@gnu.org>
3407
3408 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3409 a sole completion.
3410
3411 * process.c (send_process): Add a hint that the function
3412 can call Lisp code to its comment.
3413
3414 * lread.c (load_dangerous_libraries): New variable.
3415 (Vbytecomp_version_regexp): New variable.
3416 (safe_to_load_p): New function.
3417 (Fload): Handle files not compiled with Emacs specially.
3418 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3419
34e23e5a
GM
34202000-03-14 Gerd Moellmann <gerd@gnu.org>
3421
9c763cca
GM
3422 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3423
3424 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3425 support functions only if HAVE_X11R6_XIM is defined.
3426 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3427
3428 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3429
3430 * xfns.c (X_I18N_INHIBITED): Don't define.
3431 (create_frame_xic): Remove conditional compilation on
3432 X_I18N_INHIBITED.
3433 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3434
3435 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3436 (HAVE_X11R6_XIM): Define.
3437
3438 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3439
34e23e5a
GM
3440 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3441 If set, call XSynchronize.
3442
66f0296e
SM
34432000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3444
34e23e5a
GM
3445 * regex.c: Declare a new type `re_char' used throughout the code
3446 for the string char type. It's `const unsigned char' to match the
3447 rest of Emacs. Consistently make sure all pointers to strings use
3448 it and make sure all pointers into the pattern use `unsigned
3449 char'.
66f0296e 3450 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3451 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3452 code duplication.
66f0296e
SM
3453
3454 * charset.h (GET_CHAR_AFTER_2): Remove.
3455 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3456
854a025c
KR
34572000-03-12 Ken Raeburn <raeburn@gnu.org>
3458
3459 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3460 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3461 of them try to use backquotes.
3462
b9d2c7e2
DL
34632000-03-12 Dave Love <fx@gnu.org>
3464
3465 * unexelf.c: Restore changes of 1999-10-19.
3466 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3467 fix its type and alignment; copy it from current process.
3468
5e5dff44
GM
34692000-03-12 Gerd Moellmann <gerd@gnu.org>
3470
9b2f3c38
GM
3471 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3472 has been found. Fix bug not computing timer's predecessor.
3473
427ec082 3474 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3475 file name.
3476
e1cff360
GM
3477 * window.c (Fsave_window_excursion): Doc fix.
3478
5e5dff44
GM
3479 * xfns.c (x_defined_color): Rewritten to use
3480 x_allocate_nearest_color.
3481
e411ce4b
EZ
34822000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3483
3484 * msdos.c (vga_installed): New function, code moved from
3485 dos_set_window_size.
3486 (Qbar, Qcursor_type, outside_cursor): New variables.
3487 (syms_of_msdos): Intern and staticpro them.
3488 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3489 shape used outside Emacs when called for the first time.
3490 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3491 cursor shape used outside Emacs.
3492 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3493 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3494 type has changed.
3495 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3496 parameters specify the cursor. Make qreverse a global
3497 variable (renamed to Qreverse).
3498
80460654
GM
34992000-03-09 Gerd Moellmann <gerd@gnu.org>
3500
3501 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3502
95cd4c40
SM
35032000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3504
3505 This is a big redesign of failure-stack and register handling, prompted
3506 by bugs revealed when trying to add shy-groups. Overall, what happened
3507 is that loops are now structured a little differently, groups can be
3508 shy and the code is a little simpler.
3509
3510 * regex.h: Update the copyright.
3511 (RE_SHY_GROUPS): New value.
3512 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3513 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3514
80460654
GM
3515 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3516 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3517 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3518 for (start|stop)_memory since they now only take one argument (the
3519 second has becomes unnecessary).
3520 (print_partial_compiled_pattern): Adjust for changes in
3521 re_opcode_t.
3522 (print_compiled_pattern): Use %ld to printf long ints and flush to
3523 make debugging a little easier.
95cd4c40
SM
3524 (union fail_stack_elt): Make the integer unsigned.
3525 (struct fail_stack_type): Add a `frame' element.
3526 (INIT_FAIL_STACK): Init `frame' as well.
3527 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3528 (DEBUG_PUSH, DEBUG_POP): Remove.
3529 (NUM_REG_ITEMS): Remove.
3530 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3531 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3532 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3533 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3534 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3535 macros.
3536 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3537 address pushed is not the destination of the jump but the source
3538 of it instead.
95cd4c40
SM
3539 (NUM_FAILURE_ITEMS): Remove.
3540 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3541 registers before the actual failure point). Don't hardcode any
3542 meaning for str==NULL anymore.
95cd4c40 3543 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3544 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3545 Remove.
95cd4c40
SM
3546 (REG_UNSET_VALUE): Use NULL (why not?).
3547 (compile_range): Remove declaration since it doesn't exist.
3548 (struct compile_stack_elt_t): Remove inner_group_offset.
3549 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3550 (regex_grow_registers): Remove dead code.
3551 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3552 (regex_compile): Add shy-groups Change loops to use
3553 on_failure_jump_smart&jump instead of
3554 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3555 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3556 variable to me). Use `jump' instead of `jump_past_alt' and don't
3557 bother with push_dummy_failure in alternatives since it is now
3558 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3559 emacs' for (re)allocating the stack.
3560 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3561 from loop when bufp->can_be_null rather than jumping to `done'.
3562 Avoid jumping backwards so as to ensure termination. Use
3563 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3564 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3565 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3566 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3567 improve mutually_exclusive_p to handle ".+\n".
3568 (lowest_active_reg, highest_active_reg,
3569 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3570 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3571 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3572 variables. Push register (in `start_memory') on the stack rather
3573 than storing it in old_reg(start|end). Remove the cycle detection
3574 from `stop_memory', replaced by the use of on_failure_jump_loop
3575 for greedy loops. Add code for the new on_failure_jump_<foo>.
3576 Remove ad-hoc code in `on_failure_jump' to push more registers in
3577 the case of a loop. Take out code from `maybe_pop_jump' into
3578 separate functions and adapt it to the semantics of
3579 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3580 and push_dummy_failure. Remove dummy_failure handling and
3581 handling of `failures to jump to on_failure_jump' (this last one
3582 was already dead code, it seems).
3583 (group_match_null_string_p, alt_match_null_string_p)
3584 (common_op_match_null_string_p): Remove.
95cd4c40 3585
7397acc4
DL
35862000-03-08 Dave Love <fx@gnu.org>
3587
3588 * config.in: Don't depend on __STDC__ for volatile.
3589 Add POINTER_TYPE, PTR, PROTOTYPES.
3590
3591 * hftctl.c, strftime.c: Use PROTOTYPES.
3592 * eval.c (find_handler_clause): Likewise.
3593
3594 * mem-limits.h: Use POINTER_TYPE.
3595
3596 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3597 (memory_warnings): Declare using POINTER_TYPE.
3598
5e91ff9e
GM
35992000-03-08 Gerd Moellmann <gerd@gnu.org>
3600
feab4fba
GM
3601 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3602
25edb08f
GM
3603 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3604 collection.
3605
5e91ff9e
GM
3606 * xfns.c: Remove obsolete code in #if 0.
3607 (Fx_focus_frame): New function.
3608
a735b7e1
KH
36092000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3610
3611 * coding.c (coding_category_name): Add coding-category-utf-8,
3612 coding-category-utf-16-be, coding-category-utf-16-le.
3613 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3614 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3615 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3616 (detect_coding_utf_8): New function.
3617 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3618 UTF_16_LOW_SURROGATE_P): New macros.
3619 (detect_coding_utf_16): New function
3620 (detect_coding_mask): When priorities are specified, skip any
3621 categories that have `nil' coding-system. Fix bug of returning
3622 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3623 returns a mask not set in PRIORITIES.
3624 (detect_eol_type_in_2_octet_form): New function.
3625 (detect_eol): selects detect_eol_type_XXX to call according to
3626 cooding->category_idx.
3627 (detect_coding_system): Remove `nil' coding-system in the result.
3628 (Fupdate_coding_systems_internal): Update all coding-categories.
3629
3630 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3631 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3632 macros.
3633 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3634 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3635 CODING_CATEGORY_IDX_UTF_16_LE.
3636 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3637 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3638 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3639 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3640
9994cc69
GM
36412000-03-07 Gerd Moellmann <gerd@gnu.org>
3642
e9b4e5ff
GM
3643 * doc.c (Fdocumentation_property): If value is not a string,
3644 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3645
f7daf1e1
GM
3646 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3647 close the display with XtCloseDisplay. This caused a bus error
3648 on OpenWindows.
3649
9994cc69
GM
3650 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3651 complete but not unique.
3652
4336c705
GM
36532000-03-06 Gerd Moellmann <gerd@gnu.org>
3654
18bb0684
GM
3655 * process.c (send_process): Remove local variable `procname' that
3656 might become invalid when a GC happens. Instead, access the
3657 process name slot directly.
3658
4336c705
GM
3659 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3660 orig_height if set.
3661
3662 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3663 orig_height if set.
3664
515d0d0e
EZ
36652000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3666
3667 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3668 glyph matrices have been freed.
3669
100b3cbb
GM
36702000-03-05 Gerd Moellmann <gerd@gnu.org>
3671
50df5e5a 3672 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3673 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3674
3675 * xfns.c (QCdata): Moved to xdisp.c.
3676
3677 * xdisp.c (QCdata): Moved here from xfns.c.
3678 (syms_of_xdisp): Initialize QCdata.
3679
3680 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3681
3682 * window.c (coordinates_in_window): Use
3683 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3684 FRAME_INTERNAL_BORDER_WIDTH.
3685
100b3cbb 3686 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3687 it is obviously invalid.
100b3cbb
GM
3688
3689 * xterm.c (x_term_init): Create a colormap if not using the
3690 default visual.
3691
3692 * xterm.h (select_visual): Change prototype.
3693
3694 * xfns.c (select_visual): Rewritten. Recognize user-specified
3695 visual classes.
3696 (visual_classes): New variable.
3697
64d739c4
GM
36982000-03-04 Gerd Moellmann <gerd@gnu.org>
3699
3700 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3701 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3702 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3703 (x_decode_color): Don't handle allocation of white and black
3704 specially.
3705 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3706 XtNcolormap resources.
3707 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3708 (Fx_create_frame): Initialize color members of x_output structure.
3709 (xpm_load): Pass colormap to XPM lib.
3710
3711 * xfaces.c (x_free_colors): Access colormap of frame using
3712 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3713 when default colormap is used.
3714
3715 * xterm.c (x_term_init): Set Colormap member of x_display_info
3716 structure. Copy colormap if resource `privateColormap' is
3717 specified (PseudoColor only).
3718 (x_setup_relief_color): Access colormap of frame using
3719 FRAME_X_COLORMAP.
3720
3721 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3722 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3723
c3cee013
JR
37242000-03-04 Jason Rumney <jasonr@gnu.org>
3725
3726 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3727 other non-platform-specific equivalents.
64d739c4 3728 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3729 specific functions and macros as their w32 equivalents where
3730 non-platform-specifics are not available.
3731 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3732 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3733 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3734 (frame_update_line_height): Use macros to access f->output_data.
3735 (defined_color): Remove FIXME comments; fixed.
3736 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3737 into #ifdef blocks. Add WINDOWSNT blocks.
3738 (Fx_list_fonts): Use macros for accessing font data.
3739 (set_lface_from_font_name): Different default fonts for X and
3740 WINDOWSNT.
3741 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3742 scalable for backward compatibility.
64d739c4 3743 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3744 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3745
64d739c4 3746 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3747 syms_of_w32faces.
3748
3749 * makefile.nt (w32faces.obj): Remove.
3750 (xfaces.obj): Add.
3751
807cc41c
JR
37522000-03-03 Jason Rumney <jasonr@gnu.org>
3753
3754 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3755 correct parameters.
3756
0007072a
KR
37572000-03-03 Ken Raeburn <raeburn@gnu.org>
3758
3759 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3760 standard ELF definitions here if the system header does not.
3761
71a6ba55
GM
37622000-03-03 Gerd Moellmann <gerd@gnu.org>
3763
3764 * xterm.c (PER_CHAR_METRIC): Removed.
3765 (x_per_char_metric_1, x_default_char): New functions.
3766 (x_per_char_metric): If font's default char is invalid, return
3767 metrics of a suitably chosen usable default char.
3768 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3769 char, replace occurrences of unprintable chars with a suitably
3770 chosen usable default char.
71a6ba55 3771
900fa1f1
GM
37722000-03-02 Gerd Moellmann <gerd@gnu.org>
3773
42f55fe0
GM
3774 * xterm.c (note_mouse_highlight): Return quickly if frame's
3775 glyph matrices have been freed.
3776
3777 * dispnew.c (free_glyphs): Block input while freeing matrices.
3778
900fa1f1
GM
3779 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3780
3781 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3782 x_free_colors.
3783
3784 * dispextern.h (x_free_colors): Add prototype.
3785
3786 * xfaces.c (x_free_colors): New function.
3787 (unload_color, free_face_colors): Use it.
3788
2f950292
EZ
37892000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3790
3791 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3792
3793 * window.c [MSDOS]: Include msdos.h.
3794
54d04320
DL
37952000-03-02 Dave Love <fx@gnu.org>
3796
3797 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3798
3799 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3800 set C_OPTIMIZE_SWITCH for gcc.
3801
0ba93ac4
KH
38022000-03-02 Kenichi Handa <handa@etl.go.jp>
3803
3804 * coding.c (coding_save_composition): Be sure to allocate
3805 composition data area in coding even if there's no composition in
3806 the current run.
3807
a2bc11d4
JR
38082000-03-01 Jason Rumney <jasonr@gnu.org>
3809
3810 * w32term.c: Equivalent changes to those made to xterm.c on
3811 2000-02-25 and 2000-02-24.
3812
3813 * w32fns.c: Equivalent changes to those made to xfns.c on
3814 2000-02-25 and 2000-02-21.
3815
3816 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3817 correct line-end convention is followed.
3818
3819 * w32menu.c [HAVE_BOXES]: Remove #undef.
3820 (single_keymap_panes): Remove code for simulating checkmarks.
3821 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3822 Remove code for drawing simulated checkmarks.
3823 (w32_menu_show): make unibyte help string correctly.
3824 (add_menu_item): draw standard Windows checkmarks. Draw radio
3825 buttons as radio buttons if possible.
3826
72d19d75
GM
38272000-03-01 Gerd Moellmann <gerd@gnu.org>
3828
2df636f4
GM
3829 * sysdep.c (start_of_text): Don't define this function for NetBSD
3830 with ELF.
3831
427ec082 3832 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3833 Don't define.
3834 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3835 (LINKER): Don't undef if __NetBSD__ is defined.
3836
3837 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3838
3839 * fileio.c [__NetBSD__]: Define `unix'.
3840
72d19d75
GM
3841 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3842
ed4d0512
GM
38432000-02-29 Gerd Moellmann <gerd@gnu.org>
3844
50b1039f
GM
3845 * atimer.c (start_atimer): Don't abort when timers are stopped.
3846 (append_atimer_lists): New function.
3847 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3848 arbitrary lists of stopped and running atimers.
3849
ed4d0512
GM
3850 * atimer.c (cancel_atimer): Handle canceling an atimer when
3851 some timers are stopped.
3852
3853 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3854 after canceling it.
3855
3856 * fns.c (maybe_resize_hash_table): Handle case of new size
3857 coming out as being the same as old size.
3858
387023ee
JR
38592000-02-27 Jason Rumney <jasonr@gnu.org>
3860
3861 * makefile.nt: Add atimer.h to dependencies.
3862 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3863 * w32console.c: Only disable window system features for dispextern.h
3864 (initialize_w32_display): Build a display info for the console.
3865 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3866 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3867 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3868 as 2 button mice.
3869 * w32gui.h (struct W32FontStruct): Revert last change after change
3870 to xdisp.c.
3871 * w32menu.c (single_submenu): Set up help string.
3872 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3873 (w32_dialog_show): Set up help string.
3874 * w32term.c (w32_display_info_for_display): Remove unused function.
3875 (w32_draw_bitmap): Use pre-built bitmaps.
3876 (w32_initialize_display_info): New function to initialize parts of
3877 display info that are common to both GUI and console frames.
3878 (w32_term_init): Use w32_initialize_display_info. Do not set
3879 Vw32_num_mouse_buttons here, as it is not called for console
3880 frames. Build bitmaps for indicating truncated lines etc.
3881 (x_delete_display): Destroy pre-built bitmaps.
3882 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3883 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3884
4516715a
DL
38852000-02-27 Dave Love <fx@gnu.org>
3886
3887 * lisp.h: Add a bunch of prototypes.
3888
171ca836
KH
38892000-02-26 Kenichi Handa <handa@etl.go.jp>
3890
3891 * keyboard.c (read_char): Set `usec' correctly.
3892
4013921d
KH
38932000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3894
3895 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3896 `lambda', set reg[RRR] to the map index.
3897 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3898 reg[RRR] to 0. Otherwise, set it to -1.
3899
9244a058
GM
39002000-02-25 Gerd Moellmann <gerd@gnu.org>
3901
2df636f4 3902 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3903
18e21ce8 39042000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 3905
f43d79c1
GM
3906 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3907 and contains a `:', prepend `/:'.
3908
3909 * window.c (select_window_1): If selected_window is nil,
3910 don't "swap out" the buffer's point.
3911 (Fset_window_configuration): Set selected_window to nil
3912 before calling Fselect_window.
3913 (unshow_buffer): Don't set point in buffer from window's point
3914 if another more recently selected window also shows the buffer.
3915
bed0c171
GM
39162000-02-25 Gerd Moellmann <gerd@gnu.org>
3917
449c3c52
GM
3918 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3919
f5b58615
GM
3920 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3921 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3922 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3923 variables.
3924 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3925 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3926 (hide_busy_cursor): New functions.
3927 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3928
3929 * minibuf.c (read_minibuf): Cancel busy-cursor.
3930
3931 * keyboard.c (command_loop_1): Call start_busy_cursor before
3932 Fcommand_execute and cancel_busy_cursor after it.
3933 (timer_check): Remove busy-cursor code.
3934 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3935 cursor timer.
3936
3937 * process.c (wait_reading_process_input): Remove busy-cursor code.
3938
3939 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3940 Fx_hide_busy_cursor.
3941
3942 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3943 Remove prototyoes.
3944 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3945
3946 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3947
3948 * xterm.c (XTread_socket): Remove busy-cursor code.
3949
4eb8436f
GM
3950 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3951 (build_frame_matrix_from_leaf_window): Put code handling
3952 glyph row's not being a slice of a frame row in #if 0.
3953 (sync_window_with_frame_matrix_rows): New function.
3954 (frame_row_to_window): New function.
3955 (mirror_line_dance): Handle copies between windows.
3956
3cb65b0e
GM
3957 * lread.c (Fload): Use `xfree' instead of `free'.
3958 (init_obarray): Use `xmalloc' instead of `malloc'.
3959
bed0c171
GM
3960 * window.c (Fset_window_buffer): Set WINDOW to the window
3961 after decoding.
2add4349
GM
3962 (coordinates_in_window): Take frame's internal border width
3963 into account.
bed0c171 3964
42088c12
GM
39652000-02-24 Gerd Moellmann <gerd@gnu.org>
3966
3967 * xterm.c (x_display_and_set_cursor): Display cursor of
3968 non-selected windows depending on the setting of
3969 cursor_in_non_selected_windows.
3970
3971 * xdisp.c (cursor_in_non_selected_windows): New variable.
3972 (syms_of_xdisp): DEFVAR_BOOL it.
3973
d1e103b2
GM
39742000-02-23 Gerd Moellmann <gerd@gnu.org>
3975
723e779c
GM
3976 * data.c (Fstring_to_number): If number is greater than what
3977 fits into an integer, return a float.
3978
d1e103b2
GM
3979 * eval.c (specbind): Remove references to
3980 keyword_symbols_constant_flag.
3981
3982 * data.c (keyword_symbols_constant_flag): Removed.
3983 (Fmakunbound, set_internal, syms_of_data): Remove references to
3984 keyword_symbols_constant_flag.
3985
3986 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3987
214f877f
KH
39882000-02-23 Kenichi Handa <handa@etl.go.jp>
3989
3990 * syntax.c (multibyte_syntax_as_symbol): New variable.
3991 (syms_of_syntax): Declare it as a Lisp variable.
3992 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3993 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3994 nonzero, treat all multibyte characters as symbol.
42088c12 3995 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3996 characters.
3997
130adcb7
EZ
39982000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3999
3cb65b0e 4000 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 4001 a deleted frame.
130adcb7 4002
17cbbf95
GM
40032000-02-21 Gerd Moellmann <gerd@gnu.org>
4004
4005 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
4006
4007 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4008 (x_non_menubar_window_to_frame): Check the busy-cursor window.
4009
beb0bc36
DL
40102000-02-21 Dave Love <fx@gnu.org>
4011
4012 * frame.c (Vmouse_position_function): New variable.
4013 (Fmouse_position): Use it.
4014 (syms_of_frame): Install it.
4015
4016 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
4017
1d92afcd
GM
40182000-02-20 Gerd Moellmann <gerd@gnu.org>
4019
4020 * fileio.c (Finsert_file_contents): Unbind the binding of
4021 standard-output done by temp_output_buffer_setup.
329eed9f
GM
4022
4023 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
4024 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
4025 (specbind, unbind_to): Handle most common case of non-constant
4026 symbol with trivial value specially.
4027
4028 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
4029
18e21ce8 40302000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
4031
4032 * data.c (Fmake_variable_buffer_local): Doc fix.
4033 Init found_for_buffer to 0.
4034 (Fmake_variable_frame_local): If the variable has already
4035 been buffer-local, set the check_frame field.
4036
1d4311c3
EZ
40372000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
4038
4039 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
4040 produced for CODING_MODE_LAST_BLOCK requires.
4041
2dc95ddd
DL
40422000-02-18 Dave Love <fx@gnu.org>
4043
4044 * keyboard.c (echo_keystrokes): Remove declaration.
4045 (Vecho_keystrokes) New variable.
4046 (read_char, record_menu_key, read_key_sequence): Use it to allow
4047 use of float value.
4048 (syms_of_keyboard): Change Vecho_keystrokes declaration.
4049
4050 * lread.c: Undef feature selection macros before defining.
4051
f0930f35
GM
40522000-02-18 Gerd Moellmann <gerd@gnu.org>
4053
4054 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
4055 for symbols other than the symbol in question.
4056
e3d4de90
DL
40572000-02-17 Dave Love <fx@gnu.org>
4058
4059 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
4060
0b378936
GM
40612000-02-17 Gerd Moellmann <gerd@gnu.org>
4062
d621caf7
GM
4063 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
4064
0b378936
GM
4065 * alloc.c (enum mem_type): Compile unconditionally.
4066
3b451f74
EZ
40672000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
4068
4069 * xfaces.c (tty_defined_color): Don't return faulire indication
4070 for unspecified-fg and unspecified-bg pseudo-colors.
4071
10689a01
GM
40722000-02-17 Gerd Moellmann <gerd@gnu.org>
4073
1216f5e4
GM
4074 * alloc.c (mark_object): Don't mark symbol names in pure space.
4075 (gc_sweep): Don't unmark symbol names in pure space.
4076
4077 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
4078 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
4079 [GC_MARK_STACK]: New defines.
427ec082 4080 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
4081 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
4082
4083 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
4084
4085 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
4086 allocate_buffer instead of xmalloc.
4087
4088 * alloc.c (toplevel): Include setjmp.h.
4089 (PURE_POINTER_P): New define.
4090 (enum mem_type) [GC_MARK_STACK]: New enumeration.
4091 (Vdead) [GC_MARK_STACK]: New variable.
4092 (lisp_malloc): Add parameter TYPE, call mem_insert if
4093 GC_MARK_STACK is defined.
4094 (allocate_buffer): New function.
427ec082 4095 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
4096 (free_float) [GC_MARK_STACK]: Set type to Vdead.
4097 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
4098 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4099 (MEM_NIL) [GC_MARK_STACK]: New define.
4100 (struct mem_node) [GC_MARK_STACK]: New structure.
4101 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4102 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4103 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4104 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4105 (mark_stack) [GC_MARK_STACK]: New functions.
4106 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4107 (clear_marks): Removed.
4108 (gc_sweep): Set free conses' car, free floats' type, free
4109 symbols' function to Vdead. Use lisp_free to free buffers.
4110 (init_alloc_once): Initialize Vdead.
4111 (survives_gc_p): Return non-zero for pure objects.
4112
4113 * alloc.c: Add comments throughout the file.
4114
2503c8b1
GM
4115 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4116 that unblocks alarms.
4117
8389e1e2
GM
4118 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4119 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4120 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4121
10689a01 4122 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4123
bfc17d18
KH
41242000-02-17 Kenichi Handa <handa@etl.go.jp>
4125
4a09dee0
KH
4126 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4127 avoid infinite error signaling. Allocate sufficient memory for
4128 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4129
2b927d02
SM
41302000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4131
4132 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4133 depends on the previous behavior.
4134
b49cb764
GM
41352000-02-16 Gerd Moellmann <gerd@gnu.org>
4136
4137 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4138
99e95407
GM
41392000-02-15 Gerd Moellmann <gerd@gnu.org>
4140
4141 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4142
4143 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4144 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4145 write(2).
4146
6ffd3cf7
RS
41472000-02-15 Richard M. Stallman <rms@gnu.org>
4148
4149 * data.c (set_internal): Don't make variable buffer-local
4150 if within a let-binding for the same buffer.
4151 (let_shadows_buffer_binding_p): New function.
4152
4153 * eval.c (specbind): For buffer-local value,
4154 record the current buffer also.
4155 (unbind_to): Cope with that change.
4156
cad53475
GM
41572000-02-15 Gerd Moellmann <gerd@gnu.org>
4158
4159 * window.c (Fsave_window_excursion): Doc fix.
4160
1aa963c8
SM
41612000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4162
4163 * syntax.c (back_comment): Make sure we only consider comment-starters
4164 of the relevant style and return -1 in case of a failure to find the
4165 beginning of the comment.
4166 (Fforward_comment): If back_comment fails, go back to the position just
4167 after the comment-end.
4168 (scan_lists): Add comment describing a very minor bug.
4169
b9b84fd3
SM
41702000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4171
4172 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4173 `completion-regexp-list' in the docstring.
4174
3a28db80
DL
41752000-02-14 Dave Love <fx@gnu.org>
4176
4177 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4178
fb4a568d
SM
41792000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4180
4181 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4182 to Emacs' syntax. Also fix the comment about set/not-set meanings
4183 since Emacs syntax is not the value 0 any more.
4184 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4185 since it's now part of RE_SYNTAX_EMACS.
4186
1063ebb5
DL
41872000-02-12 Dave Love <fx@gnu.org>
4188
4189 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4190 Alpha.
4191
fb07a302
GM
41922000-02-12 Gerd Moellmann <gerd@gnu.org>
4193
4194 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4195
aaf2320c
DL
41962000-02-12 Dave Love <fx@gnu.org>
4197
4198 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4199
4200 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4201 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4202 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4203
4204 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4205
4206 * s/nextstep.h: Don't define HAVE_ALLOCA.
4207
4208 * config.in: Add vfork bits.
4209
eedf8bde
GM
42102000-02-12 Gerd Moellmann <gerd@gnu.org>
4211
4212 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4213 unwind function to undo the effect of stopping atimers.
4214
4215 * keyboard.c (bind_polling_period): Stop all timers except
4216 poll_timer.
4217
4218 * atimer.c (stopped_atimers): New variable.
4219 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4220 New functions.
4221
4222 * atimer.h (stop_other_atimers, run_all_atimers)
4223 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4224
eedf8bde
GM
4225 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4226
8476c2f8
KR
42272000-02-11 Ken Raeburn <raeburn@gnu.org>
4228
4229 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4230 library may depend on jpeg.
4231 (atimer.o): Depends on atimer.c.
4232
0e85e4a3
KH
42332000-02-11 Kenichi Handa <handa@etl.go.jp>
4234
4235 * insdel.c (del_range_1): Call update_compositions.
4236 (del_range_both): Call update_compositions just once..
4237
97fa0cc8
DL
42382000-02-10 Dave Love <fx@gnu.org>
4239
4240 * xfns.c (create_frame_xic): Fix initialization of automatic
4241 aggregates for pcc.
4242
25566a3c
KH
42432000-02-09 Kenichi Handa <handa@etl.go.jp>
4244
4245 * ccl.c (CCL_MAKE_CHAR): New macro.
4246 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4247 registers by CCL_MAKE_CHAR before calling translate_char.
4248 <CCL_TranslateCharacterConstTbl> Likewise.
4249
69da54ba
DL
42502000-02-08 Dave Love <fx@gnu.org>
4251
4252 * lread.c (__EXTENSIONS__): Define.
4253
f7136ee8
GM
42542000-02-08 Gerd Moellmann <gerd@gnu.org>
4255
4256 * puresize.h (BASE_PURESIZE): Increase to 650000.
4257
7768790b
EZ
42582000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4259
4260 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4261 the help message.
4262
38fd211b
EZ
42632000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4264
4265 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4266 md, mh, mb, mr, and me to the fake termcap entry.
4267
66e4690f
KR
42682000-02-06 Ken Raeburn <raeburn@gnu.org>
4269
4270 * sound.c (sound_cleanup): Don't call device close routine if the
4271 function pointer is null.
4272
a75dfea0
AI
42732000-02-06 Andrew Innes <andrewi@gnu.org>
4274
4275 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4276 around image definitions and prototypes.
4277 (gamma_correct) [WINDOWSNT]: New prototype.
4278
4279 * w32term.c (x_make_frame_visible): Replace call to
4280 input_poll_signal with poll_for_input.
4281
4282 * window.c [WINDOWSNT]: Include w32term.h.
4283
4284 * xdisp.c [WINDOWSNT]: Include w32term.h.
4285
4286 * makefile.nt: Add dependencies on w32gui.h.
4287 (OBJ1): Include atimer.obj.
4288 ($(BLD)\atimer.obj): New dependency rule.
4289
4290 * w32.c (sigmask): New function (does nothing).
4291 (sigunblock): Ditto.
4292
4293 * frame.c [WINDOWSNT]: Include w32term.h.
4294
4295 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4296
4297 * lread.c (syms_of_lread): Fix literal newlines.
4298
4299 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4300 the string constant limit (2048 bytes) in MSVC.
4301 (main): Ditto.
4302
59ddecde
GM
43032000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4304
4305 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4306 area.
4307 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4308 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4309 dispatch the event.
4310
07590973
DL
43112000-02-04 Dave Love <fx@gnu.org>
4312
4313 * fileio.c: Remove some unused vars.
4314 (_GNU_SOURCE): Define (for euidaccess).
4315
4316 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4317
4318 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4319 gcpro1, gcpro2.
4320 (read_minibuf): Deal with allow_props correctly.
4321
649351f9
EZ
43222000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4323
4324 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4325
66e4690f 43262000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4327
4328 * search.c (compile_pattern): If a cache entry has a nil regexp,
4329 fill in that entry instead of clobbering a previously cached
4330 string regexp.
4331
66e4690f 43322000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4333
4334 * puresize.h (BASE_PURESIZE): Increase to 610000.
4335
d240a249
GM
43362000-02-02 Gerd Moellmann <gerd@gnu.org>
4337
4338 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4339 can GC.
4340
ca91fb26
KH
43412000-02-02 Kenichi Handa <handa@etl.go.jp>
4342
25660570
KH
4343 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4344 instead of incrementing ic directly.
4345 <CCL_WriteExprConst> Likewise.
4346 <ccl_set_expr>: Set ic to jump_address.
4347
ca91fb26
KH
4348 * fileio.c (e_write): Fix the handling of
4349 CODING_FINISH_INSUFFICIENT_SRC.
4350
2ede9689
DL
43512000-02-01 Dave Love <fx@gnu.org>
4352
4353 * editfns.c (Fpropertize): Doc fix.
4354
4355 * process.c (Fstart_process): Doc fix.
4356
4357 * eval.c: Fix various doc strings not to duplicate information
4358 from help-manyarg-func-alist.
4359
4360 * window.c (Fset_window_margins): Don't make interactive. Doc
4361 fix.
4362
4363 * doc.c (Vhelp_manyarg_func_alist): New variable.
4364 (Fdocumentation): Use it.
4365 (syms_of_doc): Define it.
4366
b6680a0e
GM
43672000-01-31 Gerd Moellmann <gerd@gnu.org>
4368
2cb750ba
GM
4369 * xterm.c (xim_open_dpy): Remove unused local variable.
4370
74e9213b
GM
4371 * emacs.c (USAGE): Use term `display options' instead of `X
4372 options'.
4373
4374 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4375 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4376
b6680a0e
GM
4377 * fns.c (sweep_weak_table): New function.
4378 (sweep_weak_hash_tables): Use it. Keep on marking until there
4379 is no more change.
4380
994c5afe
GM
43812000-01-30 Gerd Moellmann <gerd@gnu.org>
4382
4383 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4384 that XTread_socket does not crash by trying to call XNoOp on a
4385 closed display.
427ec082 4386
f00276e3
JR
43872000-01-30 Jason Rumney <jasonr@gnu.org>
4388
4389 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4390 Change selected_frame to SELECTED_FRAME ().
4391 (w32_console_mouse_position): Remove #ifndef MULE from around
4392 `insist' parameter.
4393
4394 * makefile.nt: Remove dosfns.obj.
4395
4396 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4397
4398 * w32fns.c (w32_defined_color): Check for valid frame before
4399 applying gamma correction. Eliminate dependency on frame elsewhere.
4400 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4401 (w32_to_x_font): Use resx and resy not height_in and width_in.
4402 (x_to_w32_font): Doc fix.
4403 (xlfd_strip_height): New function to strip and return font height.
4404 (w32_font_match): Compare height separately from rest of xlfd
4405 spec, using xlfd_strip_height.
4406
4407 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4408 width_in. Use w32_defined_color in place of defined_color.
4409
4410 * w32faces.c: Merge more of DOS and X specifics in preparation for
4411 merge with xfaces.c.
4412 (defined_color): Remove FIXME comment.
4413 (tty_color_name): Provide w32-specific function.
4414 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4415
4416 * w32console.c (turn_on_face, turn_off_face): Removed.
4417 (w32_face_attributes): New function.
4418 (Global_variables): Reduce scope where possible.
4419 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4420 fill attribute.
4421 (hl_mode): Don't modify text attributes.
4422 (write_glyphs): Don't do anything if len <= 0. Use
4423 w32_face_attributes to get attributes for drawing. Write
4424 terminating codes using char_attr_normal.
4425 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4426 (update_begin, update_end): Likewise.
4427 (vga_stdcolor_name): New function.
4428 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4429 (Fset_screen_color): Remove char_attr_reverse.
4430
b08e8bb2
GM
44312000-01-29 Gerd Moellmann <gerd@gnu.org>
4432
4433 * xfns.c (xic_set_preeditarea): Take window parameter and
4434 window-relative pixel-positions.
4435
4436 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4437 is its frame's selected window.
4438 (xim_instantiate_callback): Likewise.
4439
4440 * xfns.c (x_create_im): Removed.
4441 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4442 (supported_xim_styles): Renamed from supported_styles.
4443 (best_xim_style): Renamed from best_style.
4444 (create_frame_xic): Renamed from xic_create_frame.
4445 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4446
b08e8bb2
GM
44472000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4448
4449 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4450 our frames, call XFilterEvent with 2nd parameter `None'.
4451 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4452 returning XBufferOverflow.
4453 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4454 area.
4455 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4456 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4457 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4458 (xim_initialize, xim_close)
4459 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4460 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4461 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4462 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4463
4464 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4465 and `xim_styles'.
4466 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4467 `xic_style' and `xic_xfs'.
4468 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4469 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4470 (FRAME_XIM): Removed.
4471
4472 * xfns.c (supported_styles): New variable.
4473 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4474 (xic_create_xfontset, best_style, xic_create_frame)
4475 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4476 (xic_set_xfontset): New functions.
4477
142e109c
DL
44782000-01-28 Dave Love <fx@gnu.org>
4479
4480 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4481
4482 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4483
b02786f9
GM
44842000-01-28 Gerd Moellmann <gerd@gnu.org>
4485
d060bc9f
GM
4486 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4487 for *scratch* if it already existed.
4488
b02786f9
GM
4489 * emacs.c (USAGE): New macro.
4490 (main): Use it to display usage information.
4491
2c52d7e4
EZ
44922000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4493
4494 Support for the menu-help feature:
4495
4496 * msdos.h: Change prototypes of XMenuAddSelection and
4497 XMenuActivate.
4498
4499 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4500 part of the line to the termscript file.
4501 (IT_clear_to_end): Clear the entire line, not just its beginning.
4502 (menu_help_message, prev_menu_help_message): New variables.
4503 (IT_menu_make_room): Make room for the help_text member.
4504 (IT_menu_display): New argument disp_help; all callers changed.
4505 If disp_help is non-zero, store the help text of the active menu
4506 item in menu_help_message.
4507 (XMenuAddPane): Initialize the help_text member to NULL.
4508 (XMenuAddSelection): New argument help_text. Store it in the
4509 XMenu structure.
4510 (XMenuActivate): New argument help_callback. If the value of
4511 menu_help_message has changed since the last time, display the
4512 menu help message text while waiting for the mouse to move. Clear
4513 the echo area before exiting.
4514 (XMenuDestroy): Free the help_text member.
4515
ffe0bcd1
GM
45162000-01-27 Gerd Moellmann <gerd@gnu.org>
4517
4518 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4519 XMenuAddSelection. Pass help callback to XMenuActivate.
4520 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4521
50dbd23f
EZ
45222000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4523
4524 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4525 and EMACS_SET_USECS.
4526
f5941bf8
GM
45272000-01-26 Dave Love <fx@gnu.org>
4528
6c67ddee
DL
4529 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4530
f5941bf8
GM
4531 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4532 an error may be signalled.
4533
9e49c990
GM
45342000-01-26 Gerd Moellmann <gerd@gnu.org>
4535
fc3cb460
GM
4536 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4537 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4538
9e49c990
GM
4539 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4540
d0c037d8
GM
45412000-01-25 Gerd Moellmann <gerd@gnu.org>
4542
4543 * charset.c (Fstring): If there is a multibyte char among
4544 the args, always return a multibyte string.
4545
e12489f9
GM
45462000-01-25 Gerd Moellmann <gerd@gnu.org>
4547
4548 * sysdep.c (sys_select): Turn atimers off and on instead of
4549 recording and restoring old alarm handler
4550
4551 * process.c (toplevel): Include atimer.h.
4552 (create_process_1): Rewritten.
4553 (create_process): Use atimers instead of alarm.
4554 (wait_reading_process_input) [hpux]: Turn atimers off instead
4555 of turning off SIGALRM.
4556 (wait_reading_process_input): Turn off atimers instead off
4557 calling stop_polling.
4558
4559 * emacs.c (main): Call init_atimer.
4560
4561 * keyboard.c (toplevel): Include systime.h and atimer.h.
4562 (polling_for_input): Removed because unused.
4563 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4564 (poll_timer): New variable.
4565 (poll_for_input, poll_for_input_1): New functions.
4566 (start_polling, stop_polling): Rewritten.
4567
4568 * keyboard.h (polling_for_input): Removed.
427ec082 4569
e12489f9
GM
4570 * atimer.h, atimer.c: New files.
4571
4572 * Makefile.in (obj): Add atimer.o.
4573 (atimer.o): New target.
4574
4575 * blockinput.h (pending_atimers): Add extern declaration.
4576 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4577
4578 * lisp.h (popup_activated_flag): Add extern declaration.
4579
4580 * xmenu.c (popup_activated_flag): Make externally visible.
4581 (popup_activate_callback) [USE_MOTIF]: Increment
4582 popup_activated_flag.
4583 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4584
4585 * xterm.c (toplevel): Include atimer.h.
4586 (toolkit_scroll_bar_interaction): New variable.
4587 (Fxt_process_timeouts): Removed.
4588 (x_process_timeouts): New function.
4589 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4590 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4591 (x_make_frame_visible): Call poll_for_input_1 instead of
4592 input_poll_signal. Don't call alarm.
4593 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4594
1e5279b9
DL
45952000-01-24 Dave Love <fx@gnu.org>
4596
6c67ddee 4597 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4598 Don't use -cckr -- apparently not now necessary.
4599
edf6aeb8
EZ
46002000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4601
4602 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4603 screen boundary.
4604
9badad41
JR
46052000-01-23 Jason Rumney <jasonr@gnu.org>
4606
4607 * w32fns.c (w32_defined_color): Apply gamma correction before
4608 trying to map to the palette.
4609 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4610 to w32_clear_rect.
4611
4612 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4613 here. Callers changed to always pass real device context.
4614 (w32_draw_bitmap): Likewise.
4615 (w32_get_glyph_overhangs): Likewise.
4616 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4617 one.
4618 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4619 pfnSetScrollInfo and SetScrollRange.
4620 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4621 back into MULE characters after decoding them.
4622 (x_get_glyph_face_and_encoding): Likewise.
4623 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4624 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4625 (x_produce_glyphs): Calculate per char metrics for a character
4626 that we know exists in default font when font_not_found_p is true.
4627
63bd786b
JR
46282000-01-22 Jason Rumney <jasonr@gnu.org>
4629
4630 * makefile.nt (intervals.obj, composite.obj): New modules.
4631 (composite.h): Added as dependency where appropriate.
4632
4633 * w32gui.h (XGCValue): New struct for emulating X GCs.
4634
4635 * w32term.h (XCharStruct): New struct for emulating X.
4636
4637 * w32console.c (turn_on_face, turn_off_face): New functions.
4638 (change_line_highlight): New prototype for new redisplay.
4639 (write_glyphs): Support multibyte text. Support faces.
4640
4641 * w32faces.c: Complete rewrite for new redisplay based on new
4642 xfaces.c.
4643
4644 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4645 throughout. struct frame * in place of FRAME_PTR.
4646 Skeleton support for images, toolbars, tooltips from xfns.c.
4647 (Fx_create_frame): Use system default for default scroll bar
4648 width.
4649 (w32_get_arg): Renamed from x_get_arg.
4650 (Fx_file_dialog): New function.
4651 (w32_list_fonts): Check cache before asking system.
4652 (Vw32_enable_synthesized_fonts): New variable.
4653 (Vw32_enable_italics): Obsolete, removed.
4654
4655 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4656 Use SELECTED_FRAME macro.
4657
4658 * w32menu.c: Add skeleton support for help strings on menus.
4659 (add_menu_item): Native checkbox and radio support added, but not
4660 yet enabled due to bugs.
4661 (push_menu_item): Add parameters type, selection and help.
4662 Callers updated.
4663 Formatting changes to reduce unnecessary diffs with xmenu.c.
4664
4665 * w32select.c (Fw32_set_clipboard_data): Update call to
4666 find_charset_in_str.
4667
4668 * w32term.c: Complete rewrite for new redisplay based on new
4669 xterm.c with necessary sections merged back in from old w32term.c.
4670
6ffd3cf7 46712000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4672
4673 * data.c (set_internal): Further fix in same criterion.
4674
6ffd3cf7 46752000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4676
4677 * data.c (set_internal): Fix the criteria for whether
4678 to swap out the old cached binding.
4679
60af03f1
DL
46802000-01-19 Dave Love <fx@gnu.org>
4681
4682 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4683
f9be074f
KH
46842000-01-18 Kenichi Handa <handa@etl.go.jp>
4685
4686 * regex.c (re_compile_fastmap): While checking a range table for
4687 `charset', skip flag bits for a character class correctly.
4688
52b8dbf9
GM
46892000-01-17 Gerd Moellmann <gerd@gnu.org>
4690
d36100c9
GM
4691 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4692
52b8dbf9
GM
4693 * xfns.c (x_window): Call lw_create_widget with new parameter
4694 list.
4695
4696 * widget.c (EmacsFrameSetCharSize): Change size of children first
4697 because of problems with main window geometry management under
4698 Lesstif.
4699
4700 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4701 MENU_ITEMS_ITEM_.*.
4702 (MENU_ITEMS_ITEM_HELP): New enumerator.
4703 (push_menu_item): Add parameter HELP. Record help in menu_items.
4704 (single_menu_item, single_submenu, list_of_items): Call
4705 push_menu_item with new parameter.
4706 (single_submenu): Set help string in widget value.
4707 (menu_highlight_callback): New function.
4708 (set_frame_menubar): Call lw_create_widget with new
4709 parameter list.
4710 (xmenu_show, xdialog_show): Ditto.
4711
3139018f
GM
47122000-01-13 Gerd Moellmann <gerd@gnu.org>
4713
4714 * sound.c (Fplay_sound): Improve doc string.
4715
83c8f461
RS
47162000-01-11 Richard M. Stallman <rms@gnu.org>
4717
4718 * lisp.h (set_internal): Enter the new arg.
4719
4720 * eval.c (specbind): Record buffer-local variables specially,
4721 indicating which buffer's binding was saved.
4722 (unbind_to): Restore buffer-local variables specially
4723 in the proper buffer.
4724
4725 * data.c (set_internal): New arg BUF.
427ec082 4726
83c8f461
RS
4727 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4728 * data.c (Fset): Pass new arg to set_internal.
4729 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4730
1fab1775
GM
47312000-01-11 Gerd Moellmann <gerd@gnu.org>
4732
4733 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4734 xprintsym.
4735
83c8f461 47362000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4737
4738 * minibuf.c (Ftry_completion): Doc fix.
4739
7a85e4df
GM
47402000-01-11 Gerd Moellmann <gerd@gnu.org>
4741
4742 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4743 vector, too.
4744
a970dae4
AS
47452000-01-11 Andreas Schwab <schwab@suse.de>
4746
4747 * coding.c (code_convert_region): Initialize total_skip.
4748
c65d14ee
DL
47492000-01-08 Dave Love <fx@gnu.org>
4750
4751 * eval.c (Fuser_variable_p): Check customizability too.
4752
834938d2
GM
47532000-01-07 Gerd Moellmann <gerd@gnu.org>
4754
4755 * minibuf.c (Fcompleting_read): Doc fix.
4756
e0303cd6
GM
47572000-01-05 Gerd Moellmann <gerd@gnu.org>
4758
8a26744b
GM
4759 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4760 -L /usr/local/lib.
4761
e0303cd6
GM
4762 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4763 Check that input style is supported before trying to create an
4764 IC for it.
4765 (x_window): Call x_create_im.
427ec082 4766
2e471eb5
GM
47672000-01-04 Gerd Moellmann <gerd@gnu.org>
4768
560a7bd2
GM
4769 * xfns.c (current_gif_memory_src): New variable.
4770 (gif_load): Record the address of the current memory source
4771 in current_gif_memory_src.
4772 (gif_read_from_memory): Use current_gif_memory_src.
4773
f9ee84a3
GM
4774 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4775 macros statement form.
4776
d1299cde
GM
4777 * sound.c (struct sound): Renamed from struct sound_file.
4778 (struct sound): Add members `data' and `header_size'.
4779 (enum sound_attr): Add SOUND_DATA.
4780 (current_sound, current_sound_device): Variables renamed from
4781 sound_file and sound_device.
4782 (parse_sound): Parse :data.
4783 (parse_sound): Handle sound data in strings.
4784 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4785 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4786 needed header size.
4787 (wav_play, au_play): Play sounds from string data.
4788
2e471eb5
GM
4789 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4790
4791 * lisp.h: Add prototype for allocate_string_data.
4792
4793 * alloc.c (Fgarbage_collect): Return number of live and free
4794 strings.
4795
4796 * alloc.c (mark_buffer): Remove code in #if 0.
4797 (gc_sweep): Ditto.
4798 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4799 (strings_consed): New variable.
4800 (allocate_string): Set it.
4801 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4802 (Fmemory_use_counts): Return strings_consed. Use Flist.
4803
4804 * alloc.c: General cleanup in comments etc. Remove conditional
4805 compilation for `standalone'.
4806
4807 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4808
4809 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4810 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4811 (DONT_COPY_FLAG): Removed.
4812 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4813 (struct sdata, struct sblock): New
4814 (struct string_block): Rewritten.
4815 (STRINGS_IN_STRING_BLOCK): New macro.
4816 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4817 (large_sblocks, string_blocks, string_free_list): New variables.
4818 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4819 (init_strings): Rewritten.
4820 (allocate_string, allocate_string_data, compact_small_strings)
4821 (free_large_strings, sweep_strings): New functions.
4822 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4823 (struct string_block_head, current_string_block)
4824 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4825 (STRING_PAD): Removed.
4826 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4827 (Fgarbage_collect): Don't set mark bit in large strings.
4828 (mark_object): Mark strings differently. Mark symbol names
4829 differently.
4830 (survives_gc_p): Test marked strings differently.
427ec082 4831 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4832 symbol names.
4833 (compact_strings): Removed.
4834
42608ba8
EZ
48352000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4836
4837 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4838 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4839
e0a09e1a
KH
48402000-01-04 Kenichi Handa <handa@etl.go.jp>
4841
dd9f0750 4842 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4843 in a non-empty buffer.
dd9f0750 4844
3c0f3b15 4845 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4846
44cd3ae5
GM
48472000-01-03 Gerd Moellmann <gerd@gnu.org>
4848
4849 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4850 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4851
4852 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4853
c182a70f
EZ
48542000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4855
4856 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4857 need to test for MSDOS frames.
4858
24480d5b
EZ
48592000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4860
4861 * dosfns.c (unspecified_colors): Remove.
4862 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4863 unspecified_bg.
4864 (msdos_stdcolor_name): Return strings for unspecified fore- and
4865 back-ground colors.
4866
4867 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4868 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4869 (tty_color_name): Return Lisp strings for unspecified fore- and
4870 back-ground colors.
4871 (Finternal_set_lisp_face_attribute): Remove the special treatment
4872 for Qunspecified_{f,b}g.
4873 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4874 string.
4875
047f434a
GM
48762000-01-03 Gerd Moellmann <gerd@gnu.org>
4877
4878 * xdisp.c (reseat_at_next_visible_line_start): Position before
4879 newline only if ending up on a newline.
4880 (next_element_from_ellipsis): Return success. Handle case of
4881 displaying no ellipsis. Fix case of ellipsis defined in display
4882 table.
4883 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4884 returns 0.
4885
d684c676
EZ
48862000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4887
4888 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4889 (Fcolor_supported_p): Renamed from face-color-supported-p.
4890
5fe1d139
EZ
48912000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4892
4893 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4894 list of colors renamed to tty-defined-color-alist.
4895 (tty_color_name): Pass the frame to tty-color-by-index.
4896 (realize_tty_face): tty-color-alist is now a function which
4897 accepts the frame as argument.
4898
4899 * term.c (Ftty_display_color_p): Accept an optional argument
4900 FRAME.
4901
816be8b8
EZ
49022000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4903
4904 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4905 encode_terminal_code.
4906
b635321e
EZ
49072000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4908
4909 * dispnew.c (mode_line_string): Support termcap frames as well.
4910
9b784e96
GM
49112000-01-01 Gerd Moellmann <gerd@gnu.org>
4912
27189709
GM
4913 * syntax.c (Fforward_word): Undo previous change.
4914
4915 * editfns.c (Fconstrain_to_field): Don't constrain if
4916 inhibit-field-text-motion is non-nil.
4917 (Fline_beginning_position): Undo previous change.
4918 (Fline_end_position): Ditto.
4919
4920 * syntax.c (Fforward_word): Notice field boundaries only if
4921 inhibit-field-text-motion is nil.
4922
4923 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4924
4925 * editfns.c (Vinhibit_field_text_motion): New variable.
4926 (inhibit-field-text-motion): New DEFVAR_LISP.
4927 (Fline_beginning_position, Fline_end_position): Notice field
4928 boundaries only if inhibit-field-text-motion is nil.
4929
45158a91
GM
4930 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4931 All calls adjusted.
4932 (x_build_heuristic_mask): Likewise.
4933 (xbm_load_image_from_file): Change error output.
4934 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4935 (gif_load, gs_load, x_kill_gs_process): Ditto.
4936
9b784e96
GM
4937 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4938 color indices when accessing raster pixels.
63cec32f
GM
4939 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4940 one of :file or :data.
4941 (enum pbm_keyword_index): Add PBM_DATA.
4942 (pbm_format): Add :data.
4943 (pbm_image_p): Allow either :file or :data.
4944 (pbm_read_file): New function.
4945 (pbm_scan_number): Rewritten to read from string.
4946 (pbm_load): Support :data.
9b784e96 4947
5ad6a5fb
GM
49481999-12-31 Gerd Moellmann <gerd@gnu.org>
4949
4950 * xfns.c: New image functions adapted to Emacs conventions.
4951 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4952 variable `file'.
4953
63448a4d
WP
49541999-12-31 William M. Perry <wmperry@aventail.com>
4955
4956 * xfns.c (jpeg_format): Added the :data keyword
4957 (jpeg_image_p): JPEG is valid with :file _or_ :data
4958 (jpeg_memory_src): Defined new JPEG image source to read from a
4959 memory buffer.
4960 (jpeg_load): Pay attention to the :data keyword if specified.
4961 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4962 found.
4963 (png_format): Added the :data keyword
4964 (png_image_p): PNG is valid with :file _or_ :data
4965 (png_read_from_memory): New PNG read function to read from a
4966 memory buffer.
4967 (png_load): Pay attention to the :data keyword if specified. Uses
4968 png_set_read_fn() instead of png_init_io() if specified.
4969 (tiff_format): Added the :data keyword for TIFF images.
4970 (tiff_image_p): TIFF is valid with :file _or_ :data
4971 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4972 from a memory buffer.
4973 (tiff_load): Pay attention to the :data keyword if specified.
4974 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4975 (gif_format): Added the :data keyword
4976 (gif_image_p): GIF is valid with :file _or_ :data
4977 (gif_read_from_memory): New GIF input function to read from a
4978 memory buffer.
c65d14ee 4979 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4980 instead of DGifOpenFileName() if specified.
4981
c880678e
GM
49821999-12-31 Gerd Moellmann <gerd@gnu.org>
4983
4984 * xdisp.c (next_element_from_buffer): Change assertion at the end
4985 because it doesn't hold when there's an overlay string at the end
4986 from which we deliver an image.
4987
8ccb9a54
EZ
49881999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4989
4990 * msdos.c (IT_update_begin): Don't dereference members of struct
4991 window for deleted windows.
4992
12ce2351
GM
49931999-12-30 Gerd Moellmann <gerd@gnu.org>
4994
a915c648
GM
4995 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4996 a hook, and the hook has a non-nil `no-self-insert' property, let
4997 the return value of the hook specify whether an expansion took
4998 place. If it returns nil, no expansion has been performed.
4999
12ce2351
GM
5000 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
5001 differently.
5002
04ee4f45
EZ
50031999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
5004
5005 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
5006
7f4bc0c3
EZ
50071999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
5008
5009 * dispnew.c (mode_line_string): Support MS-DOS frames.
5010
dac204bc
GM
50111999-12-29 Gerd Moellmann <gerd@gnu.org>
5012
5013 * eval.c (syms_of_eval): Initialize debugger_may_continue.
5014
7b712ad8
KH
50151999-12-29 Kenichi Handa <handa@etl.go.jp>
5016
5017 * process.c (read_process_output): Fix the args CHARPOS and LENINS
5018 to signal_after_change.
5019
adb9900f
EZ
50201999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
5021
41ad069b
EZ
5022 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
5023 dimensions changed, invalidate the mouse highlight info.
5024 (disable_mouse_highlight, help_echo, previous_help_echo): New
5025 variables.
5026 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
5027 (fast_find_position, IT_note_mode_line_highlight)
5028 (IT_note_mouse_highlight): New functions.
5029 (IT_update_begin): If the redisplay affects the window where the
5030 mouse highlight is, clear the highlight. If the frame where the
5031 highlight was displayed was killed, invalidate the highlight
5032 info.
5033 (IT_update_end): Reset the highlight flag. Reset the mouse
5034 highlight-defer flag.
5035 (IT_frame_up_to_date): New function, if mouse highlight was
5036 deferred due to GC, do it now.
5037 (internal_terminal_init): Initialize mouse-highlight related
5038 members of the_only_x_display. Assign IT_frame_up_to_date to
5039 frame_up_to_date_hook.
5040 (dos_rawgetc): If the mouse moved, update mouse highlight. If
5041 help_echo changed value, generate a HELP_EVENT event.
5042 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
5043
adb9900f
EZ
5044 * msdos.h (struct display_info): New.
5045 (struct x_output): Add the display_info member.
5046 (FRAME_X_DISPLAY_INFO): New macro.
5047
481b5054
GM
50481999-12-28 Gerd Moellmann <gerd@gnu.org>
5049
5050 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
5051 if MODIFF > 1.
6448a6b3 5052 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
5053
5054 * buffer.c (modify_overlay): Always compute unchanged info.
5055
a2882b0d
KH
50561999-12-27 Kenichi Handa <handa@etl.go.jp>
5057
5058 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
5059
89ba5b5f
KH
50601999-12-27 Kenichi Handa <handa@etl.go.jp>
5061
5062 The following changes are to use more bits for face IDs.
5063
5064 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
5065 lowest 8 bits are single byte character code, the bits above are
5066 face ID.
481b5054 5067 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 5068 above.
481b5054
GM
5069 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
5070 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
5071
5072 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
5073 of GLYPH_MASK_CHAR.
5074
5075 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
5076 of GLYPH_MASK_CHAR.
5077
5078 * dispextern.h (struct glyph): Make face_id and padding_p the top
5079 level members. Change members in union `u'.
5080 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
5081 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
5082 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
5083 (CHAR_GLYPH_PADDING_P): Likewise.
5084 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
5085 characters.
5086
481b5054 5087 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
5088 for the change of struct glyph.
5089 (line_draw_cost): Adjusted for the change of
5090 GLYPH_FROM_CHAR_GLYPH.
5091 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
5092
5093 * term.c (encode_terminal_code): Adjusted for the change of struct
5094 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 5095 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
5096 change of struct glyph.
5097
5098 * xdisp.c: All codes adjusted for the change of struct glyph.
5099
5100 * xterm.c: All codes adjusted for the change of struct glyph.
5101
5bcd116c
KH
51021999-12-27 Kenichi Handa <handa@etl.go.jp>
5103
5104 * composite.h (struct composition): Change the order of declaring
5105 members to reduce the byte size of the structure.
5106
f21b06b7
GM
51071999-12-25 Gerd Moellmann <gerd@gnu.org>
5108
5109 * search.c (looking_at_1): Reset immediate_quit before modifying
5110 global data.
5111
e36557c9
KH
51121999-12-24 Kenichi Handa <handa@etl.go.jp>
5113
5114 * process.c (read_process_output): Fix the arg FROM to
5115 update_compositions.
5116
83c8f461 51171999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
5118
5119 * search.c (Freplace_match): For nonliteral replacement in buffer,
5120 construct all the new text first, then insert all at once.
5121
0b863bd9
DL
51221999-12-22 Dave Love <fx@gnu.org>
5123
5124 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5125
6d8e8ef3
GM
51261999-12-22 Gerd Moellmann <gerd@gnu.org>
5127
28d7281d
GM
5128 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5129 lead to size changes to after the X window has been created.
5130
e22ef6eb 5131 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
5132 variable in xassert.
5133
8affcced
KH
51341999-12-22 Kenichi Handa <handa@etl.go.jp>
5135
5136 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 5137 only when the frame is not for a window system.
8affcced 5138
f2be1146
GM
51391999-12-22 Gerd Moellmann <gerd@gnu.org>
5140
deca1348
GM
5141 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5142 redisplay after changing the multibyteness of a buffer.
5143
f2be1146
GM
5144 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5145 frame's X window to XFilterEvent instead of None because that's
5146 the X window for which the IC was created. This makes dead
5147 accents work when the pointer is not in Emacs' frame.
5148 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5149
a744a2ec
DL
51501999-12-20 Dave Love <fx@gnu.org>
5151
5152 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5153
9e6985ed
GM
51541999-12-19 Gerd Moellmann <gerd@gnu.org>
5155
5156 * eval.c (debugger_may_continue): New variable.
5157 (syms_of_eval): Add a DEFVAR_BOOL for it.
5158 (call_debugger): Bind it.
5159
3b620731
EZ
51601999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5161
5162 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5163 fp->tty_reverse_p is set, unless the computed colors are identical
5164 to frame colors. Print both original and computed colors to
5165 termscript file.
5166 (IT_write_glyphs): Track the changes in handling of composite
5167 characters.
5168 (IT_set_frame_parameters): Don't set frame colors from
5169 unspecified-fg and unspecified-bg pseudo-colors.
5170
0f9a51c4
DL
51711999-12-17 Dave Love <fx@gnu.org>
5172
5173 * data.c (Fkeywordp): New function.
5174 (syms_of_data): Install it.
5175
363e4e42
EZ
51761999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5177
5178 * xfaces.c (tty_defined_color): Fix last change.
5179
cfad01b4
GM
51801999-12-15 Gerd Moellmann <gerd@gnu.org>
5181
5182 * xdisp.c (redisplay_window) <optional new window start>: Check
5183 that window start is in [BEGV..ZV].
5184
f9d2fdc4
EZ
51851999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5186
5187 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5188 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5189
5190 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5191 (syms_of_xfaces): Initialize and staticpro them.
5192 (tty_defined_color): If the color name is unspecified-fg or
5193 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5194 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5195 (tty_color_name): If the color pixel value is either
5196 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5197 Qunspecified_fg or Qunspecified_bg, respectively.
5198 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5199 and Qunspecified_bg for foreground and background colors.
5200 (realize_default_face): If the foreground and background colors
5201 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5202 (realize_tty_face): By default, set the face colors to
5203 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5204 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5205 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5206 Reverse the colors if the default colors were reversed.
5207
5208 * dispnew.c (init_display): Initialize the frame pixels of the
5209 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5210 FACE_TTY_DEFAULT_BG_COLOR.
5211
5212 * term.c (turn_on_face): If the default fore- and background
5213 colors are reversed, enter inverse video mode. Don't send color
5214 escape sequences for unspecified foreground and background colors.
5215 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5216
5217 * dosfns.c (unspecified_colors): New variable.
5218 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5219 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5220 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5221 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5222 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5223 Qunspecified_bg, respectively.
5224
5225 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5226 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5227
e19539f1
KH
52281999-12-15 Kenichi Handa <handa@etl.go.jp>
5229
5230 * coding.c (code_convert_region): Fix the secoding arg to
5231 update_compositions.
5232
5ec14d3c
KH
52331999-12-15 Kenichi Handa <handa@etl.go.jp>
5234
5235 The following changes are for the new composition mechanism. We
5236 have deleted `composition' charset and composite characters,
5237 instead introduced a special text property `composition'.
5238
5239 * Makefile.in (INTERVAL_SRC): Include composite.h.
5240 (INTERVAL_OBJ): Include composite.o.
5241 (SOME_MACHINE_OBJECTS): Include composite.o.
5242 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5243 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5244 Depend on composite.h.
5245 (doc.o): Depend on charset.h.
5246 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5247 (composite.o): New target.
427ec082 5248
5ec14d3c
KH
5249 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5250
5251 * callproc.c (Fcall_process): Call code_convert_string to encode
5252 arguments. Use CODING_REQUIRE_DECODING to check if the process
5253 output should be decoded.
5254
5255 * casefiddle.c: Include composite.h.
5256 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5257 multibyte character. Adjusted for the change of CHAR_STRING.
5258 (casify_region): Likewise. Call update_compositions.
5259
5260 * category.h (CATEGORY_SET): Delete codes for a composite
5261 character.
5262
5263 * category.c (word_boundary_p): Delete codes for a composite
5264 character.
5265 (Fmake_category_table): New function.
5266 (syms_of_category): Defsubr it.
5267
5268 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5269 (ccl_driver): Delete codes for a composite character.
5270
5271 * charset.h: In this entry, just `Modified' means that codes for a
5272 composite character is deleted.
5273 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5274 (charset_composition) (MIN_CHAR_COMPOSITION)
5275 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5276 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5277 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5278 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5279 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5280 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5281 Modified.
5282 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5283 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5284 non_ascii_char_to_string.
5285 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5286 (STRING_CHAR_AND_LENGTH): Likewise.
5287 (FETCH_CHAR_ADVANCE): New macro.
5288 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5289 (MAX_MULTIBYTE_LENGTH): New macro.
5290 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5291 (find_charset_in_str): Argument adjusted.
5292 (CHAR_LEN): Modified.
427ec082 5293
5ec14d3c
KH
5294 * charset.c: In this entry, just `Modified' means that codes for a
5295 composite character is deleted.
5296 (Qcomposition) (leading_code_composition)
5297 (charset_composition) (min_composite_char) (cmpchar_table)
5298 (cmpchar_table_size) (n_cmpchars): Deleted.
5299 (SPLIT_COMPOSITE_SEQ): Deleted.
5300 (SPLIT_MULTIBYTE_SEQ): Modified.
5301 (char_to_string): Renamed from non_ascii_char_to_string.
5302 Modified.
5303 (string_to_char): Renamed from string_to_non_ascii_char.
5304 (split_string): Renamed from split_non_ascii_string.
5305 (char_printable_p) (Fsplit_char)
5306 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5307 (char_bytes) (Fchar_width) (strwidth): Modified.
5308 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5309 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5310 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5311 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5312 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5313 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5314 (Fcmpchar_cmp_count): Deleted.
5315 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5316 (init_charset_once): Modified.
5317 (syms_of_charset): Modified.
5318
5319 * cmds.c (internal_self_insert): Adjusted for the change of
5320 CHAR_STRING.
5321
5322 * coding.h (emacs_code_class_type): Delete the member
5323 EMACS_leading_code_composition.
5324 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5325 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5326 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5327 (COMPOSING_WITH_RULE_P): Macros deleted.
5328 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5329 macros.
5330 (struct composition_data): New structure.
5331 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5332 (struct coding_system): New members composition_rule_follows,
5333 cmp_data, cmp_data_start, cmp_data_index.
5334 (coding_save_composition) (coding_free_composition_data)
5335 (coding_adjust_composition_offset): Extern them.
5336
5337 * coding.c: Include composite.h.
5338 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5339 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5340 of multibyte code here.
5341 (DECODE_CHARACTER_DIMENSION2): Likewise.
5342 (detect_coding_emacs_mule): Change the case label from
5343 EMACS_leading_code_composition to 0x80.
5344 (detect_coding_iso2022): Handle new composition sequence.
5345 (DECODE_ISO_CHARACTER): Likewise.
5346 (check_composing_code): Deleted.
5347 (coding_allocate_composition_data): New function.
5348 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5349 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5350 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5351 (decode_coding_iso2022): Handle new composition sequence.
5352 (ENCODE_ISO_CHARACTER): Don't check composition here.
5353 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5354 (ENCODE_COMPOSITION_NO_RULE_START)
5355 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5356 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5357 (ENCODE_COMPOSITION_FAKE_START): New macro.
5358 (encode_coding_iso2022): Handle new composition sequence.
5359 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5360 (encode_coding_sjis_big5): Ignore composition.
5361 (setup_coding_system): Initialize new members of struct
5362 coding_system. Enable composition only when the coding system has
5363 `composition' property t.
5364 (coding_free_composition_data) (coding_adjust_composition_offset)
5365 (coding_save_composition) (coding_restore_composition): New
5366 functions.
5367 (code_convert_region): Call coding_save_composition for encoding
5368 and coding_allocate_composition_data for decoding. Don't skip
5369 ASCII characters if we handle composition on encoding. Call
5370 signal_after_change with Check_BORDER.
5371 (code_convert_string): Call coding_save_composition for encoding
5372 and coding_allocate_composition_data for decoding. Don't skip
5373 ASCII characters if we handle composition on encoding.
5374 (code_convert_string1): Set Vlast_coding_system_used after calling
5375 code_convert_string.
5376 (code_convert_string_norecord): Disable composition.
5377 (Fset_terminal_coding_system_internal): Likewise.
5378 (Fset_safe_terminal_coding_system_internal): Likewise.
5379 (Fset_keyboard_coding_system_internal): Likewise.
5380 (init_coding_once): Set emacs_code_class[0x80] to
5381 EMACS_invalid_code.
5382
5383 * composite.h: New file.
5384
5385 * composite.c: New file.
5386
5387 * data.c (Faref): Delete codes for a composite character..
5388 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5389
5390 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5391 (struct glyph): Add new sub-structure cmp to the union `u'.
5392 (enum display_element_type): New member IT_COMPOSITION.
5393 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5394 (struct it): New members cmp_id, cmp_len.
5395
5396 * dispnew.c (direct_output_forward_char): Check point moving into
5397 or out of a composition. If so, give up direct method.
5398
5399 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5400
5401 * editfns.c (Fchar_to_string): Adjusted for the change of
5402 CHAR_STRING.
5403 (general_insert_function): Likewise.
5404 (Finsert_char): Likewise.
5405 (Fsubst_char_in_region): Likewise. Call update_compositions.
5406 (Ftranslate_region): Call update_compositions.
5407 (Ftranspose_regions): Call update_compositions.
5408
5409 * emacs.c (main): Call syms_of_composite.
5410
5411 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5412 CHAR_STRING.
5413 (Finsert_file_contents): Set Vlast_coding_system_used before
5414 calling signal_after_change. Call update_compositions if some
5415 texts are inserted..
5416 (Fwrite_region): Adjusted for the change of a_write and e_write.
5417 (a_write): Argument changed. Work based on character position,
5418 not byte position.
5419 (e_write): Argument changed. Handle new way of composition.
5420
5421 * fns.c (Flength): The length of char-table is MAX_CHAR.
5422 (concat): Adjusted for the change of CHAR_STRING.
5423 (Ffillarray): Adjusted for the change of CHAR_STRING.
5424 (Fset_char_table_default): Delete codes for a composite character.
5425 (hash_put): Return hash index.
5426
5427 * fontset.h (struct font_info): New member vertical_centering.
5428 (Vvertical_centering_font_regexp): Extern it.
5429
5430 * fontset.c (Vvertical_centering_font_regexp): New variable.
5431 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5432 Set Vignore_relative_composition to nil.
5433 (fs_load_font): Initialize `vertical_centering' of struct
5434 font_info.
5435
5436 * indent.c (check_composition): New function.
5437 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5438 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5439 (current_column_1): Handle new way of composition.
5440 (Fmove_to_column): Likewise.
5441 (compute_motion): Likewise.
5442
5443 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5444 (insert_char): Likewise.
5445 (insert): Call update_compositions.
5446 (insert_and_inherit): Likewise.
5447 (insert_before_markers): Likewise.
5448 (insert_before_markers_and_inherit): Likewise.
5449 (insert_from_string): Likewise.
5450 (insert_from_string_before_markers): Likewise.
5451 (insert_from_buffer): Likewise.
5452 (replace_range): Likewise.
5453 (count_combining_composition): Deleted.
5454 (count_combining_before): Delete codes for a composite character.
5455 (count_combining_after): Likewise.
5456 (del_range_1): Call update_compositions.
5457 (del_range_byte): Likewise.
5458 (del_range_both): Likewise.
5459 (Fcombine_after_change_execute): Likewise.
5460
5461 * intervals.h: Include composite.h.
5462 (get_property_and_range): Extern it.
5463 (Vtext_property_default_nonsticky): Extern it.
427ec082 5464
5ec14d3c
KH
5465 * intervals.c (adjust_intervals_for_insertion): To check stickines
5466 of properties, pay attention to text-property-default-nonsticky.
5467 (merge_properties_sticky): Likewise.
5468 (get_property_and_range): New function.
5469
5470 * keyboard.c (Vdisable_point_adjustment): New variable.
5471 (Vglobal_disable_point_adjustment): New variable.
5472 (syms_of_keyboard): Declare them as Lisp variables.
5473 (command_loop_1): Check them and call adjust_point_for_property if
5474 necessary.
5475 (adjust_point_for_property): New function.
5476
5477 * keymap.c (push_key_description): Adjusted for the change of
5478 CHAR_STRING.
5479 (Ftext_char_description): Likewise.
5480
5481 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5482 (hash_put): Adjusted for the change of the definition.
5483 (signal_after_change): Likewise.
5484 (check_point_in_composition): Extern it.
5485
5486 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5487 Delete a code that handles an invalid too-long multibyte sequence
5488 because we are now sure that we never encounter with such a
5489 sequence.
5490 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5491 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5492 (init_obarray): Likewise.
5493 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5494
5495 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5496
5497 * process.c: Include composite.h.
5498 (read_process_output): Call update_compositions.
5499
5500 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5501
5502 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5503
5504 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5505 character.
5506
5507 * term.c (encode_terminal_code): Delete codes for a composite
5508 character. Adjusted for the change of CHAR_STRING.
5509 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5510 Delete codes for a composite character.
5511
5512 * textprop.c (Vtext_property_default_nonsticky): New variable
5513 (syms_of_textprop): Declare it as a Lisp variable.
5514
5515 * window.c (Frecenter): Clear all caches of compositions.
5516
5517 * xdisp.c (it_props): Add an entry for composition.
5518 (face_before_or_after_it_pos): For composition, check face of a
5519 character after the composition.
5520 (handle_composition_prop): New function.
5521 (get_next_display_element): Adjusted for the change of
5522 CHAR_STRING.
5523 (set_iterator_to_next): Handle the case that it->method ==
5524 next_element_from_composition.
5525 (next_element_from_composition): New function.
5526 (message_dolog): Adjusted for the change of CHAR_STRING.
5527 (set_message_1): Likewise.
5528 (check_point_in_composition): New function.
5529 (reconsider_clip_changes): If point moved into or out of
5530 composition, set b->clip_changed to 1 to force updating of the
5531 screen.
5532 (disp_char_vector): Delete codes for a composite character.
5533 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5534
5535 * xfaces.c (choose_face_fontset_font): Delete codes for a
5536 composite character.
5537 (realize_x_face): Likewise. Change a place to set local variable
5538 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5539
5540 * xfns.c: Include intervals.h.
5541 (syms_of_xfns): Make `display' property nonsticky by default.
5542
5543 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5544 for find_charset_in_str.
5545
5546 * xterm.h (struct x_output): Change member font_baseline to
5547 baseline_offset.
5548
5549 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5550 for composition.
5551 (x_append_composite_glyph): New function.
5552 (VCENTER_BASELINE_OFFSET): New macro.
5553 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5554 of struct it for the composition. Cache pixel offsets in the
5555 struct composition. Delete codes for a composite character.
5556 Handle Vignore_relative_composition in composition code.
5557 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5558 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5559 (x_compute_glyph_string_overhangs): Likewise.
5560 (x_get_glyph_overhangs): Delete codes for a composite character.
5561 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5562 (x_draw_glyph_string_background): Likewise. Delete codes for
5563 checking s->gidx for a composition.
5564 (x_draw_glyph_string_foreground): Delete code for a composite
5565 character.
5566 (x_draw_composite_glyph_string_foreground): New function.
5567 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5568 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5569 (struct work): Deleted.
5570 (x_fill_composite_glyph_string): Argument changed. Mostly
5571 rewritten for that.
5572 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5573 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5574 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5575 (BUILD_GLYPH_STRINGS): For composition, call
5576 BUILD_COMPOSITE_GLYPH_STRING.
5577 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5578 f->output_data.x->font_baseline.
5579
c3c60f13
GM
55801999-12-14 Gerd Moellmann <gerd@gnu.org>
5581
5582 * xterm.c (show_mouse_face): Don't use updated_area, use
5583 TEXT_AREA.
5584
83c8f461 55851999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5586
5587 * minibuf.c (Fall_completions): Doc fix.
5588
83c8f461 55891999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5590
5591 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5592 has been changed by the Lisp code.
5593
d8eccf12
GM
55941999-12-12 Gerd Moellmann <gerd@gnu.org>
5595
5596 * xfns.c: Indentation fixes.
5597
ae56feae
SM
55981999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5599
5600 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5601
dfa1c6ae
GM
56021999-12-10 Gerd Moellmann <gerd@gnu.org>
5603
5604 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5605 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5606
5607 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5608 to frame.h.
5609
ec18280f
SM
56101999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5611
5612 * keyboard.c (Qratio): New symbol.
5613 (scroll_bar_parts): Add `Qratio' to it.
5614 (syms_of_keyboard): Init `Qratio'.
5615 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5616 * xterm.c (#includes): Allow compilation with only Xaw.
5617 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5618 (xt_action_hook): Replace XAW3D by XAW.
5619 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5620 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5621 Determine epsilon dynamically and don't try to be too clever.
5622 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5623 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5624 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5625 scrollbar (using `ratio').
5626 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5627 scrollbar we have so as to set it up more optimally and to fix
5628 xaw3d_arrow_scroll and xaw3d_pick_top.
5629 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5630 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5631 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5632 is not ignored, using a major gross hack.
5633 (x_initialize): Init default values for xaw3d_arrow_scroll and
5634 xaw3d_pick_top.
5635
83b6d970
DL
56361999-12-09 Dave Love <fx@gnu.org>
5637
5638 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5639
3648c842
GM
56401999-12-08 Gerd Moellmann <gerd@gnu.org>
5641
5642 * eval.c: Remove conditional compilation on `standalone'.
5643 (call_debugger): When entering the debugger while redisplaying,
5644 reset redisplaying_p, and go back to the top-level if the debugger
5645 returns.
5646
05e71564
GM
56471999-12-07 Gerd Moellmann <gerd@gnu.org>
5648
5649 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5650 basic faces are realized before trying to use face `menu'.
5651
5652 * window.c (delete_window): Block input for the time window
5653 matrices are being changed.
5654
b46cd536
DL
56551999-12-07 Dave Love <fx@gnu.org>
5656
5657 * lread.c (Fintern_soft): Fix newlines in doc string.
5658
96acb1f7
GM
56591999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5660
5661 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5662 duplicate definition of ElfW.
5663 (find_section): Copied from unexsgi.c.
5664 (unexec): Use find_section. Adjust whitespace. Initialize
5665 new_data2_offset based on old_data, not sbss (this fixes a bug on
5666 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5667 Adjust test for presence of .mdebug section to the new return
5668 value of find_section.
427ec082 5669
96acb1f7
GM
56701999-12-07 Gerd Moellmann <gerd@gnu.org>
5671
5672 * unexelf.c: Merge changes from 20.5.
5673 (unexec): Handle .lit4 and .lit8 unconditionally.
5674
5675 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5676 unexsgi.o again.
427ec082 5677
96acb1f7
GM
5678 * m/iris5d.h (UNEXEC): Likewise.
5679
7dae4502
SM
56801999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5681
5682 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5683 (syms_of_editfns): Register it.
5684 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5685 (del_range_1, del_range_2): Add a ret_string argument to
5686 request that the deleted text be returned.
5687 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5688 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5689 * casefiddle.c (casify_region): Update del_range_1 call.
5690 * coding.c (code_convert_region): Update del_range_2 call.
5691 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5692
397e4fae
GM
56931999-12-06 Gerd Moellmann <gerd@gnu.org>
5694
5695 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5696
3d973f71
GM
56971999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5698
5699 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5700
740e985f
EZ
57011999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5702
5703 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5704
5705 * insdel.c (adjust_markers_for_delete): Fix last change.
5706
2d764c78
EZ
57071999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5708
5709 Changes for automatic remapping of X colors on terminal frames:
5710
5711 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5712 frames.
5713 (Vface_tty_color_alist): Remove.
5714 (tty_defined_color): New function.
5715 (defined_color): Rewrite to support any type of frame.
5716 (tty_color_name): New function.
5717 (face_color_supported_p, Fface_color_gray_p,
5718 Fface_color_supported_p): Support non-X frames.
5719 (load_color): Enclose the color name in quotes, in the log
5720 messages. Remove DOS-specific version of load_color.
5721 (realize_tty_face): Take the supported colors from
5722 tty-color-alist. Support translation of X colors to the closest
5723 tty color, for both MSDOS and tty frames.
5724 [MSDOS]: Don't invert face colors if they were taken from the
5725 frame colors.
5726 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5727
5728 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5729 Define a mostly empty surrogate.
5730 (tty_display): Declare.
5731
5732 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5733 tty_display.
5734 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5735 frames when the frame's param_alist includes 'reverse.
5736 (tty_display): Define.
5737 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5738 output_data.x member.
5739 (Fframe_parameters): Return foreground and background color names
5740 on tty frames as well, in addition to MSDOS frames.
5741
5742 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5743 selected_frame.
5744 (struct x_output): Remove unused members; document who uses each
5745 member.
5746 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5747 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5748 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5749 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5750 unused macro definintions.
5751
5752 * msdos.c (IT_set_frame_parameters): Don't call
5753 recompute_basic_faces, the next redisplay will, anyway.
5754 (x_current_display): Remove unused variable.
5755 Many functions: changes for Lisp_object selected_frame.
5756 (IT_set_face): If the tty_reverse_p flag is set for the face,
5757 reverse the foreground and background colors.
5758 (Fmsdos_remember_default_colors): New function.
5759 (syms_of_msdos): Defsubr it.
5760 (IT_set_frame_parameters): Use initial_screen_colors[] when
5761 creating a new frame. If the frame parameters include 'reverse,
5762 swap the foreground and background colors.
5763 (internal_terminal_init): Initialize initial_screen_colors to -1.
5764 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5765 cus-start.el.
5766
5767 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5768
5769 * xfns.c (x_defined_color): Rename from defined_color. All
5770 callers changed.
5771 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5772 all callers changed.
5773 (Fxw_color_values): Renamed from Fx_color_values; all callers
5774 changed.
5775 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5776 callers changed.
5777 (x_window_to_frame, x_any_window_to_frame,
5778 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5779 x_top_window_to_frame): Use !FRAME_X_P instead of
5780 f->output_data.nothing.
5781 * xterm.h (x_defined_color): Rename from defined_color.
5782
5783 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5784 f->output_data.nothing.
5785 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5786 all callers changed.
5787 (Fxw_color_values): Renamed from Fx_color_values; all callers
5788 changed.
5789 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5790 callers changed.
5791
5792 * dispextern.h (tty_color_name): Add prototype.
5793
5794 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5795 f->output_data.nothing.
5796 * w32menu.c (menubar_id_to_frame): Likewise.
5797 * w32term.h (w32_output): Declare.
5798
5799 * dosfns.c (Qmsdos_color_translate): Remove.
5800 (msdos_stdcolor_name): Now returns a Lisp_Object.
5801 * dosfns.h (Qmsdos_color_translate): Remove.
5802
5803 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5804
b3e5232e
KH
58051999-12-06 Kenichi Handa <handa@etl.go.jp>
5806
5807 * fileio.c (decide_coding_unwind): Renamed from
5808 set_auto_coding_unwind.
5809 (Finsert_file_contents): Make single unwind protect to call both
5810 Vset_auto_coding_function and Ffind_operation_coding_system.
5811
5812 * insdel.c (adjust_markers_for_delete): Make it non-static.
5813
db0e466c
SM
58141999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5815
5816 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5817 operators and handle them properly.
5818 * regex.h (RE_ALL_GREEDY): New option.
5819 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5820 sorting would put it.
5821 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5822 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5823
22afa6e8
DL
58241999-12-04 Dave Love <d.love@dl.ac.uk>
5825
5826 * m/arm.h: New file.
5827
40afb967
DL
58281999-12-03 Dave Love <fx@gnu.org>
5829
5830 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5831
ddf8eff5
GM
58321999-12-02 Gerd Moellmann <gerd@gnu.org>
5833
5834 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5835 for building with Motif.
5836
5837 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5838 unexelf.o.
427ec082 5839
ddf8eff5
GM
5840 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5841
fa09a82d
DL
58421999-12-01 Dave Love <fx@gnu.org>
5843
5844 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5845
ddf8eff5
GM
58461999-11-28 Gerd Moellmann <gerd@gnu.org>
5847
5848 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5849 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5850 macros.
5851
5852 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5853
fa09a82d
DL
58541999-11-28 eliz <eliz@dlpx1>
5855
5856 * emacs.c (synchronize_locale): Avoid compiler warnings about
5857 pointer type mismatch.
5858
f9632fc8
GM
58591999-11-28 Gerd Moellmann <gerd@gnu.org>
5860
717d0121
GM
5861 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5862 out of range position.
5863
427ec082 5864 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5865 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5866
59c65f1e
EZ
58671999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5868
613a8346
EZ
5869 * charset.c (Fmake_char_internal): Print the charset ID when
5870 signalling an error.
5871
59c65f1e
EZ
5872 * emacs.c (synchronize_locale): Avoid compiler warnings about
5873 pointer type mismatch.
5874
83c8f461 58751999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5876
5877 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5878
18df9369
GM
58791999-11-26 Gerd Moellmann <gerd@gnu.org>
5880
65a3ccf7
GM
5881 * puresize.h (BASE_PURESIZE): Increase to 550000.
5882
b3b98592
GM
5883 * textprop.c (set_text_properties): New function. Like
5884 Fset_text_properties, but with additional parameter
5885 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5886 changes.
5887 (Fset_text_properties): Use it.
5888
5889 * insdel.c (insert_1_both): Call set_text_properties with last
5890 parameter nil so that no after changes will be signaled.
5891
5892 * lisp.h: Add prototype for set_text_properties.
5893
18df9369
GM
5894 * xfaces.c (set_lface_from_font_name): Fix previous change.
5895 (recompute_basic_faces): Change assert to abort.
5896
71a8e74b
DL
58971999-11-25 Dave Love <fx@gnu.org>
5898
5899 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5900 (Fmember, Fdelq, Fdelete): Inline car.
5901 (Fy_or_n_p): Doc fix.
5902
bc6a5782
GM
59031999-11-25 Gerd Moellmann <gerd@gnu.org>
5904
3221576b 5905 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5906 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5907 is not set, try to use a reasonable default.
5908
bc6a5782
GM
5909 * dispnew.c (direct_output_for_insert): Set glyph row's
5910 displays_text_p flag. Correct window's window_end_vpos if
5911 necessary.
5912
0c8559bb
PE
59131999-11-25 Paul Eggert <eggert@twinsun.com>
5914
5915 * emacs.c (fixup_locale): Don't bother to record initial locale.
5916 (synchronize_locale): If the desired locale is nil,
5917 treat it as if it were the empty string,
5918 so that we set the locale from the environment.
5919
35737351
KH
59201999-11-25 Kenichi Handa <handa@etl.go.jp>
5921
5922 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5923 of the current buffer via Fset.
5924
5562b47f
DL
59251999-11-24 Dave Love <fx@gnu.org>
5926
5562b47f
DL
5927 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5928
5929 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5930
00da0e4a
GM
59311999-11-24 Gerd Moellmann <gerd@gnu.org>
5932
5933 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5934
5935 * emacs.c (PVEC_FLAG): New variable.
5936
b1775dc1
GM
59371999-11-23 Gerd Moellmann <gerd@gnu.org>
5938
5939 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5940 that fails on IBM PowerPC, AIX 4.2.
427ec082 5941
08de6200
EZ
59421999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5943
5944 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5945 string of mode-line-format. Remove the obsolete %t.
5946
02fda8ff
GM
59471999-11-22 Gerd Moellmann <gerd@gnu.org>
5948
f2fa858f
GM
5949 * dispnew.c (direct_output_for_insert): Increment glyph positions
5950 for glyphs from buffer text only.
5951
02fda8ff
GM
5952 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5953 (gdb_data_seg_bits): New variables.
427ec082 5954
02fda8ff
GM
5955 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5956 work on systems not allowing enumerators > INT_MAX, and it
5957 won't work if EMACS_INT is long long.
5958
1b0d24e7
PE
59591999-11-22 Paul Eggert <eggert@twinsun.com>
5960
5961 Port to SunOS 4.1.x again. Help out with Alpha port.
5962 Rename messages-locale to system-messages-locale,
5963 and likewise for time-locale.
427ec082 5964
1b0d24e7
PE
5965 * callproc.c (strerror): Remove decl.
5966 * fileio.c (strerror): Likewise.
5967 * process.c (strerror): Likewise.
5968 * emacs.c (strerror): Likewise.
5969 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5970 All uses changed.
5971 (Vprevious_system_messages_locale): Likewise, from
5972 Vprevious_messages_locale.
5973 (Vsystem_time_locale): Likewise, from Vtime_locale.
5974 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5975 (ABORT_RETURN_TYPE): New macro.
5976 (abort): Return type is now ABORT_RETURN_TYPE.
5977 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5978 defined.
5979 (syms_of_emacs): messages-locale -> system-messages-locale,
5980 previous-messages-locale -> previous-system-messages-locale,
5981 time-locale -> system-time-locale,
5982 previous-time-locale -> previous-system-time-locale.
5983
5984 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5985 (const): Do not define; that's config.h's job.
5986 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5987 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5988 (<stddef.h>): Include if STDC_HEADERS is defined.
5989 (FREE_RETURN_TYPE): New macro.
5990 (free): Return type is now FREE_RETURN_TYPE.
5991
5992 * lisp.h (synchronize_system_time_locale): Renamed from
5993 synchronize_time_locale. All uses changed.
5994 (synchronize_system_messages_locale): Likewise, from
5995 synchronize_messages_locale.
5996
5997 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5998 stdlib.h now does this.
5999
6000 * process.c (sys_siglist): Remove.
6001
6002 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
6003 New macros.
6004
6005 * syntax.c (scan_sexps_forward): Use abort, not assert.
6006
6007 * sysdep.c (my_sys_siglist): New var.
6008 (sys_siglist): New macro. Remove old initialized vars of same name.
6009 (init_signals): Initialize sys_siglist.
6010
6011 * xfns.c (abort): Remove decl; stdlib.h now does this.
6012
0dcd5b54
DL
60131999-11-18 Dave Love <fx@gnu.org>
6014
946173ad
DL
6015 * filelock.c: Add forward declaration for get_boot_time_1.
6016
0dcd5b54
DL
6017 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
6018
71447e8f
GM
60191999-11-18 Gerd Moellmann <gerd@gnu.org>
6020
6021 * buffer.h (struct buffer_text): Add comment about moving
6022 buffer text if REL_ALLOC is defined.
6023
eeedff63
KH
60241999-11-18 Kenichi Handa <handa@etl.go.jp>
6025
6026 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
6027
6028 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
6029 memory for push_key_description.
6030
6031 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
6032 allocate memory for push_key_description.
6033 (describe_buffer_bindings): Likewise.
6034
5d7e4a2c
GM
60351999-11-17 Gerd Moellmann <gerd@gnu.org>
6036
6037 * xfns.c (Fx_show_busy_cursor): Doc-fix.
6038 (Fx_hide_busy_cursor): Ditto.
6039
60401999-11-17 Marco Walther <walther@siemens-pyramid.com>
6041
6042 * unexsni.c (unexec): Handle .rel.dyn section.
6043
b5b41e02
DL
60441999-11-16 Dave Love <fx@gnu.org>
6045
6046 * doc.c (Fdocumentation): Remove gcpro here too.
6047
e35b6123
GM
60481999-11-16 Gerd Moellmann <gerd@gnu.org>
6049
6050 * keyboard.c (command_loop_1): Remove no_redisplay.
6051
83c8f461 60521999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
6053
6054 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
6055 in noninteractive.
6056
b05d3bee
GM
60571999-11-14 Gerd Moellmann <gerd@gnu.org>
6058
5bcfeb49
GM
6059 * xdisp.c (ensure_echo_area_buffers): New.
6060 (with_echo_area_buffer): Use it.
6061 (setup_echo_area_for_printing): Ditto.
6062
b05d3bee
GM
6063 * buffer.c (indicate-empty-lines): Doc-fix.
6064
9b2e6e4c
GM
60651999-11-12 Gerd Moellmann <gerd@gnu.org>
6066
e7f90eab
GM
6067 * term.c (term_init): If "op" isn't available, don't support color
6068 because we can't switch back to the default foreground and
6069 background.
6070
9b2e6e4c
GM
6071 * doc.c (Fdocumentation_property): Remove GCPRO because
6072 Fsubstitute_command_keys gcpro's the string.
6073
1bf21027
KH
60741999-11-12 Kenichi Handa <handa@etl.go.jp>
6075
6076 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
6077
3bc6df53
GM
60781999-11-11 Gerd Moellmann <gerd@gnu.org>
6079
6080 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
6081 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
6082 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
6083
35a5514b
GM
60841999-11-10 Gerd Moellmann <gerd@gnu.org>
6085
6086 * xfns.c (QCuser_data): Removed.
6087 (syms_of_xfns): Initialization of QCuser_data removed.
6088 (parse_image_spec): Don't handle :user-data specially. Allow
6089 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
6090 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
6091 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
6092 parse_image_spec accordingly.
6093
83c8f461 60941999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6095
6096 * cmds.c (Fbeginning_of_line): Doc fix.
6097 (Fend_of_line): Doc fix.
6098
6099 * editfns.c (Fline_beginning_position): If N is not 1,
6100 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
6101
6102 * syntax.c (Fforward_word): Handle fields even if would have hit
6103 an edge of the buffer. Return nil if affected by fields.
6104
83c8f461 61051999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6106
6107 * editfns.c (preceding_pos): Function deleted.
6108 (text_property_stickiness): Decrement POS directly.
6109 Fix a confusion that used PT instead of POS.
6110
6111 * editfns.c (find_field): Properly handle the case
6112 of a field boundary where `field' inherits from neither side.
6113
6114 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6115 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6116
fa9aabf6
GM
61171999-11-08 Gerd Moellmann <gerd@gnu.org>
6118
6119 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6120 BEFORE_POTENTIAL_GC before DISCARD.
6121
4015b3c0
GM
61221999-11-07 Gerd Moellmann <gerd@gnu.org>
6123
033a5fa3
GM
6124 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6125
6126 * lisp.h: Add prototype for unmark_byte_stack.
6127
6128 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6129 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6130 XUNMARK.
6131
55b064bd
GM
6132 * xdisp.c (resize_mini_window): Fix computation of needed
6133 mini-window height.
6134
6135 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6136 compilation on USE_TEXT_PROPERTIES.
01e9b9df 6137
4015b3c0 6138 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 6139 locally there. Rearrange case statements so that those most
4015b3c0
GM
6140 frequently executed come first. Avoid goto's in frequently
6141 executed cases.
6142
fe512f27
GM
61431999-11-05 Gerd Moellmann <gerd@gnu.org>
6144
dd59e217
GM
6145 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6146 AFTER_POTENTIAL_GC around internal_catch.
6147
bcf28080
GM
6148 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6149 relocate_byte_pcs.
6150 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6151
6152 * eval.c (struct catchtag): Add member byte_stack.
6153 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 6154 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
6155 catchtag.
6156 (unwind_to_catch): Restore byte_stack_list from catchtag.
6157
6158 * lisp.h: Add prototypes for new functions in bytecode.c.
6159 Add extern declaration for byte_stack_list.
6160
6161 * bytecode.c (struct byte_stack): New.
6162 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6163 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6164 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6165 (HANDLE_RELOCATION): Removed.
6166 (Fbyte_code): Use byte_stack structures.
6167
4d59c34c
GM
6168 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6169
fe512f27
GM
6170 * buffer.c (syms_of_buffer): Extend documentation of
6171 mode-line-format.
6172
60b64cd6
GM
61731999-11-04 Gerd Moellmann <gerd@gnu.org>
6174
6175 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6176
6177 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6178 Ferase_field instead of Fdelete_field.
6179
b51b619b
GM
61801999-11-03 Gerd Moellmann <gerd@gnu.org>
6181
6182 * dispnew.c (Finternal_show_cursor): Change it to set the
6183 cursor on/off, not toggle its state.
6184 (Finternal_show_cursor_p): New.
6185 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6186
5865af0d
DL
61871999-11-03 Dave Love <fx@gnu.org>
6188
6189 * charset.c (split_non_ascii_string): Define return value.
6190
82a700f3
GM
61911999-11-03 Gerd Moellmann <gerd@gnu.org>
6192
edfef199
GM
6193 * minibuf.c (string_to_object): New.
6194 (read_minibuf_noninteractive): New.
6195 (read_minibuf): Call read_minibuf_noninteractive if
6196 noninteractive. Use string_to_object.
6197
82a700f3
GM
6198 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6199
b5540f0d
DL
62001999-11-02 Dave Love <fx@gnu.org>
6201
e69dcd60
DL
6202 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6203
827a1788
DL
6204 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6205 declared with glibc2.
b5540f0d 6206
a69a6e61
GM
62071999-11-02 Gerd Moellmann <gerd@gnu.org>
6208
6209 * lisp.h (QUIT): Give it statement form.
6210
87e21fbd
DL
62111999-11-02 Dave Love <fx@gnu.org>
6212
6213 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6214
1b335865
GM
62151999-11-02 Gerd Moellmann <gerd@gnu.org>
6216
9fb5e03d
GM
6217 * xfns.c (QCuser_data): New.
6218 (syms_of_xfns): Initialize QCuser_data.
6219 (parse_image_spec): Ignore :user-data DATA properties.
6220
1b335865
GM
6221 * xdisp.c (display_line): Set charpos of first glyph in blank
6222 lines not corresponding to any text to -1, even if no glyphs are
6223 filled in in that line.
6224
e76f1c44
GM
62251999-11-01 Gerd Moellmann <gerd@gnu.org>
6226
427ec082 6227 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
6228 png_get_sRGB in #ifdef.
6229
111259b4
GM
6230 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6231 (syms_of_display): Use the new name.
6232
dd5c96e8
GM
6233 * textprop.c (verify_interval_modification): Signal text-read-only
6234 instead of calling error.
6235
db8878fb
GM
6236 * data.c (Qtext_read_only): New built-in error.
6237 (syms_of_data): Initialize it.
6238
6239 * lisp.h: Add extern declaration for Qtext_read_only.
6240
e76f1c44
GM
6241 * syntax.c: Remove whitespace after open or in front of closing
6242 parentheses.
6243
83c8f461 62441999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6245
6246 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6247
7843e09c
GM
62481999-10-31 Gerd Moellmann <gerd@gnu.org>
6249
575ed805
GM
6250 * xdisp.c (resize_mini_window): Compute needed height differently.
6251
7843e09c
GM
6252 * fns.c (Flength): Unroll loop over lists.
6253
6254 * xdisp.c (append_space): Return non-zero if space was appended.
6255 (display_line): Set charpos of first glyph to -1 only if that
6256 glyph is the space added by append_glyph.
6257
83c8f461 62581999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6259
6260 * print.c (strout): Consider `noninteractive' and use stdout
6261 only when PRINTCHARFUN is t.
6262
6263 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6264 (gcpro_level): Declare it extern.
6265 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6266 Alternate definitions that set `level' and increment `gcpro_level'.
6267 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6268
6269 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6270 (init_eval) [DEBUG_GCPRO]: Initialize it.
6271 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6272 from remaining gcprolist.
6273
3636f7a3
KH
62741999-10-29 Kenichi Handa <handa@etl.go.jp>
6275
6276 * coding.c (code_convert_region): Update `dst' correctly.
6277
a2ad7096
GM
62781999-10-28 Gerd Moellmann <gerd@gnu.org>
6279
6280 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6281 (Frassoc): Rewritten.
6282
1e3196e8
GM
62831999-10-27 Noah Friedman <friedman@splode.com>
6284
6285 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6286 Define PTY_NAME_SPRINTF.
6287 Redefine PTY_TTY_NAME_SPRINTF.
6288 * config.in: Add undef for HAVE_DEV_PTMX.
6289
83c8f461 62901999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6291
6292 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6293 as arg to DEBUG_POP and DEBUG_PRINT.
6294
83c8f461 62951999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6296
6297 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6298 (Ffset): Call Qad_activate_internal.
6299 (syms_of_data): Initialize Qad_activate_internal.
6300
26922151
GM
63011999-10-27 Gerd Moellmann <gerd@gnu.org>
6302
6303 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6304 Vterminal_frame is selected and Vwindow_system is non-nil.
6305
67a5596f
GM
63061999-10-26 Gerd Moellmann <gerd@gnu.org>
6307
2bea706b
GM
6308 * xdisp.c (echo_area_display): Put previous change in #if 0.
6309
67a5596f
GM
6310 * emacs.c (standard_args): Add `file' as synonym for `visit',
6311 `execute' as synonym for `eval'.
6312 (main): Add new options to usage message.
6313
81dc5de5
GM
63141999-10-25 Gerd Moellmann <gerd@gnu.org>
6315
6316 * data.c (Qhash_table): New.
6317 (Ftype_of): Return it for hash tables.
6318 (syms_of_data): Initialize Qhash_table.
6319
83c8f461 63201999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6321
6322 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6323
66e4690f 63241999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6325
7539e11f
KR
6326 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6327 lisp.h.
6328
6329 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6330 Fbuffer_local_variables, Fother_buffer, record_buffer,
6331 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6332 swap_out_buffer_local_variables, overlays_at, overlays_in,
6333 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6334 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6335 Foverlay_put, report_overlay_modification, evaporate_overlays):
6336 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6337 references.
6338 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6339 swap_in_symval_forwarding, set_internal, default_value,
6340 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6341 Fmake_variable_frame_local, Flocal_variable_p,
6342 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6343 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6344 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6345 * emacs.c (main): Likewise.
6346 * fontset.c (fs_load_font, fs_register_fontset,
6347 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6348 Fnew_fontset, Fset_fontset_font): Likewise.
6349 * frame.c (do_switch_frame, next_frame, prev_frame,
6350 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6351 Likewise.
6352 * keyboard.c (read_char, help_char_p, event_to_kboard,
6353 kbd_buffer_get_event, timer_start_idle, timer_check,
6354 make_lispy_event, apply_modifiers, reorder_modifiers,
6355 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6356 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6357 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6358 Fcommand_execute, Fexecute_extended_command): Likewise.
6359 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6360 Fall_completions): Likewise.
6361 * window.c (Fset_window_margins): Likewise.
6362
6363 * callint.c (quotify_args): Don't explicitly use struct
6364 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6365
3a7093d8
KR
6366 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6367 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6368 if __ELF__ is defined.
6369
2a3d7146
GM
63701999-10-24 Gerd Moellmann <gerd@gnu.org>
6371
6372 * window.c (Fnext_window): Add a QUIT in the loop.
6373
8ac52782
GM
63741999-10-23 Gerd Moellmann <gerd@gnu.org>
6375
427ec082 6376 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6377 New targets.
6378
05f0d15a
DL
63791999-10-22 Dave Love <fx@gnu.org>
6380
6381 * emacs.c (main): Enable profiling conditional on __linux also.
6382
882fb0e6
GM
63831999-10-20 Gerd Moellmann <gerd@gnu.org>
6384
6385 * xrdb.c (x_load_resources): Set default resources for resource
6386 classes instead of for the specific Emacs.
6387
b5f5bc31
GM
63881999-10-19 Gerd Moellmann <gerd@gnu.org>
6389
66f4dd69
GM
6390 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6391 defines it that way.
427ec082 6392
b5f5bc31
GM
6393 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6394 if selected_frame is equal to Vterminal_frame.
6395
68c45bf0 63961999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6397
68c45bf0 6398 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6399
68c45bf0
PE
6400 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6401 when dumping, so that the dumped Emacs doesn't have stray locale info.
6402 (dired.o): Depend on systime.h.
6403 (editfns.o): Depend on coding.h.
6404
6405 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6406 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6407 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6408 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6409 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6410 Include <config.h> before any system include files.
6411
6412 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6413 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6414 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6415 xmenu.c, xterm.c:
6416 Do not include <stdlib.h>, as <config.h> does this now.
6417
6418 * callproc.c (Fcall_process):
6419 Synchronize messages locale before invoking strerror.
6420 Decode resulting string with locale-coding-system.
6421
6422 * coding.c (Vlocale_coding_system): New var.
6423 (syms_of_coding): Adjust to above change.
6424 (emacs_strerror): New function.
6425
6426 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6427
68c45bf0
PE
6428 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6429 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6430 HAVE_STRSIGNAL): New macros.
6431 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6432 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6433
6434 * dired.c: Include "systime.h".
6435 (Ffile_attributes): Do not cast s.st_size to int; this loses
6436 information if int is 32 bits but st_size and EMACS_INT are larger.
6437 Treat large device numbers like large inode numbers.
6438
6439 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6440
6441 * editfns.c: Include coding.h.
6442 (emacs_strftime): Remove decl.
6443 (emacs_strftimeu): New decl.
6444 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6445 Use emacs_strftimeu instead of emacs_strftime.
6446 (Fformat_time_string): Convert format string using
6447 Vlocale_coding_system, and convert result back. Synchronize time
6448 locale before invoking lower level function. Invoke
6449 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6450
68c45bf0
PE
6451 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6452 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6453 Vprevious_time_locale): New variables.
6454 (main): Invoke setlocale early, so that initial error messages are
6455 localized properly. But skip locale-setting if LC_ALL is "C".
6456 Fix up locale when it's safe to do so.
6457 (fixup_locale): Moved here from xterm.c.
6458 (synchronize_locale, synchronize_time_locale,
6459 synchronize_messages_locale): New functions.
6460 (syms_of_emacs): Accommodate above changes.
6461
6462 * fileio.c (report_file_error): Convert strerror output according
6463 to Vlocale_coding_system.
6464 (Finsert_file_contents): Check for arithmetic overflow in
6465 computations that depend on file size. Report IO errors
6466 with emacs_strerror, not strerror.
6467
6468 * fns.c (Fgethash): Declare dflt parameter.
6469
6470 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6471 is defined; that's config.h's job.
6472
6473 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6474 default these values to long, BITS_PER_LONG, and unsigned long.
6475 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6476 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6477 (code_convert_string_norecord, fixup_locale,
6478 synchronize_messages_locale, synchronize_time_locale,
6479 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6480 All Emacs callers of open, close, read, write changed to use
6481 emacs_open, emacs_close, emacs_read, emacs_write.
6482
6483 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6484 changed to file_tell.
6485 (saved_doc_string_position, prev_saved_doc_string_position): Now
6486 of type file_offset.
6487 (init_lread): Do not fix locale here; fixup_locale now does this.
6488
6489 * m/amdahl.h, s/usg5-4.h:
6490 (NSIG): Remove.
6491 (NSIG_MINIMUM): New macro.
6492
6493 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6494 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6495 s/umips.h, s/usg5-4.h:
6496 (SIGIO): Do not undef.
6497 (BROKEN_SIGIO): New macro.
6498
6499 * m/ustation.h:
6500 (SIGTSTP): Do not undef.
6501 (BROKEN_SIGTSTP): New macro.
6502
6503 * s/gnu-linux.h:
6504 (SIGPOLL, SIGURG): Do not undef.
6505 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6506
6507 * s/ptx4.h:
6508 (SIGINFO): Do not undef.
6509 (BROKEN_SIGINFO): New macros.
427ec082 6510
68c45bf0
PE
6511 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6512
6513 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6514 some Emacs-related changes merged.
6515
6516 * print.c (float_to_string): Prepend "-" to representation of a
6517 NaN if the NaN is negative.
6518
6519 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6520 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6521
68c45bf0
PE
6522 * process.c (status_message, sigchld_handler): Synchronize locale,
6523 then use strsignal istead of sys_siglist.
6524 * w32proc.c (sys_wait): Likewise.
427ec082 6525
68c45bf0
PE
6526 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6527 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6528 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6529 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6530 (open, close, read, write, INTERRUPTIBLE_OPEN,
6531 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6532
6533 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6534
6535 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6536 sys_open, open): Remove.
6537 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6538 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6539 macros are no longer used.
6540 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6541 (emacs_close): Renamed from sys_close.
6542 (emacs_read): Renamed from sys_read.
6543 (emacs_write): Renamed from sys_write.
6544 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6545 (dup2): Do not print error on failure; the real dup2 doesn't.
6546 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6547
6548 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6549 is defined.
6550 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6551 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6552 (strsignal): Declare if !HAVE_STRSIGNAL.
6553
6554 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6555 (ElfW): Define in terms of ElfExpandBitsW.
6556
6557 * w32proc.c (sys_siglist): Remove decl.
6558
6559 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6560 with ANSI C.
6561 (display_string): Declare face_string_pos arg.
6562
6563 * xfns.c (Fx_show_tip): Declare timeout param.
6564
6565 * xterm.c: No need to include locale.h.
6566 (x_alloc_lighter_color, x_setup_relief_color):
6567 Pass arg as double, not float, for compatibility with ANSI C.
6568 (fixup_locale): Move to emacs.c.
6569 (x_term_init): Do not setlocale or fixup locale; the main program
6570 does this now.
6571
2f0b74ea
DL
65721999-10-18 Dave Love <fx@gnu.org>
6573
6574 * doc.c (Fdocumentation_property): Gcpro `tem'.
6575
471aa4a0
KH
65761999-10-18 Kenichi Handa <handa@etl.go.jp>
6577
6578 * lread.c (Fload): Calculate bytes of filename correctly.
6579 (openp): Likewise.
6580
aca2020b
KH
65811999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6582
6583 * print.c (print_preprocess): In case print-circle is nil,
6584 add OBJ to Vprint_number_table only when OBJ is a symbol.
6585
1f5fe392 65861999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6587
6588 * coding.c (code_convert_string): Add record_unwind_protect to
6589 assure setting inhibit_pre_post_conversion back to zero. Take
6590 care of the multibyteness of the working buffer.
6591
6592 * coding.c (inhibit_pre_post_conversion): New variable.
6593 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6594 ignore post-read-conversion and pre-write-conversion property of
6595 the coding system.
6596 (code_convert_region_unwind): New function.
6597 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6598 running pre-write-conversion and post-read-conversion.
6599 (code_convert_string): Likewise.
6600
cd876a91
GM
66011999-10-17 Miles Bader <miles@gnu.org>
6602
6603 * editfns.c: Doc fix.
6604
66051999-10-17 Miles Bader <miles@gnu.org>
6606
6607 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6608 argument preconditions of find_before_next_newline in the case
6609 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6610 was indeed at the edge.
6611
66121999-10-17 Miles Bader <miles@gnu.org>
6613
6614 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6615 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6616
6617 * editfns.c (text_property_eq, text_property_stickiness): Don't
6618 use initializers for auto variables of type Lisp_Object.
6619 (find_field): Likewise. Use braces around nested ifs.
6620 (Fline_end_position): Store the raw eol in a variable, so that the
6621 final expression doesn't look so ugly.
6622 (Fconstrain_to_field): Doc fix.
6623 (preceding_pos): Renamed from `preceeding_pos'.
6624 (text_property_stickiness, find_field): Call preceding_pos,
6625 not preceeding_pos.
6626
66271999-10-17 Miles Bader <miles@gnu.org>
6628
6629 * editfns.c (Ffield_string_no_properties): New function.
6630 (text_property_stickiness, preceeding_pos): New functions.
6631 (Ffield_string): Remove PROPS parameter.
6632 (find_field): Add MERGE_AT_BOUNDARY parameter.
6633 Rewrite to use stickiness of `field' property to resolve
6634 ambiguous cases.
6635 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6636 (Fconstrain_to_field): Likewise.
6637 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6638 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6639 Supply new MERGE_AT_BOUNDARY argument to find_field.
6640 (Fline_beginning_position, Fline_end_position): Supply new
6641 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6642 Pass a value of Qt for the ONLY_IN_LINE argument to
6643 Fconstrain_to_field (only matters if N != 1).
6644 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6645 to Fconstrain_to_field.
6646
6647 * minibuf.c (Fminibuffer_complete_word): Use
6648 Ffield_beginning to find the prompt end.
6649
66501999-10-17 Miles Bader <miles@gnu.org>
6651
6652 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6653 behavior when NEW_POS is nil.
6654 (find_field): Use XSETFASTINT instead of make_number.
6655 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6656 input string by seeing where the field begins, instead of
6657 looking at text-properties.
6658
66591999-10-17 Miles Bader <miles@gnu.org>
6660
6661 * editfns.c (Qfield): New variable.
6662 (find_field, Ferase_field, Ffield_string,
6663 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6664 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6665 (make_buffer_string_both): Remove minibuffer-prompt hack.
6666 (syms_of_editfns): Initialize Qfield, and subr entries for
6667 field functions above.
6668 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6669 minibuf_save_list.
6670 Don't initialize minibuffer prompt length.
6671 Wrap prompt text-properties around the entire prompt.
6672 Add 'prompt text-property to prompt.
6673 Get final value with Ffield_string instead of make_buffer_string.
6674 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6675 minibuf_save_list.
6676 (do_completion): Get minibuffer input with Ffield_string
6677 instead of Fbuffer_string.
6678 Erase minibuffer input with Ferase_field instead of erase_buffer.
6679 (Fminibuffer_complete_and_exit): Likewise.
6680 Test whether buffer is empty by looking for the 'prompt text
6681 property at the end.
6682 Set prompt length by looking for the end of the prompt text property,
6683 and save prompt length for later use (since there is no longer a
6684 buffer variable to get it from).
6685 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6686 (syms_of_minibuf): Remove initializations of
6687 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6688 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6689 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6690 Don't initialize prompt_end_charpos field.
6691 * syntax.c (Fforward_word): Likewise.
6692 Constrain to any field.
6693
3f6f7508
GM
66941999-10-16 Gerd Moellmann <gerd@gnu.org>
6695
6696 * window.c (enum save_restore_action): New.
6697 (save_restore_orig_size): Change parameter list. Add
6698 functionality to check for valid orig_top and orig_height members
6699 in a window tree.
6700 (grow_mini_window): Call save_restore_orig_size with new parameter
6701 list.
6702 (shrink_mini_window): Restore old window sizes only if old
6703 size information is valid in all windows in a window tree.
427ec082 6704
06482119
GM
67051999-10-15 Gerd Moellmann <gerd@gnu.org>
6706
2710454d
GM
6707 * xmenu.c (set_frame_menubar): Don't call
6708 x_set_menu_resources_from_menu_face here.
6709 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6710
06482119
GM
6711 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6712
17fa2837
DL
67131999-10-14 Dave Love <fx@gnu.org>
6714
6715 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6716
45f93416
GM
67171999-10-14 Gerd Moellmann <gerd@gnu.org>
6718
6719 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6720 fails and h_errno is TRY_AGAIN.
6721
c765b723
DL
67221999-10-13 Dave Love <fx@gnu.org>
6723
6724 * filelock.c (lock_file): Move gcpro of `fn'.
6725
dace7f4e
GM
67261999-10-10 Gerd Moellmann <gerd@gnu.org>
6727
6728 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6729
83c8f461 67301999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6731
6732 * print.c (print): When removing objects from Vprint_number_table,
6733 only scan the newly added objects.
6734 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6735 unconditionally force it to stay in the table.
6736
85177c86
GM
67371999-10-09 Gerd Moellmann <gerd@gnu.org>
6738
6739 * xfns.c (prepare_image_for_display): Don't try to load image if
6740 loading it failed before.
6741 (lookup_image, prepare_image_for_display): Remember if loading the
6742 image failed.
6743 (xpm_load): Add missing UNBLOCK_INPUT.
6744
6745 * dispextern.h (struct image): New member load_failed_p.
6746
11e4de5d
SM
67471999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6748
f28eba7b 6749 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6750 in the docstring.
6751
f1da8f06
GM
67521999-10-08 Gerd Moellmann <gerd@gnu.org>
6753
6754 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6755 Don't call XSetInputFocus because that can generate additional
6756 FocusIn events.
427ec082 6757
c37bbd4f
GM
67581999-10-07 Jeffrey C Honig <jch@bsdi.com>
6759
6760 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6761
83c8f461 67621999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6763
6764 * process.c (wait_reading_process_input): When trying to suck
6765 input from one process, for accept-process-output,
6766 exit that loop if we get EAGAIN or EWOULDBLOCK.
6767
577d9e2f
GM
67681999-10-07 Gerd Moellmann <gerd@gnu.org>
6769
6770 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6771 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6772 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6773 Fpixmap_spec_p and Qpixmap_spec_p.
6774 (load_face_colors, check_lface_attrs,
6775 merge_face_vector_with_property,
6776 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6777 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6778 Fbitmap_spec_p.
6779
f5737ad2
GM
67801999-10-07 Gerd Moellmann <gerd@gnu.org>
6781
6782 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6783 MODE_LINE_FACE_ID.
6784
6785 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6786 (struct x_resources) [USE_X_TOOLKIT]: New.
6787 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6788 [USE_MOTIF]: New.
6789 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6790 [USE_LUCID]: New.
6791 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6792 (Qmenu): New.
6793 (syms_of_xfaces): Initialize Qmenu.
6794 (realize_basic_faces): Realize face `menu'.
6795 (resolve_face_name): New.
6796 (lface_from_face_name): Use it.
6797 (Finternal_set_lisp_face_attribute): Ditto.
6798 (Fpixmap_spec_p): Rewritten. Extend doc string.
6799
6800 * xmenu.c (set_frame_menubar, xmenu_show): Call
6801 x_set_menu_resources_from_menu_face.
6802
6803 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6804 (toplevel): Include X11/Intrinsic.h.
6805
6a1aa823
DL
68061999-10-03 Ken'ichi Handa <handa@gnu.org>
6807
6808 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6809 correctly.
6810
26901792
DL
68111999-09-30 Kenichi Handa <handa@etl.go.jp>
6812
6813 * category.c (modify_lower_category_set): Set default value of
6814 TABLE correctly.
6815
6816 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6817 size correctly.
6818
68191999-09-29 Gerd Moellmann <gerd@gnu.org>
6820
6821 * editfns.c (Fpropertize): Renamed from Fproperties.
6822
68231999-09-29 Gerd Moellmann <gerd@gnu.org>
6824
6825 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6826 frame that hasn't been initialized yet.
6827
83c8f461 68281999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6829
6830 * keymap.c (Fsingle_key_description): Make tem big enough.
6831 (describe_buffer_bindings): Make buf big enough.
6832
83c8f461 68331999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6834
6835 * intervals.c (get_local_map): Use indirect_function,
6836 not Findirect_function.
6837
26901792
DL
68381999-09-27 Dave Love <fx@gnu.org>
6839
6840 * cm.h: Remove unneeded declaration of ospeed.
6841
68421999-09-26 Gerd Moellmann <gerd@gnu.org>
6843
6844 * lisp.h (toplevel): Add prototype for
6845 next_single_char_property_change.
6846
6847 * textprop.c (next_single_char_property_change): New.
6848
6849 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6850 next_single_char_property_change.
6851
68521999-09-25 Gerd Moellmann <gerd@gnu.org>
6853
6854 * editfns.c (Fproperties): New.
6855 (syms_of_editfns): Defsubr it.
6856
6857 * xfns.c (lookup_image): Set image's timestamp because it's
6858 used when we look it up.
6859
68601999-09-23 Gerd Moellmann <gerd@gnu.org>
6861
6862 * window.c (enlarge_window): Add window parameter instead of using
6863 selected_window.
6864 (Fdisplay_buffer): Call it with window parameter instead of
6865 setting selected_window.
6866 (Fenlarge_window, Fshrink_window): Ditto.
6867 (shrink_mini_window): If there is no recorded height and position
6868 info, resize mini-window to height 1.
6869
6870 * xfns.c (image_error): Use add_to_log.
6871
6872 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6873 (load_face_font_or_fontset, load_color,
6874 merge_face_vector_with_property): Ditto.
6875
6876 * dispextern.h: Add prototype for add_to_log.
6877
6878 * xfaces.c (add_to_log): Move to xdisp.c.
6879
6880 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6881 parameter.
6882
68831999-09-23 Gerd Moellmann <gerd@gnu.org>
6884
6885 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6886 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6887
6888 * xdisp.c (resize_mini_window): Use grow_mini_window and
6889 shrink_mini_window.
6890
6891 * window.c (window_min_size): Add parameter ignore_fixed_p.
6892 (change_window_height): Call window_min_size with new parameter.
6893 (shrink_window_lowest_first, save_restore_orig_size,
6894 grow_mini_window, shrink_mini_window): New.
6895 (make_window, replace_window): Initialize orig_top and
6896 orig_height.
6897 (enlarge_window): Renamed from change_window_height. Make it
6898 static.
6899 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6900 enlarge_window instead of change_window_height.
6901
6902 * window.h (struct window): New members orig_top, orig_height.
6903 (toplevel): Add prototypes for grow_mini_window and
6904 shrink_mini_window. Remove prototype for change_window_height.
6905
69061999-09-21 Eli Zaretskii <eliz@gnu.org>
6907
6908 * frame.c (frame_name_fnn_p): Fix previous change.
6909
69101999-09-20 Gerd Moellmann <gerd@gnu.org>
6911
6912 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6913
6914 * dispnew.c (direct_output_for_insert): Cast arguments to
6915 safe_bcopy to char *.
6916
6917 * lread.c (readchar): Remove unused variables.
6918 (read_filtered_event, read1, Fmapatoms): Ditto.
6919 (toplevel): Include intervals.h.
6920
6921 * eval.c (Fsignal): Remove unused variables.
6922 (Fcommandp, do_autoload): Ditto.
6923
6924 * lisp.h: Add prototype for safe_bcopy, fatal.
6925
6926 * editfns.c (init_editfns): Remove unused variables.
6927 (Fgoto_char, Fchar_after, Fformat): Ditto.
6928 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6929
6930 * data.c (find_symbol_value): Remove unused variables.
6931 (Faref, Fstring_to_number): Ditto.
6932 (toplevel): Include stdio.h.
6933 (Fnumber_to_string): Cast XINT to long for %ld.
6934
6935 * casefiddle.c (casify_object): Remove unused variables.
6936 (casify_region): Ditto.
6937
427ec082 6938 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6939 conditinally compiled section in #ifdef.
6940 (toplevel): Include stdio.h.
6941
6942 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6943 keys_of_keymap, syms_of_keymap): Remove unused variables.
6944
69451999-09-20 Gerd Moellmann <gerd@gnu.org>
6946
6947 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6948 whose corresponding window rows have been disabled in
6949 try_window_id.
6950
69511999-09-20 Gerd Moellmann <gerd@gnu.org>
6952
6953 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6954 that window start is out of range.
6955 (handle_display_prop, handle_single_display_prop): Replace
6956 marginal area specifications like `left-margin' with `(margin
6957 left-margin)'.
6958 (Qmargin): New.
6959 (syms_of_xdisp): Initialize Qmargin.
6960
69611999-09-19 Gerd Moellmann <gerd@gnu.org>
6962
6963 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6964 describe_syntax, skip_chars): Remove unused variables.
6965 (back_comment, forw_comment): Add braces to if-statement with
6966 if-else as dependent statement.
6967
6968 * process.c (list_processes_1): Remove unused variables.
6969 (Fopen_network_stream, create_process): Add parentheses to
6970 conditional expressions.
6971 (create_process): Put declaration of sigchld in #if 0.
6972 (Fopen_network_stream): Removed unused variables.
6973 (Fopen_network_stream, wait_reading_process_input,
6974 wait_reading_process_input, send_process, send_process): Ditto.
6975 (toplevel): Add prototypes for set_waiting_for_input and
6976 keyboard_bit_set.
6977
6978 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6979
6980 * textprop.c (Fset_text_properties): Remove unused variables.
6981 (text_property_list, verify_interval_modification,
6982 interval_has_all_properties): Ditto.
6983
6984 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6985 (Fcall_process): Remove unused variable.
6986
6987 * keyboard.c (Frecursive_edit): Remove unused variable.
6988 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6989 timer_check, make_lispy_event, menu_bar_items,
6990 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6991 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6992 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6993 read_key_sequence): Ditto. Fread_key_sequence,
6994 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6995 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6996 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6997 (Fexecute_extended_command): Cast XINT to long for %ld.
6998 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6999 (toplevel): Include sys/types.h.
7000
7001 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
7002 (toplevel): Add prototypes for stuff_char, and
7003 code_convert_string_norecord.
7004
70051999-09-19 Gerd Moellmann <gerd@gnu.org>
7006
7007 * buffer.h: Add prototype for r_re_alloc.
7008
7009 * insdel.c (copy_text): Removed unused variables.
7010 (count_combining_after, count_combining_after, insert_1_both,
7011 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
7012 (adjust_after_replace, replace_range): Add parentheses to logical
7013 expressions. Remove unused variables.
7014 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
7015 expression.
7016
7017 * alloc.c (Fgarbage_collect): Remove unused variable.
7018 (compact_strings): Add parentheses around assignments in
7019 conditional context.
7020 (toplevel): Put declaration of unused function clear_marks
7021 in #if 0 like its definition.
7022
7023 * lisp.h: Add prototype for shrink_regexp_cache,
7024 sweep_weak_hash_tables.
7025
70261999-09-19 Dave Love <fx@gnu.org>
7027
7028 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
7029
7030 * doc.c (read_bytecode_char): Declare arg.
7031
7032 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
7033 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
7034
70351999-09-18 Richard Stallman <rms@gnu.org>
7036
7037 * xdisp.c (echo_area_display): Turn off code that returned
7038 without doing anything when using a terminal frame.
7039
83c8f461 70401999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
7041
7042 * unexelf.c (unexec): Don't get confused by a short section
7043 just before the bss section.
7044
26901792
DL
70451999-09-16 Gerd Moellmann <gerd@gnu.org>
7046
7047 * emacs.c (main): Remove unused variables.
7048 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
7049
7050 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
7051 init_fileio_once, syms_of_sound, init_xfns, init_fns
7052 init_sound, check_message_stack.
7053
7054 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7055
7056 * intervals.c (rotate_right, rotate_left): Add braces to avoid
7057 ambiguous else warning.
7058 (split_interval_left): Remove unused variables.
7059 (previous_interval, adjust_intervals_for_deletion,
7060 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
7061 (icount, idepth, zero_length): Move into #if 0 section below
7062 original position where these are used.
7063
7064 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
7065
7066 * buffer.c (Fkill_buffer): Remove unused variables.
7067 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
7068 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
7069 init_buffer_once, (syms_of_buffer): Ditto.
7070
7071 * xrdb.c (get_fallback): Remove unused variable.
7072 (x_load_resources): Ditto. Put local variable used for Motif only
7073 in #ifdef USE_MOTIF.
7074
70751999-09-16 Gerd Moellmann <gerd@gnu.org>
7076
7077 * minibuf.c (read_minibuf): Remove unused variables.
7078 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
7079 (do_completion): Move assignment out of conditional context.
7080 (Fdisplay_completion_list): Add parentheses to conditional expression.
7081
7082 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
7083
7084 * lisp.h: Add prototype for no_switch_window.
7085
7086 * window.c (Fset_window_buffer): Remove unused variables.
7087 (Fset_window_margins): Ditto.
7088
7089 * xdisp.c (resize_mini_window): Temporarily set the selected
7090 window's or Vminibuf_scroll_window's height to "fixed" around
7091 the call the change_window_height.
7092
7093 * window.c (window_fixed_size_p): Check window's height_fixed_p
7094 flag.
7095
7096 * window.h (struct window): New member height_fixed_p.
7097
7098 * dispnew.c (direct_output_forward_char): Don't use this method
7099 if showing a message or a message was just cleared because we
7100 might need to resize the mini-window.
7101
71021999-09-16 Gerd Moellmann <gerd@gnu.org>
7103
7104 * frame.c (Fdelete_frame): Correct local variable pointing to
7105 selected frame after selecting new frame.
7106
71071999-09-15 Richard Stallman <rms@gnu.org>
7108
7109 * puresize.h (BASE_PURESIZE): Increase to 525000.
7110
7111 * filelock.c (Vtemporary_file_directory): New variable.
7112 (syms_of_filelock): Set up Lisp variable.
7113
71141999-09-15 Gerd Moellmann <gerd@gnu.org>
7115
7116 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7117 (encode_terminal_code): Remove unused variables.
7118 (turn_off_face): Ditto.
7119 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7120
7121 * dispnew.c (update_frame_line): If writing whole desired line,
7122 don't clear to end of line if already at the end.
7123
71241999-09-15 Gerd Moellmann <gerd@gnu.org>
7125
7126 * xdisp.c (resize_mini_window): Don't report changed window
7127 height if it actually hasn't changed.
7128
427ec082 7129 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
7130 unused variables.
7131 (mark_shell_size_user_specified): Put in #if 0 because not used.
7132 (create_frame_gcs): Put in #if 0 because currently unused.
7133 (first_frame_p): Ditto.
7134
7135 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7136 single_submenu, update_frame_menubar, set_frame_menubar,
7137 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7138 variables.
7139
7140 * print.c (PRINTFULLP): Removed because it is no longer used and
7141 is misleading.
7142 (Ferror_message_string): Remove unused variables.
7143 (print_object): Cast argument of sprintf to long for `%ld'
7144 specifier. Remove unused variable.
7145
71461999-09-14 Gerd Moellmann <gerd@gnu.org>
7147
7148 * sound.c (Fplay_sound): Remove usused variables.
7149 (be2hs): Put in #if 0 because it's currently not used.
7150
71511999-09-14 Ken Raeburn <raeburn@gnu.org>
7152
7153 * print.c (Ferror_message_string, print_error_message,
7154 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7155 member access.
7156
71571999-09-14 Gerd Moellmann <gerd@gnu.org>
7158
7159 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7160
7161 * frame.c (Fnext_frame): Remove unused variable(s).
7162 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7163 (store_frame_param): Add parentheses to conditional expression.
7164 (Fmodify_frame_parameters): Remove unused variables.
7165 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7166 Ditto.
7167
7168 * xfns.c (x_set_background_color): Remove unused variable(s).
7169 (x_set_border_pixel): Ditto.
7170 (x_set_menu_bar_lines): Put local variable used only for
7171 non-toolkit case in #ifdef/#endif.
7172 (x_figure_window_size): Remove unused variable(s).
427ec082 7173 (x_figure_window_size, x_window, lookup_image,
26901792
DL
7174 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7175 png_load, jpeg_load, gif_load, x_create_tip_frame,
7176 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7177
7178 * xterm.c (x_scroll_bar_handle_click): Compile only if
7179 not USE_TOOLKIT_SCROLL_BARS.
7180 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7181
7182 * dispextern.h: Add prototypes for gamma_correct and
7183 x_kill_gs_process.
7184
7185 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7186 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7187 x_set_toolkit_scroll_bar_thumb): Ditto.
7188 (x_scroll_bar_create): Move local variable to the
7189 conditionally compiled section of code where it is used.
7190 (x_scroll_bar_create): Remove unused variable(s).
7191 (x_scroll_bar_remove, XTread_socket): Ditto.
7192 (XTread_socket) <ConfigureNotify>: Move variables used for
7193 non-toolkit case into conditionally compiled section of code.
7194
7195 * window.h (freeze_window_starts): Fix typo in prototype.
7196
7197 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7198 variable(s).
7199
7200 * lisp.h: Add prototype for debug_print.
7201
7202 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7203 to use do-while.
7204
7205 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7206 (Fchar_table_range, Fset_char_table_default, mapcar1,
7207 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7208
7209 * lisp.h: Add prototype for getloadavg.
7210
72111999-09-14 Andreas Schwab <schwab@gnu.org>
7212
7213 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7214
7215 * lisp.h: Declare close_file_unwind.
7216
72171999-09-14 Richard Stallman <rms@gnu.org>
7218
7219 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7220
72211999-09-13 Gerd Moellmann <gerd@gnu.org>
7222
7223 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7224 is always set correctly.
7225
72261999-09-13 Dave Love <fx@gnu.org>
7227
7228 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7229 declaration.
7230
72311999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7232
7233 * xdisp.c (QCfile): Move here from xfns.c.
7234 (syms_of_xdisp): Initialize it.
7235 (message2_nolog): Change for Lisp_Object selected_frame.
7236 (message3_nolog, message_with_string, message,
7237 setup_echo_area_for_printing, truncate_echo_area,
7238 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7239
72401999-09-13 Dave Love <fx@gnu.org>
7241
7242 * xterm.c: Don't continue #define args for benefit of old cc.
7243 (xt_action_hook): Indent #error for benefit of K&R cc.
7244
72451999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7246
7247 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7248 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7249 (XRINGBELL): Removed.
7250
72511999-09-13 Dave Love <fx@gnu.org>
7252
7253 * xfns.c (x_put_x_image): Make type consistent with declaration.
7254
7255 * fns.c (Fmake_hash_table): Fix string continuation.
7256
72571999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7258
7259 * xfns.c (QCfile): Moved to xdisp.c.
7260 (syms_of_xfns): Don't initialize QCfile.
7261 (check_x_frame): Change for Lisp_Object selected_frame.
7262 (check_x_display_info, x_get_resource_string): Ditto.
7263
72641999-09-13 Gerd Moellmann <gerd@gnu.org>
7265
7266 * minibuf.c (choose_minibuf_frame): Don't try to set the
7267 mini-buffer window's buffer, if the buffer is invalid.
7268
7269 * xfns.c (QCfile): Moved to xdisp.c.
7270 (syms_of_xfns): Don't initialize QCfile.
7271
7272 * xdisp.c (QCfile): Move here from xfns.c.
7273 (syms_of_xdisp): Initialize it.
7274
7275 * lisp.h (selected_frame): Add external declaration.
7276
7277 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7278 (Fx_store_cut_buffer_internal): Ditto.
7279 (Fx_rotate_cut_buffers_internal): Ditto.
7280
7281 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7282 selected_frame.
7283 (Finternal_set_lisp_face_attribute): Ditto.
7284 (Finternal_get_lisp_face_attribute): Ditto.
7285 (Finternal_lisp_face_empty_p): Ditto.
7286 (Fdump_face): Ditto.
7287
7288 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7289 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7290 set_terminal_window, set_scroll_region, reassert_line_highlight,
7291 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7292 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7293 encode_terminal_code, write_glyphs, term_init): Ditto.
7294
7295 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7296 (kbd_input_ast, read_input_waiting): Ditto.
7297
7298 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7299 selected_frame.
7300 (read_minibuf): Ditto.
7301
7302 * keyboard.c (command_loop_1): Change for Lisp_Object
7303 selected_frame.
7304 (cmd_error_internal, command_loop_1, read_char,
7305 kbd_buffer_get_event, read_avail_input,
7306 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7307 interrupt_signal, quit_throw_to_read_char): Ditto.
7308
7309 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7310 (Ffontset_info): DItto.
7311
7312 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7313
7314 * dispnew.c (selected_frame): Make it a Lisp_Object.
7315 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7316 (direct_output_for_insert, direct_output_forward_char,
7317 init_display): Ditto.
7318
7319 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7320 selected_frame.
7321 (set_internal): Ditto.
7322
7323 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7324 (record_buffer): Ditto.
7325
7326 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7327 (do_switch_frame): Change for Lisp_Object selected_frame.
7328 (Fselected_frame): Ditto.
7329 (Fframe_first_window): Use SELECTED_FRAME.
7330 (Fframe_root_window): Change for Lisp_Object selected_frame.
7331 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7332 Fprevious_frame, other_visible_frames, Fdelete_frame,
7333 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7334 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7335 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7336 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7337 Fset_frame_height, Fset_frame_width): Ditto.
7338
73391999-09-13 Gerd Moellmann <gerd@gnu.org>
7340
7341 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7342 (message3_nolog, message_with_string, message,
7343 setup_echo_area_for_printing, truncate_echo_area,
7344 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7345
7346 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7347 (Fx_popup_dialog): Ditto.
7348
7349 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7350 (check_x_display_info, x_get_resource_string): Ditto.
7351
7352 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7353 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7354 (XRINGBELL): Removed.
7355
7356 * window.c (Fminibuffer_window): Change for Lisp_Object
7357 selected_frame.
7358 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7359 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7360 Fcurrent_window_configuration, init_window_once): Ditto.
7361
7362 * frame.h (SELECTED_FRAME): New.
7363
73641999-09-12 Ken Raeburn <raeburn@gnu.org>
7365
7366 * category.c (word_boundary_p): Use XCAR and XCDR.
7367 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7368 Fregister_code_conversion_map): Likewise.
7369 * coding.c (setup_coding_system, detect_coding_system,
7370 Ffind_operation_coding_system, Fset_coding_priority_internal):
7371 Likewise.
7372 * doc.c (get_doc_string, Fdocumentation,
7373 store_function_docstring): Likewise.
7374 * editfns.c (save_restriction_restore): Likewise.
7375 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7376 skip_debugger, find_handler_clause, Fautoload, Fapply,
7377 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7378 Likewise.
7379 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7380 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7381 Fread_file_name): Likewise.
7382 * filelock.c (unlock_all_files): Likewise.
7383 * insdel.c (Fcombine_after_change_execute): Likewise.
7384 * intervals.c (adjust_intervals_for_insertion): Likewise.
7385 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7386 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7387 store_in_keymap, Fcopy_keymap, define_as_prefix,
7388 current_minor_maps, Faccessible_keymaps,
7389 accessible_keymaps_char_table, Fkey_description,
7390 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7391 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7392 describe_map): Likewise.
7393 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7394 read_list, init_lread): Likewise.
7395 * search.c (Fmatch_data): Likewise.
7396 * sunfns.c (Fsun_menu_internal): Likewise.
7397 * syntax.c (describe_syntax): Likewise.
7398 * undo.c (record_insert, record_delete, Fundo_boundary,
7399 truncate_undo_list): Likewise.
7400 * vmsproc.c (child_sig): Likewise.
7401
7402 * editfns.c (Fformat): Use XFLOAT_DATA.
7403
74041999-09-12 Gerd Moellmann <gerd@gnu.org>
7405
7406 * keyboard.c (command_loop_1): Resize mini-window to the
7407 exact size of a message displayed, if any.
7408
7409 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7410 to exact size if exact_p is non-zero.
7411 (display_echo_area_1): Call resize_mini_window with
7412 new parameter.
7413 (redisplay_internal): Ditto.
7414 (resize_echo_area_axactly): New.
7415
7416 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7417 new parameter.
7418
7419 * dispextern.h: Change prototype of resize_mini_window.
7420 Add prototype for resize_echo_area_axactly.
7421
7422 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7423 (syms_of_xfaces): Defsubr accordingly.
7424
7425 * xdisp.c (hscroll_window_tree): Choose cursor row from
7426 desired or current matrix.
7427 (redisplay_internal): Hscroll before updating.
7428
74291999-09-12 Gerd Moellmann <gerd@gnu.org>
7430
7431 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7432 of minibuffer_prompt_length.
7433
7434 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7435 of minibuffer_prompt_length.
7436 (read_minibuf_unwind): Ditto.
7437 (Fminibuffer_complete_and_exit): Ditto.
7438 (Fminibuffer_complete_word): Ditto.
7439 (Fminibuffer_prompt_end): Ditto.
7440
7441 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7442 of minibuffer_prompt_length.
7443 (Fline_beginning_position): Ditto.
7444
7445 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7446 of minibuffer_prompt_length.
7447 (Fmake_indirect_buffer): Ditto.
7448 (Fkill_buffer): Ditto.
7449 (Ferase_buffer): Ditto.
7450
7451 * buffer.h (prompt_end_charpos): Replaces
7452 minibuffer_prompt_length.
7453
427ec082 7454 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7455 without the prompt.
7456
7457 * editfns.c (make_buffer_string_both): Take out the code
7458 to handle mini-buffer prompts.
7459 (Fbuffer_string): Handle the prompt here, instead.
7460
7461 * xfaces.c (lface_from_face_name): Resolve face aliases.
7462 (Qmode_line): Replaces Qmodeline.
7463 (realize_basic_faces): Use Qmode_line.
7464 (syms_of_xfaces): Initialize Qmode_line.
7465
74661999-09-12 Gerd Moellmann <gerd@gnu.org>
7467
7468 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7469 current column after inserting prompt.
7470 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7471
7472 * xfaces.c (Qframe_update_face_colors): New.
7473 (syms_of_xfaces): Initialize call.
7474 (update_face_from_frame_parameter): Call that function when
7475 the frame's background changes.
7476
74771999-09-12 Richard Stallman <rms@gnu.org>
7478
7479 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7480
74811999-09-12 Ken Raeburn <raeburn@gnu.org>
7482
7483 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7484 mark_object, mark_buffer): Use XCAR and XCDR.
7485 * bytecode.c (Fbyte_code): Likewise.
7486 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7487 Likewise.
7488 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7489 getenv_internal): Likewise.
7490 * dired.c (file_name_completion): Likewise.
7491 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7492 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7493 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7494 * indent.c (Fcompute_motion): Likewise.
7495 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7496 list_processes_1, Fstart_process, Fopen_network_stream,
7497 wait_reading_process_input, read_process_output_call,
7498 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7499 status_notify, wait_reading_process_input): Likewise.
7500 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7501 extend_property_ranges): Likewise.
7502 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7503 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7504 x_report_frame_params, x_set_cursor_type, x_icon_type,
7505 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7506 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7507 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7508 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7509 x_display_info_for_name, Fx_display_list): Likewise.
7510 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7511 Fx_popup_menu, Fx_popup_dialog): Likewise.
7512 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7513 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7514 w32_term_init, x_delete_display): Likewise.
7515 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7516 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7517 x_top_window_to_frame, x_set_frame_parameters,
7518 x_report_frame_params, x_set_cursor_type, x_icon_type,
7519 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7520 Fx_display_list, x_create_tip_frame): Likewise.
7521 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7522 Fx_popup_menu, Fx_popup_dialog): Likewise.
7523 * xselect.c (x_own_selection, x_get_local_selection,
7524 x_handle_selection_request, x_handle_selection_clear,
7525 x_clear_frame_selections, wait_for_property_change_unwind,
7526 wait_for_property_change, x_handle_property_notify,
7527 copy_multiple_data, x_get_foreign_selection,
7528 lisp_data_to_selection_data, clean_local_selection_data,
7529 x_handle_selection_notify, Fx_get_selection_internal,
7530 x_disown_buffer_selections): Likewise.
7531 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7532 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7533 Likewise.
7534
7535 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7536 XFLOAT_DATA.
7537 * bytecode.c (Fbyte_code): Likewise.
7538 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7539 fmod_float): Likewise.
7540
75411999-09-11 Richard Stallman <rms@gnu.org>
7542
7543 * xdisp.c (run_window_scroll_functions): If hook functions switch
7544 buffers, switch back after.
7545
75461999-09-11 Ken Raeburn <raeburn@gnu.org>
7547
7548 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7549 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7550 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7551 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7552 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7553 XCDR.
7554 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7555 XCDR.
7556
75571999-09-10 Richard Stallman <rms@gnu.org>
7558
7559 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7560 not RevertToPointerRoot.
7561 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7562 Fix the code to clear around the scroll bar.
7563
75641999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7565
7566 * print.c: Support print-circle and related features.
7567 (Vprint_gensym_alist): Removed.
7568 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7569 Vprint_number_table): New variables.
7570 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7571 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7572 (print, print_preprocess, print_preprocess_string, print_object):
7573 New/modified functions with print-circle feature. Use
7574 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7575 (syms_of_print): Defined new Lisp variables `print-circle',
7576 `print-continuous-numbering', `print-number-table'.
7577
75781999-09-10 Gerd Moellmann <gerd@gnu.org>
7579
7580 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7581 as background color specification instead of an integer.
7582 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7583 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7584 (clear_image_cache, syms_of_xfns): Use it.
7585 (Qpostscript): Replaces Qghostscript.
7586 (gs_type): Use it.
7587 (gs_image_p): Ditto.
7588 (syms_of_xfns): Initialize Qpostscript.
7589
75901999-09-10 Richard Stallman <rms@gnu.org>
7591
7592 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7593
75941999-09-09 Richard Stallman <rms@gnu.org>
7595
7596 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7597
7598 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7599
76001999-09-09 Gerd Moellmann <gerd@gnu.org>
7601
7602 * fns.c (Fmakehash): Accept just one optional argument TEST.
7603
7604 * xfns.c (QCindex): New.
7605 (syms_of_xfns): Initialize QCindex.
7606 (gif_load): Use it instead of `:image'.
7607
76081999-09-09 Richard Stallman <rms@gnu.org>
7609
7610 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7611 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7612
76131999-09-08 Gerd Moellmann <gerd@gnu.org>
7614
7615 * xdisp.c (Qwhen): Replaces QCwhen.
7616 (syms_of_xdisp): Initialized it instead of QCwhen.
7617 (handle_single_display_prop): Use it instead of QCwhen.
7618
76191999-09-08 Ken'ichi Handa <handa@gnu.org>
7620
7621 * charset.c (translate_char): Reset MSBs of arguments of
7622 MAKE_CHAR.
7623 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7624
76251999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7626
7627 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7628
7629 * fns.c (Fbase64_decode_region): Don't place point outside of the
7630 current accessible portion.
7631
76321999-09-07 Richard Stallman <rms@gnu.org>
7633
7634 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7635 parent is an ancestor of SUBMAP; otherwise, add it as the
7636 ultimate ancestor.
7637
76381999-09-07 Gerd Moellmann <gerd@gnu.org>
7639
7640 * xdisp.c (handle_single_display_prop): Change conditional
7641 display property to `:when FORM . VALUE'.
7642
76431999-09-07 Richard Stallman <rms@gnu.org>
7644
7645 * fileio.c (Fwrite_region): Doc fix.
7646
76471999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7648
7649 * fileio.c (Qexcl): New variable.
7650 (report_file_error): Handle EEXIST specially.
7651 (Fwrite_region): Special handling for CONFIRM = `excl'.
7652 (syms_of_fileio): Initialize Qexcl.
7653
76541999-09-07 Gerd Moellmann <gerd@gnu.org>
7655
7656 * xfns.c (x_set_foreground_color): Call
7657 update_face_from_frame_parameter.
7658 (x_set_background_color): Ditto.
7659 (x_set_mouse_color): Ditto.
7660 (x_set_cursor_color): Ditto.
7661 (x_set_border_color): Ditto.
7662 (x_set_scroll_bar_foreground): Ditto.
7663 (x_set_scroll_bar_background): Ditto.
7664
7665 * xfaces.c (recompute_basic_faces): Clear face cache.
7666 (Finternal_set_lisp_face_attribute): Modify frame parameters
7667 if attributes of certain faces are changed.
7668 (update_face_from_frame_parameter): New.
7669
7670 * xfaces.c (realize_basic_faces): Realize new basic faces.
7671
7672 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7673 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7674
7675 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7676 (syms_of_xfaces): Intialize new symbols.
7677
7678 * fns.c (Fmakehash): Take one argument, test, make all the
7679 rest keyword arguments.
7680
7681 * window.c (Fset_window_margins): Make window the first argument.
7682 (set_window_buffer): Call Fset_window_margins with window as first
7683 argument.
7684
76851999-09-07 Gerd Moellmann <gerd@gnu.org>
7686
7687 * xfaces.c (Qfringe): Replaces Qmargin.
7688
76891999-09-07 Kenichi Handa <handa@etl.go.jp>
7690
7691 * charset.h: Lots of comments fixed.
7692 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7693 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7694
7695 * charset.c : Lots of comments fixed.
7696 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7697 (CHAR_COMPONENTS_VALID_P): Name changed from
7698 CHAR_COMPONENT_VALID_P. Caller changed.
7699
77001999-09-06 Richard Stallman <rms@gnu.org>
7701
7702 * insdel.c (syms_of_insdel): Define Lisp variable
7703 inhibit-modification-hooks.
7704
77051999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7706
7707 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7708 unexaix.c.
7709
7710 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7711
77121999-09-06 Dave Love <fx@gnu.org>
7713
7714 * unexaix.c: New version incorporating Michael Sperber's changes
7715 from XEmacs. Should solve problems on AIX 4.3.
7716
7717 * lread.c (Vbyte_boolean_vars): New variable.
7718 (defvar_bool, syms_of_lread): Use it.
7719
77201999-09-05 Richard Stallman <rms@gnu.org>
7721
7722 * minibuf.c (read_minibuf): Put all three properties on the
7723 same range, the whole prompt.
7724
77251999-09-05 Gerd Moellmann <gerd@gnu.org>
7726
7727 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7728 (Fplay_sound, syms_of_sound): Use it.
7729 (parse_sound): Allow float volume values in the range [0, 1].
7730 (Fplay_sound): Ditto.
7731
7732 * window.c (Fset_window_vscroll): Make window the first argument,
7733 amount to scroll the second. Take non-negative vscroll as
7734 argument.
7735 (Fwindow_vscroll): Return non-negative vscroll.
7736
7737 * xfns.c (Fx_show_tip): Improve documentation.
7738
77391999-09-05 Gerd Moellmann <gerd@gnu.org>
7740
7741 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7742 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7743 `top-line' and `top_line' to `header-line' and `header_line'.
7744 Likewise for similar spellings.
7745
77461999-09-05 Gerd Moellmann <gerd@gnu.org>
7747
7748 * xdisp.c (row_containing_pos): New.
7749 (try_window_id): Use it.
7750
7751 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7752 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7753 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7754 Likewise for upper-case etc.
7755
77561999-09-05 Gerd Moellmann <gerd@gnu.org>
7757
7758 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7759 Fix reference to renamed variable.
7760
77611999-09-04 Gerd Moellmann <gerd@gnu.org>
7762
7763 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7764 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7765 Qfixed_window_size.
7766 (syms_of_window): Ditto.
7767
7768 * fns.c (Fmakehash): Exchange optional test and size arguments.
7769
77701999-09-03 Gerd Moellmann <gerd@gnu.org>
7771
7772 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7773 under newly created scroll bar.
7774 (expose_window): If window is not yet fully initialized, do
7775 nothing. This can happen when toolkit scroll bars are used and a
7776 window is split. Reconfiguring the scroll bars will generate an
7777 expose for a newly created window.
7778
7779 * frame.h (struct frame): New member `gamma'.
7780
7781 * xfns.c: Include math.h. Add extern declaration for atof in case
7782 we don't see one.
7783 (Qscreen_gamma): New.
7784 (struct x_frame_parm_table): Add prototypes, add
7785 x_set_screen_gamma.
7786 (gamma_correct): New function.
7787 (defined_color): Call it.
7788 (x_set_screen_gamma): New.
7789 (x_set_title): Add parameter old_value.
7790 (RES_TYPE_FLOAT): New.
7791 (x_get_arg): Handle RES_TYPE_FLOAT.
7792 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7793 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7794 new prototype.
7795 (lookup_rgb_color): Ditto.
7796 (syms_of_xfns): Initialize Qscreen_gamma.
7797
7798 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7799 New. Allocate color for lwlib widgets.
7800 (x_alloc_nearest_color): Change parameter list include the
7801 frame on which to allocate colors. Gamma-correct colors.
7802 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7803 parameter list.
7804
7805 * xterm.h: Change protorype of x_alloc_nearest_color.
7806
78071999-09-03 Richard Stallman <rms@gnu.org>
7808
7809 * callproc.c: Delete the system-independent include of stdlib.h
7810 (leaving only the one in the WINDOWSNT conditional).
7811
78121999-09-03 Andrew Choi <choi@cs.hku.hk>
7813
7814 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7815 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7816
26901792
DL
7817 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7818 Window types and macros.
7819
7820 * frame.h: Do nothing if included a second time.
7821 (enum output_method): Add mac_output frame type.
7822 (union output_data): Add new alternative `mac'.
7823 (FRAME_MAC_P): New macro.
427ec082 7824
26901792
DL
7825 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7826 (syms_of_frame_1): Initialize Qmac.
7827 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7828 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7829 (Fmodify_frame_parameters) [macintosh]: Call
7830 mac_set_frame_parameter in macterm.c.
427ec082 7831
26901792
DL
7832 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7833 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7834
26901792
DL
7835 * make-docfiles.c: Correctly handle input files with Mac-style
7836 eol's.
427ec082 7837
26901792 7838 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7839
26901792
DL
7840 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7841 file of an X Window environment.
427ec082 7842
26901792
DL
7843 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7844 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7845
26901792
DL
7846 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7847 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7848 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7849 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7850 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7851 New functions, replacing POSIX features.
427ec082 7852
26901792
DL
7853 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7854 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7855 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7856
7857 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7858 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7859 (myPasswdDir, TempDirName, sys_siglist): New variables.
7860
7861 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7862 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7863 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7864 Define empty stubs so Emacs will link.
7865
78661999-09-03 Gerd Moellmann <gerd@gnu.org>
7867
7868 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7869
7870 * window.h: New member frozen_window_start_p.
7871
7872 * window.c (foreach_window, foreach_window_1): New.
7873 (freeze_window_start, freeze_window_starts): New.
7874 (make_window): Initialize frozen_window_start_p.
7875 (replace_window): Ditto.
7876 (Fset_window_point): Remove references to deleted variables.
7877 (Fset_window_start): Ditto.
7878
7879 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7880 resize_mini_initial_height): Removed.
7881 (syms_of_xdisp): Remove references to these variables.
7882 (resize_mini_window): Don't save window configuration, freeze
7883 window starts instead. Enlarge window until displaying an empty
7884 buffer, then shrink it. Make the function externally visible.
7885 (redisplay_window): Treat frozen window start like forced start,
7886 but accept point outside of the window.
7887
7888 * dispextern.h: Add function prototype for resize_mini_window.
7889
7890 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7891 reaching minibuf_level 0.
7892
7893 * lisp.h: Remove extern declarations for variables deleted from
7894 xdisp.c.
7895
7896 * dispnew.c (adjust_frame_glyphs): Remove reference to
7897 Vresize_mini_config.
7898
78991999-09-03 Gerd Moellmann <gerd@gnu.org>
7900
7901 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7902 to USE_TOOLKIT_SCROLL_BARS.
7903
7904 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7905 here.
7906 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7907 under newly created scroll bar. Put toolkit scroll bars in the
7908 middle of the area reserved for the scroll bar.
7909
79101999-09-03 Kenichi Handa <handa@etl.go.jp>
7911
7912 The following changes are for the new handling of mulitbyte
7913 sequence. Now, except for a composite character, no multibyte
7914 character in string/buffer has trailing garbage bytes. For
7915 instance, the length of string "\201\300\300" is now 2, the first
7916 character is Latin-1 A-grave, the second is raw \300.
7917
7918 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7919 are negative.
7920 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7921 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7922 (PARSE_COMPOSITE_SEQ): New macro.
7923 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7924 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7925 (CHAR_PRINTABLE_P): New macro.
7926 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7927 (STRING_CHAR_AND_LENGTH): Likewise.
7928 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7929 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7930 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7931
7932 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7933 (SPLIT_CHARACTER_SEQ): New macro.
7934 (SPLIT_MULTIBYTE_SEQ): New macro.
7935 (CHAR_COMPONENT_VALID_P): New macro.
7936 (non_ascii_char_to_string): Generate a multibyte sequence as far
7937 as possible.
7938 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7939 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7940 (split_non_ascii_string): Likewise.
7941 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7942 (char_printable_p): New function.
7943 (translate_char): Check character by NATNUMP instead of INTEGERP.
7944 (unibyte_char_to_multibyte): Call char_valid_p instead of
7945 VALID_MULTIBYTE_CHAR_P.
7946 (Fmake_char_internal): Check the arguments more rigidly.
7947 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7948 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7949 (Fmultibyte_char_to_unibyte): Check the validity of character by
7950 CHAR_VALID_P.
7951 (chars_in_text): Call multibyte_chars_in_text.
7952 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7953 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7954 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7955
7956 * data.c (Faset): Adjust the way to check byte-combining
7957 possibility for the new handling of multibyte sequence.
7958
7959 * editfns.c (Fsubst_char_in_region): Likewise.
7960
7961 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7962 (string_char_to_byte): Likewise.
7963 (string_byte_to_char): Likewise.
7964
7965 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7966 macro STRING_CHAR_AND_LENGTH. Caller changed.
7967
7968 * insdel.c (count_combining_composition): New function.
7969 (count_combining_before): Adjust the way to check byte-combining
7970 possibility for the new handling of multibyte sequence. Call
7971 count_combining_composition for a composite character.
7972 (count_combining_after): Likewise.
7973
7974 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7975 (print): Likewise.
7976
7977 * dispextern.h (struct it): Change the size of the member
7978 `ctl_chars'.
7979
7980 * xdisp.c (get_next_display_element): Display incomplete multibyte
7981 sequence (e.g. \222\300) by octal form.
7982
79831999-09-02 Gerd Moellmann <gerd@gnu.org>
7984
7985 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7986
7987 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7988 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7989
79901999-09-02 Gerd Moellmann <gerd@gnu.org>
7991
7992 * buffer.c (set_buffer_internal): Never set
7993 windows_or_buffers_changed.
7994
7995 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7996 if we have displayed to the bottom of the window.
7997
7998 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7999 in both directions. Extend documentation.
8000
80011999-09-01 Gerd Moellmann <gerd@gnu.org>
8002
8003 * minibuf.c (read_minibuf): Flush display after setting cursor to
8004 column 0.
8005
80061999-08-31 Gerd Moellmann <gerd@gnu.org>
8007
8008 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
8009 already defined. This avoids a warning from buffer.c.
8010
80111999-08-30 Gerd Moellmann <gerd@gnu.org>
8012
8013 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
8014 of both margins.
8015 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
8016 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
8017 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
8018
8019 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
8020 once instead of twice.
8021 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
8022
8023 * xterm.c: Remove unused bitmaps.
8024 (continued_bits, continuation_bits, overlay_bits): Change images.
8025 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
8026 instead of FRAME_X_FLAGS_AREA_WIDTH.
8027 (x_after_update_window_line): Ditto.
8028 (x_draw_bitmap): Likewise.
8029 (x_draw_row_bitmaps): Likewise.
8030 (x_draw_glyph_string_box): Likewise.
8031 (x_draw_glyphs): Likewise.
8032 (x_scroll_run): Likewise.
8033 (expose_window_tree): Likewise.
8034 (note_mode_line_highlight): Likewise.
8035 (XTset_vertical_scroll_bar): Likewise.
8036 (x_clip_to_row): Likewise.
8037 (x_set_window_size): Likewise.
8038
8039 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
8040 of 2 * that value.
8041
8042 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
8043 2 * that value.
8044 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
8045 FRAME_FLAGS_AREA_WIDTH.
8046
8047 * window.c (coordinates_in_window): Use
8048 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8049 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
8050 instead of twice.
8051
427ec082 8052 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
8053 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
8054 (EmacsFrameSetCharSize): Ditto.
8055
8056 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
8057 instead of FRAME_FLAGS_AREA_WIDTH.
8058
8059 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
8060 FRAME_FLAGS_AREA_COLS once.
8061 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
8062 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8063
80641999-08-30 Gerd Moellmann <gerd@gnu.org>
8065
8066 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
8067 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
8068
80691999-08-30 Gerd Moellmann <gerd@gnu.org>
8070
8071 * fns.c (QCweakness): Replaces QCweak.
8072 (Fmake_hash_table): Ditto.
8073 (Fmakehash): Ditto.
8074 (syms_of_fns): Ditto.
8075
80761999-08-29 Richard Stallman <rms@gnu.org>
8077
8078 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
8079
8080 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
8081
8082 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
8083 Add support for nested comments.
8084
d7d0dac0
SM
8085 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
8086 Consolidate the forward comment code into the new `forw_comment'.
8087 (forw_comment): New subroutine. Added support for nested comments.
8088 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
8089 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
8090
80911999-08-28 Ken Raeburn <raeburn@gnu.org>
8092
8093 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
8094 names of structure elements if HIDE_LISP_IMPLEMENTATION is
8095 defined, to help detect code that uses knowledge of the Lisp
8096 internals that it shouldn't have.
8097 (XFLOAT_DATA): New macro.
8098
80991999-08-25 Gerd Moellmann <gerd@gnu.org>
8100
8101 * syntax.c (Fforward_word): If in a mini-buffer and moving
8102 backwards, stop in front of the prompt to prevent accidentially
8103 moving into the read-only prompt.
8104
8105 * window.c (Frecenter): Clear frame if called with nil or no arg.
8106
8107 * xdisp.c (resize_mini_window): Don't resize if
8108 Vmax_mini_window_height is nil. Otherwise, use a default if
8109 Vmax_mini_window_height is not ot a number.
8110 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8111
81121999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8113
8114 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8115 * m/iris4d.h: Use unexelf for IRIX 5.*.
8116 * m/iris5d.h: Use unexelf for IRIX 6.*.
8117 * unexsgi.c: Deleted.
8118
8119 * unexelf.c: Auto-detect .sbss section.
8120 (round_up): Make it static.
8121 (unexec): Declare alignment as Elf Word. Skip ``Program
8122 segment above .bss'' test on MIPS without .sbss.
8123 Copy sections .got and .sdata1 sections. Adjust offsets in
8124 sections .sdata, .lit4, .lit8, .got and .sdata1.
8125
81261999-08-25 Gerd Moellmann <gerd@gnu.org>
8127
8128 * xdisp.c (try_window_id): Remove typo.
8129
81301999-08-24 Gerd Moellmann <gerd@gnu.org>
8131
8132 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8133 unchanged text at the bottom when computing the cursor position.
8134 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8135 set.
8136
8137 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8138
81391999-08-24 Gerd Moellmann <gerd@gnu.org>
8140
8141 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8142 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8143 (syms_of_xfaces): Ditto.
8144
8145 * window.c (Fset_window_point): Reset Vresize_mini_config.
8146 (Fset_window_start): Ditto.
8147 (set_window_buffer): Ditto.
8148
8149 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8150
8151 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8152 before calling try_window.
8153 (echo_area_display): If height has changed, update other windows.
8154 (resize_mini_frame, resize_mini_initial_height): New.
8155 (resize_mini_window): Save/restore window configuration
8156 differently.
8157
427ec082 8158 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
8159 resize_mini_initial_height): Add extern declarations.
8160
8161 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8162 CANON_X_UNIT.
8163
8164 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8165 being redefined in jconfig.h.
8166
81671999-08-23 Ken'ichi Handa <handa@gnu.org>
8168
8169 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8170
81711999-08-22 Gerd Moellmann <gerd@gnu.org>
8172
8173 * alloc.c (mark_glyph_matrix): Mark strings only.
8174
8175 * xdisp.c (redisplay_internal): Clear garbaged frames after
8176 resizing mini-window.
8177
81781999-08-22 Gerd Moellmann <gerd@gnu.org>
8179
8180 * xdisp.c (unwind_with_echo_area_buffer): Use
8181 set_buffer_internal_1 instead of set_buffer_internal.
8182 (with_echo_area_buffer): Ditto.
8183
8184 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8185 only if buffer is displayed somewhere.
8186
8187 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8188
8189 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8190 (gap_right): Ditto.
8191 (modify_region): Ditto.
8192
8193 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8194
8195 * xdisp.c (Vresize_mini_config): New.
8196 (resize_mini_window): Use it to save restore original window
8197 configuration
8198 (syms_of_xdisp): Initialize it.
8199
8200 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8201
8202 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8203
8204 * xdisp.c (reconsider_clip_changes): New.
8205 (redisplay_internal, redisplay_window): Call it.
8206 (mark_window_display_accurate, redisplay_internal): Set current
8207 matrix' buffer, begv, zv.
8208
8209 * window.c (Fset_window_hscroll): Set
8210 prevent_redisplay_optimizations_p instead of clip_changed.
8211 (Fset_window_hscroll): Ditto.
8212 (temp_output_buffer_show): Ditto.
8213 (Fset_window_vscroll): Ditto.
8214
8215 * buffer.c (reset_buffer): Set clip_changed to 0 and
8216 prevent_redisplay_optimizations_p to 1.
8217 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8218
8219 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8220 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8221 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8222 END_UNCHANGED): New.
8223 (struct buffer_text): Add beg_unchanged, end_unchanged,
8224 unchanged_modified, overlay_unchanged_modified.
8225
8226 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8227 overlay_unchanged_modified): Removed.
8228 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8229 (unwind_with_echo_area_buffer): Don't restore them.
8230 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8231 (text_outside_line_unchanged_p, redisplay_internal,
8232 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8233 (redisplay_window): Let try_window_id be called if more than one
8234 window is displayed. Use/set buffer-specific beg/end_unchanged.
8235 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8236 try_window_id):
8237 Use buffer-specific beg/end_unchanged.
8238
8239 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8240 overlay_unchanged_modified): Remove extern declarations.
8241
8242 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8243 buffer.
8244
8245 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8246 (gap_right): Ditto.
8247 (adjust_after_replace): Likewise.
8248 (replace_range, del_range_2, modify_region): Likewise.
8249
8250 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8251 and unchanged_modified per buffer.
8252
8253 * coding.c (code_convert_region): Compute beg/end_unchanged per
8254 buffer.
8255
8256 * buffer.c (modify_overlay): Compute beg/end_unchanged
8257 per buffer.
427ec082 8258 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
8259 structure.
8260
82611999-08-22 Gerd Moellmann <gerd@gnu.org>
8262
8263 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8264
8265 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8266 (Qkey_value_weak): Removed.
8267 (make_hash_table): Use nil, `key', `value', t for weakness.
8268 (Fmake_hash_table): Ditto.
8269 (copy_hash_table): New.
8270 (Fcopy_hash_table): New.
8271
82721999-08-22 Gerd Moellmann <gerd@gnu.org>
8273
8274 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8275 new parameter.
26901792
DL
8276
82771999-08-21 Gerd Moellmann <gerd@gnu.org>
8278
8279 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8280 well.
427ec082 8281 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8282 have changed.
8283 (display_echo_area): Reset displayed echo_area_buffer to nil
8284 at the end if we're displaying a nil message.
8285
82861999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8287
26901792
DL
8288 * fns.c (hash_lookup): Test with EQ before calling key comparion
8289 function.
8290 (hash_remove): Ditto.
8291 (cmpfn_eq): Removed.
8292 (cmpfn_eql): Don't test with EQ.
8293 (cmpfn_equal): Ditto.
8294 (make_hash_table): Set comparison function for `eq' to null.
8295
8296 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8297 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8298
8299 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8300
8301 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8302 xterm.c: Call change_frame_size and do_pending_window_change with
8303 new parameter.
8304
8305 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8306 (change_frame_size): Ditto.
8307 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8308 and not called from a safe place.
8309 (window_change_signal): Call change_frame_size with new parameter.
8310
8311 * dispextern.h: Change prototypes for do_pending_window_change
8312 and change_frame_size.
8313
8314 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8315 window's buffers equals current_buffer; this is not the
26901792
DL
8316 case during echo area display.
8317
83181999-08-21 Gerd Moellmann <gerd@gnu.org>
8319
8320 * xdisp.c, minibuf.c: Remove conditional compilation on
8321 NO_PROMPT_IN_BUFFER.
8322
8323 * minibuf.c (Fminibuffer_prompt_end): New.
8324 (syms_of_minibuf): Defsubr it. Remove
8325 minibuffer-prompt-in-buffer.
8326 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8327 Extend documentation.
8328
8329 * xdisp.c (get_next_display_element): Display \r as ^M.
8330
8331 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8332 under scroll bar widget.
8333
83341999-08-21 Gerd Moellmann <gerd@gnu.org>
8335
8336 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8337 anywhere.
8338 (unwind_redisplay): Return nil.
8339 (clear_garbaged_frames): New.
8340 (redisplay_internal): Use it.
8341 (echo_area_display): Ditto.
8342 (resize_mini_window): Mew.
8343 (display_echo_area_1): Use it to resize echo area window.
8344 (redisplay_internal): Use it to resize active mini-window.
8345
8346 * dispextern.h, lisp.h: Add function prototypes.
8347
427ec082 8348 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8349 cursor_in_echo_area case only for a mini-window showing
8350 a message. Don't let cursor end up after the end of a row.
8351
8352 * xdisp.c (echo_area_glyphs, echo_area_message,
8353 echo_area_glyphs_length, previous_echo_glyphs,
8354 previous_echo_area_message, previous_echo_area_glyphs_length):
8355 Removed.
8356 (Vmessage_stack, echo_area_buffer, echo_buffer,
8357 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8358 (message2_nolog): Use set_message and clear_message.
8359 (message3): Rename parameter len to nbytes to make clear what
8360 it is.
8361 (message3_nolog): Ditto. Use set_message and clear_message.
8362 (update_echo_area): Rewritten.
8363 (with_echo_area_buffer): New.
8364 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8365 (setup_echo_area_for_printing): New.
8366 (display_echo_area, display_echo_area_1): New.
8367
8368 (current_message, current_message_1): New.
427ec082 8369 (push_message, restore_message, pop_message,
26901792
DL
8370 check_message_stack): New.
8371 (truncate_echo_area): Rewritten.
8372 (truncate_message_1): New.
8373 (set_message, set_message_1, clear_message): New.
8374 (echo_area_display): Rewritten.
8375 (redisplay_internal): Check for needed echo area update
8376 differently.
8377 (redisplay_preserve_echo_area): Rewritten.
427ec082 8378 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8379 message differently.
8380 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8381 Remove initialzation of removed variables.
8382 (init_xdisp): Remove references to removed variables.
8383
8384 * dispnew.c (adjust_frame_message_buffer): Removed references
8385 to echo_area_glyphs and previous_echo_glyphs.
8386 (direct_output_for_insert): Check for mini-window displaying
8387 echo area message differently.
8388 (update_frame): Likewise.
8389 (set_window_cursor_after_update): Likewise. In echo area,
8390 don't try to set cursor on rows that aren't enabled.
8391
8392 * print.c: Remove conditional compilation on `standalone'.
8393 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8394 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8395 longer used in that way.
8396 (PRINTDECLARE): Add multibyte.
8397 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8398 (printbufidx): Removed.
8399 (printchar, strout): Rewritten.
8400
8401 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8402 a struct kboard.
8403 (echo_kboard): New.
8404 (echo_now): Set echo_kboard to the current kboard.
8405 (cancel_echoing): Set echo_kboard to null.
8406 (cmd_error_internal): Use clear_message, remove references
8407 to echo_area_glyphs and echo_area_message.
8408 (command_loop_1): Check for echo area messages differently.
8409 (read_char): Likewise.
8410 (record_menu_key): Use clear_message.
8411 (Fexecute_extended_command): Check for echo area messages
8412 differently. Use push_message, restore_message, pop_message.
8413
8414 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8415 pop_message.
8416
8417 * emacs.c (shut_down_emacs): Call check_message_stack.
8418
8419 * lisp.h: Add function prototypes and extern declarations for
8420 new functions and variables.
8421
8422 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8423 pop_message.
8424
427ec082 8425 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8426 setting echo_area_glyphs.
8427 (Fminibuffer_completion_help): Ditto.
8428
8429 * editfns.c (Fcurrent_message): Rewritten.
8430
8431 * frame.c, window.h: Remove references to echo_area_glyphs
8432 and previous_echo_glyphs.
8433
84341999-08-21 Dave Love <fx@gnu.org>
8435
8436 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8437 * aix4-1.h: Likewise.
8438
8439 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8440
84411999-08-20 Gerd Moellmann <gerd@gnu.org>
8442
8443 * xfns.c: Remove tiff34 prefix from include.
8444
84451999-08-20 Dave Love <fx@gnu.org>
8446
8447 * cm.c: Revert previous change.
8448
84491999-08-19 Gerd Moellmann <gerd@gnu.org>
8450
8451 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8452 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8453
84541999-08-18 Dave Love <fx@gnu.org>
8455
8456 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8457 stdlib.h.
8458
8459 * doprnt.c: Use stdlib.h, unistd.h.
8460
8461 * config.in: Add HAVE_TERMCAP_H.
8462
8463 * cm.c: Use termcap.h.
8464
84651999-08-18 Gerd Moellmann <gerd@gnu.org>
8466
8467 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8468 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8469 cannot be created we will already have crashed earlier. Call
8470 lw_set_main_areas with a null menu-bar widget, so that we have
8471 a reasonable default.
8472 (Fx_create_frame): Rearranged so that Lisp errors during frame
8473 initialization cause less damage. Initialize menu bar widget
8474 here.
8475
84761999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8477
26901792
DL
8478 * dispnew.c (update_frame_line): Fix previous change. If writing
8479 whole line clear to end of frame.
8480
84811999-08-17 Gerd Moellmann <gerd@gnu.org>
8482
8483 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8484 and `right-bitmap-area' if position is in the bitmap areas. This
8485 avoids an error when clicking on the bitmap areas. Instead, they
8486 are currently treated like clicks inside the window.
8487 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8488 (Qleft_bitmap_area, Qright_bitmap_area): New.
8489 (syms_of_window): Initialize new symbols.
8490
8491 * dispnew.c (update_frame_line): If writing whole line,
8492 don't write trailing spaces unless we must.
8493
8494 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8495 (redisplay_internal): Register unwind_redisplay with
8496 register_unwind_protect.
8497 (try_window_reusing_current_matrix): If new start > old start,
8498 give up if start pos of first reusable row is not equal to new
8499 start.
8500
8501 * eval.c (Fsignal): Don't reset redisplaying_p here.
8502
8503 * xterm.c (expose_area): If row extends face to end of line,
8504 write the whole line.
8505
85061999-08-16 Gerd Moellmann <gerd@gnu.org>
8507
8508 * dispextern.h (struct it): Remove member
8509 show_trailing_whitespace_p.
8510
8511 * dispnew.c (direct_output_for_insert): Use
8512 Vshow_trailing_whitespace instead of former iterator member
8513 show_trailing_whitespace_p.
8514 (direct_output_forward_char): Don't do it if hightlighting
8515 trailing whitespace.
8516
8517 * xdisp.c (Qshow_trailing_whitespace): Removed.
8518 (Vshow_trailing_whitespace): Added.
8519 (init_iterator): Remove initialization code for
8520 show_trailing_whitespace_p.
8521 (redisplay_internal): Don't try cursor movement in this_line
8522 if showing trailing whitespace.
8523 (redisplay_window): Likewise for cursor movement in current
8524 matrix and try_window_id.
8525 (try_window_reusing_current_matrix): Likewise.
8526 (trailing_whitespace_p): Return 0 if trailing whitespace is
8527 in front of point.
8528 (display_line): Use Vshow_trailing_whitespace instead of
8529 former iterator member show_trailing_whitespace_p.
8530 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8531
85321999-08-16 Gerd Moellmann <gerd@gnu.org>
8533
8534 * window.c (Fpos_visible_in_window_p): Rewritten.
8535
8536 * xfaces.c (add_to_log): Renamed from display_message.
8537 Don't display messages in echo area.
8538
8539 * xterm.c (x_draw_glyph_string_box): Use the background width
8540 of the glyph string for the width of the box.
8541
85421999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8543
8544 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8545
85461999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8547
8548 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8549 background first, and then set other parameters that might
8550 depend upon their new values.
8551
85521999-08-15 Gerd Moellmann <gerd@gnu.org>
8553
8554 * xfaces.c (Vfont_list_limit): New.
8555 (syms_of_xfaces): Make it a user-variable.
8556 (DEFAULT_FONT_LIST_LIMIT): New.
8557 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8558 maximally that number of fonts, otherwise use
8559 DEFAULT_FONT_LIST_LIMIT.
427ec082 8560 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8561 until we have all fonts.
8562 (Fxfont_list): Additionally return the full names of fonts and
8563 their registry and encoding.
8564
427ec082 8565 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8566 Simplify clearing "under" scroll bar.
8567
8568 * window.c (Qfixed_window_size): New.
8569 (syms_of_window): Initialiaze it.
8570 (check_all_windows): Add return type void.
8571 (window_fixed_size_p): New. Return non-zero if window
8572 is fixed-size.
8573 (window_min_size_1): New.
8574 (window_min_size): Handle fixed-size windows.
8575 (size_window): New. Rewritten combination of set_window_height and
8576 set_window_width that handles fixed-size windows.
8577 (set_window_height): Call it.
8578 (set_window_width): Call it.
8579 (Fsplit_window): Give an error on attempt to split a fixed-size
8580 window.
8581 (change_window_height): Partly rewritten to handle fixed-size
8582 windows.
8583
85841999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8585
8586 * process.c (Fopen_network_stream): Fix previous change.
8587
85881999-08-13 Karl Heuer <kwzh@gnu.org>
8589
8590 * xdisp.c (line_number_display_limit_width): New var.
8591 (decode_mode_spec): Use it instead of hardcoded value.
8592 (syms_of_xdisp): Defvar it.
8593
85941999-08-13 Richard M. Stallman <rms@gnu.org>
8595
8596 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8597 (run_hook_with_args): Likewise.
8598
8599 * window.h (struct window): New field too_small_ok.
8600
427ec082 8601 * window.c (set_window_height, set_window_width):
26901792
DL
8602 If window starts out "too small", set its too_small_ok flag.
8603 If window's too_small_ok flag is set, don't delete it
8604 unless it is so small it would cause a crash.
8605
86061999-08-13 Gerd Moellmann <gerd@gnu.org>
8607
8608 * window.c (MINSIZE): Removed.
8609 (window_min_size): New.
8610 (set_window_height): Use window_min_size.
8611 (change_window_height): Ditto.
8612
86131999-08-12 Gerd Moellmann <gerd@gnu.org>
8614
8615 * indent.c (vmotion): Don't add in mini-buffer prompt width
8616 if prompts are inserted into mini-buffer.
8617
86181999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8619
8620 * config.in: Add HAVE_GETADDRINFO.
8621 * process.c (Fopen_network_stream): Use getaddrinfo.
8622
86231999-08-11 Gerd Moellmann <gerd@gnu.org>
8624
8625 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8626 glyphs to -1.
8627
8628 * xdisp.c (face_before_or_after_it_pos): If position after
8629 or before iterator's current position in the buffer is out
8630 of bounds, return the iterator's original face id.
8631
8632 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8633 just swap glyphs pointers between current and desired row.
8634 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8635 desired matrix method string to current matrix.
8636
86371999-08-11 Kenichi Handa <handa@etl.go.jp>
8638
8639 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8640
8641 * lread.c (read_escape): For Control modifier, pay attention to
8642 multibyte character.
8643 (read1): Likewise. Singal error or a multibyte character which
8644 has a modifer bit. Check validity of Shift modifer.
8645
8646 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8647 the same as Lisp reader.
8648
86491999-08-10 Richard M. Stallman <rms@gnu.org>
8650
8651 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8652
86531999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8654
8655 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8656
86571999-08-10 Eli Zaretskii <eliz@gnu.org>
8658
8659 * msdos.c (IT_set_face): Abort if the default face is not realized
8660 and cached.
8661 (IT_write_glyphs): Reset the screen face to the default face
8662 before writing glyphs.
8663
8664 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8665 colors from the frame here.
8666 (realize_tty_face) [MSDOS]: Do it here. Update the face
8667 attributes with the actual name of the color taken from the
8668 frame.
8669
8670 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8671 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8672
8673 * frame.c (Fframe_parameters): Swap foreground and background
8674 colors returned in frame parameters if the frame has reverse in
8675 its parameter alist.
8676 (Fmake_terminal_frame): Make a unique copy of face_alist for
8677 each frame.
8678
86791999-08-07 Richard Stallman <rms@gnu.org>
8680
8681 * buffer.c (Fprevious_overlay_change): Just return
8682 the answer obtained from overlays_at.
8683
8684 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8685 Use XpmCloseness and attrs.closeness instead.
8686
86871999-08-06 Richard Stallman <rms@gnu.org>
8688
8689 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8690
86911999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8692
427ec082 8693 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8694 Ffile_attributes_lessp): New functions.
8695 (Fdirectory_files): Use directory_files_internal.
8696 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8697 Ffile_attributes_lessp.
8698
8699 * w32.c (stat): Check for directory ending in separator when
8700 doing readdir fast path.
8701
8702 * w32fns.c (x_set_icon_type): Support setting frame icons.
8703 * w32term.c (x_bitmap_icon): New function.
8704 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8705
26901792
DL
87061999-08-06 Gerd Moellmann <gerd@gnu.org>
8707
8708 * xdisp.c (set_iterator_to_next): After delivering a character
8709 from a display vector, restore face and charset to what they were
8710 before the display vector was processed.
8711
87121999-08-06 Gerd Moellmann <gerd@gnu.org>
8713
8714 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8715 on_newline_p.
8716 (set_iterator_to_next): After delivering last char
427ec082 8717 from display vector, reseat on next visible line start if
26901792
DL
8718 dpvec_char_len < 0.
8719 (next_element_from_buffer): Set dpvec_char_len to -1 for
8720 selective display.
8721
87221999-08-06 Gerd Moellmann <gerd@gnu.org>
8723
8724 * xdisp.c (compute_line_metrics): If first line's physical ascent
8725 is larger than its logical ascent, use the physical ascent, and
8726 make the row taller. Set row's overlapping_p flag.
8727
8728 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8729 (direct_output_for_insert): Ditto.
8730
8731 * dispextern.h (struct glyph_row): Add overlapping_p.
8732
8733 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8734
8735 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8736 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8737
8738 * dispnew.c (direct_output_for_insert): Don't use this method if
8739 row is overlapped by others.
8740 (update_text_area): Write full line if current line is overlapped.
8741 (redraw_overlapped_rows): New.
8742 (update_window): Call it.
8743 (redraw_overlapping_rows): New.
8744 (update_window): Call it.
8745 (scrolling_window): Make sure overlapped_p flag in current rows is
8746 unchanged.
8747 (row_equal_p): Take rows overlapped_p flag into account.
8748
8749 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8750
8751 * xterm.c (x_fix_overlapping_area): New.
8752 (x_redisplay_interface): Add x_fix_overlapping_area.
8753
8754 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8755
87561999-08-06 Gerd Moellmann <gerd@gnu.org>
8757
8758 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8759 (struct glyph_string): Add member for_overlaps_p.
8760 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8761 of overlapping rows, clip to window bottom.
8762 (x_fill_glyph_string): Add parameter overlaps_p.
8763 (x_fill_composite_glyph_string): Ditto.
8764 (BUILD_GLYPH_STRINGS): Ditto.
8765 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8766 (x_draw_glyph_string): Don't draw anything but the foreground
8767 if glyph string draws row overlaps.
8768
8769 * dispnew.c (direct_output_for_insert): Don't use this
8770 optimization for rows that overlap others.
8771 (update_window_line): Return non-zero if display has changed.
8772 (update_text_area): Ditto.
8773 (update_window): Record if display has been changed.
8774
8775 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8776
8777 * dispextern.h (struct redisplay_interface): Add
8778 fix_overlapping_area.
8779
8780 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8781
8782 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8783
8784 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8785 ascent and descent.
8786 (x_produce_stretch_glyph): Ditto.
8787 (x_produce_glyphs): Ditto.
8788
8789 * xdisp.c (init_iterator): Reset physical line height info
8790 after producing special glyphs.
8791 (display_toolbar_line): Set physical line height info.
8792 (compute_line_metrics): Ditto.
8793 (display_line): Ditto.
8794 (display_string): Ditto.
8795
8796 * term.c (produce_glyphs): Set iterator's physical height
8797 information.
8798
8799 * dispnew.c (blank_row): Compute glyph row's physical height.
8800 (row_equal_p): Take physical row heights into account.
8801 (direct_output_for_insert): Ditto.
8802 (update_text_area): Ditto.
8803
8804 * dispextern.h (struct glyph_row): Add phys_ascent and
8805 phys_height.
8806 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8807 max_phys_descent.
8808
88091999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8810
8811 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8812 Fswitch_to_buffer.
8813 (no_switch_buffer): New function.
8814 (Fswitch_to_buffer): Call them. Don't get confused
8815 by "same-window" buffers in a dedicated frame.
8816
8817 * window.c (display-buffer): Don't get confused
8818 by "same-window" buffers in a dedicated frame.
8819
88201999-08-04 Andreas Schwab <schwab@gnu.org>
8821
8822 * insdel.c (insert_from_string_1): Check gap size against number
8823 of outgoing bytes, not incoming bytes.
8824
88251999-08-03 Tom Breton <tob@world.std.com>
8826
8827 * lread.c (read1): Added circular reading code to #N=.
8828 (SUBSTITUTE): New macro.
8829 (seen_list): New variable.
8830 (substitute_object_in_subtree): New function.
8831 (substitute_object_recurse): New function.
8832 (substitute_in_interval): New function.
8833
88341999-08-02 Eli Zaretskii <eliz@gnu.org>
8835
8836 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8837
8838 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8839 noninteractive, for termcap frames as well.
8840
8841 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8842 frames.
8843
88441999-08-01 Richard Stallman <rms@gnu.org>
8845
8846 * fns.c (internal_equal): Correct overlay comparison.
8847
83c8f461 88481999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8849
427ec082 8850 * xfns.c (x_set_internal_border_width):
26901792
DL
8851 Call do_pending_window_change. Don't block input, don't call XFlush.
8852 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8853 (x_set_scroll_bar_width, x_set_font): Likewise.
8854
8855 * frame.c (Fset_frame_height): Call do_pending_window_change.
8856 (Fset_frame_width, Fset_frame_size): Likewise.
8857
8858 * xterm.c (x_set_window_size): When calling change_frame_size,
8859 specify 1 for DELAY.
8860
8861 * widget.c (EmacsFrameSetCharSize): Don't call
8862 do_pending_window_change here.
8863
88641999-07-30 Dave Love <fx@gnu.org>
8865
8866 * config.in: Add HAVE_STDLIB_H.
8867
88681999-07-30 Richard M. Stallman <rms@gnu.org>
8869
8870 * process.c (create_process): Detect failure of `pipe'.
8871
88721999-07-30 Keisuke Nishida <kei@psn.net>
8873
8874 * alloc.c (allocate_vectorlike): Add missing increment.
8875
8876 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8877
8878 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8879 before calling indirect_function.
8880
88811999-07-30 Eli Zaretskii <eliz@gnu.org>
8882
8883 * dispextern.h (load_color, lookup_derived_face): Declare
8884 prototypes.
8885
8886 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8887 it will be done later.
8888
8889 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8890 init_frame_faces if non-interactive.
8891 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8892 array with a call to msdos_stdcolor_name. The font name is now
8893 "ms-dos", consistent with realize_tty_face.
8894
8895 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8896 MSDOS frame.
8897
8898 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8899 x_set_toolbar_lines.
8900
8901 * xfaces.c (load_color): Remove static from definition and remove
8902 prototype.
8903 [MSDOS]: Add a DOS-specific version of load_color.
8904 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8905 (lookup_derived_face): New function.
8906 (realize_default_face): Support MSDOS frames.
8907 [MSDOS]: If fore/background colors are unspecified, inherit them
8908 from the frame.
8909 (realize_face): Support MSDOS frames.
8910 (realize_tty_face): Support MSDOS frames.
8911 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8912 load_color to try to find a suitable approximation. If the face
8913 is inverse-video, swap the foreground and background colors.
8914
8915 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8916 functions.
8917
8918 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8919
8920 * msdos.h: Remove redundant declarations (most of them are now in
8921 dispextern.h).
8922
8923 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8924 Use default frame colors if the face doesn't specify them; invert
8925 the colors if highlight is ON.
8926 (IT_write_glyphs): Rewritten for the new redisplay engine.
8927 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8928 how the hook is called by term.c.
8929 (IT_copy_glyphs): New function, copies an area of the display in
8930 video RAM.
8931 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8932 redisplay now calls it even if char_ins_del_ok is zero.
8933 (IT_set_frame_parameters): Prototype changed. Calls the new
8934 load_color. Puts the new fore/background colors into the default
8935 face on current frame.
8936 (IT_menu_display): Rewritten to handle the new struct glyph
8937 instead of a char array.
8938 (XMenuActivate): Call lookup_derived_face to create and use
8939 special faces for the pop-up and drop-down menus.
8940
89411999-07-29 Gerd Moellmann <gerd@gnu.org>
8942
8943 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8944 XawScrollbarSetThumb if thumb parameters haven't changed because
8945 that function apparently isn't optimized for this case.
8946
89471999-07-29 Eli Zaretskii <eliz@gnu.org>
8948
8949 * msdos.c (getdefdir): Don't return failure indication when
8950 _fixpath sets errno to ENOSYS.
8951
89521999-07-28 Gerd Moellmann <gerd@gnu.org>
8953
8954 * xdisp.c (string_char_and_length): New. Use it everywhere
8955 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8956
89571999-07-28 Kenichi Handa <handa@etl.go.jp>
8958
8959 * fns.c (count_combining): New function.
8960 (struct textprop_rec): New structure.
8961 (concat): Copy text properties correctly when byte combining
8962 occurs.
8963
89641999-07-28 Gerd Moellmann <gerd@gnu.org>
8965
8966 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8967 if display is mono.
8968 (x_draw_row_bitmaps): If face has stipple, don't switch
8969 to foreground color for clearing areas, and set the fill style.
8970
8971 * xfaces.c (load_face_colors): Load background color if setting
8972 stipple, too.
427ec082 8973 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8974 FillStippled.
8975
89761999-07-26 Ken'ichi Handa <handa@gnu.org>
8977
8978 * xterm.c (x_find_ccl_program): Add casting.
8979
8980 * w32fns.c (w32_find_ccl_program): Add casting.
8981
89821999-07-27 Gerd Moellmann <gerd@gnu.org>
8983
8984 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8985
8986 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8987 because this will try to access a nonexisting widget.
8988
89891999-07-26 Markus Rost <rost@gnu.org>
8990
427ec082 8991 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8992 (Fputhash): Ditto.
8993 (Fremhash): Ditto.
8994
89951999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8996
26901792
DL
8997 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8998 value to frame width and height.
8999
9000 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
9001 into account for full-width windows. Don't add scroll bar width
9002 to width of clip rect.
9003 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
9004 (x_set_glyph_string_background_width): Add 1 to background width.
9005 (x_draw_glyphs): Take internal border into account for full-width
9006 lines.
9007
90081999-07-26 Richard M. Stallman <rms@gnu.org>
9009
9010 * xfns.c (x_set_mouse_color): Always unload the old color.
9011 Don't allow nil as color value.
427ec082 9012 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
9013 Always unload the old color.
9014
9015 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
9016
90171999-07-26 Karl Heuer <kwzh@gnu.org>
9018
9019 * fns.c (Fy_or_n_p): Doc fix.
9020
90211999-07-26 Kenichi Handa <handa@etl.go.jp>
9022
9023 * ccl.h (setup_ccl_program): The type is changed to `int'.
9024
9025 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
9026 stored in the following CCL code. Adjusted for the change of
9027 Vccl_program_table.
9028 (resolve_symbol_ccl_program): Adjusted for the new style of
9029 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
9030 is resolving failed.
9031 (ccl_get_compiled_code): New function.
9032 (setup_ccl_program): Function type changed from `void' to `int'.
9033 Resolve symbols in CCL_PROG.
9034 (Fccl_program_p): New function.
9035 (Fccl_execute): Get compiled CCL code by just calling
9036 setup_ccl_program.
9037 (Fccl_execute_on_string): Likewise.
9038 (Fregister_ccl_program): Adjusted for the change of
9039 Vccl_program_table.
9040
9041 * coding.c (setup_coding_system): Get compiled CCL code by just
9042 calling setup_ccl_program.
9043
9044 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
9045 calling setup_ccl_program.
9046
9047 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
9048 calling setup_ccl_program.
9049
90501999-07-23 Gerd Moellmann <gerd@gnu.org>
9051
9052 * xfaces.c (frame_update_line_height): Just use the height of the
9053 frame's fontset or font, instead of taking face fonts into
9054 account.
9055
9056 * xdisp.c (get_next_display_element): Display DEL as `^?'.
9057
90581999-07-23 Richard M. Stallman <rms@gnu.org>
9059
9060 * window.c (Fsplit_window): For default size, round up for left window.
9061
90621999-07-21 Joe Ramey <ramey@ti.com>
9063
d7d0dac0 9064 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
9065 has returned -1 (lockfile exists but is not a symlink?).
9066
90671999-07-20 Gerd Moellmann <gerd@gnu.org>
9068
9069 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
9070 because of a change in cursor_gc made in 20.4.
9071
90721999-07-19 Gerd Moellmann <gerd@gnu.org>
9073
9074 * xterm.c (x_calc_absolute_position): Subtract menu bar height
9075 for YNegative, if using X toolkit.
9076
427ec082 9077 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
9078 from positions returned.
9079
90801999-07-17 Gerd Moellmann <gerd@gnu.org>
9081
9082 * xrdb.c (x_load_resources): Set double-click time defaults
9083 for Motif list boxes from double-click-time.
9084
9085 * fns.c (Vhash_table_tests): Remvoed.
9086 (Qhash_table_test): New.
9087 (syms_of_fns): Initialize Qhash_table_test.
9088 (Fmake_hash_table): Look up user-defined tests in symbol prop
9089 `hash-table-test'.
9090 (Fdefine_hash_table_test): Store test and hash function as
9091 symbol prop `hash-table-test'.
9092 (make_hash_table): Add parameters user_test and user_hash.
9093
9094 * window.c (set_window_buffer): Set window margins for tty
9095 frames, too.
9096 (Fset_window_margins): Ditto.
9097
9098 * term.c (append_glyph): Use glyph area of iterator instead of
9099 always TEXT_AREA.
9100
9101 * dispnew.c (update_frame_1): Add left margin width to cursor
9102 hpos.
9103 (direct_output_for_insert): Ditto.
9104 (direct_output_forward_char): Ditto.
9105
9106 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
9107
9108 * dispextern.h (struct glyph_matrix): Add top_line_p.
9109
91101999-07-16 Gerd Moellmann <gerd@gnu.org>
9111
9112 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9113 instead.
9114
9115 * fns.c (cmpfn_eq): Add hash code parameters.
9116 (cmpfn_eql): Ditto.
9117 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9118 (cmpfn_user_defined): Likewise.
9119
91201999-07-15 Gerd Moellmann <gerd@gnu.org>
9121
9122 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9123
9124 * fns.c (maybe_resize_hash_table): Correct computation of
9125 index vector size.
9126 (make_hash_table): Ditto.
9127 (Fmakehash): New.
9128
9129 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9130
9131 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9132 (survives_gc_p): Make it externally visible.
9133 (mark_object): Ditto.
9134
9135 * fns.c (remove_hash_entry): Removed.
9136 (sweep_weak_hash_tables): New.
9137
9138 * print.c (print): Print more information about hash tables.
9139
9140 * xfns.c (image_spec_hash): Removed.
9141 (lookup_image): Use sxhash instead of image_spec_hash.
9142 (image_spec_equal_p): Removed.
9143 (lookup_image): Use Fequal instead of image_spec_equal_p.
9144
91451999-07-14 Gerd Moellmann <gerd@gnu.org>
9146
9147 * lisp.h (P_): Moved to top of file.
9148
9149 * fns.c (make_hash_table): Set new members.
9150
9151 * alloc.c (mark_object): Mark hash table's user_hash_function.
9152 Mark index vector for weak hash tables.
9153
9154 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9155 user_hash_function, cmpfn, and hashfn.
9156
9157 * fns.c (build_hash): Removed.
9158 (hash_test): Removed.
9159 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9160 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9161
91621999-07-13 Gerd Moellmann <gerd@gnu.org>
9163
9164 * alloc.c (survives_gc_p): New.
9165
9166 * print.c (print): Add hash table handling.
9167
9168 * alloc.c (mark_object): Add code to mark hash tables.
9169
9170 * lisp.h (GC_HASH_TABLE_P): New.
9171
9172 * emacs.c (main): Call init_fns.
9173
9174 * fns.c (init_fns): New.
9175
9176 * fns.c: Add hash table implementation.
9177
9178 * lisp.h (PVEC_HASH_TABLE): New.
9179 (struct Lisp_Hash_Table): New.
9180 (XHASH_TABLE): New.
9181 (XSET_HASH_TABLE): New.
9182 (HASH_TABLE_P): New.
9183 (CHECK_HASH_TABLE): New.
9184 (DEFAULT_HASH_SIZE): New.
9185 (DEFAULT_REHASH_THRESHOLD): New.
9186 (DEFAULT_REHASH_SIZE): New.
9187
9188 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9189 (x_write_glyphs): Compute overwritten cursor using real start
9190 and end positions of display.
9191 (x_insert_glyphs): Ditto.
9192
91931999-07-10 Gerd Moellmann <gerd@gnu.org>
9194
9195 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9196
9197 * dispnew.c (blank_row): Add y-position as parameter. Compute
9198 visible height.
9199
9200 * xdisp.c (next_element_from_string): Give padding spaces
9201 a position of -1.
9202
427ec082 9203 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
9204 marginals areas on tty frames in a future version.
9205 (allocate_matrices_for_frame_redisplay): Ditto.
9206
9207 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9208 to zero if number of glyphs in the row is <= 1.
9209
92101999-07-09 Gerd Moellmann <gerd@gnu.org>
9211
9212 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9213 into account.
9214
9215 * xdisp.c (handle_display_prop): Don't reset area if handing
9216 a property from a string that came from a `display' property.
9217 (handle_single_display_prop): Don't handle recursive `display'
9218 properties.
9219 (handle_single_display_prop): Handle some display property
9220 forms for terminal frames.
9221 (Qimage): Moved here from xfns.c.
9222
9223 * dispextern.h (struct it): New field string_from_display_prop_p.
9224
9225 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9226 line.
9227
92281999-07-08 Gerd Moellmann <gerd@gnu.org>
9229
9230 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9231
9232 * window.c (set_window_buffer): Set window's vscroll to zero.
9233
9234 * xdisp.c (QCwhen): New.
9235 (display_prop_end): New.
9236 (handle_single_display_prop): Use it.
9237 (debug_method_add): Print buffer name if tracing.
9238 (try_window_reusing_current_matrix): Compute visible height
9239 of reused rows. Fix cursor position calculation in case of
9240 top-line.
9241
9242 * dispextern.h (struct redisplay_interface): Add parameter
9243 cursor_on_p to update_window_end_hook.
9244
9245 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9246
92471999-07-07 Gerd Moellmann <gerd@gnu.org>
9248
427ec082 9249 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
9250 doesn't become negative when decrementing it.
9251
9252 * eval.c (Fsignal): Reset redisplaying_p to zero.
9253
9254 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9255 for window update.
9256 (try_window_id): Ditto.
9257
9258 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9259 (x_scroll_run): Ditto.
9260 (any_help_event_p): New.
9261 (x_initialize): Set it to zero.
9262 (XTread_socket): Clear help echo only if any_help_event_p.
9263
9264 * xdisp.c (init_iterator): Set top_line_p.
9265 (start_display): Use correct initial y if top-line is present.
9266 (make_cursor_line_fully_visible): Bug fixes for top-line.
9267 (try_scrolling): Ditto.
9268 (try_window_reusing_current_matrix): Ditto.
9269
9270 * dispextern.h (struct it): Add top_line_p.
9271
9272 * dispnew.c (shift_glyph_matrix): Move some computations out
9273 of the loop.
9274
427ec082 9275 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9276 XFLOATINT.
9277
92781999-07-06 Gerd Moellmann <gerd@gnu.org>
9279
9280 * dispnew.c (update_frame_1): When setting cursor in echo area,
9281 skip only over padding spaces at the end.
9282
9283 * xfaces.c (realize_tty_face): Set face's font_name field to
9284 "tty".
9285
9286 * term.c (update_end): Turn cursor on only if selected window's
9287 cursor_off_p flag is not set.
9288
92891999-07-05 Gerd Moellmann <gerd@gnu.org>
9290
9291 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9292 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9293 (TS_cursor_invisible): New.
9294 (term_init): Initialize TS_cursor_invisible.
9295 (tty_hide_cursor): New.
9296 (tty_show_cursor): New.
9297 (update_end): Show tty cursor.
9298 (update_begin): Hide tty cursor to prevent cursor flickering
9299 during redisplays triggered by timers (stealth fontification).
9300
9301 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9302
9303 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9304 in scroll bars.
9305 (x_handle_toolbar_click): Set modifier bits.
9306
93071999-07-04 Gerd Moellmann <gerd@gnu.org>
9308
9309 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9310 instead of a pointer to a volatile input_event.
427ec082 9311 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9312 declaration of local variable `sp'.
9313 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9314 to kbd_fetch_ptr.
9315
93161999-07-03 Gerd Moellmann <gerd@gnu.org>
9317
9318 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9319 only if buffer is modified. Return quickly if changes are
9320 above window start.
9321
93221999-07-02 Gerd Moellmann <gerd@gnu.org>
9323
9324 * dispextern.h (HSCROLL_WINDOWS): Removed.
9325
9326 * xdisp.c (mark_window_display_accurate): Don't set
9327 w->region_showing.
9328 (redisplay_internal): Don't call redraw_garbaged_frames.
9329
93301999-07-01 Gerd Moellmann <gerd@gnu.org>
9331
9332 * xdisp.c (echo_area_display): Don't display truncation marks
9333 for messages because 20.4 doesn't do it either.
9334 (redisplay_window): Case same window start. Instead of giving
9335 up when cursor is partially visible, make it fully visible.
9336 (mark_window_display_accurate): Some cleanup. Record window's
9337 last cursor information.
9338 (debug_method_add): Improved.
9339 (redisplay_internal): Record last cursor info only if not
9340 consider_all_windows_p.
9341
9342 * dispnew.c (update_window): Update top line after scrolling.
9343 (blank_row): Renamed from make_empty_enabled_row.
9344 (increment_glyph_row_buffer_positions): Increment positions
9345 in buffers, only.
9346
9347 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9348 string.
9349
93501999-06-30 Gerd Moellmann <gerd@gnu.org>
9351
9352 * dispnew.c (update_window): Check that updated row is visible.
9353
9354 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9355 top of window differently.
9356
9357 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9358 if region is showing.
9359
9360 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9361 avoiding matrix reallocation. Set window_vscroll in matrix.
9362
9363 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9364
26901792
DL
9365 * xdisp.c (debug_method_add): New.
9366 (debug_redisplay_method): Removed.
9367 (try_window_reusing_current_matrix): Handle case where old
9368 window start is the same as new window start.
9369
9370 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9371 an array instead of a pointer.
9372
26901792
DL
9373 * xfns.c (Fx_show_tip): Undo previous change.
9374
9375 * xterm.c (x_append_glyph): Clear glyph->u.val.
9376
9377 * dispextern.h (struct glyph): Increase size of face_id bit-field
9378 for CHAR_GLYPH to 12.
9379
93801999-06-29 Gerd Moellmann <gerd@gnu.org>
9381
9382 * xfaces.c (x_charset_registry): Make it externally visible.
9383
93841999-06-28 Gerd Moellmann <gerd@gnu.org>
9385
427ec082 9386 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9387 instead of WINDOW_WANTS_MODELINE_P.
9388
9389 * xterm.c (clear_mouse_face): Make externally visible.
9390
9391 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9392
9393 * xterm.c (expose_line): Handle exposure of top-lines.
9394
9395 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9396 if mouse_face_mouse_frame is null.
9397
9398 * xdisp.c (redisplay_window): If window is echo_area_window,
9399 and update_mode_line is set, update menubar and toolbar.
9400
9401 * dispnew.c (space_glyph): Set its charpos to -1.
9402 (update_frame_1): Ignore trailing padding spaces.
9403
9404 * xdisp.c (next_element_from_c_string): Set position of padding
9405 glyphs to -1.
9406
94071999-06-27 Gerd Moellmann <gerd@gnu.org>
9408
9409 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9410 XQueryColor.
9411
9412 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9413 (set_cursor_from_row): Skip over glyphs having a null object at
9414 the start of rows.
9415 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9416 glyphs.
9417 (handle_invisible_prop): Compute next change only when needed.
9418 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9419 line.
9420
94211999-06-26 Gerd Moellmann <gerd@gnu.org>
9422
9423 * xrdb.c (x_load_resources): Don't set resource for double-click
9424 time.
9425
9426 * xdisp.c (try_window_id): Return quickly if all changes are
9427 below the window's current matrix end.
9428
9429 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9430 parameter.
9431
9432 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9433 in desired not in current matrix.
9434 (try_window_reusing_current_matrix): Rotate matrices starting
9435 at start_vpos instead of 0.
9436
9437 * xterm.c (expose_window): Use window_text_bottom_y.
9438 (fast_find_position): Ditto.
9439
9440 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9441 (try_window_reusing_current_matrix): Ditto.
9442 (get_last_unchanged_at_beg_row): Ditto.
9443 (init_iterator): Ditto.
9444
9445 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9446 more row.
9447 (check_matrix_invariants): Use window_text_bottom_y.
9448 (update_window): Ditto.
9449 (scrolling_window): Ditto.
9450
9451 * xdisp.c (window_text_bottom_y): New.
9452
94531999-06-25 Gerd Moellmann <gerd@gnu.org>
9454
9455 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9456 clearing mouse face.
9457 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9458 event.xcrossing.focus is not set, and focus is in the menu bar,
9459 set focus frame as if event.xcrossing.focus were set.
9460
94611999-06-24 Gerd Moellmann <gerd@gnu.org>
9462
9463 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9464 * keyboard.c (make_lispy_movement): Ditto.
9465
9466 * window.c (coordinates_in_window): Return 4 if on top line.
9467 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9468
9469 * xdisp.c (window_box_height): Subtract top line height.
9470 (window_box): Add top line height to top y position if top line
9471 exists.
9472 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9473 the top line row of the window. Set initial y-position to
9474 window's top line height plus delta.
9475 (start_display): Choose start glyph row depending on whether
9476 window has a top line.
9477 (try_scrolling): Take top line height into account for aggressive
9478 scrolling.
9479 (compute_window_start_on_continuation_line): Take top line into
9480 account.
427ec082 9481 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9482 trigger a new redisplay.
9483 (try_window_reusing_current_matrix): Take top line into account.
9484 (find_last_row_displaying_text): Ditto.
9485 (get_last_unchanged_at_beg_row): DItto.
9486 (try_window_id): Ditto.
9487 (compute_line_metrics): Ditto.
9488
9489 * dispnew.c (shift_glyph_matrix): Compute visible row height
9490 taking top line of window into account.
9491 (update_window): Update top line. If scrolling_window detects
9492 that all rows are equal, only set cursor.
9493 (update_window_line): Call after_update_window_line_hook if
9494 mode_line_p flag of rows has changed.
9495 (scrolling_window): Add parameter top_line_p. Return -1 if
9496 all rows are equal.
9497 (mode_line_string): Add parameter mode_line_p. Handle strings
9498 in top lines.
9499
9500 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9501 (MATRIX_FIRST_TEXT_ROW): New.
9502 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9503 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9504 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9505 (MATRIX_TOP_LINE_HEIGHT): New.
9506 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9507 (CURRENT_TOP_LINE_HEIGHT): New.
9508 (DESIRED_TOP_LINE_HEIGHT): New.
9509 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9510 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9511 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9512 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9513
9514 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9515 lines.
9516 (x_draw_row_bitmaps): Take top line into account when clearing
9517 bitmap area.
9518 (x_estimate_mode_line_height): Replacement for
9519 x_frame_mode_line_height.
9520 (x_get_glyph_string_clip_rect): Take top line into account.
9521 (x_clear_end_of_line): Ditto.
9522 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9523 top lines.
9524 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9525 (x_erase_phys_cursor): Take top line into account.
9526
9527 * xdisp.c (window_box_height): Subtract top line height if
9528 window wants a top line.
9529 (display_mode_lines): New.
9530 (redisplay_window): Call it.
9531 (display_mode_line): Add parameters face_id and format.
9532
9533 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9534 (MATRIX_TOP_LINE_HEIGHT): New.
9535
9536 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9537
9538 * term.c (estimate_mode_line_height): Renamed from
9539 frame_mode_line_height. Add parameter face_id.
9540 (estimate_mode_line_height_hook): Renamed from
9541 frame_mode_line_height_hook.
9542 (produce_special_glyphs_hook): Removed.
9543 (produce_glyphs_hook): Removed.
9544
95451999-06-23 Gerd Moellmann <gerd@gnu.org>
9546
9547 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9548 (struct glyph_row): Add mode_line_p.
9549
9550 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9551 (Qtop_line): New.
9552 (syms_of_xfaces): Initialize Qtop_line.
9553
9554 * dispextern.h (TOP_LINE_FACE_ID): New.
9555
9556 * buffer.c (init_buffer_once): Set default for
9557 top_line_format to nil.
9558 (init_buffer_once): Init top_line_format.
9559 (default-top-line-format): New.
9560 (top-line-format): New buffer-local variable.
9561
9562 * buffer.h: Add top_line_format.
9563
9564 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9565
95661999-06-17 Dave Love <fx@gnu.org>
9567
9568 * xfns.c: Move the PNG section before the JPEG one to avoid
9569 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9570
26901792
DL
95711999-06-17 Gerd Moellmann <gerd@gnu.org>
9572
9573 * xfns.c (x_kill_gs_process): Don't free colors.
9574
95751999-06-17 Dave Love <fx@gnu.org>
9576
9577 * s/gnu-linux.h: Zap spurious ~.
9578
95791999-06-16 Gerd Moellmann <gerd@gnu.org>
9580
9581 * xfns.c (gif_load): Improve multi-image support.
9582
95831999-06-15 Gerd Moellmann <gerd@gnu.org>
9584
9585 * xfns.c (gif_load): Support multi-image files.
9586
9587 * Makefile.in (LIBGIF): Use libungif.
9588
9589 * configure.in (HAVE_GIF): Use libungif instead of libgif
9590 because the former doesn't contain patented compression code.
9591
9592 * xdisp.c (compute_window_start_on_continuation_line): Don't
9593 do it if line start is too far away from window start.
9594
95951999-06-14 Gerd Moellmann <gerd@gnu.org>
9596
9597 * buffer.c (init_buffer_once): Set buffer_local_flags for
9598 scroll_*_aggressively.
9599 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9600 (init_buffer_once): Set defaults for these variables.
9601 (syms_of_buffer): Add default-scroll-*-aggressively.
9602
9603 * buffer.h (scroll_up_aggressively): New.
9604 (scroll_down_aggressively): New.
9605
9606 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9607 a static PNG library.
9608
9609 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9610 in case it's a static library.
9611
9612 * Makefile.in (ctagsfiles): Split so that files starting
9613 with an `x' are found before files starting with `w32'.
9614 (ctagsfiles1): New.
9615 (ctagsfiles2): New.
9616 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9617
9618 * xdisp.c (compute_window_start_on_continuation_line): New.
9619 (redisplay_window): Use it.
9620 (INFINITY): New.
9621 (reseat_to_string): Use it.
9622 (hscroll_window_tree): Ditto.
9623 (compute_window_start_on_continuation_line): Ditto.
9624 (redisplay_window): Don't force display with a new window start.
9625
96261999-06-06 Gerd Moellmann <gerd@gnu.org>
9627
9628 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9629 if widget not present.
9630
9631 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9632
96331999-06-04 Gerd Moellmann <gerd@gnu.org>
9634
9635 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9636 value of realize_basic_faces.
9637 (load_face_font_or_fontset): Store full font name in face.
9638 (realize_default_face): Use full font name.
9639
26901792
DL
9640 * xterm.c (x_produce_glyphs): Set member char_to_display.
9641 (x_append_glyph): Store char_to_display in glyphs.
9642
9643 * dispextern.h (struct it): Add char_to_display.
9644
9645 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9646 if faces haven't been initialized.
9647 (Fx_create_frame): Call face-set-after-frame-default after
9648 faces have been initialized, and widget has been created.
9649
9650 * puresize.h (BASE_PURESIZE): Increased.
9651
96521999-06-01 Gerd Moellmann <gerd@gnu.org>
9653
9654 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9655 (Finternal_set_lisp_face_attribute): If frame is t when
9656 :font attribute is set, use the selected frame.
9657 (clear_face_cache): Add parameter clear_fonts_p.
9658 (Fclear_face_cache): Add optional parameter thorougly.
9659
9660 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9661 in table.
9662 (Fclear_face_cache): New.
9663 (choose_face_fontset_font): If fontset doesn't contain font
9664 pattern for the given charset, use CHARSET_ASCII.
9665 (Finternal_set_lisp_face_attribute): Fix handling of nil
9666 stipple attribute.
9667 (Finternal_set_lisp_face_attribute): Fix handling of changing
9668 font-related face attributes of the default face.
9669 (set_lface_from_font_name): Set only attributes that aren't
9670 specified.
9671
96721999-05-31 Gerd Moellmann <gerd@gnu.org>
9673
9674 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9675 font support.
9676 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9677 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9678 scalable fonts depending on the setting of SCALABLE_FONTS.
9679 (first_font_matching): List more than one font to find the
9680 first non-scalable matching font.
9681 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9682 depending on SCALABLE_FONTS.
9683 (better_font_p): New parameter compare_pt_p. If zero, don't
9684 compare point sizes of fonts.
9685 (exact_face_match_p) [SCALABLE_FONTS]: New.
9686 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9687 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9688 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9689 (syms_of_xfaces): Add scalable-fonts-allowed.
9690
96911999-05-26 Gerd Moellmann <gerd@gnu.org>
9692
9693 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9694 mask only if image contains simple transparency information.
9695 Otherwise, combine image with frame background color.
9696
9697 * configure.in (--with-png, HAVE_PNG): New.
9698
9699 * config.in (HAVE_PNG): New.
9700
9701 * Makefile.in: Add PNG library.
9702
9703 * xfns.c: Add PNG support.
9704
97051999-05-25 Gerd Moellmann <gerd@gnu.org>
9706
9707 * xdisp.c (init_xdisp): Initialize echo_area_message and
9708 previous_echo_area_message to nil.
9709
9710 * keyboard.c (read_char): Rename local variable echo_area_message
9711 because it shadows the global one.
9712
97131999-05-05 Gerd Moellmann <gerd@gnu.org>
9714
9715 * xterm.c (note_mode_line_highlight): Restructured.
9716
9717 * window.c (coordinates_in_window): Handle windows that don't have
9718 a mode line because their buffer's mode-line-format is nil.
9719 Recognize the mode line under x positions that correspond to
9720 flags areas and left scroll bar.
9721
97221999-05-02 Dave Love <fx@gnu.org>
9723
9724 * xterm.c (note_mouse_highlight): Separate help-echo processing
9725 from check on mouse-face so that it works generally.
9726
97271999-04-21 Gerd Moellmann <gerd@gnu.org>
9728
9729 * sound.c (Fplay_sound): Run hook play-sound-hook.
9730 (Qplay_sound_hook): New.
9731
97321999-04-20 Gerd Moellmann <gerd@gnu.org>
9733
9734 * xdisp.c (update_echo_area): Handle echo_area_message.
9735
97361999-04-19 Gerd Moellmann <gerd@gnu.org>
9737
9738 * editfns.c (Fmessage): Use message3.
9739
9740 * print.c (printchar): Set echo_area_message to nil.
9741 (strout): Ditto.
9742
9743 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9744 (Fminibuffer_completion_help): Ditto.
9745
9746 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9747 (command_loop_1): Test echo_areA_message.
9748 (read_char): Ditto.
9749 (record_menu_key): Set echo_area_message to nil.
9750 (Fexecute_extended_command): Test echo_area_message.
9751 (Fexecute_extended_command): Handle echo_area_message.
9752
9753 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9754 is set.
9755
9756 * editfns.c (Fcurrent_message): If echo_area_message is set,
9757 return a substring of that string.
9758
9759 * dispnew.c (direct_output_for_insert): Test echo_area_message
9760 in addition to echo_area_glyphs.
9761 (set_window_cursor_after_update): Ditto.
9762 (update_frame_1): Ditto.
9763
9764 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9765 old Lisp message string.
9766
9767 * xdisp.c (echo_area_message): New.
9768 (previous_echo_area_message): New.
9769 (syms_of_xdisp): Initialize and staticpro new variables.
9770 (echo_area_display): Display echo_area_message if set.
9771 (message2_nolog): Set echo_area_message and
9772 previous_echo_area_message.
9773 (echo_area_display): Set previous_echo_area_message.
9774 (redisplay_internal): Display echo area if echo_area_message
9775 or previous_echo_area_message are set.
9776 (redisplay_preserve_echo_area): Test/set echo_area_message and
9777 previous_echo_area_message.
9778 (redisplay_window): Test echo_area_message.
9779 (message3_nolog): New.
9780 (message3): New.
9781
9782 * editfns.c (Fformat): Add text properties to the result string
9783 from properties of the format string and properties of string
9784 arguments.
9785
9786 * textprop.c (text_property_list): New.
9787 (add_text_properties_from_list): New.
9788 (extend_property_ranges): New.
9789
97901999-03-29 Gerd Moellmann <gerd@gnu.org>
9791
9792 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9793 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9794 Use these symbols for the box face attribute instead of the
9795 removed ones.
9796
97971999-03-12 Gerd Moellmann <gerd@gnu.org>
9798
9799 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9800 Correct wrong test for slant.
9801
98021999-03-10 Gerd Moellmann <gerd@gnu.org>
9803
9804 * xfaces.c: Use `unspecified' for unspecified face attributes,
9805 use t and nil for on/off.
9806
98071999-03-06 Gerd Moellmann <gerd@gnu.org>
9808
9809 * buffer.c (syms_of_buffer): Extend doc string of
9810 mode-line-format.
9811
9812 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9813 (first_font_matching): New.
9814 (set_lface_from_font_name): Use it if font name is a pattern.
9815 (font_field_wildcard_p): Removed.
9816
9817 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9818 Recompute visible height of rows.
9819
9820 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9821 Don't accept non-strings for help-echo from overlays.
9822
98231999-03-04 Dave Love <fx@gnu.org>
9824
9825 * xterm.c (note_mouse_highlight): Check overlays for help-text
9826 property.
9827 (XTread_socket): Fix compiler warning.
427ec082 9828
26901792
DL
98291999-03-05 Gerd Moellmann <gerd@gnu.org>
9830
427ec082 9831 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9832 overlay to 10. Call overlays_at so that it doesn't try to
9833 extend the vector.
9834
9835 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9836 height.
9837
9838 * dispnew.c (row_equal_p): Compare visible row height, only.
9839 (update_text_area): Draw whole line if visible heights of
9840 rows differ.
9841 (update_window_line): Call after_update_window_line_hook
9842 if visible row height has changed.
9843
9844 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9845 (struct glyph_row): New member visible_height.
9846
9847 * xfaces.c (font_field_wildcard_p): New.
9848 (set_lface_from_font_name): Remove parameter force_p. Accept
9849 font names containing wildcards.
9850
98511999-03-04 Gerd Moellmann <gerd@gnu.org>
9852
9853 * xterm.c (x_after_update_window_line): Clear internal border
9854 when windows_or_buffers_changed.
9855
9856 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9857 buffer has a nil mode_line_format.
9858
98591999-03-03 Gerd Moellmann <gerd@gnu.org>
9860
9861 * xterm.c (x_setup_relief_colors): Use either background color
9862 or specified color.
9863
9864 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9865
9866 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9867
9868 * xterm.c (x_draw_box_rect): New.
9869 (x_draw_glyph_string_box): Renamed from
9870 x_draw_glyph_string_relief. Call x_draw_box_rect.
9871
9872 * xfns.c (QCrelief): New.
9873 (syms_of_xfns): Initialize it.
9874
9875 * dispextern.h (struct glyph): Rename left_shadow_p to
9876 left_box_line_p, right_shadow_p to right_box_line_p.
9877 (MAX_RELIEF_THICKNESS): Removed.
9878 (struct it): Rename members having `relief' in their names
9879 to contain `box' instead.
9880
9881 * xfaces.c (realize_x_face): Handle new box attribute values.
9882 (QCrelief, Qbox): Removed.
9883 (QCshadow, QCcolor, Qraised, Qsunken): New.
9884 (syms_of_xfaces): Initialize new symbols.
9885
98861999-03-02 Gerd Moellmann <gerd@gnu.org>
9887
9888 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9889
9890 * xfaces.c (LFACE_RELIEF): Removed.
9891 (merge_face_vector_with_property): Remove handling of `:relief'.
9892 (Finternal_set_lisp_face_attribute): Ditto.
9893 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9894 (Finternal_get_lisp_face_attribute): Ditto.
9895 (realize_default_face): Ditto.
9896 (lface_hash): Don't compute hash from relief.
9897
9898 * dispextern.h (struct face): Replace member `relief' by
9899 `box_line_width'. Add member `box'.
9900 (face_box_type): New.
9901
9902 * xterm.c (x_produce_glyphs): If face has overline, add overline
9903 thickness + 1 to ascent.
9904
99051999-03-01 Gerd Moellmann <gerd@gnu.org>
9906
9907 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9908 strike-through, and boxes.
9909 (x_draw_glyph_string_underline): Removed.
9910
9911 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9912 (Qoverline, Qstrike_through, Qbox): New.
9913 (syms_of_xfaces): Define these symbols.
9914 (check_lface_attrs): Add checks for overline, strike-through,
9915 and box.
9916 (Finternal_set_lisp_face_attribute): Set new attributes.
9917 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9918 (load_color): Handle new attributes.
9919 (realize_x_face): Ditto.
9920 (merge_face_vector_with_property): Ditto.
9921 (free_face_colors): Ditto.
9922 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9923 (Finternal_get_lisp_face_attribute): Ditto.
9924 (Finternal_lisp_face_attribute_values): Ditto.
9925
9926 * dispextern.h (lface_attribute_index): Add enumerators for
9927 overstrike, strike-through, and box.
9928 (struct face): Add members for overline, strike-through, and
9929 box.
9930
99311999-02-17 Dave Love <fx@gnu.org>
9932
9933 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9934 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9935 files.
9936
99371999-02-16 Gerd Moellmann <gerd@gnu.org>
9938
9939 * keyboard.c (toolbar_items): Call access_keymap with third
9940 parameter 1, so that we don't get inherited toolbar item
9941 definitions.
9942
9943 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9944 the window end vpos when in empty first line of window.
9945
99461999-02-15 Gerd Moellmann <gerd@gnu.org>
9947
9948 * xfaces.c (set_font_frame_param): New.
9949 (Finternal_set_lisp_face_attribute): Call it.
9950
9951Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9952
9953 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9954 Accept specifications of color for underline.
9955
99561999-02-13 Gerd Moellmann <gerd@gnu.org>
9957
9958 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9959 `frame' is t, operate on face defaults for new frames. If it
9960 is nil, operate on the selected frame.
9961
99621999-02-12 Gerd Moellmann <gerd@gnu.org>
9963
9964 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9965 (update_window): Put the call to check_matrix_invariants in #if 0.
9966
9967Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9968
9969 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9970 Remove definition of UNDERLINE_COLOR.
9971
9972Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9973
9974 * xfaces.c (free_face_colors): Free the color for underline.
9975
9976 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9977 to the GC.
9978
9979Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9980
9981 * dispextern.h (UNDERLINE_COLOR): Defined.
9982 (struct face): Added two new members.
9983 underline_color, underline_defaulted_p.
9984
427ec082 9985 * xfaces.c (merge_face_vector_with_property):
26901792 9986 (check_lface_attrs): Accept the string value for underline.
427ec082 9987 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9988
9989 * xfaces.c (load_color): Change the last argument type to enum
9990 lface_attribute_index from int. And addec code for underling coloring.
9991 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9992
26901792
DL
99931999-02-12 Gerd Moellmann <gerd@gnu.org>
9994
9995 * xfns.c (Fx_image_header): Removed.
9996
99971999-02-07 Gerd Moellmann <gerd@gnu.org>
9998
9999 * xterm.c: Don't include <bitmaps/gray>.
10000 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
10001
10002 * xfns.c (Fx_image_header): Add missing `\n\'.
10003 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
10004
100051999-02-01 Gerd Moellmann <gerd@gnu.org>
10006
10007 * xterm.c (x_scroll_bar_create): Set background pixel from
10008 specified scroll bar color.
10009 (x_scroll_bar_set_handle): Use scroll bar foreground color.
10010
10011 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
10012 (x_set_scroll_bar_background): Ditto.
10013
10014 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
10015
10016 * xfns.c (x_default_scroll_bar_color_parameter): New.
10017 (Fx_create_frame): Call it.
10018
100191999-01-31 Gerd Moellmann <gerd@gnu.org>
10020
10021 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 10022 values in x_output structure.
26901792
DL
10023 (Qscroll_bar_foreground, Qscroll_bar_background): New.
10024 (syms_of_xfns): Initialize these symbols.
10025
10026 * xterm.h (struct x_output): Add scroll bar pixel colors.
10027
10028 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
10029 (x_set_scroll_bar_foreground): New.
10030 (x_set_scroll_bar_background): New.
10031
26901792
DL
100321999-01-12 Gerd Moellmann <gerd@gnu.org>
10033
10034 * xdisp.c (handle_single_display_prop): New.
10035 (handle_display_prop): Call it.
10036 (handle_raise_prop): Removed.
10037 (handle_height_prop): Removed.
10038 (handle_space_width_prop): Removed.
10039 (handle_face_prop): Remove handling of raised text.
10040 (handle_display_prop): Do it here.
10041
10042 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
10043 (RAISE_PROP_IDX): Removed.
10044 (HEIGHT_PROP_IDX): Removed.
10045 (SPACE_WIDTH_PROP_IDX): Removed.
10046
10047 * xdisp.c (Qdisplay): Replaces Qglyph.
10048 (handle_display_prop): Formerly handle_glyph_prop.
10049
100501999-01-11 Gerd Moellmann <gerd@gnu.org>
10051
10052 * xdisp.c (reseat_to_string): Set position in display vector to -1.
10053 (handle_stop): Set position in display vector to -1. Don't
10054 check overlay strings when set up to deliver characters from a
10055 display vector.
10056 (set_iterator_to_next): At the end of a run of characters from a
10057 display vector, check whether the display vector display replaces
10058 the display of a character.
10059
100601999-01-05 Gerd Moellmann <gerd@gnu.org>
10061
10062 * xfaces.c (init_frame_faces): Don't realize faces if frame's
10063 X window hasn't been created yet.
10064
100651998-12-06 Gerd Moellmann <gerd@gnu.org>
10066
10067 * sound.c: New.
10068
100691998-12-04 Gerd Moellmann <gerd@gnu.org>
10070
10071 * config.in (HAVE_SOUND): New.
10072
10073 * emacs.c (main): Call syms_of_sound and init_sound.
10074
10075 * Makefile.in (obj): Add sound.o.
10076
10077 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
10078
10079 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
10080 (HAVE_SYS_SOUNDCARD_H): New.
10081
100821998-12-03 Gerd Moellmann <gerd@gnu.org>
10083
10084 * buffer.h (struct buffer): indicate_empty_lines renamed from
10085 indicate_zv_lines.
10086
10087 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
10088 (default-indicate-zv-lines): Likewise.
10089
10090 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
10091 to indicate_empty_line_p.
10092
10093 * xdisp.c (reseat_at_next_visible_line_start): Reset method
10094 to next_element_from_buffer.
10095
10096 * frame.c (make_frame): Set n_current_toolbar_items to 0.
10097
10098 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
10099 and `N-'.
10100
10101 * xfns.c (xbm_scan): New.
10102 (xbm_read_hexint): Removed.
10103 (xbm_read_bitmap_file_data): Use xbm_scan.
10104
10105 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
10106
101071998-12-02 Gerd Moellmann <gerd@gnu.org>
10108
10109 * xfns.c (xbm_read_hexint): New.
10110 (xbm_read_bitmap_file_data): New.
10111 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10112 instead of XReadBitmapFileData.
10113
10114 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10115
10116 * xfaces.c (face_with_height): New.
10117
10118 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10119 (eval_form): Renamed from eval_mode_element.
10120 (handle_face_prop): Use it.
10121 (Qheight): Replaces Qsmaller.
10122 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 10123 (handle_face_prop): If iterator's font_height is not an
26901792
DL
10124 integer, evaluate it to get the font height to use.
10125
10126 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10127 (struct it): Use `font_height' instead of `smaller'.
10128
101291998-12-01 Gerd Moellmann <gerd@gnu.org>
10130
10131 * xdisp.c (reseat_1): New.
10132 (reseat): Call it.
10133 (move_it_vertically_backward): Ditto.
10134 (redisplay_window): Don't abort when cursor not found in recenter.
10135
101361998-11-30 Gerd Moellmann <gerd@gnu.org>
10137
10138 * xdisp.c (reseat_at_next_visible_line_start): When not
10139 currently delivering display elements from the current buffer,
10140 restore buffer position first.
10141 (init_from_display_pos): Don't set IT's position from the
10142 position passed to this function.
10143
101441998-11-28 Gerd Moellmann <gerd@gnu.org>
10145
10146 * config.in (PROTO): Removed.
10147
10148 * xterm.h: Change PROTO to P_.
10149
101501998-11-26 Gerd Moellmann <gerd@gnu.org>
10151
10152 * xterm.c (take_vertical_position_into_account): New.
10153 (x_produce_image_glyph): Call it.
10154 (x_produce_stretch_glyph): Ditto.
10155 (x_produce_glyphs): Ditto.
10156 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10157 (x_fill_composite_glyph_string): Ditto.
10158 (x_fill_image_glyph_string): Ditto.
10159 (x_fill_stretch_glyph_string): Ditto.
10160
10161 * xdisp.c (display_line): Always compute row height from
10162 max_ascent and max_descent.
10163
10164 * dispextern.h (struct glyph): Add voffset.
10165 (struct it): Replace height by descent, max_height by max_descent.
10166
10167 * xterm.c (x_append_glyph): Set voffset
10168 (x_append_stretch_glyph): Ditto.
10169 (x_produce_image_glyph): Ditto.
10170 (x_produce_glyphs): Take voffset into account.
10171 (x_produce_image_glyph): Ditto.
10172 (x_produce_stretch_glyph): Ditto.
10173
10174 * dispextern.h (struct it): Add voffset.
10175 * xdisp.c (push_it): Save voffset.
10176 (pop_it): Restore it.
10177
10178 * xdisp.c (it_props): Add entry for `raise'.
10179 (handle_raise_prop): New.
10180
10181 * dispextern.h (RAISE_PROP_IDX): New.
10182
10183 * xdisp.c (Qraise): New.
10184 (syms_of_xdisp): Define Qraised.
10185
10186 * xterm.c (x_scroll_bar_move): Clear to the left and right
10187 of toolkit scroll bars differently.
10188 (x_scroll_bar_move): Removed.
10189 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10190
10191 * dispextern.h: Make it compilable --with-x=no.
10192 * alloc.c: Ditto.
10193 * emacs.c: Ditto.
10194 * dispnew.c: Ditto.
10195 * keyboard.c: Ditto.
10196 * term.c: Ditto.
10197 * xdisp.c: Ditto.
10198 * xfaces.c: Ditto.
10199 * xfns.c: Ditto.
10200 * xmenu.c: Ditto.
10201
102021998-11-25 Gerd Moellmann <gerd@gnu.org>
10203
10204 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10205
102061998-11-24 Gerd Moellmann <gerd@gnu.org>
10207
10208 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10209 update slider size, only.
10210 (xm_scroll_callback): Set dragging member of the scroll bar.
10211 (xt_action_hook): Reset last_scroll_bar_part.
10212 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10213
26901792
DL
10214 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10215 window on newly created frames that don't have one.
10216
102171998-11-23 Gerd Moellmann <gerd@gnu.org>
10218
10219 * xdisp.c (restore_overlay_strings): Removed.
10220 (restore_dpvec): Removed.
10221 (init_from_display_pos): Inline both functions above.
10222
10223 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10224 (parse_image_spec): Handle it.
10225 (xbm_format): Use it.
10226 (xpm_format): Ditto.
10227 (pbm_format): Ditto.
10228 (jpeg_format): Ditto.
10229 (tiff_format): Ditto.
10230 (gif_format): Ditto.
10231 (gs_format): Ditto.
10232
10233 * xdisp.c (set_window_cursor): Removed.
10234 (redisplay_internal): Case cursor motion in cursor line of
10235 selected window; use set_cursor_from_row.
10236
102371998-11-22 Gerd Moellmann <gerd@gnu.org>
10238
10239 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10240 into account.
10241
102421998-11-21 Gerd Moellmann <gerd@gnu.org>
10243
10244 * xterm.c (expose_frame): Redraw menu bar window.
10245
10246 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10247 in menu item.
10248
10249 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10250 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10251
10252 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10253 to determine vertical_scroll_bar_extra.
10254 (EmacsFrameSetCharSize): Ditto.
10255 * xfns.c (x_figure_window_size): Ditto.
10256
10257 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10258 (x_draw_bitmap): Ditto.
10259
10260 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10261 * xfaces.c (realize_basic_faces): Realize it.
10262
102631998-11-20 Gerd Moellmann <gerd@gnu.org>
10264
10265 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10266 under LessTif Use the widget of the frame as parent for the
26901792
DL
10267 menu, again.
10268
102691998-11-19 Gerd Moellmann <gerd@gnu.org>
10270
10271 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10272 When EnterNotify, don't generate a mouse movement event if
10273 notification is from a busy-cursor child window.
10274
10275 * xterm.h (struct x_output): Add busy_window, remove cursor.
10276
10277 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10278 Use a transparent window to display the busy-cursor.
10279 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10280
102811998-11-17 Gerd Moellmann <gerd@gnu.org>
10282
10283 * xdisp.c (check_window_end): New, for debugging.
10284 (CHECK_WINDOW_END): New.
10285 (try_window_id): Use it.
10286
10287 * xterm.c (process_expose_from_menu): Return int.
10288
10289 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10290 TOOLBAR_EVENT events in last_nonmenu_event.
10291
102921998-11-16 Gerd Moellmann <gerd@gnu.org>
10293
10294 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10295 window end isn't reliable, so set window_end_valid to nil.
10296 (redisplay_internal): If overlay arrow has changed, set
10297 windows_or_buffers_changed to redisplay thoroughly.
10298
10299 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10300 necessary.
10301
10302 * xfns.c (file_dialog_cb): New.
10303 (Fx_file_dialog): New.
10304 * fileio.c (Fread_file_name): Call it.
10305
427ec082 10306 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10307 selection dialog.
10308
103091998-11-14 Gerd Moellmann <gerd@gnu.org>
10310
10311 * xterm.c (note_mouse_highlight): Don't highlight when popup
10312 is active.
10313
26901792
DL
10314 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10315 timer-event-handler. This busy cursor tends to be anoying if
10316 fontifying stealthily.
10317
10318 * dispnew.c (direct_output_for_insert): Give up if current row
10319 contains trailing whitespace.
10320
103211998-11-13 Gerd Moellmann <gerd@gnu.org>
10322
10323 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10324
10325 * xdisp.c (handle_fontified_prop): New.
10326 (Vfontification_functions): New.
10327 (Qfontification_functions): New.
10328 (it_props): Add handle_fontified_prop.
10329
103301998-11-12 Gerd Moellmann <gerd@gnu.org>
10331
10332 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10333 Otherwise, under LessTif, after the popup has gone, all button
10334 press events come in for the frame's widget, and release events
10335 come in for the edit_widget.
10336 * xterm.c (XTread_socket): Remove workaround for that problem.
10337 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10338 XmScrollBarSetValues.
10339 (SET_SAVED_MENU_EVENT): Give it statement form.
10340
26901792
DL
10341 * xfaces.c (display_message): If waiting_for_input, don't display
10342 the message.
10343
10344 * window.c (scroll_command): If not acting on current_buffer,
10345 make redisplay consider all windows.
10346
10347 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10348
10349 * xdisp.c (handle_glyph_prop): Set it->object for images to
10350 the object having the glyph property.
10351
10352 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10353 invisible.
10354
103551998-11-11 Gerd Moellmann <gerd@gnu.org>
10356
10357 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10358 (x_term_init): Create the gray pixmap.
10359 (x_setup_relief_color): Use it.
10360 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10361 internal border at the top of a frame.
10362 (x_init_glyph_string): Likewise.
427ec082 10363 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10364 full-width lines.
10365 (XTflash): Don't flash the toolbar window.
10366
10367 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10368 in case of ButtonPress events.
10369
103701998-11-10 Gerd Moellmann <gerd@gnu.org>
10371
10372 * xrdb.c (x_load_resources): Add grey background colors as
10373 defaults for menus, scroll bars, and dialogs.
10374
10375 * insdel.c (prepare_to_modify_buffer): Move setting
10376 windows_or_buffers_changed from modify_region here.
10377
10378 * xfns.c (Fx_show_tip): Inhibit redisplay.
10379 (Fx_hide_tip): Ditto.
10380 (Fx_image_header): New.
10381
103821998-11-09 Gerd Moellmann <gerd@gnu.org>
10383
10384 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10385 when clearing current window matrices.
10386
103871998-11-08 Gerd Moellmann <gerd@gnu.org>
10388
10389 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10390 position from a string position. Use the right end position
10391 if the property spans a whole overlay string.
10392
103931998-11-07 Gerd Moellmann <gerd@gnu.org>
10394
10395 * xmenu.c (menubar_selection_callback): Remove workaround for
10396 Lesstif not calling XmNpopdownCallback because it doesn't
10397 handle the case where users don't select any menu item.
10398
26901792
DL
10399 * insdel.c (modify_region): Set windows_or_buffers_changed.
10400
10401 * buffer.c (set_buffer_internal): Don't set
10402 windows_or_buffers_changed.
10403
26901792
DL
10404 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10405
26901792
DL
10406 * xmenu.c (menubar_selection_callback): Add workaround for
10407 Lesstif not calling XmNpopdownCallback.
10408
10409 * xdisp.c (eval_mode_element): New.
10410 (eval_mode_handler): New.
10411 (display_mode_element): Use eval_mode_element.
10412
10413 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10414 Remove code looking at text props of default value.
10415
10416 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10417
26901792
DL
104181998-11-06 Gerd Moellmann <gerd@gnu.org>
10419
427ec082 10420 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10421 BUTTON_TYPE_NONE.
10422 (single_submenu): Likewise for panes and menu items.
10423 (set_frame_menubar): Set button_type of menu bar to none.
10424 (xmenu_show): Likewise.
10425 (single_submenu): Set widget values selected slot.
10426 (xmenu_show): Likewise.
10427
26901792
DL
10428 * xmenu.c (push_menu_item): Add parameters `type' and
10429 `selected'. Store it in menu_items.
10430 (MENU_ITEMS_ITEM_TYPE): New.
10431 (MENU_ITEMS_ITEM_SELECTED): New.
10432 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10433
10434 * xfns.c (clear_image_cache): Get the current time, before
10435 doing anything.
10436 (cache_image): Set prev pointer of next image.
10437 (clear_image_cache): Clear current matrices if any image was
10438 freed.
10439
10440 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10441
10442 * xfns.c (x_set_cursor): New.
10443 (Fx_display_busy_cursor): New.
10444 (Fx_undisplay_busy_cursor): New.
10445
10446 * xterm.h (struct x_output): Add busy_cursor.
10447
10448 * xfns.c (Vx_busy_pointer_shape): New.
10449 (x_set_mouse_color): Create busy cursor.
10450
10451 * process.c (wait_reading_process_input): Show and hide busy
10452 cursor.
10453
10454 * keyboard.c (command_loop_1): Display busy cursor.
10455
10456 * eval.c (Fsignal): Hide busy cursor.
10457
10458 * buffer.c (set_buffer_internal): Don't set
10459 windows_or_buffers_changed.
10460
10461 * xterm.c (redo_mouse_highlight): New.
10462
104631998-11-04 Gerd Moellmann <gerd@gnu.org>
10464
26901792
DL
10465 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10466 (x_build_heuritic_mask): New.
10467 (lookup_image): Call it.
10468
10469 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10470 (previous_help_echo): New.
10471 (XTread_socket): Generate help event with nil message when
10472 leaving a region with help-echo.
10473 (note_mouse_highlight): Handle `help-echo' over text.
10474 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10475 CirculateRequest.
10476 (clear_mouse_face): Don't clear if tooltip is shown.
10477 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10478 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10479
10480 * keyboard.c (Vshow_help_function): New.
10481 (read_char): Use it.
10482
104831998-11-03 Gerd Moellmann <gerd@gnu.org>
10484
10485 * xfns.c (x_create_tip_frame): New.
10486 (Fx_show_tip): New.
10487 (Fx_hide_tip): New.
10488
427ec082 10489 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10490 a widget.
10491
10492 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10493 to full_width_p. Add internal_border_p.
10494
104951998-11-02 Gerd Moellmann <gerd@gnu.org>
10496
10497 * xterm.c (note_mode_line_highlight): Check the charpos of
10498 the glyph under the mouse pointer before accessing text
10499 properties at that position.
10500
105011998-11-01 Gerd Moellmann <gerd@gnu.org>
10502
10503 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10504
10505 * xdisp.c (auto-raise-toolbar-buttons): New.
10506 (build_desired_toolbar_string): Handle the flag.
10507 (toolbar-button-margin): New.
10508 (toolbar-button-relief): New.
10509 (build_desired_toolbar_string): Use margin and relief.
10510
10511 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10512 for FreeBSD.
10513 (note_mode_line_highlight): New.
10514 (note_mouse_highlight): Call it.
10515
105161998-10-31 Gerd Moellmann <gerd@gnu.org>
10517
10518 * s/freebsd.h (NARROWPROTO): New.
10519
10520 * xdisp.c (display_string): New parameter face_string.
10521 (display_mode_element): When displaying a symbol with a string
10522 value, use text properties from the symbol's default value, maybe.
10523
10524 * xrdb.c (x_load_resources): Add font defaults for menus and
10525 dialogs.
10526
105271998-10-30 Gerd Moellmann <gerd@gnu.org>
10528
10529 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10530
105311998-10-29 Gerd Moellmann <gerd@gnu.org>
10532
10533 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10534 produced for characters with codes < 32 under certain
10535 circumstances.
10536
10537 * xdisp.c (redisplay_window): Handle values of PT in front
10538 of invisible, intangible text.
427ec082 10539 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10540 displaying lines.
10541 (display_mode_element): Assign to glyphs written for a mode
10542 line spec `%x' as object the Lisp format string, as position
10543 the position of the `%' in that string.
10544 (display_string): If displaying a C string, optionally get
10545 the face to use from a Lisp string.
10546
10547 * xterm.c (expose_window_tree): Include mode line height.
10548
10549 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10550
105511998-10-27 Gerd Moellmann <gerd@gnu.org>
10552
10553 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10554 over mode line.
10555
105561998-10-26 Gerd Moellmann <gerd@gnu.org>
10557
10558 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10559
10560 * xdisp.c (redisplay_window): If mode line height has changed,
10561 arrange for a thorough immediate redisplay using the correct mode
10562 line height.
10563 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10564
10565 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10566 (CURRENT_MODE_LINE_HEIGHT): New.
10567 (DESIRED_MODE_LINE_HEIGHT): New.
10568
10569 * keyboard.c (make_lispy_event): Add string and string position
10570 info to mouse-click events.
10571 (read_key_sequence): Handle `local-map' property of mode line
10572 strings.
10573
10574 * keyboard.h (POSN_STRING): New.
10575
105761998-10-25 Gerd Moellmann <gerd@gnu.org>
10577
10578 * dispnew.c (mode_line_string): Mew.
10579
10580 * xterm.c (xt_action_hook): New.
10581 (x_create_toolkit_scroll_bar): Add action hook.
10582 (xm_scroll_callback): Implement dragging.
10583
10584 * keyboard.c (Qend_scroll): New.
10585 (scroll_bar_parts): Add it.
10586
10587 * termhooks.h (scroll_bar_end_scroll): New.
10588
10589 * xterm.c (XTread_socket): Bug fix.
10590
105911998-10-24 Gerd Moellmann <gerd@gnu.org>
10592
10593 * xdisp.c (redisplay_window): Finish scroll bars after
10594 redisplaying toolbar.
10595
10596 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10597 (syms_of_keyboard): Add Qbottom.
10598
10599 * termhooks.h (scroll_bar_to_top): New.
10600 (scroll_bar_to_bottom): New.
10601
10602 * xdisp.c (redisplay_window): Always resize toolbar window if
10603 auto_resize_toolbar_p is non-zero.
10604 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10605 (window_box): New.
10606 (window_box_height): New.
10607 (window_box_width): New.
10608 (window_box_left): New.
10609 (window_box_right): New.
10610 (window_box_edges): New.
10611
106121998-10-23 Gerd Moellmann <gerd@gnu.org>
10613
10614 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10615 XawScrollbarSetThumb in FreeBSD.
10616 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10617 to true.
10618
10619 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10620 is out of range.
10621
10622 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10623 (x_term_init): Initialize it.
10624
10625 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10626
10627 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10628 cursor.
10629
106301998-10-22 Gerd Moellmann <gerd@gnu.org>
10631
10632 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10633 differently when using toolkit scroll bars.
10634
10635 * xterm.c (x_send_scroll_bar_event): New.
10636 (x_scroll_bar_to_input_event): New.
10637 (xaw3d_scroll_callback): New.
10638 (xaw3d_jump_callback): New.
10639 (xm_scroll_callback): New.
10640 (x_toolkit_scroll_p): New.
10641 (XTread_socket): Handle scroll bar client message.
10642 (x_term_init): Initialize Xatom_Scrollbar.
10643 (x_scroll_bar_create): Set cursor.
10644 (xm_scroll_callback):
10645 (x_create_toolkit_scroll_bar): New.
10646 (x_set_toolkit_scroll_bar_thumb): New.
10647 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10648 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10649
10650 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10651
106521998-10-21 Gerd Moellmann <gerd@gnu.org>
10653
10654 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10655 (XTread_socket): Don't handle mouse button events for scroll bars
10656 if using toolkit scroll bars.
10657 (XTset_vertical_scroll_bar): Set thumb size and position for
10658 Athena scroll bar.
10659
10660 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10661
10662 * xterm.c (XTread_socket): Dispatch expose event to widget
10663 if using toolkit scroll bars.
10664 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10665 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10666 if using toolkit scroll bars.
10667 (x_scroll_bar_move): Handle tookit scroll bars.
10668
10669 * Makefile.in (LIBW): Use Xaw3d if present.
10670
10671 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10672 (HAVE_XAW3D): New.
427ec082 10673
26901792
DL
10674 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10675 (HAVE_XAW3D): New.
10676
427ec082 10677 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10678 right vertical scroll bar.
10679
106801998-10-20 Gerd Moellmann <gerd@gnu.org>
10681
10682 * xfns.c (xpm_load): Support reading XPM images from string
10683 buffers containing data in the same format as an XPM file.
10684 Support `:color-symbols'.
10685 (xpm_format): Add `:data'.
10686 (xpm_keyword_index): Add XPM_DATA.
10687 (syms_of_xfns): Add `:color-symbols'.
10688 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10689 (xpm_valid_color_symbols_p): New.
10690 (xpm_image_p): Call it.
10691
10692 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10693 attribute to the image if item is not enabled.
10694
10695 * xfns.c (x_laplace): New.
10696 (x_laplace_read_row): New.
10697 (x_laplace_write_row): New.
10698 (lookup_image): Handle common image attributes here. New
10699 attribute `:algorithm'.
10700
10701 * xfaces.c (clear_face_cache): Call clear_image_cache.
10702
10703 * xterm.c (x_inverted_image_mask): Removed.
10704 (x_draw_image_foreground_1): New.
10705 (x_draw_image_glyph_string): Draw images with mask to a temporary
10706 pixmap to reduce flickering.
10707
10708 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10709 (display_toolbar_line): Remove parameter `margin'.
10710
107111998-10-19 Gerd Moellmann <gerd@gnu.org>
10712
10713 * xdisp.c (toolbar_lines_needed): New.
10714 (auto-resize-toolbars): New.
10715
10716 * xfns.c (cache_image): Correct call to xrealloc.
10717
10718 * dispnew.c (Fset_toolbar_height): Removed.
10719
10720 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10721 FRAME_MENU_BAR_LINES.
10722
10723 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10724 instead of FRAME_MENU_BAR_LINES.
10725 (check_frame_size): Ditto.
10726
10727 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10728 instead of FRAME_MENU_BAR_LINES.
10729 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10730 (build_frame_matrix): Ditto.
10731 (change_frame_size_1): Ditto.
10732
10733 * frame.h (FRAME_TOOLBAR_LINES): New.
10734 (FRAME_TOP_MARGIN): New.
10735
10736 * window.c (struct save_window_data): Add frame_toolbar_lines.
10737 (Fset_window_configuration): Handle toolbar lines.
10738 (Fcurrent_window_configuration): Save toolbar lines.
10739
10740 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10741
10742 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10743
10744 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10745
10746 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10747 (x_set_toolbar_lines): New.
10748
10749 * keyboard.c (cmd_error_internal): Bug fix.
10750
10751 * xterm.c: Remove double include of syssignal.h.
10752
107531998-10-18 Gerd Moellmann <gerd@gnu.org>
10754
10755 * xterm.c (x_toolbar_item): New.
10756 (x_handle_toolbar_click): Use it.
10757 (note_toolbar_highlight): Use it.
10758
10759 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10760 and toolbar_items_vectors.
10761
10762 * xterm.c (help_echo): New.
10763 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10764 (x_set_glyph_string_gc): Handle them.
10765 (x_after_update_window_line): Don't do anything in pseudo-windows.
10766 (x_produce_image_glyph): Take image margin and face relief into
10767 account.
10768 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10769 (x_draw_glyph_string_background): Optimize case when face has
10770 relief.
10771 (x_setup_relief_color): Take frame instead of glyph string
10772 parameter.
10773 (x_draw_relief_rect): New.
10774 (x_draw_glyph_string_relief): Call it.
10775 (x_draw_image_glyph_string_foreground): Handle margin and image
10776 relief.
10777 (x_draw_image_glyph_string_background): Ditto.
10778 (expose_frame): Redraw toolbar window.
10779 (expose_window): Don't draw cursor for pseudo-windows.
10780 (x_y_to_hpos_vpos): Handle pseudo-windows.
10781 (frame_to_window_pixel_xy): New.
10782 (note_mouse_highlight): Call note_toolbar_highlight.
10783 (x_handle_toolbar_click): New.
10784 (note_toolbar_highlight): New.
10785 (show_mouse_face): Change int parameter `hl' to parameter of
10786 type enum draw_glyphs_face. Handle image highlighting.
10787 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10788 non-nil. Use x_handle_toolbar_click.
10789
10790 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10791
10792 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10793 IMAGE_BOOL_VALUE.
10794 (parse_image_spec): Handle them.
10795 (image_spec_value): Additional parameter found.
427ec082 10796 (free_image): Remove image from the vector `images' of the
26901792
DL
10797 image cache.
10798 (clear_image_cache): Additional parameter force_p.
10799 (Fclear_image_cache): New.
10800 (x_find_image_file): New.
10801 (xbm_load): Handle `:margin' and `:relief'. Use
10802 x_find_image_file.
10803 (xpm_load): Likewise.
10804 (pbm_load): Likewise.
10805 (jpeg_load): Likewise.
10806 (tiff_load): Likewise.
10807 (gif_load): Likewise.
10808
10809 * keyboard.c (Qhelp_echo): New symbol.
10810 (read_char): Handle `toolbar' and `help_echo' events.
10811 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10812 (make_lispy_event): Handle TOOLBAR_EVENT.
10813 (toolbar_items): New.
10814 (process_toolbar_item): New.
10815 (PROP): New.
10816 (init_toolbar_items): New.
10817 (append_toolbar_item): New.
10818 (read_char_x_menu_prompt): Handle `toolbar' event.
10819 (read_key_sequence): Ditto.
10820
10821 * xfaces.c (Qtoolbar): New.
10822 (realize_basic_faces): Realize `toolbar' face.
10823 (face_at_string_position): Remove parameter modeline_p, add
10824 base_face_id.
10825
10826 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10827 to read data.
10828
108291998-10-17 Gerd Moellmann <gerd@gnu.org>
10830
10831 * xdisp.c (init_iterator): Replace parameter modeline_p with
10832 base_face_id.
10833 (next_element_from_string): Call get_next_display_element
10834 recursively after handling text properties.
10835 (prepare_menu_bars): Call update_toolbar.
10836 (update_toolbar): New.
10837 (build_desired_toolbar_string): New.
10838 (display_toolbar_line): New.
10839 (redisplay_toolbar): New.
10840 (toolbar_item_info): New.
10841 (redisplay_window): Call redisplay_toolbar.
10842 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10843
10844 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10845 window.
10846 (clear_desired_matrices): Ditto.
10847 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10848 (free_glyphs): Free matrices of toolbar window.
10849 (update_frame): Update toolbar window.
10850 (change_frame_size_1): Take toolbar into account.
10851 (Fset_toolbar_height): New.
10852
10853 * dispextern.h (struct it): Remove member modeline_p, add
10854 base_face_id.
10855 (struct image): Add members relief and margin.
10856 (IMAGE_ASCENT): Include margin in height.
10857
108581998-10-14 Gerd Moellmann <gerd@gnu.org>
10859
10860 * xfns.c (Fclear_image_cache): New.
10861
10862 * xfaces.c (realize_basic_faces): Realize toolbar face.
10863 (face_at_string_position): Remove parameter modeline_p, add
10864 base_face_id.
10865
10866 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10867
108681998-10-13 Gerd Moellmann <gerd@gnu.org>
10869
10870 * keyboard.c (syms_of_keyboard): Intern `:help'.
10871
108721998-10-12 Gerd Moellmann <gerd@gnu.org>
10873
10874 * xterm.c (note_toolbar_highlight): New.
10875 (note_mouse_highlight): Call it.
10876
10877 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10878 (coordinates_in_window): Handle toolbar window.
10879
10880 * keyboard.c (toolbar_items): New.
10881 (process_toolbar_item): New.
10882 (parse_toolbar_item): New.
10883 (init_toolbar_items): New.
10884 (append_toolbar_item): New.
10885
10886 * dispextern.h (enum toolbar_item_idx): New.
10887 (enum toolbar_item_image): New.
10888
10889 * frame.h (struct frame): Add toolbar-related members.
10890
10891 * xfaces.c (face_at_string_position): Remove assertion that
10892 current_buffer == window's buffer. This is not the case when
10893 called for the toolbar window.
10894
10895 * frame.c (make_frame): Initialize toolbar members.
10896
10897 * alloc.c (mark_object): Mark toolbar data of frames.
10898
10899 * frame.h (struct frame): Add toolbar-related members
10900 toolbar_window, desired_toolbar_items, current_toolbar_items,
10901 desired_toolbar_string, current_toolbar_string,
10902 n_desired_toolbar_items, n_current_toolbar_items. Add
10903 window_height.
10904
10905 * xterm.c (x_after_update_window_line): Don't draw bitmap
10906 areas for pseudo-windows.
10907 (expose_frame): Handle toolbar window.
10908 (expose_window): Don't do cursor stuff for pseudo-windows.
10909
10910 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10911
109121998-10-11 Gerd Moellmann <gerd@gnu.org>
10913
10914 * frame.c (make_frame): Initialize toolbar_window.
10915
10916 * alloc.c (mark_object): Make the toolbar window.
10917
10918 * dispnew.c (update_frame): Update frame's toolbar_window.
10919 (clear_current_matrices): Likewise.
10920 (clear_desired_matrices): Likewise.
10921 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10922 (free_glyphs): Free the toolbar window and its matrices.
10923
10924 * frame.h (struct frame): Add toolbar_window.
10925
10926 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10927 with relief.
10928
109291998-10-10 Gerd Moellmann <gerd@gnu.org>
10930
427ec082 10931 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10932 window start is not in the range BEGV..ZV.
10933
109341998-10-09 Gerd Moellmann <gerd@gnu.org>
10935
10936 * xdisp.c (try_scrolling): Experimentally handle the case
10937 that scroll-preserve-screen-position is set to `always'.
10938
10939 * window.c (Vscroll_preserve_screen_position): Replacement for
10940 scroll_preserve_screen_position.
10941
109421998-10-08 Gerd Moellmann <gerd@gnu.org>
10943
10944 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10945 doesn't like it.
10946 * xdisp.c: Ditto.
10947
10948 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10949
109501998-10-06 Gerd Moellmann <gerd@gnu.org>
10951
427ec082 10952 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10953 i_byte when prompts are inserted into minibuffers.
10954
10955 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10956 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10957 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10958
109591998-10-04 Gerd Moellmann <gerd@gnu.org>
10960
10961 * xdisp.c (make_cursor_line_fully_visible): New.
10962 (try_scrolling): New.
10963 (redisplay_window): Move scrolling code to try_scrolling.
10964 (make_cursor_line_fully_visible): Handle case of window too small
10965 to show a single line.
10966 (redisplay_window): Case forced window start---use
10967 make_cursor_line_fully_visible.
10968 (redisplay_window): Case cursor movement via current matrix.
10969 If ending up on a partially visible line, make it fully visible
10970 instead of recentering.
10971 (try_scrolling): Additional parameter scroll_smoothly.
10972
10973 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10974
109751998-09-28 Gerd Moellmann <gerd@gnu.org>
10976
10977 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10978 instead of y-position for scroll-preserved-screen-position.
10979
109801998-09-07 Gerd Moellmann <gerd@gnu.org>
10981
10982 * dispnew.c (update_frame_line): If current row is not enabled,
10983 write the whole line.
10984
109851998-09-06 Gerd Moellmann <gerd@gnu.org>
10986
10987 * lisp.h (HAVE_FACES): Removed.
10988
10989 * dispextern.h (HAVE_FACES): Removed.
10990
10991 * config.in (HAVE_FACES): Removed.
10992
10993 * dispnew.c (HAVE_FACES): Removed.
10994
10995 * xdisp.c (HAVE_FACES): Removed.
10996
10997 * xfaces.c (HAVE_FACES): Removed.
10998
109991998-09-05 Gerd Moellmann <gerd@gnu.org>
11000
11001 * xdisp.c (init_iterator): If face_change_count is non-zero,
11002 free realized faces.
11003
11004 * xfaces.c (free_all_realized_faces): Make it externally visible.
11005 (Finternal_set_lisp_face_attribute): Increment
11006 windows_or_buffers_changed.
11007
11008 * dispnew.c (direct_output_for_insert): Give up if
11009 face_change_count is non-zero.
11010 (direct_output_forward_char): Ditto.
11011
11012 * xfaces.c (face_change_count): New.
11013
110141998-09-04 Gerd Moellmann <gerd@gnu.org>
11015
11016 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
11017 of range.
11018
110191998-09-03 Gerd Moellmann <gerd@gnu.org>
11020
11021 * term.c (Ftty_display_color_p): New.
11022
110231998-09-02 Gerd Moellmann <gerd@gnu.org>
11024
11025 * xfaces.c (Ftty_defined_colors): New.
11026
11027 * xterm.c (x_produce_glyphs): Fix computation of
11028 contains_overlapping_glyphs_p for ASCII.
11029
11030 * dispnew.c (Fshow_cursor): Don't change cursor state while
11031 redisplaying.
11032 (direct_output_for_insert): If a glyph with lbearing or rbearing
11033 is among the new glyphs, set row flag contains_overlapping_glyph_p.
11034
110351998-09-01 Gerd Moellmann <gerd@gnu.org>
11036
11037 * term.c (OUTPUT_IF): Make replacement text have statement form.
11038 (OUTPUT1_IF): Ditto.
11039 (TS_italic_mode, TS_end_italic_mode): Removed.
11040 (TS_bold_mode): Removed.
11041 (TS_underscore_mode, TS_end_underscore_mode): Removed.
11042 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
11043 (TS_enter_reverse_mode): New.
11044 (TS_enter_underline_mode, TS_exit_underline_mode): New.
11045 (TN_magic_cookie_glitch_ul): New.
11046 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
11047 (TS_exit_attribute_mode): New.
11048 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
11049 (TS_set_foreground, TS_set_background): New.
11050 (reset_terminal_modes): Switch colors back to default.
11051 (write_glyphs): Turn face on before writing text, turn it off
11052 afterwards.
11053 (insert_glyphs): Ditto.
11054 (term_init): Initialize new terminal capability variables.
11055 (turn_on_face): Turn a face on.
11056 (turn_off_face): Turn a face off.
11057
11058 * lisp.h (MAKE_GLYPH): Remove test for frame type.
11059 (GLYPH_CHAR): Ditto.
11060 (GLYPH_FACE): Ditto.
11061
11062 * xfaces.c (Vface_tty_color_alist): New.
11063 (face-register-tty-color): New.
11064 (face-clear-tty-colors): New.
11065
11066 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
11067 (struct it): Remove member faces_p since we now always have faces.
11068
110691998-08-31 Gerd Moellmann <gerd@gnu.org>
11070
11071 * dispextern.h (struct face): Add tty appearance flags.
11072
11073 * xdisp.c (init_iterator): Always handle faces.
11074 (extend_face_to_end_of_line): Handle tty frames.
11075
11076 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
11077 passed in.
11078
110791998-08-30 Gerd Moellmann <gerd@gnu.org>
11080
11081 * xfaces.c (realize_default_face): Use empty strings to indicate
11082 that the face should use the default foreground/background
427ec082 11083 color of the terminal. Fill font-related attributes with
26901792
DL
11084 appropriate values for tty frames.
11085
11086 * emacs.c (main): Call syms_of_xfaces before init_window_once.
11087
11088 * xfaces.c (realize_default_face): If face `default' is not
11089 yet known, create it.
11090
11091 * frame.c (make_terminal_frame): Call init_frame_faces
11092 unconditionally.
11093
11094 * xfaces.c (init_frame_faces): Make it work for tty frames.
11095 (free_frame_faces): Ditto.
11096 (clear_face_cache): Ditto.
11097 (recompute_basic_faces): Ditto.
11098 (Fframe_face_alist): Ditto.
11099 (free_realized_face): Ditto.
11100 (prepare_face_for_display): Ditto.
11101 (clear_face_gcs): Ditto.
11102 (lookup_face): Ditto.
11103 (smaller_face): Ditto.
11104 (realize_default_face): Ditto.
11105 (realize_face): Ditto.
11106 (realize_face): Dispatch to functions depending on the frame type.
11107 (realize_x_face): X way of realizing faces.
11108 (realize_tty_face): TTY way of realizing faces.
11109
111101998-08-29 Gerd Moellmann <gerd@gnu.org>
11111
11112 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11113 compute it instead.
11114 (lookup_face): Remove local variable unibyte_registry.
11115
111161998-08-22 Gerd Moellmann <gerd@gnu.org>
11117
11118 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11119 1 pixel longer.
11120
427ec082 11121 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
11122 of face in buffer.
11123
11124 * editfns.c (make_buffer_string_both): If prompt in buffer,
11125 prevent start > end.
11126
11127 * indent.c (Fvertical_motion): Set current_buffer to window's
11128 buffer if it isn't already.
11129
111301998-08-21 Gerd Moellmann <gerd@gnu.org>
11131
11132 * dispextern.h (GLYPH_DEBUG): Use default 0.
11133
11134 * xdisp.c (it_props): New member `smaller'.
11135 (init_iterator): Initialize it.
11136 (Qsmaller): New.
11137 (push_it): Save value of `smaller' value on the stack.
11138 (pop_it): Restore `smaller' from the stack.
11139 (handle_smaller_prop): New.
11140 (handle_face_prop): Use `smaller' text property to select a
11141 suitable face.
11142
11143 * dispextern.h (SMALLER_PROP_IDX): New.
11144 (struct it): Add member `smaller'.
11145
11146 * xfaces.c (smaller_face): New.
11147
11148 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11149
11150 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11151 total pixel width of window differently.
11152
11153 * xdisp.c (init_iterator): Compute width of mode line differently.
11154
11155 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11156 of bitmap areas.
11157
11158 * window.c (Fsplit_window): Include width of bitmap areas in
11159 window width.
11160 (window_internal_width): Subtract width of bitmap areas from
11161 total width.
11162
111631998-08-18 Gerd Moellmann <gerd@gnu.org>
11164
11165 * xdisp.c: Functions reordered for better readability.
11166
11167 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11168 lbearing.
11169 (update_window_tree): Parameter no_scrolling_p removed.
11170 (update_single_window): Ditto.
11171
11172 * xterm.c (x_get_char_font_and_encoding): Renamed to
11173 x_get_char_face_and_encoding.
11174
11175 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11176 if end of current row reached.
11177
11178 * xterm.c (x_get_glyph_face_and_encoding): New.
11179 (x_get_glyph_overhangs): Call it.
11180
11181 * xdisp.c (Qshow_trailing_whitespace): New.
11182 (Qtrailing_whitespace): New.
11183 (enum prop_handled): New.
11184 (struct props, it_props): New.
11185 (next_overlay_change): New. Works like Fnext_overlay_change
11186 but doesn't use xmalloc.
11187 (handle_stop): Restructured.
11188 (face_before_or_after_it_pos): Case iteration over a string: fix
11189 handling of face before current position.
11190
111911998-08-16 Gerd Moellmann <gerd@gnu.org>
11192
11193 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11194 reallocation matrix if fonts_changed_p.
11195 (update_text_area): Handle glyphs with lbearing.
11196
111971998-08-14 Gerd Moellmann <gerd@gnu.org>
11198
11199 * xdisp.c (struct props): New.
11200 (it_props): New.
11201 (compute_prop_info): New.
11202 (handle_stop): New.
11203
11204 * textprop.c (validate_interval_range): Make it externally
11205 visible.
11206
11207 * dispnew.c (direct_output_for_insert): Remove calls
11208 to compute_stop_pos.
11209
11210 * dispextern.h (struct it): Remove check_charpos,
11211 next_overlay_pos. Add what_changes.
11212
112131998-08-10 Gerd Moellmann <gerd@gnu.org>
11214
11215 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11216
11217 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11218 face_default_registry instead.
11219
11220 * syntax.c (scan_sexps_forward): Set up syntax table before
11221 jumping to initial state label.
11222
112231998-08-09 Gerd Moellmann <gerd@gnu.org>
11224
11225 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11226 >= ZV specially.
11227
112281998-08-08 Gerd Moellmann <gerd@gnu.org>
11229
11230 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11231 ends up in partially visible row, try to scroll. Case forced
11232 window start---handle windows not tall enough to show a single
11233 line.
11234
11235 * window.h (struct window): Member dy renamed vscroll.
11236
11237 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11238 fonts.
11239 (x_draw_stretch_glyph_string): Set clipping if using GC that
11240 hasn't set it yet.
11241
11242 * xdisp.c (redisplay_window): Case forced window start -
11243 don't let cursor end on partially visible row. Use desired
11244 matrix to find a suitable PT if it doesn't appear.
11245 (decode_mode_spec): Merged with 20.2.97.
11246 (try_window_reusing_current_matrix): Give up if old or
11247 new display is vscrolled.
11248 (redisplay_window): Reset vscrolling if forced window start,
11249 or if recentering.
11250
112511998-08-06 Gerd Moellmann <gerd@gnu.org>
11252
11253 * xfaces.c (realize_default_face): Use the fontset name instead of
11254 the alias for the family attribute of the default face because we
11255 can't easily determine a good alias from fontset-alias-alist.
11256 (face_fontset): Use Fquery_fontset to find the fontset.
11257 (font_list): Additional pattern parameter.
11258 (try_font_list): Ditto.
11259 (set_lface_from_font_name): Set face family from font foundry
11260 and family.
11261 (font_list): If family contains a hyphen, build pattern differently.
11262
112631998-08-05 Gerd Moellmann <gerd@gnu.org>
11264
11265 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11266 changed instead of setting the frame garbaged.
11267
11268 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11269 all attribute values. This is wrong if values are unspecified,
11270 i.e. nil.
11271
11272 * xdisp.c (try_window_id): Give up if window start changed.
11273
11274 * xfaces.c (make_realized_face): Store registry as Lisp object.
11275 (load_face_font_or_fontset): Compute registry of a face
11276 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11277 possible.
11278
11279 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11280 differently.
11281
11282 * alloc.c (mark_face_cache): Mark the registry member of faces.
11283
11284 * dispextern.h (struct face): Make registry a Lisp string.
11285
112861998-08-04 Gerd Moellmann <gerd@gnu.org>
11287
11288 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11289 multibyte_p. Handle unibyte text.
11290 (x_append_glyph): Set the multibyte_p flag of glyphs.
11291 (x_produce_image_glyph): Ditto.
11292 (x_append_stretch_glyph): Ditto.
11293 (x_produce_glyphs): Handle unibyte text like ASCII.
11294
11295 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11296 stack.
11297 (pop_it): Restore it.
11298 (face_before_or_after_it_pos): Handle the case that the string or
11299 buffer is unibyte.
11300 (get_overlay_strings): Set the multibyte flag of the iterator if
11301 the new overlay string is multibyte.
11302 (get_glyph_property): Likewise.
11303 (get_next_display_element): Don't check for charset changes in
11304 unibyte text.
11305 (append_space): Compute face differently for unibyte text.
11306 (extend_face_to_end_of_line): Don't return quickly if face has
11307 stipple.
11308
11309 * xfaces.c (load_face_font_or_fontset): Store registry and
11310 encoding of the font in the registry member of the face.
11311 (make_realized_face): Additional parameter `registry'.
11312 (free_realized_face): Free the registry of a realized face.
11313 (face_suitable_for_charset_p): Function form of the macro
11314 with the same name in uppercase.
11315 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11316 (choose_face_font): New parameter unibyte_registry.
11317 (choose_face_fontset_font): Ditto.
11318 (realize_default_face): Remember the registry and encoding of
11319 the specified frame font in Vx_unibyte_registry_and_encoding.
11320 (face_at_buffer_position): Handle unibyte.
11321 (face_at_string_position): Likewise.
427ec082 11322 (realize_face): New parameter unibyte_registry.
26901792
DL
11323 (compute_char_face): Handle the unibyte case.
11324
11325 * dispextern.h (struct glyph): Add bit multibyte_p.
11326 (struct face): New member registry holding the registry and
11327 encoding of the X font of the face.
11328 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11329 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11330 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11331 text.
11332 (struct iterator_stack_entry): Add multibyte_p.
11333
11334 * xdisp.c (string_pos): Use string_char_to_byte.
11335 (char_charset): Removed.
11336
113371998-08-03 Gerd Moellmann <gerd@gnu.org>
11338
11339 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11340 rectangle for a block cursor over an image without a mask.
11341 (x_stretch_block_cursor): Added. Non-zero means don't draw
11342 a block cursor over a stretch as wide as that stretch.
11343 (x_draw_stretch_glyph_string): Use it.
11344 (x_draw_hollow_cursor): Ditto.
11345
11346 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11347 (read_minibuf): Add front-sticky text property for prompt.
11348
11349 * xdisp.c (char_charset): Return charset of a character,
11350 depending on whether or not multi-byte characters are enabled.
11351
11352 * xfaces.c (Fset_face_charset_registry): Removed.
11353 (x_charset_registry): Determine registry from charset plist.
11354
113551998-08-02 Gerd Moellmann <gerd@gnu.org>
11356
11357 * xdisp.c (get_next_display_element): Don't check for charset
11358 changes if multi-byte characters are not enabled.
427ec082 11359
26901792 11360 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11361 redisplay interface.
26901792
DL
11362 * keyboard.c (detect_input_pending_run_timers): Likewise.
11363
11364 * dispextern.h (produce_*glyphs_hook): Removed.
11365 * term.c (produce_*glyphs): Ditto.
11366 (cursor_to): Remove pixel position parameters.
11367
11368 * dispnew.c: Remove hooks for window-based redisplay, introduce
11369 a redisplay interface structure.
11370
11371 * xterm.c (x_per_char_metric): Return default char metrics if per
11372 char metric exists but contains a zero width. Adobe Courier seems
11373 to contain such characters.
11374
11375 * xdisp.c (compute_line_metrics): Compute the width of rows
11376 without stopping at glyphs with zero width.
11377
113781998-08-01 Gerd Moellmann <gerd@gnu.org>
11379
11380 * xdisp.c (display_mode_line): If nothing was displayed at all,
11381 display a space.
11382 (hscroll_window_tree): Don't subtract 1 from target point if equal
11383 to ZV and window is not the selected window.
11384
11385 * dispnew.c (check_matrix_invariants): Remove check for window
11386 start at BEGV or after newline. This happens in rare cases
11387 intentionally.
11388
113891998-07-31 Gerd Moellmann <gerd@gnu.org>
11390
11391 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11392 (syms_of_xfaces): Add Vface_default_registry.
11393 (x_charset_registry): Use it.
11394
11395 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11396 (redisplay_window): Use it.
11397
11398 * dispnew.c (update_text_area): Handle lbearing of deleted text
11399 by backing up one character.
11400
114011998-07-30 Gerd Moellmann <gerd@gnu.org>
11402
427ec082 11403 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11404 decide to do nothing.
11405
11406 * xfaces.c (face_at_string_position): Additional parameter
11407 mode_line_p. If non-zero, merge with the mode line face
11408 instead of the default face.
11409 * dispextern.h (struct it): Add mode_line_p.
11410 * xdisp.c (init_iterator): Set it.
11411 (compute_face_in_string): Use it.
11412 (face_before_or_after_it_pos): Handle strings.
11413 (get_next_display_element): Don't look for relief end in C strings.
11414 (next_element_from_string): Deliver string position instead of
11415 buffer position.
11416
11417 * xterm.c (x_flush): Flush X output buffer.
11418 (XTflash): Use it.
11419
11420 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11421 Allow strings as face names.
11422
11423 * xfns.c (forall_images_in_image_cache): Check that frame is
11424 alive.
11425
11426 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11427 it's also called from x_destroy_window. Since this function is
11428 called from X, freeing stuff allocated with xmalloc is dangerous
11429 here, anyway.
11430
11431 * xfaces.c (free_realized_faces): Don't clear current matrices
11432 of a frame being destroyed.
11433
427ec082 11434 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11435 Fset_window_buffer.
11436
11437 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11438 with an additional argument specifying whether or not hooks may
11439 be called.
11440 (Fset_window_buffer): Call it.
11441
11442 * dispnew.c (clear_desired_matrices): Check that frame has
11443 a valid root window before clearing matrices in the window tree.
11444 (clear_current_matrices): Ditto.
11445 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11446 vchild are valid windows if not nil.
11447
11448 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11449 for :inverse-video.
11450 (Finternal_set_lisp_face_attribute): Ditto.
11451 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11452 (Finternal_get_lisp_face_attribute): Ditto.
11453 (Finternal_lisp_face_attribute_values): Ditto.
11454 (syms_of_xfaces): Define the symbol `:reverse-video'.
11455
11456 * xdisp.c (get_glyph_property): Renamed from
11457 fill_iterator_from_glyph_property.
11458 (next_element_from_buffer): Handle case that no `glyph' property
11459 was found correctly.
11460 (display_line): Extend face to end of line only if we have faces.
11461
114621998-07-29 Gerd Moellmann <gerd@gnu.org>
11463
11464 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11465 additional window argument.
11466
11467 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11468 set_iterator_to_previous_visible_line_start.
11469 (reseat_at_next_visible_line_start): Likewise.
11470 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11471 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11472 (compute_face_in_buffer): Renamed from
11473 compute_face_at_iterator_position.
11474 (compute_face_in_string): Renamed from
11475 compute_face_at_iterator_string_position.
11476 (get_space_width): Renamed from get_iterator_space_width.
11477 (next_overlay_string): Renamed from
11478 set_iterator_to_next_overlay_string.
11479 (get_overlay_strings): Renamed from
11480 get_overlay_strings_at_iterator_position.
11481 (restore_overlay_strings): Renamed from
11482 setup_overlay_strings_from_glyph_pos.
11483 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11484 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11485 (init_to_row_start): Renamed from init_iterator_to_row_start.
11486 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11487
11488 * xterm.c: Merge with 20.2.97.
11489 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11490
11491 * dispextern.h (struct glyph): Replace text_pos position with
11492 simple charpos.
11493
11494 * xdisp.c (this_line_start_pos): Use struct text_pos.
11495 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11496 (enum move_it_result): Renamed from move_iterator_result.
11497 (string_pos_nchars_ahead): Compute text_pos in a string from a
11498 known text_pos plus a character delta.
11499 (string_pos): Compute text_pos in string from charpos.
11500 (c_string_pos): Likewise for a C string.
11501 (number_of_chars): Return number of characters in a possibly
11502 multi-byte C string.
11503 (check_it): Renamed from check_iterator. Check that charpos and
11504 bytepos are in sync.
11505 (push_it): Renamed from save_iterator_settings.
11506 (pop_it): Renamed from restore_iterator_settings.
11507 (move_it_.*): Renamed from move_iterator_.*.
11508 (charset_at_position): Take charpos/bytepos into account.
11509 (back_to_previous_line_start): Set iterator to previous line start.
11510 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11511 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11512 move_iterator_previous_visible_line_start.
11513 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11514 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11515 Handle charpos/bytepos.
11516 (compute_face_at_iterator_position): Handle charpos/bytepos.
11517 (compute_face_at_iterator_string_position): Likewise.
11518 (get_iterator_space_width): Likewise.
11519 (load_overlay_strings): Likewise.
11520 (get_overlay_strings_at_iterator_position): Likewise.
11521 (reseat_iterator): Take a text_pos position argument.
11522 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11523 bytepos.
11524 (init_iterator): Take additional bytepos parameter.
11525 (reseat_iterator_to_string): Handle charpos/bytepos.
11526 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11527 (next_element_from_string): Handle charpos/bytepos.
11528 (next_element_from_c_string): Likewise.
11529 (fill_iterator_from_glyph_property): Likewise.
11530 (next_element_from_buffer): Likewise.
11531 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11532 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11533 (move_it_to): Likewise.
11534 (move_it_vertically_backward): Likewise.
11535 (move_it_vertically): Likewise.
11536 (move_it_by_lines): Likewise.
11537 (hscroll_window_tree): Likewise.
11538 (redisplay_internal): Likewise.
11539 (set_cursor_from_row): Likewise.
11540 (redisplay_window): Likewise.
11541 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11542 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11543 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11544 (try_window_id): Handle charpos/bytepos.
11545 (Ftrace_redisplay_toggle): Return Qnil.
11546 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11547 (insert_left_trunc_glyphs): Likewise.
11548
11549 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11550 do a real merge).
11551 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11552 (increment_glyph_row_buffer_positions): Ditto.
11553 (copy_glyph_row_contents): Ditto.
11554 (check_matrix_invariants): Add additional checks for charpos/
11555 bytepos consistency.
11556 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11557 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11558 `direction-reversed' in #if 0.
11559
11560 * xterm.h: Merge with 20.2.97.
427ec082 11561
26901792
DL
11562 * frame.h: Merge with 20.2.97.
11563
11564 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11565
11566 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11567 start.
11568 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11569 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11570 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11571 (struct it): Various members renamed from .*pos to .*charpos.
11572 (IT_CHARPOS): Access current buffer character position of an
11573 iterator.
11574 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11575 (IT_STRING_CHARPOS): Access current string character position of
11576 an iterator.
11577 (IT_STRING_BYTEPOS): Access current string byte position of
11578 an iterator.
11579 (globally): Add function prototypes from 20.2.97.
11580
11581 * everywhere: Use P_ instead of PROTO for function prototypes
11582 because everyone else seems to use P_.
11583
11584 * dispextern.h (struct text_pos): Structure describing a charpos/
11585 bytepos position in text.
11586 (BYTEPOS): Access the byte position part of a text_pos.
11587 (CHARPOS): Likewise for the character position.
11588 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11589 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11590 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11591 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11592 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11593 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11594 for buffer and string positions.
11595 (struct glyph): Use text_pos.
11596 (struct it): Renamed from display_iterator. Use text_pos.
11597
115981998-07-23 Gerd Moellmann <gerd@gnu.org>
11599
11600 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11601 pixmap.
11602
116031998-07-21 Gerd Moellmann <gerd@gnu.org>
11604
11605 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11606 * xterm.c (x_draw_row_bitmaps): Use it.
11607 * dispnew.c (row_equal_p): Ditto.
11608 (update_window_line): Ditto.
11609
11610 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11611 flag of images.
11612
11613 * dispextern.h (struct image): Removed member loading_failed_p.
11614 It's probably better to have the chance to try to load an image
11615 again.
11616
116171998-07-20 Gerd Moellmann <gerd@gnu.org>
11618
11619 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11620 at ZV if `indicate-zv-lines' is non-nil.
11621 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11622
11623 * dispnew.c (row_equal_p): Compare displays_text_p and
11624 ends_at_zv_p flags of rows.
11625 (update_window_line): Ditto.
11626
11627 * buffer.h (struct buffer): New member indicate_zv_lines.
11628
11629 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11630 (init_buffer_once): New variable `default-indicate-zv-lines'.
11631 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11632
11633 * xdisp.c (redisplay_window): Don't try moving the cursor
11634 if current glyph row w->last_cursor.vpos isn't enabled.
11635
11636 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11637
11638 * window.c (Fset_window_vscroll): Allow only negative scroll
11639 values. Others don't seem to make sense, and this way it's easy
11640 to restore a vscroll of zero.
11641
11642 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11643 allocated.
11644 (x_draw_image_glyph_string_background): Don't clip if pixmap
11645 could not be created.
11646
11647 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11648 be created.
11649 (xbm_load): Ditto.
11650 (gs_load): Ditto.
11651
11652 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11653 glyphs into account.
11654
11655 * xfaces.c (realize_default_face): Don't set font family of
11656 the default face from the fontset alias name for `fontset-startup'.
11657
11658 * xfns.c (gs_load): Pass frame's pixel foreground and background
11659 color to the Lisp loader.
11660
116611998-07-19 Gerd Moellmann <gerd@gnu.org>
11662
11663 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11664 libtiff34.
11665
11666 * configure.in (--with-tiff, HAVE_TIFF): Added.
11667
11668 * config.in (HAVE_TIFF): Added.
11669
11670 * Makefile.in (LIBTIFF): Added.
11671
11672 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11673
11674 * Makefile.in (LIBJPEG): Added.
11675
11676 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11677 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11678 jpeglib.h.
11679
427ec082 11680 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11681 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11682 configure must be run with `--x-includes=/usr/X11R6/include:
11683 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11684
116851998-07-18 Gerd Moellmann <gerd@gnu.org>
11686
11687 * config.in (HAVE_JPEG): Added.
11688
11689 * xfns.c (ct_init): Initialize color table used to map RGB colors
11690 from images to X pixel colors.
11691 (ct_free): Free color table.
11692 (ct_lookup): Look an RGB color up.
11693 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11694 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11695 image specification.
11696 (pbm_scan_number): Scan a decimal ASCII number from a file.
11697 (pbm_load): Load a PPM image.
11698
11699 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11700 necessary. Take canonical character units as parameter.
11701 (Fwindow_vscroll): Return canonical character units.
11702
11703 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11704 w->dy to display height for which glyph rows must be allocated.
11705
117061998-07-17 Gerd Moellmann <gerd@gnu.org>
11707
11708 * xfaces.c (face_at_string_position): Merge in region face
11709 so that it won't overwrite the font in the region.
11710 (face_at_buffer_position): Ditto.
11711 (realize_basic_faces): Don't realize region face.
11712
11713 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11714
11715 * xterm.c (x_set_glyph_string_background_width): Don't let
11716 cursor face extend to end of line.
11717
11718 * xdisp.c (append_space): If adding space of default face,
11719 make sure glyph ist produced with right face.
11720
11721 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11722 background color of a glyph string.
11723 (x_draw_glyph_string_background): Call it.
11724 (x_draw_glyph_string_bg_rect): Ditto.
11725 (x_draw_stretch_glyph_string): Ditto.
11726
117271998-07-15 Gerd Moellmann <gerd@gnu.org>
11728
11729 * xdisp.c (init_iterator): Initialize it->current_y to the
11730 window's vscroll w->dy.
11731
11732 * window.c (Fwindow_vscroll): Return number of pixels window
11733 is vscrolled smoothly.
11734 (Fset_window_vscroll): Set the number.
11735
11736 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11737 to_pos in truncated part of a line.
11738
117391998-07-14 Gerd Moellmann <gerd@gnu.org>
11740
11741 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11742 doesn't fit on the line, truncate it, despite truncate_lines nil.
11743 (display_line): Ditto.
11744
11745 * xfns.c: Experimental support for Ghostscript images.
11746
11747 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11748 (XTread_socket): React on events from Ghostscript.
11749 (expose_frame): If width or height are zero, redraw entire frame.
11750 (XTread_socket): Call expose_frame after receiving event from
11751 Ghostscript.
11752
11753 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11754 for Ghostscript support.
11755
11756 * xdisp.c (redisplay_internal): Return quickly if called
11757 recursively.
11758
11759 * alloc.c (NSTATICS): Increased to 1024.
11760
117611998-07-08 Gerd Moellmann <gerd@gnu.org>
11762
11763 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11764 iterator's glyph row.
11765 (x_produce_stretch_glyph): Call it.
11766 (x_produce_glyphs): Handle `space-width' property; call
11767 x_append_stretch_glyph.
11768
11769 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11770 property.
11771 (get_iterator_space_width): Determine value of `space-width'
11772 property at iterator's position.
11773 (reseat_iterator): Call it.
11774 (next_element_from_string): Ditto.
11775 (next_element_from_buffer): Ditto.
11776 (init_iterator): Initialize space_width of iterator.
11777 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11778 moved, but cursor blinks.
11779 (redisplay_internal): Set w->last_cursor_off_p after update.
11780
11781 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11782 (struct display_iterator): Add new member space_width.
11783
11784 * window.h (struct window): Add last_cursor_off_p.
11785
117861998-07-07 Gerd Moellmann <gerd@gnu.org>
11787
11788 * Saved.
11789
11790 * window.c (Fpos_visible_in_window_p): Case window not up to
11791 date---return nil if iterator hasn't reached position.
11792
117931998-07-06 Gerd Moellmann <gerd@gnu.org>
11794
11795 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11796 overlays have changed.
11797 (redisplay_window): Case cursor movement. Don't try it if
11798 last_cursor.vpos is out of range.
11799
11800 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11801 way, the display optimization for the line containing the cursor
11802 is used more frequently, esp. when we have a blinking cursor.
11803 (display_line): Don't set this_line_.* variables.
11804
11805 * xterm.c (x_redraw_cursor): Removed.
11806 (x_display_and_set_cursor): Set cursor type depending on
11807 cursor_off_p flag of window.
11808
11809 * dispnew.c (redraw_cursor_hook): Removed.
11810 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11811 member of the selected window.
11812
11813 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11814
11815 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11816 Return glyph area under x/y.
11817 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11818
11819 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11820 after redisplaying.
11821
118221998-07-05 Gerd Moellmann <gerd@gnu.org>
11823
11824 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11825 are all outside of a line of text.
11826 (redisplay_internal): Use it.
11827
118281998-06-30 Gerd Moellmann <gerd@gnu.org>
11829
11830 * xdisp.c (next_element_from_buffer): After skipping over
11831 invisible text, look for the `glyph' property.
11832 (set_iterator_stop_pos): Ignore check positions in front
11833 of an iterator's current position.
11834
11835 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11836 anymore or which are marked as not having valid contents.
11837
11838 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11839 realized faces if new attribute value is equal to old value.
11840
118411998-06-29 Gerd Moellmann <gerd@gnu.org>
11842
11843 * xfaces.c (Finternal_make_lisp_face): Increment
11844 lface_id_to_name_size when lface_id_to_name is reallocated.
11845
118461998-06-27 Gerd Moellmann <gerd@gnu.org>
11847
11848 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11849 as minimum of endpos and overlay_pos.
11850 (load_overlay_strings): Set next_overlay_pos of iterator to
11851 -1 if we don't have to check for more overlay strings.
11852
118531998-05-09 Gerd Moellmann <gerd@gnu.org>
11854
11855 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11856 do anything if iterator is at ZV because scan_buffer doesn't
11857 work otherwise.
11858
11859 * xterm.c (x_encode_char): Inline it.
11860 (x_get_char_font_and_encoding): Simplified.
11861 (x_per_char_metric): Inline it.
11862
11863 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11864
11865 * xdisp.c (get_next_display_element): Check for end of relief
11866 face moved here from next_element_from_buffer.
11867
11868 * xterm.c (x_produce_image_glyph): Add relief thickness.
11869 (x_produce_stretch_glyph): Ditto.
11870
118711998-05-08 Gerd Moellmann <gerd@gnu.org>
11872
11873 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11874 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11875
11876 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11877 from a glyph property.
11878 (x_produce_glyphs): Use it.
11879
11880 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11881
427ec082 11882 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11883 in text area.
11884 (x_produce_glyphs): Ditto.
11885
427ec082 11886 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11887 marginal areas.
11888
427ec082 11889 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11890 background of an image glyph string.
427ec082 11891 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11892 the background of a glyph string.
11893 (x_draw_image_glyph_string_foreground): Draw the foreground of
11894 an image glyph string.
11895 (x_inverted_image_mask): Return the inverted mask of an image.
11896
11897 * xfns.c (x_draw_image): Removed.
11898
11899 * dispextern.h (struct image_type): Remove drawing function.
11900
11901 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11902
11903 * xdisp.c (get_next_display_element): In marginal areas, translate
11904 newlines, tabs, etc. like normal control characters.
11905
11906 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11907 and color.
11908 (free_realized_faces): Set frame garbaged.
11909
11910 * xfaces.c (syms_of_xfaces): Add defsubr for
11911 internal-lisp-face-attribute-values.
11912
119131998-05-07 Gerd Moellmann <gerd@gnu.org>
11914
11915 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11916 full.
11917 (x_produce_image_glyph): Set IT->nglyphs to 1.
11918 (x_draw_image_glyph_string): Use inverted mask to draw background.
11919
11920 * dispextern.h (struct image_type): Additional clipping rect
11921 parameters for drawing functions.
11922
427ec082 11923 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11924 a glyph string.
11925 (x_draw_image_glyph_string): Use it and pass the rect to the
11926 image drawing function.
11927
11928 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11929 first character with `glyph' property as image position. Set
11930 iterator back to that position as long as the image hasn't been
11931 consumed with set_iterator_to_next.
11932 (set_cursor_from_row): Accept when glyph with given position is
11933 not found in the row. Set cursor x to end of line in that case,
11934 so that we can hscroll.
11935 (redisplay_internal): Correct computation of delta by which
11936 positions have changed in redisplay optimization for cursor
11937 row of selected window.
11938
11939 * xdisp.c (display_line): Remove start_pos.
427ec082 11940 (display_line): Fix bug preventing display optimization for
26901792
DL
11941 cursor line of selected window.
11942 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11943 instead.
11944
11945 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11946 (update_text_area): Take glyph pixel width into account
11947 when trying to find a resync point.
11948 (row_equal_p): Compare glyphs in all areas.
11949
119501998-05-06 Gerd Moellmann <gerd@gnu.org>
11951
11952 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11953
11954 * dispextern.h (struct glyph_row): Use unsigned hash value.
11955
11956 * xdisp.c (display_line): Simplified and made faster by setting
11957 the cursor with set_cursor_from_row.
11958 (set_cursor_from_row): Handle rows of desired matrix.
11959
119601998-05-05 Gerd Moellmann <gerd@gnu.org>
11961
11962 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11963 with type != CHAR_GLYPH.
11964 (fill_iterator_from_glyph_property): Return void. Set
11965 method to next_element_from_image.
11966 (next_element_from_image): Dummy function for delivering a
11967 single image id.
11968 (set_iterator_to_next): Add method next_element_from_image.
11969 (redisplay_window): When recentering, and cursor vpos is -1
11970 after display, assume middle of window is in first line displayed
11971 in window, and display again.
427ec082 11972 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11973 the position of the first character having the glyph property.
11974
11975 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11976 * xfns.c (x_draw_image): Use it.
11977 * xterm.c (x_produce_image_glyph): Use it.
11978
11979 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11980
11981 * Makefile.in: Extraneous #define of LIBXPM removed.
11982
11983 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11984 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11985 stretch glyph.
11986 (x_compute_glyph_string_overhangs): Compute overhangs only
11987 for text glyph strings.
11988 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11989 (x_draw_glyph_string): Call it.
11990
11991 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11992 (struct glyph): Add sub-structure for stretchable glyphs.
11993 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11994
11995 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11996 #ifdef HAVE_FACES.
11997
11998 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11999
12000 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
12001 setup_iterator_from_glyph_property. Don't do it for terminal
12002 frames.
12003
12004 * xterm.c (x_produce_image_glyph): Produce glyph for image
12005 that can't be loaded.
12006
12007 * xfns.c (lookup_image): If image can't be loaded, set its
12008 width and height so that we can draw a rectangle.
12009 (x_draw_image): Draw a rectangle for images that don't have
12010 a pixmap.
12011 (make_image): Set hash value.
12012 (image_spec_equal_p): Use image_spec_value.
12013
12014 * xterm.c (expose_frame): Don't try to redraw if basic faces
12015 haven't benn realized yet.
427ec082 12016 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
12017 is not as tall as row.
12018
120191998-05-04 Gerd Moellmann <gerd@gnu.org>
12020
12021 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
12022 (LIBX)[HAVE_X11]: Add LIBXPM.
12023
12024 * xfns.c (xpm_image_p): Implementation of image type functions
12025 for XPM.
12026 (xpm_load): Ditto.
12027
12028 * dispextern.h (struct image): Add mask pixmap for XPM.
12029
12030 * xfns.c (x_draw_image): Handle images with masks.
12031
12032 * configure.in: --with-xpm added. Code detecting -lXpm added.
12033
12034 * config.in: Add HAVE_XPM.
12035
12036 * xfns.c (xbm_draw): Removed.
12037 (x_draw_image): Default implementation for drawing images.
12038 (xbm_keyword_index): Remove XBM_DEPTH.
12039 (xbm_format): Remove `:depth'.
12040 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 12041 (xbm_load_image_from_file): Added for the same reason.
26901792 12042
427ec082 12043 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
12044 glyph string.
12045 (x_draw_image_glyph_string): Pass ybase to image draw function.
12046
12047 * xfns.c (make_image): Set default baseline.
12048
12049 * xterm.c (x_produce_image_glyph): Compute ascent of image
12050 from its height and baseline percentage.
12051
12052 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
12053 (xbm_format): Add description for `:baseline'.
12054 (xbm_image_spec_from_file): Add keywords from original spec to
12055 result.
12056 (xbm_load): Set baseline of image.
12057 (xbm_image_p): Check range for baseline.
12058
12059 * dispextern.h (struct image): Add member baseline.
12060
12061 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
12062
12063 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
12064
12065 * xdisp.c (get_next_display_element): Do character translations
12066 only if delivering characters.
12067
120681998-05-03 Gerd Moellmann <gerd@gnu.org>
12069
427ec082 12070 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
12071 DISP_CHARACTER.
12072
12073 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
12074 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
12075
120761998-05-02 Gerd Moellmann <gerd@gnu.org>
12077
12078 * xfns.c (prepare_image_for_display): Set image timestamp.
12079 (clear_image_cache): Clear images if image's timestamp +
12080 Vimage_eviction_seconds is > now.
12081 (syms_of_xfns): New variables image-eviction-seconds, and
12082 image-types.
12083 (add_image_format): Add to image-types.
12084 (xbm_load): Support new image spec format.
12085 (x_alloc_image_color): Allocate a color for an image.
12086
12087 * dispextern.h (struct image): Add timestamp.
12088
12089 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
12090 vectors of bool-vectors.
12091 (xbm_lisp_object_from_file): Build new format image spec.
12092
120931998-05-01 Gerd Moellmann <gerd@gnu.org>
12094
12095 * xfaces.c (init_frame_faces): Initialize image cache.
12096 (free_frame_faces): Free it.
12097
12098 * xterm.c (x_delete_display): Don't free image cache.
12099
12100 * emacs.c (main): Call init_xfns.
12101
121021998-04-30 Gerd Moellmann <gerd@gnu.org>
12103
12104 * alloc.c (mark_object): Mark objects in image cache.
12105
427ec082 12106 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
12107 widget_store_internal_border_width.
12108
12109 * widget.c (widget_store_internal_border): Return void.
12110
12111 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12112 void.
12113 (init_x_parm_symbols): Return void.
12114 (x_report_frame_params): Ditto.
12115 (x_set_border_pixel): Ditto.
12116 (syms_of_xfns): Ditto.
12117 (x_destroy_all_bitmaps): Use xfree instead of free.
12118
12119 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12120
12121 * xterm.c (x_term_init): Initialize image_cache of display info.
12122 (x_delete_display): Free image cache.
12123
12124 * xterm.h (struct x_display_info): Add image_cache.
12125
12126 * xfns.c (make_image_cache): Allocate a new image cache.
12127 (free_image_cache): Free an image cache.
12128 (make_image): Allocate an image.
12129 (free_image): Free an image.
12130
12131 * dispextern.h (struct image): Structure describing an image.
12132 (struct image_cache): Structure describing an image cache.
12133
121341998-04-29 Gerd Moellmann <gerd@gnu.org>
12135
12136 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12137 non-zero if iterator is filled with something to return.
12138 (next_element_from_buffer): Immediately return if
12139 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12140 (next_element_from_string): Likewise.
12141
12142 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12143
12144 * dispextern.h (struct glyph): Add pixmap_id.
12145 (display_element_type): Add DISP_PIXMAP.
12146
12147 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12148 malloc/free.
12149
12150 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12151 (clear_face_cache): Call it.
12152
12153 * xterm.c (x_query_font): Don't look at empty font table slots.
12154 (x_compute_min_glyph_bounds): Likewise.
12155 (x_term_init): Initialize font_table to null.
12156 (x_load_font): Change allocation of font_info structures so
12157 that it is possible to free fonts.
12158
427ec082 12159 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
12160 Only free fonts from filled font table entries.
12161
12162 * xfaces.c (best_matching_font): Support use of scalable fonts.
12163 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12164
12165 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12166 and resy.
12167 * xterm.c (x_term_init): Compute resx and resy.
12168
12169 * xfaces.c (split_font_name): Don't reject scalable fonts.
12170
427ec082 12171 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
12172 in #if 0.
12173
12174 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12175 point size cannot be determined.
12176
12177 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12178 width over all fonts on a frame.
12179 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12180 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12181 macros.
12182
12183 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12184 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12185 (x_load_font): Use x_compute_min_char_bounds.
12186
12187 * xterm.h (struct x_display_info): New members smallest_char_width
12188 and smallest_font_height.
12189
121901998-04-28 Gerd Moellmann <gerd@gnu.org>
12191
12192 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12193 the same name if GC of face is zero.
12194
12195 * dispextern.h (struct face): Member non_ascii_gc removed.
12196
12197 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 12198 for characters < 0177 in default face. Prepare face for
26901792
DL
12199 display before returning it.
12200 (x_produce_glyphs): Use it->charset.
12201 (x_get_char_font_and_encoding): Simplified.
12202 (x_encode_char): Remove parameter `font'.
12203
12204 * xfaces.c (choose_face_font): If registry from charset symbol
12205 doesn't contain a `-', make it a pattern by appending "*-*".
12206
12207 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12208 glyph_check_pos computation to character boundary.
12209
122101998-04-27 Gerd Moellmann <gerd@gnu.org>
12211
12212 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12213
12214 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12215 ASCII face for a given Lisp face id.
12216
12217 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12218 account.
427ec082 12219 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
12220 new position is < original position.
12221 (check_iterator_glyph_property): Handle glyph property in strings.
12222 (next_element_from_string): Call above function.
12223 (next_element_from_display_vector): Handle faces in glyphs.
12224 (get_next_display_element): Set face_id of glyphs for
12225 control chars to zero.
12226
12227 * Makefile.in (term.o): Add dependency on dispextern.h.
12228
12229 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12230 (display_line): Handle marginal areas.
12231 (move_iterator_in_display_line_to): Likewise.
12232
12233 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12234
12235 * xfaces.c (face_at_buffer_position): Don't merge with nil
12236 text property.
12237 (face_at_string_position): Ditto.
12238
12239 * dispextern.h (struct display_iterator): Use a stack of saved
12240 values instead of saving check positions etc. individually.
12241
12242 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12243 maybe pop the iterator's stack.
12244 (save_iterator_settings): Push a value on iterator's stack.
12245 (get_overlay_strings_at_iterator_position): Use it.
12246 (restore_iterator_settings): Pop the stack.
12247 (set_iterator_to_next_overlay_string): Use it.
12248
12249 * xfaces.c (try_font_list): Use alternative font families.
12250
122511998-04-26 Gerd Moellmann <gerd@gnu.org>
12252
12253 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12254 font selection matches fonts.
12255 (Fface_font_sort_order): Return the font sort order.
12256 (best_matching_font): Find best matching font based on sort order.
12257 (cmp_font_names): Sort by given sort order.
12258
12259 * dispextern.h (struct display_iterator): New member faces_p.
12260 * xdisp.c (init_iterator): Initialize it->faces_p.
12261 (compute_face_at_iterator_string_position): Use it.
12262 (compute_face_at_iterator_position): Use it.
12263 (init_iterator): Use it.
12264 (display_mode_line): Ditto.
12265
12266 * xdisp.c (get_next_display_element): Put code choosing a face
12267 when the charset changes in #ifdef HAVE_FACES.
12268
427ec082 12269 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12270 lookup_face_for_charset.
12271
12272 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12273 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12274
122751998-04-25 Gerd Moellmann <gerd@gnu.org>
12276
12277 * xfaces.c (best_matching_font): Return the name of the best
12278 matching font in an array of font_name structures.
12279 (choose_face_font): Use it.
12280 (choose_face_fontset_font): Use it.
12281 (find_best_weight_font): If final font found has same weight as
12282 the font we started with, return the original font because it is a
12283 better match for the resolution of the display.
12284 (find_best_slant_font): Likewise.
12285 (merge_face_vector_with_property): Check more invalid attribute
12286 values.
12287 (lface_suitable_for_charset_p): Replaced by a macro with the same
12288 name in upper-case.
12289
122901998-04-24 Gerd Moellmann <gerd@gnu.org>
12291
12292 * dispextern.h (struct face): Member
12293 fontset_chosen_for_realization_p removed.
12294
12295 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12296 end of the collision list, so that we find more specific faces
12297 first.
12298 (lookup_face_for_charset): Look up a new face if face->fontset >=
12299 0, and charset != CHARSET_COMPOSITION.
12300
12301 * xfaces.c (split_font_name): Return zero if point size of font
12302 couldn't be computed.
12303 (realize_default_face): Use ASCII font of a fontset to determine
12304 font-related attributes of the default face.
12305 (face_fontset): Return fontset id for face family.
12306 (font_list): Additional parameter font_pattern. If non-nil,
12307 return fonts matching that pattern.
12308
123091998-04-23 Gerd Moellmann <gerd@gnu.org>
12310
12311 * xfaces.c (choose_face_fontset): If new fontset cannot be
12312 constructed, or fontset name cannot be split, return the id of the
12313 standard fontset.
12314
12315 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12316 When Emacs starts, it may be called for the initial frame which
12317 isn't an X frame.
12318
12319 * dispextern.h (struct face): New members foreground_defaulted_p,
12320 background_defaulted_p.
12321 (struct face): Members `mask' and `cache' removed.
12322
12323 * xfaces.c (load_color): Set them.
12324 (free_face_colors): Check them.
427ec082 12325 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12326 font unknown.
12327
12328 * xfaces.c (free_font): Removed.
12329 (load_face_font_or_fontset): Renamed from load_font.
12330 (load_face_font_or_fontset): Use message2 instead of signalling.
12331 (load_color): Likewise.
12332 (load_pixmap): Likewise.
12333
12334 * xterm.h (struct x_display_info): Add screen_dpi.
12335 * xterm.c (x_term_init): Initialize it.
12336 * xfaces.c (xlfd_point_size): Use it.
12337 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12338 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12339 similar to that of the frame appear first in the result.
12340
12341 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12342 is set for the face to cache, add it to the end of the collision
12343 list.
12344 (try_font_list): If fonts for given family and registry cannot
12345 be found, first try to keep the registry, and choose a different
12346 family.
12347 (choose_face_font): Allow nfonts == 0.
12348 (try_font_list): Give up if no font matches given registry.
12349
123501998-04-22 Gerd Moellmann <gerd@gnu.org>
12351
12352 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12353 font info id of the face.
12354
12355 * xfaces.c (load_font): Set font_info_id.
12356 (realize_face): Ditto.
12357
12358 * dispextern.h (struct face): Change member font_info to
12359 font_info_id.
12360
12361 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12362 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12363
12364 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12365 isn't ASCII, get the ASCII face before adding a space.
12366 (append_space): Likewise.
12367 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12368 to -1 so that it will compute the right face for the truncation
12369 glyphs.
12370
12371 * xfaces.c (realize_face): Set
12372 face->fontset_chosen_for_realization_p.
12373 (lookup_face_for_charset): If fontset wasn't specified originally
12374 and new charset != CHARSET_COMPOSITION, get a new face for that
12375 charset.
12376
12377 * dispextern.h (struct face): New member
12378 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12379 realize_face has chosen a fontset to display composite characters
12380 for a Lisp face not specifying a fontset.
12381
12382 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12383 face and line already filled here. Don't do anything if current
12384 face hasn't a relief or has a background equal to the frame
12385 background.
12386
12387 * xfaces.c (split_font_name): Additional parameter numeric_p.
12388 Don't compute numeric values if it is non-zero.
12389 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12390 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12391 font whose name cannot be split into fields.
12392
123931998-04-21 Gerd Moellmann <gerd@gnu.org>
12394
427ec082 12395 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12396 possibly using less restrictive patterns.
12397 (choose_face_font): Use it.
12398
12399 * xterm.c (x_get_char_font_and_encoding): For charset !=
12400 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12401
12402 * dispextern.h (struct face): New member font_info.
12403
12404 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12405 specifying a fontset as well as those not having a fontset.
12406 (free_font): Make it empty.
12407 (realize_face): Use changed load_font.
12408
12409 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12410 fit for charset, get the right one.
12411
12412 * xfaces.c (load_font): Take frame and name parameter, return
12413 font.
12414 (free_font): Likewise.
12415 (split_font_name): Compute numeric values for height, swidth etc.
12416 (cmp_font_names): Use them.
12417 (find_best_width_font): Ditto.
12418 (find_best_height_font): Ditto.
12419 (find_best_weight_font): Ditto.
12420 (find_best_slant_font): Ditto.
12421 (lface_hash): Add weight, slant, swidth and relief to hash value.
12422 (lface_equal_p): Make it faster.
12423 (lface_from_symbol): Use assq_no_quit.
12424 (Fnote_default_face_changed): Removed.
12425 (cmp_font_names): Use strcmp instead of xstricmp.
12426 (face_charset_registries): Removed.
12427
124281998-04-20 Gerd Moellmann <gerd@gnu.org>
12429
12430 * frame.h (CHECK_FRAME): Give this macro a statement form.
12431 (CHECK_LIVE_FRAME): Ditto.
12432
12433 * xfaces.c (find_best_width_font): Find the best matching font
12434 for a given width.
12435 (find_best_height_font): Likewise for height.
12436 (find_best_weight_font): Likewise for weight.
12437 (find_best_slant_font): Likewise for slant.
12438 (choose_face_font): Use them.
12439 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12440 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12441 global face attributes.
12442
12443 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12444 Lisp face attributes.
12445
124461998-04-19 Gerd Moellmann <gerd@gnu.org>
12447
12448 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12449 and :italic for compatibility.
12450 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12451 :bold and :italic. Handle boolean resource values for
26901792
DL
12452 :underline and :italic.
12453
12454 * xfns.c (display_x_get_resource): Make it externally visible.
12455
12456 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12457 If that frame is non-null, return the frame-local face.
12458 (Finternal_make_lisp_face): Additional frame argument.
12459 (lface_attributes): Get face attributes from global and frame-local
12460 definitions.
12461 (Finternal_lisp_face_equal_p): Additional frame argument.
12462 (merge_lisp_face_vector_with_property): Ditto.
12463 (Frealize_basic_faces): Removed.
12464 (Finternal_get_lisp_face_attribute): Additional frame argument.
12465 (Finternal_lisp_face_p): Ditto.
12466 (load_color) [MSDOS]: Removed because it isn't clear how
12467 to do this for MS-DOS.
12468
12469 * xfaces.c (lface_from_symbol): Get global face definition
12470 from face-global-alist.
12471
12472 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12473 as values for :underline and :inverse-video.
12474 (Finternal_set_lisp_face_attribute): Allow nil values.
12475
124761998-04-17 Gerd Moellmann <gerd@gnu.org>
12477
12478 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12479
12480 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12481 (Finternal_make_lisp_face): Add new face to Vall_faces.
12482
12483 * xdisp.c (echo_area_display): Remove code recomputing faces.
12484 (redisplay_internal): Ditto.
12485 (init_iterator): Do it here.
12486
12487 * xfaces.c (choose_face_font): Check that swidth doesn't change
12488 for subusequent attributes.
12489 (xlfd_point_size): Return int.
12490
12491 * xdisp.c (redisplay_internal, echo_area-display): If realized
12492 faces have been cleared, call recompute_basic_faces.
12493
12494 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12495 face_attributes_changed_p.
427ec082 12496 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12497 all frames.
12498 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12499
12500 * xdisp.c (redisplay_internal): If face attributes have been
12501 changed since the last redisplay, recompute basic faces.
12502 (echo_area_display): Ditto.
12503
12504 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12505
12506 * xfaces.c (min_char_bounds): If face cache not yet present,
12507 don't try to get font dimensions from faces.
12508
12509 * xterm.c (x_frame_mode_line_height): If face cache not present
12510 set, return default height.
12511
12512 * alloc.c (mark_face_cache): Check for null faces. Correct
12513 index bug.
12514
12515 * dispextern.h (struct face): Renamed from struct rface. Member
12516 underline renamed underline_p. Make it a bit-field.
12517
12518 * xfaces.c (init_frame_faces): Allocate face cache.
12519 (free_frame_faces): Free face cache.
12520 (recompute_basic_faces): Realize basic faces only if face cache is
12521 allocated, i.e. after init_frame_faces has been called.
12522
12523 * frame.c (make_frame): Initialze face cache with null.
12524
12525 * xfaces.c (same_size_fonts): Removed.
12526
427ec082 12527 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12528 s->gc != 0.
12529 (x_set_mouse_face_gc): Ditto.
12530 (x_set_mode_line_face_gc): Ditto.
12531
427ec082
SS
12532 * xfaces.c (realize_default_face): Return int. Value is
12533 zero if frame params don't contain enough information to
26901792
DL
12534 realize the default face.
12535 (realize_basic_faces): Ditto.
12536 (init_frame_faces): Realize basic faces.
12537
12538 * xfns.c (x_set_font): First store real font name in frame
12539 parameters, then call recompute_basic_faces.
12540
12541 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12542
125431998-04-16 Gerd Moellmann <gerd@gnu.org>
12544
12545 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12546
12547 * xfns.c (Fx_face_fixed_p): Removed.
12548 (Fx_list_fonts): Moved to xfaces.c.
12549
12550 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12551 face_at_buffer_position. Parameter charset removed; always
12552 compute face for CHARSET_ASCII.
12553 (face_at_string_position): Renamed from
12554 compute_face_at_string_pos. Parameter charset removed; always
12555 compute for CHARSET_ASCII.
427ec082 12556 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12557 face_cache.
12558 (lookup_face): Ditto.
12559 (compute_char_face): Renamed from compute_glyph_face.
12560
12561 * xdisp.c (init_iterator): Initialize charset member.
12562 (reseat_iterator_to_string): Ditto.
12563 (get_charset_at_buffer_position): Determine charset at
12564 buffer position in current_buffer.
12565 (reseat_iterator): Call above function.
12566 (compute_face_at_iterator_position): Call
12567 compute_face_at_buffer_pos.
12568 (compute_face_at_iterator_string_position): Call
12569 compute_face_at_string_pos.
12570 (get_face_from_id): Removed.
12571 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12572 Call get_charset_at_buffer_position.
12573 (reseat_iterator): Determine face if charset at pos differs
12574 from iterator's charset.
12575 (reseat_iterator_to_glyph_pos): Removed.
12576
12577 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12578 Determine charset from buffer position.
12579 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12580 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12581
12582 * dispextern.h (struct display_iterator): Add member charset.
12583
125841998-04-15 Gerd Moellmann <gerd@gnu.org>
12585
12586 * xfaces.c (compute_char_face): Removed.
12587
12588 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12589 with new parameter list.
12590
12591 * xfaces.c (region_face): Removed.
12592 (allocate_face): Removed.
12593 (copy_face): Ditto.
12594 (face_eql): Removed.
12595 (intern_face): Removed.
12596 (clear_face_cache): Removed.
12597 (load_font): Ditto.
12598 (unload_font): Ditto.
12599 (load_color): Ditto.
12600 (unload_color): Ditto.
12601 (new_computed_face): Ditto.
12602 (intern_computed_face): Ditto.
12603 (ensure_face_ready): Ditto.
12604 (merge_faces): Ditto.
12605 (compute_base_face): Ditto.
12606 (merge_face_list): Ditto.
12607 (Fmake_face_internal): Removed.
12608 (Fset_face_attribute_internal): Ditto.
12609 (face_name_id_number): Removed.
12610 (Fframe_face_alist): Ditto.
12611 (Fset_frame_face_alist): Ditto.
12612 (Finternal_next_face_id): Ditto.
12613
12614 * xterm.h (struct x_output): Remove computed_faces, and
12615 param_faces. Remove macros accessing them.
12616
12617 * xfaces.c: Entirely new face implementation added.
12618
126191998-04-11 Gerd Moellmann <gerd@gnu.org>
12620
12621 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12622 `charpos'.
12623
126241998-04-10 Gerd Moellmann <gerd@gnu.org>
12625
12626 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12627 scroll bar window to reduce flickering. Clear entire height.
12628
12629 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12630 current_x and hpos to zero after moving to previous line
12631 start.
12632
126331998-04-03 Gerd Moellmann <gerd@gnu.org>
12634
12635 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12636
12637 * xfaces.c (xlfd_point_size): Compute relative point size of
12638 fonts from font and frame resolution.
12639 (sort_fonts): New function to sort fonts, temporarily setting
12640 font_frame to the frame in effect.
12641 (xlfd_point_size): Take additional frame parameter to be able
12642 to get at the display's resolution.
12643
12644 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12645 BLACK_PIX_DEFAULT.
12646 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12647 screen of display.
12648
126491998-03-31 Gerd Moellmann <gerd@gnu.org>
12650
12651 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12652
12653 * fontset.h: Add external declarations for Vfontset_alias_alist
12654 and Vglobal_fontset_alist.
12655
12656 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12657 (realize_default_face): If frame parameters contain an artificial
12658 font name naming a fontset, set the family of the default face to
12659 the fontset name given by the registry.
12660
12661 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12662
126631998-03-22 Gerd Moellmann <gerd@gnu.org>
12664
12665 * alloc.c (mark_object): Add function prototype. Add cast to
12666 Lisp_Object pointer in call to mark_object for symbol names
12667 because this otherwise gives a warning from gcc 2.8.1.
12668 (mark_face_cache): Mark Lisp objects in realized faces.
12669
126701998-03-19 Gerd Moellmann <gerd@gnu.org>
12671
12672 * frame.h (struct frame): Add member face_cache.
12673
12674 * alloc.c (mark_object): Mark face cache.
12675 (mark_face_cache): Mark Lisp faces in face cache of frame.
12676
12677 * frame.c (make_frame): Initialize face_cache.
12678 (Fdelete_frame): Free it.
12679
126801998-03-18 Gerd Moellmann <gerd@gnu.org>
12681
12682 * xfaces.c: Very first skeleton of functions for face realization,
12683 face merging, face cache etc.
12684
12685 * dispextern.h (struct rface): Realized faces. Will replace
12686 struct face when tested.
12687 (struct face_cache): Realized face caches.
12688
12689 * xdisp.c (init_iterator): Initialize area member of display
12690 iterator.
12691
126921998-03-17 Gerd Moellmann <gerd@gnu.org>
12693
12694 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12695
12696 * dispextern.h (struct display_iterator): New member area.
12697
12698 * xterm.c (note_overwritten_text_cursor): Note when the text
12699 cursor of a window is overwritten.
12700
12701 * xdisp.c (set_cursor_from_row): If PT is not found in the
12702 row, display the cursor at the start of the row.
12703
12704 * dispnew.c (direct_output_forward_char): Call
12705 set_cursor_from_row.
12706
12707 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12708 position is not in an overlay string, set iterator's position and
12709 method explicitly so.
427ec082 12710 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12711 Make it externally visible.
12712 (redisplay_window): Call set_cursor_from_row so that there is only
12713 one place where the cursor position is calculated from a current
12714 row.
12715
12716 * dispextern.h (struct display_iterator): New member
12717 overlay_strings_at_end_processed_p.
12718
12719 * xdisp.c (check_iterator): Perform sanity checks on
12720 display_iterators.
12721 (next_element_from_buffer): Check for overlay strings at ZV.
12722
127231998-03-16 Gerd Moellmann <gerd@gnu.org>
12724
12725 * buffer.c (init_buffer_once): Add left_margin_width and
12726 right_margin_width to buffer_local_flags.
12727
12728 * dispnew.c (margin_glyphs_to_reserve): Function computing
12729 number of glyphs to reserve for a marginal area.
12730 (adjust_glyph_matrix): Call it.
12731 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12732 is not alive.
12733
12734 * window.c (Fset_window_margins): Allow floats.
12735
12736 * buffer.c (syms_of_buffer): Add buffer-local variables
12737 left-margin-width and right-margin-width. Add defaults
12738 default-left-margin-width and default-right-margin-width.
12739
12740 * buffer.h (struct buffer): New members left_margin_width
12741 and right_margin_width.
12742
12743 * window.c (Fset_window_margins): Make window the last and
12744 optional argument.
12745
12746 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12747 flag no_marginal_areas_p differently.
12748 (x_clear_end_of_line): Ditto.
12749 (x_draw_glyph_string_relief): Compute width of relief differently
12750 for rows with flag no_marginal_areas_p.
12751
12752 * dispnew.c (update_window_line): Update marginal areas only
12753 for rows that don't have no_marginal_areas_p set.
12754
12755 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12756 (display_menu_bar): Ditto.
12757
12758 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12759
12760 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12761 marginal areas in window-based redisplay.
12762
12763 * dispextern.h (struct glyph_matrix): New members
12764 left_margin_glyphs and right_margin_glyphs.
12765
127661998-03-15 Gerd Moellmann <gerd@gnu.org>
12767
12768 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12769
12770 * charset.c (non_ascii_char_to_string): Use char type parameters
12771 because the function is used that way from outside. Use unsigned
12772 char internally.
12773
12774 * window.c (change_window_height): Return void.
12775 (make_dummy_parent): Return void.
12776 (init_window_once): Return void.
12777 (syms_of_window): Ditto.
12778 (keys_of_window): Ditto.
12779 (delete_window): Correct return with and without value.
12780
12781 * buffer.c (record_buffer): Return void.
12782
12783 * marker.c (unchain_marker): Return void.
12784
12785 * window.c (unshow_buffer): Return void.
12786 (replace_window): Ditto.
12787 (delete_window): Ditto.
12788
12789 * term.c (delete_glyphs_hook): Void return type.
12790 (ring_bell_hook): Ditto.
12791 (set_terminal_window_hook): Ditto.
12792
12793 * sysdep.c (init_sigio): Return void.
12794
12795 * xterm.c (x_set_window_size): Return void.
12796 (x_calc_absolute_position): Ditto.
12797 (x_set_offset): Ditto.
12798 (x_focus_on_frame): Ditto.
12799 (x_unfocus_frame): Ditto.
12800 (x_make_frame_visible): Ditto.
12801 (x_make_frame_invisible): Ditto.
12802 (x_iconify_frame): Ditto.
12803 (x_destroy_window): Ditto.
12804 (x_wm_set_window_state): Ditto.
12805 (x_wm_set_icon_pixmap): Ditto.
12806 (x_wm_set_icon_position): Ditto.
12807 (x_initialize): Ditto.
12808 (x_error_quitter): Ditto.
12809 (x_destroy_window): Use xfree instead of free.
12810
12811 * keyboard.c (clear_waiting_for_input): Return void.
12812
12813 * xterm.c (x_wm_set_size_hint): Return void.
12814 (x_raise_frame): Ditto.
12815 (refreshicon): Ditto.
12816 (x_error_catcher): Ditto.
12817 (x_clear_errors): Ditto.
12818
12819 * keyboard.c (record_asynch_buffer_change): Return void.
12820
bb6677a8
GM
12821 The first line of the following paragraph was garbled for an
12822 unknown reason. It couldn't be fully reconstructed.
178c5d9c 12823
bb6677a8 12824 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12825 (x_lower_frame): Ditto.
12826 (x_scroll_bar_clear): Ditto.
12827 (XTflash): Add default case in switch for -Wall.
12828 (construct_mouse_click): Return Qnil.
12829 (cancel_mouse_face): Return void.
12830 (x_queue_event): Use xmalloc instead of malloc.
12831 (x_unqueue_events): Use xfree instead of free.
12832
12833 * ccl.c (ccl_driver): Return int.
12834
12835 * keyboard.c (stop_polling): Return void.
12836 (start_polling): Ditto.
12837
12838 * term.c (keys): Add braces in initializer list for -Wall.
12839
12840 * sysdep.c (tabs_safe_p): Return int.
12841 (init_baud_rate): Return void.
12842
12843 * xterm.c (x_draw_bitmap): Add default case.
12844 (x_setup_relief_colors): Use DefaultScreen instead of
12845 DefaultScreenOfDisplay.
12846 (x_delete_glyphs): Return void.
12847 (construct_menu_click): Put in #if 0 because it isn't called.
12848
12849 * xdisp.c (load_overlay_strings): Remove extraneous argument
12850 in call to qsort.
12851 (get_overlay_arrow_glyph_row): Add missing return value.
12852
12853 * window.c (set_window_height): Return void.
12854 (set_window_width): Ditto.
12855
12856 * sysdep.c (request_sigio): Return void.
12857 (unrequest_sigio): Ditto.
12858 (get_frame_size): Ditto.
12859
12860 * scroll.c (scroll_cost): Return int.
12861 (do_line_insertion_deletion_costs): Return void.
12862
12863 * frame.c (Fdelete_frame): Use xfree instead of free.
12864
12865 * fileio.c (report_file_error): Return void.
12866
12867 * dispnew.c: Make compilable with -Wall.
12868 * term.c: Ditto.
12869
12870 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12871
128721998-03-14 Gerd Moellmann <gerd@gnu.org>
12873
12874 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12875 increased.
12876 (x_setup_relief_color): Free color only for appropriate visual
12877 classes.
12878
12879 * xterm.c (expose_window): Fix calculation of intersection of mode
12880 line rectangle with exposed rectangle.
12881
12882 * xdisp.c (redisplay_window): Don't do cursor movement based
12883 on current matrix if w->last_point is not valid.
12884
128851998-03-09 Gerd Moellmann <gerd@gnu.org>
12886
12887 * xterm.c (expose_line): Redraw mode line and menu lines
12888 differently because they reach into the scroll bar area.
12889
12890 * xdisp.c (redisplay_window): If redisplaying with same window
12891 start, don't accept cursor on partially visible line.
12892
128931998-03-08 Gerd Moellmann <gerd@gnu.org>
12894
12895 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12896 for wider mode lines.
12897 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12898
12899 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12900 scroll bar width for mode lines.
12901
12902 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12903 vertical scroll bar width in width calculation so that we can
12904 display mode lines wider.
12905
12906 * xdisp.c (redisplay_window): Restore buffers before returning
12907 when fonts have changed.
12908
12909 * dispnew.c (update_window): Mark invisible rows in the current
12910 matrix invalid.
12911
12912 * xdisp.c (try_window_id): Force update of first row displayed
12913 at window end.
12914 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12915
129161998-03-05 Gerd Moellmann <gerd@gnu.org>
12917
12918 * dispextern.h (struct glyph_row): Member max_ascent renamed
12919 ascent. Member max_descent replaced by height.
12920 (struct display_iterator): Member max_descent replaced by height.
12921 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12922
12923 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12924 class makes it unnecessary or dangerous.
12925
12926 * xdisp.c (redisplay_window): Case only point has changed, and
12927 point has moved forward. Move forward over overlay strings.
12928 (display_line): Don't set cursor if first glyph from PT is part of
12929 a continuation line.
12930
129311998-02-21 Gerd Moellmann <gerd@gnu.org>
12932
12933 * xdisp.c (start_display): When computing continuation lines
12934 width, add current_x to the continuation lines width because
12935 move_iterator_to will stop in front of the buffer position moved
12936 to.
12937
129381998-02-20 Gerd Moellmann <gerd@gnu.org>
12939
12940 * xdisp.c (redisplay_window): Don't try try_window_id if
12941 windows_or_buffers_changed.
12942
12943 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12944 determine a color.
12945 (x_setup_relief_color): Allocate/ change one relief.
12946 (x_setup_relief_colors): Call above function.
12947
12948 * xterm.h (struct relief): New structure type holding relief info:
12949 GCs, colors, and whether colors are allocated.
12950
427ec082 12951 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12952 produces the same color, try adding a delta to RGB values.
12953 (x_setup_relief_colors): Free color cells.
12954
427ec082 12955 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12956 black_relief_pixel holding the foreground colors allocated for
12957 relief GCs. New members white_allocated_p, black_allocated_p.
12958
12959 * xterm.c (x_scroll_run): Don't set updated_window to null.
12960 This resets updated_window when called from scrolling_window.
12961
12962 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12963
26901792
DL
12964 * xterm.c (x_scroll_run): Additional window parameter. Set
12965 and reset updated_window.
12966
12967 * dispnew.c (line_dance_hook): Additional window parameter.
12968
12969 * xdisp.c (try_window_reusing_current_matrix): Don't call
12970 update_window_begin/end here. The end function would display the
12971 cursor on a wrong position and the additional functionality of
12972 update_window_begin is not needed anyway. Just set
12973 updated_window.
12974 (try_window_id): Ditto.
12975
12976 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12977 Don't redraw cursor during redisplay.
12978
12979 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12980
12981 * xdisp.c (redisplay_window): For window-based redisplay, alway
12982 try try_window_id.
12983
12984 * xterm.c (struct glyph_string): New member two_byte_p that is
12985 non-zero if 16-bit drawing functions must be used.
12986 (x_fill_composite_glyph_string): Set it.
12987 (x_fill_glyph_string): Set it.
12988 (x_draw_glyph_string_foreground): Use it.
12989 (x_draw_vertical_border): Make line 1 pixel less tall.
12990 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12991 side by 1 pixel if window is not right-most hasn't vertical scroll
12992 bars.
12993 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12994 out of bounds.
12995 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12996 hl == DRAW_CURSOR.
12997
12998 * xdisp.c (start_display): Check that window start is at line
12999 start if GLYPH_DEBUG != 0.
13000
13001 * window.c (window_scroll_pixel_based): Move assertion to
13002 start_display.
13003
130041998-02-19 Gerd Moellmann <gerd@gnu.org>
13005
427ec082 13006 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
13007 frame hasn't the focus.
13008
13009 * window.c (make_window): Initialize dy.
13010 (replace_window): Ditto.
13011
13012 * window.h (window): New member dy specifying the amount by which
13013 a window is scrolled "smoothly".
13014
13015 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 13016 y-position because it can be negative.
26901792
DL
13017 (x_draw_row_bitmaps): Don't clear with negative y-position like
13018 above.
13019 (x_clear_end_of_line): Same theme as above.
13020
13021 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
13022 exact match exists, the nearest existing color. Patterned after
13023 defined_color.
13024 (x_alloc_lighter_color): Allocate a color that is lighter or
13025 darker than a given color by a specified factor.
427ec082 13026 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
13027 the background color of a glyph string face.
13028 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
13029
13030 * xfns.c (x_make_gc): Don't allocate relief GCs.
13031 * widget.c (create_frame_gcs): Don't allocate relief GCs.
13032 (setup_frame_gcs): Don't change relief GCs.
13033
13034 * xterm.h (struct x_output): New member relief_background giving
13035 the background pixel color for which relief GCs can be used.
13036 Set by x_setup_relief_colors.
13037
13038 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
13039 for mode and menu lines.
13040
13041 * xdisp.c (set_next_iterator_stop_pos): No longer static.
13042
13043 * dispnew.c (direct_output_for_insert): Call
13044 set_next_iterator_stop_pos after having changed it2.endpos.
13045
130461998-02-17 Gerd Moellmann <gerd@gnu.org>
13047
13048 * dispnew.c (update_window): Work on selected_window, only.
13049
13050 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
13051 hpos is >= number of glyphs in the cursor row.
13052
13053 * xdisp.c (try_window_id): Bug fix; update_window_end was not
13054 called.
13055
130561998-02-16 Gerd Moellmann <gerd@gnu.org>
13057
13058 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
13059 and menu lines.
13060
13061 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
13062 enough glyphs to display a mode line or menu line which draws over
13063 flags areas.
13064
13065 * xterm.c (XTset_vertical_scroll_bar): Use
13066 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
13067 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 13068 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
13069 or menu.
13070 (x_set_glyph_string_clipping): Set clipping differently if drawing
13071 a mode line or menu line.
13072
13073 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
13074
13075 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
13076 menu lines.
13077 (x_scroll_bar_create): Don't clear flags areas.
13078 (x_draw_row_bitmaps): Clear visible row height, only.
13079
13080 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
13081
130821998-02-15 Gerd Moellmann <gerd@gnu.org>
13083
13084 * dispnew.c (direct_output_for_insert): When checking for tabs in
13085 the line, set it2.endpos to ZV.
427ec082 13086
26901792
DL
13087 * window.h (struct window): New member cursor_off_p.
13088 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
13089 for X.
13090 * dispnew.c (redraw_cursor_hook): If non-null, function that can
13091 be called to display or erase the cursor.
13092 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
13093 or selected_window.
13094
13095 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
13096
13097 * dispnew.c (update_window_line): Special handling of inverse
13098 lines in #if 0 removed.
13099
13100 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
13101 (x_insert_glyphs): Renamed from XTinsert_glyphs.
13102 (x_clear_frame): Renamed from XTclear_frame.
13103 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
13104 (x_ins_del_lines): Renamed from XTins_del_lines.
13105 (x_change_line_height): Renamed from XTchange_line_height.
13106 (x_delete_glyphs): Renamed from XTdelete_glyphs.
13107 (x_clear_cursor): Renamed from clear_cursor.
13108 (x_update_begin): Renamed from XTupdate_begin.
13109 (x_update_end): Renamed from XTupdate_end.
13110 (x_update_window_begin): Renamed from XTupdate_window_begin.
13111 (x_update_window_end): Renamed from XTupdate_window_end.
13112 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13113 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13114 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13115 (x_produce_special_glyphs): Implementation in #if 0 removed.
13116
13117 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13118 flag in the dump.
13119
13120 * dispnew.c (update_text_area): Handling of glyphs with pixel
13121 width zero removed. Decrement desired stop pos if desired row
13122 fills its line.
13123
13124 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13125 width zero removed.
13126 (BUILD_GLYPH_STRINGS): Set glyph string flag
13127 extends_to_end_of_line_p based on row's flag fill_line_p and face
13128 background and stipple. Make sure it works for composite characters.
13129
13130 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13131 fill_line_p. For window-based redisplay, add a space only if
13132 the row is empty so that we know the face to draw.
13133
13134 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13135 means draw the face of the last glyph in the text area to the
13136 right end of the text area.
13137
13138 * xdisp.c (init_iterator): Show region in window mini-buffer
13139 window refers to.
13140
427ec082 13141 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
13142 region_showing_p removed. Test for region_beg > 0 instead.
13143
13144 * dispnew.c (update_text_area): Clear to end of line if cursor is
13145 beyond the end of the desired line. Necessary because we don't
13146 have a phys_cursor_glyph with which to erase the cursor. We don't
13147 have one because this method of drawing a cursor doesn't work with
13148 lbearing/rbearing.
13149
13150 * xterm.c (XTinsert_glyphs): Block input.
13151
131521998-02-14 Gerd Moellmann <gerd@gnu.org>
13153
13154 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13155 glyph strings.
13156 (x_draw_glyph_string_background): Fill background with background
13157 pixel for the first glyph of a composite character.
13158
13159 * xdisp.c (try_window): Change return type to int. Value is zero
13160 if fonts were loaded during redisplay.
13161 (redisplay_window): Return if fonts have been loaded during
13162 redisplay.
13163 (append_space): New parameter default_face_p.
13164
131651998-02-13 Gerd Moellmann <gerd@gnu.org>
13166
13167 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13168 don't let a partially visible line in a current matrix stay
13169 enabled.
13170
131711998-02-09 Gerd Moellmann <gerd@gnu.org>
13172
13173 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13174 in #if PROMPT_IN_BUFFER.
13175
13176 * xdisp.c (display_line): If row ends in ZV, make the space
13177 that is added to place the cursor on it appear in default face.
13178
427ec082 13179 * xterm.c (expose_area): New function redrawing a single
26901792
DL
13180 glyph row area.
13181 (expose_line): Use it to redraw all areas of a row.
13182
13183 * dispextern.h (move_operation_enum): New enum
13184 move_operation_enum.
13185
13186 * window.c (window_scroll_pixel_based): Remove now unnecessary
13187 code that made sure that it->current_y doesn't become negative.
13188
13189 * xdisp.c (move_iterator_in_display_line_to): New parameter
13190 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13191 (move_iterator_to): Ditto.
13192
13193 * dispextern.h (struct glyph_matrix): New member window_width.
13194
13195 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13196 case of changing window height.
13197
13198 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 13199 border to the left.
26901792
DL
13200
13201 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13202 says this aspect of Emacs is currently redesigned.
13203
13204 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13205 have to draw a vertical border.
13206
13207 * window.c (window_scroll_pixel_based): When scrolling down by
13208 screen-fulls, make sure it.current_y doesn't get negative because
13209 this would confuse move_iterator_vertically.
13210
13211 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13212 the case continuation lines are involved.
13213 (try_window_id): Don't set the cursor into scroll margins.
13214
132151998-02-08 Gerd Moellmann <gerd@gnu.org>
13216
13217 * xterm.c (x_append_glyph): Don't compute left_overhang and
13218 right_overhang.
13219 (XTproduce_glyphs): left_overhang and right_overhang removed.
13220 Set it->glyph_row->contains_overlapping_glyphs_p.
13221
13222 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13223 and right_overhang removed.
13224
13225 * dispextern.h (struct glyph_row): New member
13226 contains_overlapping_glyphs_p used to optimize glyph drawing.
13227 (struct display_iterator): left_overhang and right_overhang
13228 removed.
13229 (struct glyph): Ditto.
13230
13231 * xterm.c (x_draw_relief): Removed.
13232 (x_draw_bitmap): Renamed from draw_bitmap.
13233 (x_draw_glyphs): Completely new implementation of draw_glyphs
13234 capable of handling arbitrary lbearing and rbearing values.
13235 Several sub-functions not mentioned here.
13236
132371998-01-30 Gerd Moellmann <gerd@gnu.org>
13238
13239 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 13240 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
13241 other cases.
13242 (draw_glyphs): Move start to the left and end to the right if they
427ec082 13243 overlap with previous or following characters.
26901792 13244 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 13245 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
13246 character under the cursor would be invisible.
13247 (x_draw_bar_cursor): Don't draw over previous character if it
13248 has right_overhang.
13249
13250 * window.c (get_phys_cursor_glyph): Return the glyph under a
13251 window's physical cursor.
427ec082 13252
26901792
DL
13253 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13254 (x_draw_bar_cursor): Ditto.
13255 (x_erase_phys_cursor): Ditto.
13256 (x_phys_cursor_in_rect_p): Ditto.
13257 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13258
13259 * window.c (make_window): Remove reference to phys_cursor_glyph.
13260 (replace_window): Ditto.
13261
13262 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13263 now always a glyph present for placing the cursor on it in
26901792
DL
13264 each glyph row, even at the end of a line.
13265
13266 * xdisp.c (append_space): Function to add a space to an iterators
13267 glyph row.
13268 (display_line): Add spaces at the end of lines that are used to
13269 place the cursor on them.
13270 (compute_line_metrics): If row consists of a space only that was
427ec082 13271 added to place the cursor on it, use that space's height as the
26901792
DL
13272 line height.
13273
132741998-01-29 Gerd Moellmann <gerd@gnu.org>
13275
13276 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13277 glyphs.
13278
132791998-01-28 Gerd Moellmann <gerd@gnu.org>
13280
13281 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13282 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13283
13284 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13285 right_overhang.
26901792
DL
13286 (struct display_iterator): Ditto.
13287
13288 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13289 glyphs have different ascent or descent than original row.
13290
13291 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13292 row->max_descent only if unknown.
13293 (display_line): Compute row->max_ascent and row->max_descent.
13294 (display_string): Ditto.
13295
13296 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13297 phys_cursor_descent.
26901792
DL
13298
13299 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13300 (x_draw_hollow_cursor): Ditto.
13301 (x_erase_phys_cursor): Ditto.
13302 (x_display_and_set_cursor): Set them.
13303 (x_append_glyph): Don't set glyph members that were removed.
13304
13305 * dispextern.h (struct glyph): Members ascent, descent,
13306 contributes_to_line_height_p removed.
13307
133081998-01-25 Gerd Moellmann <gerd@gnu.org>
13309
13310 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13311 names for face ids of frame default face and mode line face.
13312
13313 * xdisp.c (compute_face_at_iterator_string_position): If
13314 displaying a mode line use MODE_LINE_FACE_ID instead of
13315 DEFAULT_FACE_ID.
13316
13317 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13318 (display_string): Ditto, additional parameter lisp_string.
13319 (display_line): Call display_string with Lisp mini-buffer prompt
13320 string.
13321 (display_menu_bar): Call display_string with Lisp string.
13322 (display_mode_element): Ditto.
13323 (next_element_from_string): Make it work for non-overlay Lisp
13324 strings with field width and precision.
13325
13326 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13327 PROMPT_IN_BUFFER.
13328
13329 * xfaces.c (compute_string_char_face): Fix face computation
13330 for overlay strings.
13331
13332 * xdisp.c (struct overlay_entry): Add member after_string_p.
13333 (load_overlay_strings): Simplify.
13334
13335 * window.c (delete_window): Defer glyph matrix adjustment.
13336 (Fsplit_window): Ditto.
13337 (change_window_height): Ditto.
13338 (Fset_window_configuration): Ditto.
13339 (Fset_window_margins): Ditto.
13340 * frame.c (set_menu_bar_lines): Ditto.
13341 (Fmake_terminal_frame): Ditto.
13342 * dispnew.c (change_frame_size_1): Ditto.
13343
133441998-01-24 Gerd Moellmann <gerd@gnu.org>
13345
13346 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13347
427ec082 13348 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13349 position has overlay strings.
13350
13351 * xdisp.c (display_line): Don't set cursor if row ends in middle
13352 of overlay string.
13353 (Fdump_redisplay_state): Print complete row start and end
13354 position.
13355 (redisplay_window): Cursor movement when matrix hasn't changed---
13356 if PT < last_point, maybe move forward if row ends at PT and
13357 in middle of char.
13358
13359 * minibuf.c (read_minibuf): Save the value of
13360 minibuffer_prompt_length in minibuf_save_list.
13361 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13362
13363 * xdisp.c (redisplay_window): Add assertion for cursor movement
13364 case, PT < last_point.
13365 (move_iterator_in_display_line_to): If to_pos specified, move
13366 over before-strings.
13367
13368 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13369 start.string_index > 0.
13370
13371 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13372 is set. Retry redisplay if fonts_changed_p is set before update.
13373
13374 * xterm.c (x_load_font): Set fonts_changed_p.
13375
13376 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13377
13378 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13379
13380 * xdisp.c (try_window): Check fonts_changed_p.
13381 (try_window_reusing_current_matrix): Ditto.
13382 (try_window_id): Ditto.
13383
13384 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13385 (fonts_changed_p): Flag indicating a font change since the last
13386 glyph matrix adjustment.
13387
13388 * xterm.c (x_per_char_metric): Use font->max_bounds as
13389 char metric of the font's default char if the default char
13390 hasn't per char metric itself.
13391
13392 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13393 for font change.
13394 (min_char_bounds): Check face->font != NULL.
427ec082 13395 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13396 case of invalid min_bounds contents.
13397 (min_char_bounds): Call font_min_bounds.
13398
133991998-01-22 Gerd Moellmann <gerd@gnu.org>
13400
13401 * xdisp.c (start_display): Don't set it->prompt_width if
13402 PROMPT_IN_BUFFER.
13403 (move_iterator_in_display_line_to): Ditto.
13404 (display_line): Don't display prompt via display_string if
13405 PROMPT_IN_BUFFER.
13406
13407 * minibuf.c (Fminibuffer_prompt_width): Return value from
13408 current_buffer if PROMPT_IN_BUFFER.
427ec082 13409 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13410 mini-buffer and make it read-only.
13411 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13412 minibuffer_prompt_length instead of BEGV.
13413 (Fminibuffer_complete_word): Ditto.
13414 (Fminibuffer_complete_word): Ditto.
13415
13416 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13417 is less than mini-buffer prompt width, use prompt width as start.
13418
13419 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13420 position is less than mini-buffer prompt width, use the prompt
13421 width as start.
13422
13423 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13424 end of prompt if applied to a mini-buffer and BEG reached.
13425
134261998-01-21 Gerd Moellmann <gerd@gnu.org>
13427
13428 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13429 length to start position.
13430
13431 * buffer.c (Fget_buffer_create): Initialize
13432 minibuffer_prompt_length.
13433 (Fmake_indirect_buffer): Ditto.
13434 (Fkill_buffer): Ditto.
13435
13436 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13437 if PROMPT_IN_BUFFER.
13438
134391998-01-19 Gerd Moellmann <gerd@gnu.org>
13440
13441 * xdisp.c (next_element_from_string): Make it work for arbitrary
13442 Lisp strings.
13443 (set_iterator_to_next): Advance to next overlay string only
13444 if it->string is an overlay string.
13445
13446 * dispextern.h (struct display_iterator):
13447 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13448
427ec082 13449 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13450 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13451
13452 * xdisp.c (next_element_from_string): Renamed from
13453 next_element_from_overlay_string.
427ec082 13454 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13455 compute_face_at_iterator_overlay_string_position.
13456
13457 * dispextern.h (struct display_iterator): Member overlay_string
13458 renamed string.
13459
13460 * xdisp.c (next_element_from_c_string): Renamed from
13461 next_element_from_string.
13462
13463 * dispextern.h (struct glyph_pos): Reversed meaning of
13464 overlay_string_index and string_index.
13465
13466 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13467 this function always return the first character of an overlay
13468 string.
13469
134701998-01-18 Gerd Moellmann <gerd@gnu.org>
13471
13472 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13473 forced or new pos > next_invisible_check_pos.
13474 (redisplay_window): Don't try same window start if PT < window
13475 start.
13476 (move_iterator_vertically): Bug fix satisfying post-condition
13477 when ZV is reached and no newline in front.
13478 (move_iterator_vertically_backward): New implementation.
13479 (move_iterator_vertically_backward): Bug fixes.
13480
13481 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13482 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13483 (adjust_glyphs_for_font_change): Always adjust.
13484
13485 * dispnew.c (struct dim): Use int.
13486
13487 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13488 (allocate_face): Initialize it.
13489 (load_font): Use XLoadQueryFont again instead of x_load_font.
13490 (unload_font): Use XFreeFont again.
13491 (min_char_bounds): Iterate over fonts of faces. Use frame's
13492 font sizes as default. Remove parameter except_last_font_p.
13493
13494 * dispextern.h (struct face): Add font_name.
13495
134961998-01-17 Gerd Moellmann <gerd@gnu.org>
13497
13498 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13499 to start of line if ending at ZV and no newline in front.
13500 (move_iterator_to): If to_y specified, always first move to x = 0,
13501 so that move stops at line start instead of line end. This is
13502 probably what callers would expect to happen.
13503
13504 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13505 can handle different line heights.
13506 (window_scroll_line_based): Formerly window_scroll.
13507 (window_scroll): Call both.
13508
13509 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13510 (move_iterator_in_display_line_to): Ditto.
13511 (display_line): Ditto.
13512
13513 * minibuf.c (read_minibuf): Conditionally insert prompt into
13514 buffer instead of handling prompts specially. Change other
13515 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13516
13517 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13518 upper window. Optimize calls to xrealloc if same width.
13519
13520 * xdisp.c (redisplay_window): Don't use
13521 try_window_reusing_current_matrix if window scroll functions
13522 exist.
13523
13524 * dispextern.h (struct display_iterator): Member
13525 redisplay_end_trigger_p removed.
13526
13527 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13528 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13529
135301998-01-16 Gerd Moellmann <gerd@gnu.org>
13531
13532 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13533 nil. Optimize truncate-lines t and moving backward.
13534 (move_iterator_to_previous_visible_line_start): Contains the heart
13535 of the previous set_iterator_to_previous_visible_line_end. Don't
13536 reseat the iterator. Used by move_iterator_by_lines.
13537 (set_iterator_to_previous_visible_line_start): Call function
13538 above.
13539 (move_iterator_in_display_line_to): Check TO_POS before doing
13540 anything else. Otherwise to_pos == PT would move to x of PT+1.
13541
13542 * indent.c (Fvertical_motion): Use display_iterator.
13543
13544 * xdisp.c (move_iterator_by_lines): New function moving by screen
13545 lines.
13546 (redisplay_window): Use it.
13547 (move_iterator_to): Correct branch of to_vpos specified.
13548 (move_iterator_vertically_backward): Increment nlines after having
13549 backed up over some lines because the last line was not backed up
13550 over.
13551 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13552 calculate it->vpos and it->current_y relative to this row.
427ec082 13553 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13554 have a big effect and it is complex.
13555 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13556
135571998-01-15 Gerd Moellmann <gerd@gnu.org>
13558
13559 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13560 join nicely. Lines with widths > 2 don't join nicely under X.
13561 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13562 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13563 width 1; remove references to relief_gc_line_width.
13564 * xfns.c (x_make_gc): Ditto.
13565
13566 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13567 if relief changes.
13568 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13569 to get a relief because they can be negative.
13570
13571 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13572 positions are for the middle of lines under X.
13573
13574 * xdisp.c (try_window_id): Always search for the cursor by setting
13575 w->cursor.vpos = -1. Search in unchanged rows at the top and
13576 bottom if cursor not found in displayed lines.
427ec082 13577 (display_mode_line): First extend face, then set right shadow
26901792
DL
13578 flag. Otherwise the wrong glyph gets the right shadow.
13579
13580 * dispnew.c (direct_output_for_insert): Give up if line contains
13581 a tab. The number of spaces inserted for a tab changes if we
13582 insert glyphs in front of it.
13583
13584 * xterm.c (x_list_fonts): Changes undone because the Lisp
13585 implementation for make-face-smaller, make-face-larger, and
13586 make-face-fixed can do without them.
13587
13588 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13589 inserted.
13590
13591 * xdisp.c (try_window_id): First compute beg_unchanged, then
13592 compare with window start pos.
13593
13594 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13595 fixed-width font.
13596 (syms_of_xfns): defsubr for x-face-fixed-p.
13597
13598 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13599 enabled, don't do anything because this row will be newly drawn
13600 anyway and because we can additionally no longer determine the row
13601 height.
13602
13603 * xdisp.c (display_line): Bug fix cursor positioning.
13604
13605 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13606 removed. x-list-fonts.c is now obsolete.
13607 (Qfixed, Qvariable): Moved here from xfaces.c.
13608
136091998-01-14 Gerd Moellmann <gerd@gnu.org>
13610
13611 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13612 FETCH_BYTE for truncated lines.
13613 (display_line): Set cursor differently.
13614 (display_line): Fixed bug setting last_pos_on_this_line wrong
13615 for truncated lines.
13616
13617 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13618 redisplay.
13619
13620 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13621
13622 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13623 assertion that character dimensions are not zero.
13624
13625 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13626 input is blocked.
13627
13628 * xdisp.c (decode_mode_spec): Faster implementation of line number
13629 display.
13630
13631 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13632 bitmaps if bitmaps don't fill the entire area.
13633 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13634
427ec082 13635 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13636 pixel height of flags bitmaps.
13637
13638 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13639 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13640
13641 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13642 in pixels of a flags area of a frame.
13643 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13644 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13645 occupied by a flags area.
13646
136471998-01-13 Gerd Moellmann <gerd@gnu.org>
13648
13649 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13650 window_end_valid.
13651
13652 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13653 GLYPH_DEBUG != 0.
13654
13655 * xdisp.c (display_line): Correct wrong calculation of row->x for
13656 the case of nglyphs == 1.
13657 (hscroll_window_tree): Renamed from hscroll_windows.
13658 (hscroll_windows): New function calling hscroll_window_tree that
13659 clears desired matrices on a frame when hscroll has been changed.
13660 (redisplay_p): Global flag set during redisplay.
13661 (redisplay_internal): Set and clear redisplay_p.
13662
13663 * xfaces.c (min_char_bounds): Add assertion that width and height
13664 are not zero at the end. Initialize *height and *width to -1,
13665 instead of using BITS_PER_SHORT. If font has min_bounds.width
13666 zero, use its max_bounds.width.
13667
13668 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13669 width and height.
13670
136711998-01-12 Gerd Moellmann <gerd@acm.org>
13672
13673 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13674 changed. Don't clear desired matrices.
13675
13676 * xdisp.c (hscroll_windows): Compute pt after setting
13677 current_buffer.
13678 (redisplay_window): Don't do cursor movement based on current
13679 matrix if just_this_one_p is zero.
13680
13681 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13682 specifying that fixed-width, variable-width fonts or both
26901792
DL
13683 should be returned.
13684
13685 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13686 (syms_of_xfaces): Initialize them.
13687
13688 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13689 cached information.
13690
136911998-01-11 Gerd Moellmann <gerd@acm.org>
13692
13693 * xdisp.c (display_mode_line): Extend face to end of line.
13694
13695 * xdisp.c (echo_area_display): Don't call display_string with
13696 echo_area_glyphs_length == 0 which would mean infinite precision.
13697 (redisplay_internal): Adjust window_end_vpos if necessary.
13698
136991998-01-07 Gerd Moellmann <gerd@acm.org>
13700
13701 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13702
137031998-01-05 Gerd Moellmann <gerd@acm.org>
13704
13705 * xdisp.c (get_row_start_continuation_line_width): Removed.
13706 (init_iterator_to_row_start): Set it.current_x from row.
13707 (try_window_id): Set it.continuation_lines_width directly from
13708 row.
13709
13710 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13711 selected_window.
13712 (hscroll_windows): Center cursor in window.
13713 (hscroll_windows): Call move_iterator_in_display_line_to.
13714
137151998-01-04 Gerd Moellmann <gerd@acm.org>
13716
13717 * xdisp.c (hscroll_windows): Check hscroll < 0.
13718 (redisplay_window): Allow quick cursor movement if overlay arrow
13719 but frame uses window-based redisplay.
13720 (display_line): Take special case for nglyphs == 1 out of #if 0.
13721 (display_line): Set row->ends_at_zv_p after the loop displaying
13722 glyphs because ZV can be in truncated text.
13723 (hscroll_windows): Use init_iterator_to_row_start.
13724
13725 * dispnew.c (scrolling_window): Calculation of overlapping
13726 runs fixed.
13727 (row_equal_p): Compare continued_p and continuation_line_p.
13728
137291998-01-02 Gerd Moellmann <gerd@acm.org>
13730
13731 * xterm.c (x_get_mode_line_face_gc): Renamed from
13732 x_get_modeline_face_gc.
13733
13734 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13735 buffer position to look for text properties.
13736 (get_face_from_cursor_pos): Use it.
13737 (compute_face_at_iterator_position): Use it.
13738 (next_element_from_buffer): Use it.
13739
13740 * dispnew.c (scrolling_window): Decrement run's y-position
13741 when extending it backwards.
13742
13743 * xterm.c (do_line_dance): Don't ever copy more than window height.
13744
137451998-01-01 Gerd Moellmann <gerd@acm.org>
13746
13747 * xdisp.c (redisplay_window): Cursor motion in unchanged
13748 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13749 (init_iterator_to_next_row_start): Special handling of lines
13750 ending in middle of char removed.
13751 (hscroll_windows): Hscroll windows only if window_end_valid is not
13752 nil.
13753 (try_window_reusing_current_matrix): Call hscroll_windows.
13754 (init_iterator_to_row_start): Initialize iterator for display
13755 starting at a position given by a glyph_row->start.
13756 (redisplay_window): Don't use vmotion because it gives wrong
13757 results if lines are continued and variable width fonts are used.
13758
427ec082 13759 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13760 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13761 the middle of a character.
427ec082 13762 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13763 the middle of a character.
13764
13765 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13766 it.
13767 (next_element_from_display_vector): Use it->dpvec_index.
13768 (reseat_iterator): Reset it.
13769 (init_iterator): Reset it.
13770 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13771 it->pos.dpvec_index from a glyph_pos structure.
13772 (init_iterator_from_glyph_pos): Call the function above.
13773 (reseat_iterator_to_glyph_pos): Ditto.
13774
13775 * dispnew.c (direct_output_forward_char): Don't use this method at
13776 overlay boundaries or near invisible text.
13777 (direct_output_forward_char): Step through glyph row to find
13778 cursor position.
13779
427ec082 13780 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13781 frame font if line height differs from font height.
13782
13783 * xdisp.c (set_iterator_to_next): Renamed from
13784 move_iterator_forward to avoid confusion with other move_.*
13785 functions.
13786
13787 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13788
137891997-12-31 Gerd Moellmann <gerd@acm.org>
13790
13791 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13792 same naming convention as for other GC functions.
13793 (draw_glyphs): Don't fill background when drawing a cursor and
13794 font height is less than line height.
13795
137961997-12-30 Gerd Moellmann <gerd@acm.org>
13797
13798 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13799 init_iterator_.*.
13800
13801 * xdisp.c (move_iterator_forward): Restore it->len from
13802 it->dpvec_char_len if dpend reached.
13803 (get_next_display_element): Don't consume translated char
13804 prematurely.
13805 (display_line): Don't set this_.* variables if row is continued.
13806 (start_display): Move to start of continuation line if ending
13807 up at end of continued line.
13808
13809 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13810
13811 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13812 checking TO_X and continuation lines.
13813 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13814 of a continued line, don't consider this line as unchanged because
13815 it may no longer be continued.
13816
138171997-12-29 Gerd Moellmann <gerd@acm.org>
13818
13819 * xdisp.c (try_window_id): Catch the case that moving over
13820 continuation lines moves first_unchanged_at_end_row to a row not
13821 displaying text.
13822
13823 * dispextern.h (struct glyph_row): New member
13824 continuation_lines_width. Member continuation_line_p removed.
427ec082 13825 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13826 continuation line.
13827 * xdisp.c (display_line): Set row->continuation_lines_width.
13828 (get_row_start_continuation_line_width): Set continuation lines
13829 width of iterator from continuation lines width of glyph row.
13830 (get_row_start_continuation_line_width): Make it inline.
13831 (set_window_cursor): Make it inline.
13832 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13833 (Fdump_redisplay_state): Ditto.
427ec082 13834
26901792
DL
13835 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13836 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13837
13838 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13839 after determining the continuation lines width for
13840 last_unchanged_at_beg_row.
13841
13842 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13843
13844 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13845 which support faces.
13846 (init_display_iterator): Ditto.
13847 (move_iterator_via_matrix): Skip over truncation glyph at the row
13848 start on terminal frames.
13849 (hscroll_windows): Choose hscroll margin differently for window
13850 system and terminal frames.
13851
138521997-12-28 Gerd Moellmann <gerd@acm.org>
13853
13854 * xdisp.c (hscroll_windows): Change hscroll of windows.
13855 (redisplay_internal): Call it.
13856
427ec082 13857 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13858 doesn't fit completely on the line.
13859 (direct_output_forward_char): Give up for non-ASCII chars.
13860 (direct_output_forward_char): Set redisplay_performed_directly_p.
13861
13862 * dispextern.h (struct display_iterator): Make first_visible_x
13863 and last_visible_x ints; this is for very long truncated lines.
13864
13865 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13866 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13867 positioning problems with the mouse.
13868 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13869 >= it->last_visible_x instead of >.
13870 (display_line): Ditto.
13871
13872 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13873 loaded.
13874 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13875 non-ASCII chars differently. Always produce 1 glyph for composite
13876 chars. If font not found, use CHARSET_WIDTH to calculate width of
13877 non-ASCII chars.
13878 (x_get_char_font_and_encoding): Return null if font could not be
13879 loaded. Reset font to null if fontset could not be loaded.
13880 (draw_glyphs): Fill background if font not found.
13881 (draw_glyphs): Unused parameter just_foreground_p removed. New
13882 parameter composite_glyph.
13883 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13884 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13885 draw_glyphs when calling it recursively for composite chars.
13886
138871997-12-27 Gerd Moellmann <gerd@acm.org>
13888
13889 * xterm.c: Patches from handa.etl.go.jp integrated.
13890 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13891 find a font_info.
13892
13893 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13894 for nglyphs == 1.
13895
13896 * xterm.c (x_draw_relief): Draw relief lines.
13897 (draw_glyphs): Call x_draw_relief.
13898
138991997-12-26 Gerd Moellmann <gerd@acm.org>
13900
13901 * xfns.c (x_make_gc): Create relief GC's.
13902
13903 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13904 (setup_frame_gcs): Initialize them.
13905 (EmacsFrameDestroy): Free them.
13906
427ec082 13907 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13908 last_unchanged_at_beg_row is continued or a continuation line.
13909 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13910 (redisplay_window): Case point has changed, and it has not
26901792
DL
13911 moved off the frame. Don't increment row if PT equals the row
13912 end if the row ends in ZV.
13913
13914 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13915 (expose_line): Call it.
13916 (x_after_update_window_line): Call it.
13917
13918 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13919 reached.
13920
13921 * xterm.c (x_after_update_window_line): Draw continuation line
13922 bitmap.
13923
13924 * dispnew.c (update_window_line): Call
13925 after_update_window_line_hook when row's continuation_line_p
13926 changes.
13927
13928 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13929
13930 * xdisp.c (display_line): Handle continued lines on window system
13931 frames differently since continuation glyphs are not displayed.
13932 (move_iterator_in_display_line_to): Ditto.
13933 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13934 into account.
13935 (move_iterator_vertically_backward): Handle dy == 0 specially.
13936 (redisplay_window): Catch the case of small windows when
13937 recentering where moving back window_height/2 moves us beyond the
13938 top of the display area of the window.
13939
139401997-12-18 Gerd Moellmann <gerd@acm.org>
13941
13942 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13943 dvpos removed.
13944
139451997-12-17 Gerd Moellmann <gerd@acm.org>
13946
13947 * dispnew.c (direct_output_forward_char): Correct new cursor
13948 x-position.
13949
139501997-12-16 Gerd Moellmann <gerd@acm.org>
13951
13952 * xterm.c (x_after_update_window_line): Remove unused parameters.
13953 (XTclear_end_of_line): Clear to display_height instead of
13954 display_height - 1.
13955
13956 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13957 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13958 rows have different y-positions, or different height.
13959
139601997-12-14 Gerd Moellmann <gerd@acm.org>
13961
13962 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13963
13964 * window.c (coordinates_in_window): Call frame_mode_line_height.
13965
13966 * xterm.c (x_draw_3d_border): Removed.
13967 (x_draw_row_borders): Removed.
13968
13969 * dispnew.c (update_window): References to
13970 FRAME_MODE_LINE_BORDER_WIDTH removed.
13971
13972 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13973 (FRAME_MODE_LINE_HEIGHT): Removed.
13974
13975 * xterm.c (draw_3d_borders_p): Removed.
13976 (draw_glyphs): Ditto.
13977 (XTwrite_glyphs): Ditto.
13978 (expose_line): Ditto.
13979 (x_initialize): Ditto.
13980
13981 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13982 frame_mode_line_height.
13983
13984 * term.c (frame_mode_line_height): Get the pixel height of a
13985 frame's mode line.
13986 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13987 versions.
13988
26901792
DL
13989 * xterm.c (x_initialize): Set the hook.
13990 (XTframe_mode_line_height): X version of frame_mode_line_height.
13991
13992 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13993 output buffer.
13994 (display_string): Don't add right truncation mark if line ends in
13995 padding space.
13996 (init_display_iterator): If called with modeline_p non-zero, set
13997 face_id to 1, which is the id of the mode line face.
13998
13999 * keyboard.c (cmd_error_internal): Write to stderr if selected
14000 frame is Vterminal_frame under X. This is the case when a font
14001 cannot be loaded when Emacs starts. Replace test for
14002 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
14003
14004 * xfaces.c (compute_overlay_string_char_face): Compute the
14005 face of a character in an overlay string.
14006 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 14007 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
14008 Use it.
14009
14010 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
14011 set_iterator_to_next_overlay.
14012 (struct overlay_entry): Structure used to sort overlay strings.
14013 (compare_overlay_entries): Compare overlay strings.
14014 (load_iterator_with_overlay_strings): Load a chunk of overlay
14015 strings.
14016 (get_overlay_strings_at_iterator_position): Call it.
14017 (next_element_from_overlay_string): Set it->object to the overlay
14018 string. Prepare for setting it->position to a string position.
14019 (get_overlay_strings_at_iterator_position): Renamed from
14020 get_overlays_at_iterator_position.
14021 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
14022 chunks of overlay strings.
14023 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
14024
14025 * dispextern.h (struct display_iterator): New vector
14026 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
14027 overlays and n_overlays.
14028 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
14029 renamed to string_index.
14030
140311997-12-13 Gerd Moellmann <gerd@acm.org>
14032
14033 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
14034 when allocating a vector.
14035 (release_iterator): Removed.
14036 (restore_iterator): Removed.
14037 (copy_iterator): Removed.
14038
140391997-12-08 Gerd Moellmann <gerd@acm.org>
14040
14041 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
14042 clearing a mini-buffer window that is not active.
14043 (redisplay_window): Do not scroll one line too early when last
14044 window line is completely visible.
14045 (init_display_iterator): Leave some room to display the cursor
14046 after the last glyph on a continued line.
14047
14048 * xterm.h (struct x_output): trunc_area_extra renamed
14049 flags_areas_extra.
14050 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
14051
14052 * dispnew.c (update_window_line): Call
14053 after_update_window_line_hook when current row is not enabled
14054 which is the case after a frame has been cleared.
14055
14056 * xdisp.c (display_mode_line): Reset row flags for truncation
14057 on right side for the mode line.
14058
14059 * xterm.c (bitmap_type): Type of bitmap to display in flags
14060 area of frame.
14061 (x_after_update_window_line): Use the enum.
14062 (draw_bitmap): Ditto.
14063
140641997-12-07 Gerd Moellmann <gerd@acm.org>
14065
14066 * xterm.c (x_clip_to_row): Include width of both flag areas.
14067 (do_line_dance): Ditto.
14068 (expose_window_tree): Ditto.
14069 * dispnew.c (update_window_line): Call
14070 after_update_window_line_hook for right truncation and continuation.
14071 * xdisp.c (init_display_iterator): Don't subtract width of
14072 continuation glyphs for window-based redisplay.
14073 * xterm.c (draw_bitmap): Draw continuation bitmap.
14074 * widget.c (set_frame_size): Double trunc_area_extra.
14075 (EmacsFrameSetCharSize): Ditto.
14076 * xfns.c (x_figure_window_size): Ditto.
14077 * xterm.c (x_set_window_size): Ditto.
14078 (x_after_update_window_line): Draw right truncation mark.
14079
14080 * xterm.c (draw_glyphs): Bug fix buffer overrun.
14081
14082 * window.h: Include blocker around dispextern.h removed.
14083
14084 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 14085
26901792
DL
14086 * dispextern.h (struct display_iterator): Former ovstr made a
14087 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
14088 next_ovstr_invisble_check_pos; check at these positions for
14089 face changes and changes in invisible text property.
14090 (struct glyph_pos): Former ovlen now overlay_string_index.
14091
14092 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
14093 overlay_string.
14094 (set_iterator_to_next_overlay_string): Set overlay_string and
14095 pos.overlay_string_index.
14096 (get_overlays_at_iterator_position): Use overlay_string and
14097 overlay_string_index.
14098 (next_element_from_overlay_string): Use overlay_string and
14099 overlay_string_index.
14100 (move_iterator_forward): Increment overlay_string_index.
14101 (try_window_id): Use overlay_string and overlay_string_index.
14102 (move_iterator_forward): At end of dpvec, maybe use method
14103 next_element_from_overlay_string for the case a character from an
14104 overlay string was translated via a display table.
14105 (reseat_iterator_to_string): Take a Lisp string.
14106 (display_string): Pass a Lisp string to reseat_iterator_to_string.
14107 (compute_face_at_iterator_overlay_string_position): Compute face
14108 based on text properties for an overlay string.
14109 (next_element_from_overlay_string): Check invisible and face text
14110 properties.
178c5d9c 14111
26901792
DL
14112 (set_iterator_to_next_overlay_string): Restore face id before
14113 overlay strings when no more overlay strings are found to return.
14114 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 14115
bb6677a8
GM
14116 A line in the following paragraph was garbled for an unknown
14117 reason. It couldn't be fully reconstructed.
178c5d9c 14118
bb6677a8 14119 (compute_base_face): Made public.
26901792
DL
14120 (merge_face_list): Ditto.
14121 (intern_computed_face): Ditto.
14122
427ec082 14123 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
14124 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14125 of row is > instead of >= last_y.
14126
14127 * buffer.h (overlays_at): Function prototype.
14128
14129 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14130 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14131
427ec082 14132 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
14133 memory of a display_iterator.
14134 (copy_iterator): Copy an iterator.
14135 (restore_iterator): Restore an iterator from a backup copy.
14136 (global): Use the functions above.
14137 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14138 * dispnew.c (direct_output_for_insert): Call release_iterator.
14139
14140 * dispextern.h (struct display_iterator): Allocate overlays
14141 vector dynamically.
14142
141431997-12-06 Gerd Moellmann <gerd@acm.org>
14144
14145 * Makefile.in (window.o): Depends on dispextern.h.
14146
14147 * buffer.c (overlays_at): Make it work when extending vectors
14148 and an initial vector of zero size.
14149
14150 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14151 from set_cursor_to_previous_visible_line_end.
14152 (set_iterator_to_next_visible_line_start): Renamed from
14153 set_cursor_to_next_visible_line_end.
14154 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14155 (compute_face_at_iterator_position): Renamed from
14156 compute_cursor_face.
14157 (set_iterator_to_next_overlay_string): Renamed from
14158 cursor_to_next_overlay_string.
14159 (get_overlays_at_iterator_position): Renamed from
14160 get_overlays_for_cursor.
14161 (reseat_iterator): Renamed from reseat_cursor.
14162 (setup_iterator_overlays_from_glyph_pos): Renamed from
14163 setup_overlays_from_pos.
14164 (init_string_iterator): Renamed from init_string_cursor.
14165 (get_next_display_element): Renamed from next_display_element.
14166 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 14167 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
14168 dynamically.
14169
14170 * xdisp.c: display_cursor renamed display_iterator.
14171 * dispextern.h: Ditto.
14172 * dispnew.c: Ditto.
14173
141741997-12-01 Gerd Moellmann <gerd@acm.org>
14175
14176 * window.c (mark_window_cursors_off): Function comment added.
14177 (window_topmost_p, window_rightmost_p): Removed because not used.
14178
141791997-11-30 Gerd Moellmann <gerd@acm.org>
14180
14181 * emacs.c (main): Function prototypes removed in profiling code.
14182 Use safe_bcopy as start of text.
14183
14184 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14185 mirrored_make_current -> make_current.
14186
14187 * xdisp.c: (store_frame_title_char): New function to store a
14188 single character for the frame title with re-allocation of
14189 frame_title_buf.
14190 (init_xdisp): Intialize frame_title_.* variables to null.
14191
14192 * dispnew.c (quit_error_check): Removed.
14193
14194 * eval.c (Fsignal): Call to quit_error_check removed.
14195 * keyboard.c (quit_throw_to_read_char): Ditto.
14196
141971997-11-23 Gerd Moellmann <gerd@acm.org>
14198
14199 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14200 to mean a zero relief.
14201
26901792
DL
142021997-11-19 Gerd Moellmann <gerd@acm.org>
14203
14204 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14205 unconditionally.
14206 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14207 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14208 (check_glyph_memory): Define function body unconditionally.
14209
142101997-11-17 Gerd Moellmann <gerd@acm.org>
14211
14212 * dispnew.c (scrolling_window): Alternative version of this
14213 function removed.
14214
142151997-11-16 Gerd Moellmann <gerd@acm.org>
14216
14217 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14218 of height CANON_Y_UNIT.
14219 * dispextern.h: Prototype for that function.
427ec082 14220 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
14221 produce empty rows. Use make_empty_enabled_row instead.
14222
14223 * dispnew.c (scrolling_window): New version using diff-like
14224 algorithm activated.
427ec082 14225
26901792
DL
142261997-11-15 Gerd Moellmann <gerd@acm.org>
14227
14228 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14229 (clear_desired_matrices): Ditto.
14230 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14231 for menu_bar_window.
14232
14233 * alloc.c (mark_object): Mark menu_bar_window of frames.
14234
14235 * xterm.c (XTupdate_window_end): Don't display cursor if
14236 pseudo_window_p.
14237
14238 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14239 set mini_p.
14240 (update_window): Don't set cursor if pseudo_window_p.
14241
14242 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14243
14244 * window.h (struct window): New flag pseudo_window_p set to
14245 1 for windows that aren't really part of the window tree, like
14246 menu_bar_window's of frames.
14247 * window.c (make_window): Initialize it.
14248 (replace_window): Ditto.
14249 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14250
14251 * frame.c (make_frame): Initialize menu_bar_window to nil.
14252
14253 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14254 FACE_RELIEF
14255
14256 * xfaces.c (copy_face): shadow_thickness -> relief.
14257 (face_eql): Ditto.
14258 (merge_faces): Ditto.
14259 (compute_base_face): Ditto.
14260 (Fset_face_attribute_internal): Ditto.
14261 * dispextern.h (struct face): Ditto.
14262
14263 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14264 it is non-nil.
14265
14266 * xdisp.c (display_menu_bar): Display the menu bar in
14267 f->menu_bar_window if appropriate.
14268 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14269
14270 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14271 dummy window and window matrices for f->menu_bar_window.
14272 (free_glyphs): Free the dummy window and its glyph matrices.
14273
14274 * frame.h (struct frame): New member menu_bar_window.
14275
142761997-11-09 Gerd Moellmann <gerd@acm.org>
14277
14278 * dispnew.c (scrolling_window): New version with diff-like
14279 algorithm.
14280
14281 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14282 old_start always start displaying at start of
14283 first_row_to_display. The previous scheme failed if the last row
14284 was fully visible.
14285
14286 * dispnew.c (update_window): Remove cost calculations. Remove
14287 redundant preempt_count calculations.
14288
14289 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14290 differently.
14291
14292 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14293
427ec082 14294 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14295 WITH_MARGINAL_AREAS is defined.
14296
427ec082 14297 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14298 removed.
14299
14300 * dispnew.c (scrolling): Call line_hash_code because hash values
14301 are not set in the frame matrix.
14302
14303 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14304 (redisplay_window): Check line_ins_del_ok before calling
14305 try_window_id.
14306 (try_window_reusing_current_matrix): Give up for terminal frames
14307 if window is not full width or we cannot insert/delete lines.
14308 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14309 frames.
14310
14311 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14312 Lisp_Object to mark_object.
14313
14314 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14315 window rows have the same glyph pointers.
14316 (try_window_id): Call it.
14317
14318 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14319 a glyph matrix.
14320 (mark_object): Call it.
14321
14322 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14323 truncations.
14324 (display_line): Ditto.
14325 (display_line): Ditto for DISP_CONTINUATION.
14326 (display_line): Truncation on right: test current_x >
14327 last_visible_x.
14328 (skip_in_display_line_to): Ditto.
14329 (skip_via_matrix): Stop skipping in glyph row at face extending
14330 glyphs or at padding spaces.
14331
14332 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14333
14334 * xdisp.c (display_line): Use glyph->object == 0 for padding
14335 glyphs.
14336 (redisplay_window): Don't let cursor move over padding
14337 spaces.
14338
14339 * dispextern.h (struct glyph): Fix comment for object.
14340
143411997-11-08 Gerd Moellmann <gerd@acm.org>
14342
14343 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14344 has a mode line.
14345 * xdisp.c (redisplay_window): Use it.
14346 (display_mode_line): Check that window wants mode line.
14347
143481997-11-03 Gerd Moellmann <gerd@acm.org>
14349
14350 * xdisp.c (display_menu_bar): Enable menu bar rows.
14351
14352 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14353 (x_erase_phys_cursor): Ditto.
14354 (x_draw_bar_cursor): Ditto.
14355
143561997-11-02 Gerd Moellmann <gerd@acm.org>
14357
14358 * dispnew.c (update_marginal_area): Update a marginal area.
14359 (update_text_area): Update text area.
14360 (update_window_line): Call both.
14361
14362 * xterm.c (XTclear_end_of_line): Translate coordinates area
14363 dependent.
14364
14365 * dispnew.c (updated_area): Row area being updated in
14366 update_window_line.
14367 (update_window_line): Set it.
14368 (update_marginal_area): Clear to end of line if not in text area.
14369
14370 * window.c (Fset_window_margins): Increment
14371 windows_or_buffer_changed. Adjust glyphs.
14372
14373 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14374 area X coordinates to frame coordinates.
427ec082 14375 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14376 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14377 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14378
14379 * xterm.c (draw_glyphs): Use text area width as display width.
14380
14381 * xdisp.c (init_display_info): Subtract widths of marginal areas
14382 from last_visible_x.
14383
14384 * alloc.c (mark_object): Mark objects in glyphs only if they are
14385 overlays. Mark only if current_matrix != 0. Activate the code.
14386
14387 * window.c (Fset_window_margins): Set margins.
14388 (Fwindow_margins): Return margin area widths.
14389 (syms_of_window): Add defsubr's.
14390
14391 * window.h (struct window): left_margin_width, right_margin_width.
14392
14393 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14394 and cols.
14395
14396 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14397 truncation/overlay arrow area.
14398 (struct frame): trunc_area_pixel_width, and _cols.
14399
14400 * window.c (Fsplit_window): Use it.
14401
14402 * window.c (Fsplit_window): Set cursor vpos to -1 after
14403 splitting.
14404 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14405 split windows.
14406
14407 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14408 of bounds cursor positions.
26901792
DL
14409
14410 * xdisp.c (redisplay_internal): Check that after cursor motion
14411 within line, PT is on same line.
14412
14413 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14414 FRAME_TRUNC_WIDTH.
14415
14416 * xterm.h (struct x_output): trunc_area_extra.
14417 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14418 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14419 * widget.c (set_frame_size): Set it.
14420 (EmacsFrameSetCharSize): Ditto.
14421 * xfns.c (x_figure_window_size): Ditto.
14422 * xterm.c (x_set_window_size): Ditto.
14423
14424 * dispnew.c (check_matrix_invariants): First try to check window
14425 ends (in #if 0).
14426
14427 * xdisp.c (try_window_reusing_current_matrix): Try window
14428 redisplay with different window start.
14429
144301997-11-01 Gerd Moellmann <gerd@acm.org>
14431
14432 * window.c (make_window): Set window_end_pos/vpos.
14433 (Fsplit_window): Zero last_cursor, window_end_valid.
14434 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14435
14436 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14437
144381997-10-31 Gerd Moellmann <gerd@acm.org>
14439
14440 * window.c (make_window): Initialize last_cursor.
14441 (replace_window): Ditto.
14442
144431997-10-29 Gerd Moellmann <gerd@acm.org>
14444
14445 * window.h: New member last_cursor.
14446 * dispnew.c (direct_output_for_insert): Set it.
14447 (direct_output_forward_char): Ditto.
14448 * xdisp.c (redisplay_internal): Ditto.
14449
144501997-10-28 Gerd Moellmann <gerd@acm.org>
14451
14452 * xdisp.c (redisplay_internal): Optimization 1 change partially
14453 reverted. Check this again later.
14454 (skip_via_matrix): Remove redundent test for
427ec082 14455 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14456
144571997-10-27 Gerd Moellmann <gerd@acm.org>
14458
14459 * dispnew.c (update_window_line): Call
14460 after_update_window_line_hook only for interesting constellations.
14461 (free_glyph_matrix): Fix memory leak.
14462
14463 * window.h: Include blocker WINDOW_H_INCLUDED, include
14464 dispextern.h.
14465 (struct window): phys_cursor_glyph as struct glyph. * window.c
14466 (make_window): Initialize it.
427ec082 14467 (replace_window): Ditto.
26901792
DL
14468 * dispnew.c (free_window_matrices): Remove freeing of
14469 phys_cursor_glyph.
14470 (check_matrix_invariants): Renamed from check_current_matrix_...
14471 * xterm.c: All references to phys_cursor_glyph changed.
14472
14473 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14474
14475 * xfaces.c: Comment update.
14476
14477 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14478 pointer. Remove phys_cursor_ascent, descent, etc.
14479 * dispnew.c (free_window_matrices): Free it.
14480 * window.c (make_window): Allocate it.
14481 (replace_window): Ditto.
14482 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14483 (x_display_and_set_cursor): Fill it.
14484 (x_phys_cursor_in_rect_p): Use it.
14485 (x_draw_hollow_cursor): Ditto.
14486 (x_draw_bar_cursor): Ditto.
14487 (x_erase_phys_cursor): Ditto.
14488
14489 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14490
14491 * xterm.c (XTget_display_info): Handle 3D facess.
14492 (draw_glyphs): Ditto.
14493
14494 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14495
14496 * xfaces.c (Fset_face_attribute_internal): New face attribute
14497 shadow-thickness.
14498 (copy_face): Handle shadow_thickness.
14499 (face_eql): Ditto.
14500 (merge_faces): Ditto.
14501 (compute_base_face): Ditto.
14502
14503 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14504 (struct display_info): Ditto.
14505 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14506 * xdisp.c (compute_cursor_face): Set it.
14507 (advance_display_cursor): Clear it.
14508
14509 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14510 (init_string_cursor): Init face_id to zero.
14511
14512 * dispextern.h (struct face): New member shadow_thickness.
14513
427ec082 14514 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14515 search to 100.
14516
14517 * dispnew.c (update_window_line): Try to resynch with current line
14518 to prevent mode line flickering.
14519
145201997-10-26 Gerd Moellmann <gerd@acm.org>
14521
427ec082 14522 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14523 on cursor_in_echo_area >= 0.
14524
14525 * xdisp.c (echo_area_display): Clear desired matrix before
14526 displaying into it.
14527 (display_menu_bar): Clear glyph row instead of hoping it is not
14528 enabled. This is safer.
14529
14530 * dispnew.c (check_current_matrix_invariants): Check only
14531 visible rows.
14532
14533 * xdisp.c (try_window_id): Handle window end setting in case of
14534 display to end of window, but only non-text lines displayed.
14535
14536 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14537 (check_current_matrix_invariants): Check used counts.
14538
14539 * Revisiob v114.
14540
14541 * dispnew.c (scrolling): Use hash codes from rows.
14542
14543 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14544
14545 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14546
145471997-10-25 Gerd Moellmann <gerd@acm.org>
14548
14549 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14550 * dispnew.c (update_window): Use it.
14551 (clear_glyph_matrix): Clear it.
14552 * xdisp.c (try_window_id): Set it.
14553
14554 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14555
14556 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14557
14558 * dispextern.h: More comments etc.
14559
145601997-10-24 Gerd Moellmann <gerd@acm.org>
14561
14562 * dispnew.c (set_window_cursor_after_update): Set cursor
14563 for cursor_in_echo_area == 0 to (0, 0).
14564
14565 * dispextern.h (struct glyph_row): New flags continuation_line_p
14566 and displays_text_p.
14567 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14568 * xdisp.c (display_line): Set them.
14569 (try_window_id): Move to start of continuation line to find out
14570 continuation_line_width.
14571 (first_unchanged_current_row): Don't retract row if continued,
14572 truncated etc.
14573
14574 * xterm.c: Map X coordinates.
14575
145761997-10-23 Gerd Moellmann <gerd@acm.org>
14577
14578 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14579 left text.
14580
14581 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14582
14583 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14584
f28eba7b 14585 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14586
14587 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14588
14589 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14590 Set this to functions to be called before/after window updates.
14591 (direct_output_for_insert): Call them.
14592 (update_window): Ditto.
14593 (update_frame): Call update_begin/ update_end for windows.
14594
14595 * xterm.c (XTupdate_window_begin): Called before window updates.
14596 (XTupdate_end): Called after window updates.
14597 (x_initialize): Set hooks to above.
14598
14599 * xdisp.c (init_display_info): Initialize c and len of
14600 display_info.
14601
14602 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14603 fonts more than once.
14604
146051997-10-22 Gerd Moellmann <gerd@acm.org>
14606
14607 * xdisp.c (display_line): Handle most common case of current_x <
14608 last_visible_x separately.
14609
14610 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14611
14612 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14613 so that face extending space doesn't compare equal to normal space
14614 with same face.
14615
14616 * xdisp.c (display_line): Make sure we have a position for
14617 a line end in an otherwise blank line if face is extended.
14618
14619 * dispnew.c (direct_output_for_insert): Increment row end position.
14620
427ec082 14621 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14622 window_end_pos.
14623
14624 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14625
14626 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14627
14628 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14629 start and end positions in rows.
14630 (increment_glyph_row_buffer_positions): Stop adjusting at
14631 glyphs with positions <= 0.
14632
14633 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14634 position including position in overlay.
26901792
DL
14635 (struct glyph_row): Use it for start and end positions.
14636 (struct display_cursor): Use it.
14637 * xdisp.c: Use it.
14638 (display_line): Set row start and end positions.
14639
14640 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14641 assignment.
14642
146431997-10-21 Gerd Moellmann <gerd@acm.org>
14644
14645 * dispnew.c (update_window): Add scrolling_window again. It's
14646 necessary for scroll_step != 0.
14647
14648 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14649 scrolling.
14650
14651 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14652
14653 * xterm.c (XTupdate_end): Flush only for messages.
14654
14655 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14656 first_unchanged_row.
14657
14658 * xterm.c (XTupdate_end): Flush if miniwindow.
14659
14660 * dispnew.c (matrix_row_last_pos): New function.
14661 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14662 Large comment moved to xdisp.c.
26901792
DL
14663
14664 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14665 (skip_via_matrix): Check window_end_valid instead of
14666 display_completed.
14667
14668 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14669 (update_window): scrolling_window commented out. It has negative
14670 effect most of the time.
14671
14672 * xdisp.c (try_window_id): Correct parameters to
14673 scroll_glyph_matrix_range.
14674
427ec082 14675 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14676
14677 * window.h: Comments for window_end_pos/vpos.
14678
f28eba7b 14679 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14680 of the window in which we are skipping.
14681
14682 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14683
14684 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14685 reached.
14686
146871997-10-20 Gerd Moellmann <gerd@acm.org>
14688
14689 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14690 a face extending glyph.
14691
427ec082 14692 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14693 (set_cursor_from_row): Set cursor position from a glyph row.
14694
14695 * dispnew.c (update_window_line): Write entire line if hash
14696 codes of lines differ.
14697
14698 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14699 if glyph row has an infinite width glyph at its end.
14700
14701 * xdisp.c (last_unchanged_current_row): Respect partially visible
14702 lines when looking for the last row displaying text.
14703 (try_window_id): Handle partially visible lines better.
14704
147051997-10-19 Gerd Moellmann <gerd@acm.org>
14706
14707 * dispnew.c (update_window): Remove unused variable.
14708 (update_window_line): Simplified.
14709
14710 * xterm.c (x_get_char_font_and_encoding): Handle most common
14711 case at the beginning.
14712
14713 * xdisp.c (advance_display_cursor): Dispatch on method and
14714 order if statements by expected call frequency. Fixed unclosed
14715 comment.
14716
14717 * xdisp.c (try_window_id): New implementation.
14718
14719 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14720 rows displaying a line end, only.
14721
147221997-10-18 Gerd Moellmann <gerd@acm.org>
14723
14724 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14725
147261997-10-14 Gerd Moellmann <gerd@acm.org>
14727
14728 * xdisp.c (display_line): Mark empty lines not corresponding to
14729 text with position -1.
14730
14731 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14732 not within window matrix bounds.
14733
14734 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14735 (struct display_info): NGLYPHS_TO_IGNORE removed.
14736 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14737 * term.c: Ditto.
14738 * xterm.c: Ditto.
14739
14740 * xdisp.c (init_display_cursor): Set it.
14741 (display_line): Use it to set W->REGION_SHOWING.
14742
14743 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14744
14745 * region-cache.h: functino prototypes with PROTO.
14746
14747 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14748
14749 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14750 a position.
14751
427ec082 14752 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14753 rectangle based on minimum character bounds.
14754
f28eba7b 14755 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14756 glyph position calculations.
14757 (make_lispy_movement): Use buffer_posn_from_coords and window
14758 relative coordinates.
14759
14760 * xterm.c (construct_mouse_click): Remove #if 0 case.
14761
14762 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14763 given row.
14764
427ec082
SS
14765 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14766 date.
26901792
DL
14767 (skip_to): Use it.
14768 (redisplay_window): Remove code skipping using current matrix.
14769
147701997-10-13 Gerd Moellmann <gerd@acm.org>
14771
14772 * xdisp.c (redisplay_window): Use available current matrix to
14773 skip faster when only point is moved withing the window.
14774
427ec082 14775 * intervals.c: Include stdio.h.
26901792
DL
14776 (find_interval): Trace to stderr to catch some nasty error
14777 that did not yet occur again with tracing.
14778 (set_point): Ditto.
14779
14780 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14781 cursor positioning on partially visible lines.
14782 (set_window_cursor_after_update): Ditto.
14783
f28eba7b 14784 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14785
14786 * window.h (struct window): start_y removed.
14787
14788 * window.c (make_window): start_y removed.
14789 (replace_window): Ditto.
14790
427ec082 14791 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14792 descent values of the last line processed by skip_to.
14793 (redisplay_window): Use them.
14794 (skip_to): Set them.
14795
14796 * dispextern.h (struct display_cursor): New member METHOD.
14797
14798 * xdisp.c: Use function member METHOD.
14799
14800 * xdisp.c (set_next_stop_pos): Determine next position at which to
14801 check for face properties, invisible text properties, and overlays.
14802 (compute_cursor_face): Use it.
14803 (get_overlays_for_cursor): Ditto.
14804 (reseat_cursor): Ditto.
14805 (next_display_element): Ditto.
14806
14807Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14808
14809 * termhooks.h: Some hooks with prototypes.
14810
14811 * term.c: Some hooks with function prototypes.
427ec082 14812
26901792
DL
14813 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14814 computing face if possible.
14815
14816 * xdisp.c (next_display_element): Use face from glyph from display
14817 table only if != 0.
14818
14819 * emacs.c: FreeBSD headers for profiling removed.
14820
427ec082
SS
14821 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14822 display cursor, use DEC_POS instread.
26901792
DL
14823
14824 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14825 all fonts are in the font table.
26901792
DL
14826 (unload_font): Don't XFreeFont.
14827
14828 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14829 row height.
14830
14831 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14832 (x_erase_phys_cursor): Clear only visible part of row.
14833 (x_draw_bar_cursor): Set clipping.
14834 (x_draw_hollow_cursor): Ditto.
14835 (x_display_and_set_cursor): Remove clipping.
14836 (expose_window_tree): Take trunc border into account.
14837 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14838 (expose_window): Use it.
14839
14840 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14841 current_x already beyond max_x.
26901792
DL
14842 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14843 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14844 last_visible_x.
26901792
DL
14845
14846 * scroll.c (scrolling_window_1): Removed.
14847
14848 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14849 based on redisplay method used.
14850 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14851 based redisplay.
14852 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14853 window based redisplay.
14854
14855 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14856 on data structures.
14857
14858 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14859 Handle own storage for purely window based redisplay.
14860 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14861 allocate_matrices.
26901792
DL
14862 (allocate_matrices_for_window_redisplay): Ditto.
14863
14864 * dispextern.h (struct glyph_matrix): window_top_y,
14865 window_height.
14866
14867 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14868 and optimize some common cases of window changes.
14869
14870 * emacs.c (main): Remove own profiling code because 0.95 now
14871 has it in.
14872
14873Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14874
d7d0dac0 14875 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
14876 (expose_window): Draw vertical border.
14877 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14878 don't do anything.
14879
14880 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14881 for non full width windows only if not window redisplay.
14882
14883 * dispnew.c (update_window_tree): Or paused_p return of called
14884 functions.
14885
14886 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14887 of window.
14888
14889 * window.c (Fset_window_configuration): adjust_glyphs being
14890 called twice.
14891 (Fset_window_configuration): Set frame garbaged if not all
14892 leaf windows reused.
14893
148941997-08-21 Gerd Moellmann <gerd@acm.org>
14895
14896 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14897 that rows should really be cleared. Used for current matrices.
14898
d7d0dac0
SM
14899 * dispnew.c (scrolling_window): Bug fix.
14900 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
14901
14902 * dispextern.h (struct run): Remove current_vpos.
14903
14904 * xterm.c (do_line_dance): Only one parameter.
14905
f28eba7b 14906 * xdisp.c (display_line): Set continued_p.
26901792
DL
14907
14908 * dispextern.h (struct glyph_row): New flag continued_p.
14909 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14910 (struct glyph_row):
26901792
DL
14911
14912Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14913
14914 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14915 when calling skip_to for continued lines.
14916
14917 * dispnew.c (change_frame_size_1): Set frame garbaged.
14918
14919 * xterm.c (expose_window): Check enabled_p of rows.
14920
14921 * xdisp.c (redisplay_internal): Compare line heights before and
14922 now for redisplay optimization 2 (hit).
14923 (display_line): Set this_line_pixel_height.
14924
14925 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14926 value.
14927 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14928 (do_line_dance): Simplified and pixel corrected.
14929
14930 * dispnew.c (scrolling_window): Simplified.
14931
14932 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14933
14934 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14935 to mode line row->x.
14936
14937Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14938
14939 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14940 override font of face.
14941 (draw_glyphs): Correct return value.
14942 (XTclear_end_of_line): Compare differently with output cursor
14943 position.
14944 (x_draw_hollow_cursor): 2 parameters, window and row.
14945
14946 * dispnew.c (update_window_line): If rows have different height
14947 or y, write entire line.
14948
f28eba7b 14949 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14950 of info struct.
14951
427ec082 14952 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14953 frame_update_line_height.
14954 (merge_faces): Don't use default font if new font has different
14955 size.
14956
14957Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14958
14959 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 14960 unknown. Some fonts have min_width zero.
26901792 14961 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 14962 line if face is merely extended to that point.
26901792 14963 (draw_glyphs): Don't assume background is filled if
d7d0dac0 14964 just_foreground_p but extending to end of line.
26901792
DL
14965
14966 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14967 for partially visible last lines.
14968 (x_clip_to_row): Ditto.
14969 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14970 display_height since line_height is really a line distance.
14971 (x_display_and_set_cursor): If cursor on padding glyph, use
14972 min_bounds pixel width.
14973
14974Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14975
14976 * xterm.c (x_clip_to_row): Height value was 1 too large.
14977 (XTclear_end_of_line): Clip to display area.
14978
14979 * xfns.c (x_figure_window_sizes): Add trunc border width
14980 to frame pixel width.
14981
14982 * xdisp.c (next_display_element): Don't display overlay strings
14983 within invisible text.
427ec082 14984 (skip_vertically_backward): Skip display lines.
26901792
DL
14985
14986Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14987
14988 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14989
14990 * xdisp.c (next_display_element): Next invisible
14991 text check position computed differently.
14992
14993 * dispextern.h (struct display_cursor): last_invisible_text_pos
14994 and display_ellipsis_for_invisible_p removed.
14995
14996 * xdisp.c (next_display_element): Set last_invisible_text_pos
14997 to the last position at which invisible text was found. Don't
14998 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14999 dpvec for `...' due to invisible text directly.
26901792
DL
15000 (redisplay_internal): Don't assert that cursor is at PT after
15001 skip_to. It may be in invisible text.
15002
427ec082 15003 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
15004 x_y_to_hpos_vpos.
15005
427ec082 15006 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
15007 next_overlay_pos is reached. Use limit cursor.pos + 100 when
15008 checking for invisible text.
15009
15010 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
15011
15012 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
15013
d7d0dac0 15014 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
15015 cursor instead of WINDOW_TO_FRAME_H/VPOS.
15016
15017 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
15018 Removed.
15019
15020 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
15021
15022 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
15023 pixel coordinates.
15024 (note_mouse_highlight): Use it.
15025
15026 * xdisp.c (echo_area_display): Ignore calls for terminal frames
15027 under a window system.
15028
427ec082 15029 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 15030 necessary.
427ec082 15031 (update_window_line): Add width of face padding glyph to
26901792
DL
15032 displayed widths of rows.
15033
15034 * xterm.c (x_display_and_set_cursor): Set clipping after
15035 erasing cursor.
427ec082
SS
15036
15037 * window.c (Fset_window_configuration): Free only those
26901792
DL
15038 window matrices not reused.
15039 (get_leaf_windows): Build vector of leaf windows.
15040 Corrupted archive restored from v77.
15041
f28eba7b 15042 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
15043 like display_line does.
15044
15045 * xdisp.c (display_mode_line): Don't hscroll mode line.
15046
15047 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
15048 windows.
15049 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
15050 garbage between mode lines when splitting windows horiz.
15051
15052 * dispnew.c (direct_output_for_insert): Bug fix.
15053
15054 * dispextern.h (struct display_cursor): New member string_length.
15055
15056 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 15057 (init_string_cursor): Take precision and field_width
26901792
DL
15058 (display_string): Use string cursor, skip over invisible text.
15059
15060Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
15061
15062 * xterm.c (x_clip_to_row): Clip to partially visible lines.
15063 (x_display_and_set_cursor): Call it.
15064 (draw_glyphs): Call it
15065 (draw_bitmap): Call it.
15066
427ec082 15067 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
15068 (allocate_leaf_matrix): Return flags.
15069 (row_equal_p): Compare enabled_p.
15070
15071 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
15072 for type == -1.
15073
15074 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 15075 (draw_glyphs): Clip height one pixel taller.
26901792 15076
427ec082 15077 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
15078 mini window.
15079
f28eba7b 15080 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 15081
427ec082
SS
15082 * xdisp.c (echo_area_display): Call update_single_window if
15083 possible.
26901792
DL
15084
15085 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 15086 (scrolling_window): Work on enabled desired lines only.
26901792
DL
15087 (update_single_window): Update a single window like update_frame
15088 does for all windows.
427ec082 15089 (update_window, update_window_tree): Additional argument
26901792
DL
15090 no_scrolling_p.
15091 (update_frame): Pass no_scrolling_p to update_window_tree.
15092 (update_window): Don't call scrolling_window if no_scrolling_p.
15093
15094 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
15095 Erase under hollow cursor.
15096 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
15097 not enabled. Draw bar cursor 1 pixel smaller.
15098
f28eba7b 15099 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
15100 since update will follow soon.
15101
15102 * xdisp.c (echo_area_display): Unitialized variable.
15103
f28eba7b 15104 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
15105 overlay arrow bitmap.
15106
f28eba7b 15107 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 15108 up to the final \n as part of the line for cursor positioning.
26901792 15109
f28eba7b
SM
15110 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15111 (x_after_update_window_line): Clear trunc marks.
26901792
DL
15112
15113 * xterm.h (FRAME_X_TRUNC_WIDTH).
15114
f28eba7b 15115 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
15116 of a window reserved for truncation mark.
15117
427ec082 15118 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
15119
15120 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 15121 hook.
26901792
DL
15122
15123 * xdisp.c (display_line): Set overlay_arrow_p in row.
15124
15125 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15126
15127 * xterm.c (x_after_update_window_line): Draw truncation marks.
15128
15129 * xdisp.c (display_line): Insert truncation for lines with
15130 current_x > 0.
15131
15132 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15133 Correct y by 1.
15134 (x_display_cursor): Use default font width if width not
427ec082 15135 known.
26901792 15136
f28eba7b 15137 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
15138
15139 * dispnew.c (set_window_cursor_after_update): Don't assume
15140 all rows are enabled.
15141
15142 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15143 of cursor.pos.
15144 (skip_in_display_line_to): Check cursor.position after call to
15145 next_display_element.
15146
427ec082 15147 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
15148 buffer position.
15149
15150 * xdisp.c (display_line): Set row->y here.
15151 (skip_in_display_line_to): Test for to_pos after all glyphs
15152 have been added to hpos so that hpos is at the end of all
15153 glyphs for to_pos.
15154 (start_display): Remove assertion.
15155
d7d0dac0 15156 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
15157 (update_window): Don't set row->y here.
15158
15159 * xdisp.c (next_display_element): Don't translate control chars
15160 from display table entries.
15161
427ec082 15162 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
15163 update end to prevent cursor flickering. Revert changes to
15164 setting cursor.endpos.
15165
15166Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15167
15168 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15169 to PT because this prevents multi-byte characters from being
15170 recognized.
15171
427ec082
SS
15172 * xdisp.c (skip_to, display_line): Advance cursor at end of
15173 truncated line.
26901792
DL
15174
15175 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15176 replaced by XRectangle.
15177
d7d0dac0 15178 * dispnew.c (scrolling_window): New method.
26901792
DL
15179
15180 * xterm.c (do_line_dance): New implementation, new method.
427ec082 15181
26901792
DL
15182 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15183 visible part of line.
15184
15185 * dispnew.c (update_window_line): Fill inverse video lines
15186 with infinite width space.
15187 (update_window): Handle completely empty matrices.
15188 (set_window_cursor_after_update): Bug fix.
15189
427ec082 15190 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
15191
15192 * dispnew.c (update_window_line): Don't ignore spaces, don't
15193 fill with spaces.
15194
15195 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15196 the first glyph having width 0.
15197
15198 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 15199 a glyph that extends to the end of the line.
26901792
DL
15200
15201 * xdisp.c (display_line): Insert one padding glyph
15202
15203 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15204 amount from info.current_x.
15205 (display_line): Ditto.
15206
15207 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15208 (change_frame_size_1): Correct cursor.x if frame gets too small.
15209 (update_window_line): Start at row->x.
15210
15211 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15212 in xdisp.c).
15213
15214 * xterm.c (set_output_cursor): Use window relative X/Y.
15215 (global): Use window relative output cursor x/y.
15216 (draw_glyphs): Remove y param. Pass window relative x/y.
15217
15218 * dispnew.c (update_window): Start rows at start_y.
15219 (update_window): Don't try scrolling because it wouldn't work
15220 with variable height lines, anyway.
15221
15222 * dispextern.h (struct glyph_row): Remove shift_left_by,
15223 add x.
15224
15225 * window.h: (struct window): New member start_y.
15226
15227 * window.c (replace_window): Initialize start_y.
15228 (make_window): Ditto.
15229
15230Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15231
15232 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 15233 the mode line.
26901792 15234
427ec082
SS
15235 * dispnew.c (update_window): Take mode line border into
15236 account.
26901792
DL
15237
15238 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 15239 of border around mode line.
26901792
DL
15240
15241 * xterm.c (x_draw_row_borders): Bug fix.
15242 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15243 drawing functions.
15244
15245 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 15246 around modeline instead of inverting it.
26901792 15247
427ec082 15248 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
15249
15250 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15251 window relative pixel coordinates as arguments.
15252
15253 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15254 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15255 COORDS mit new arguments.
15256
15257Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15258
15259 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15260 DISPLAY_LINE.
26901792
DL
15261
15262 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15263 pixel coords.
15264 (make_lispy_movement): Same.
15265
15266 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15267 with new parameter meaning.
15268
15269 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15270 from canon units to pixels.
15271 (coordinates_in_window): Pixel based.
15272 (Fcoordinates_in_window_p): Convert result pixel values back
15273 to canonical units.
15274
15275 * window.h: phys_cursor_ascent + descent instead of height.
15276
15277 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15278 chars with charset width 1.
26901792
DL
15279
15280 * dispnew.c (direct_output_for_insert): Set updated_row.
15281
15282Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15283
15284 * dispextern.h (struct glyph): Padding flag removed.
15285
15286Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15287
15288 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15289
15290 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15291
15292 * dispnew.c (update_window_line): Use pixels.
15293
15294 * xdisp.c (compute_line_metrics): Correct pixel_width by
15295 shift_left_by.
15296
15297 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15298 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15299 glyph_row -> right_to_left_p. Change references to it.
15300
15301Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15302
15303 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15304
15305 * xterm.c (XTinsert_glyphs): Implement it.
15306
15307 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15308 of a call from DIRECT_OUTPUT_FOR_INSERT.
15309
15310 * window.h (struct cursor_pos): Keeps both matrix positions
15311 and pixel positions.
15312 (struct window): Use it.
15313
15314 * dispnew.c (direct_output_for_insert): New version.
15315
15316 * xdisp.c (redisplay_internal): Don't do anything if it has
15317 already be done directly.
15318
15319 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15320 for any character.
15321
15322Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15323
15324 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15325
15326Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15327
15328 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15329 (struct glyph): ASCENT, DESCENT.
15330 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15331 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15332
15333 * xterm.c (XTget_display_info): Correct tab computation.
15334
15335 * term.c (get_display_info): Correct tab computation.
15336
15337 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15338 Renamed from CHAR_CURSOR.
15339
15340Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15341
15342 * xdisp.c (display_text_line): Mostly pixel oriented.
15343
15344 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15345
15346 * term.c (append_intermediate_glyph): Generate padding glyphs.
15347
15348 * xdisp.c (display_text_line): More into final direction.
15349
15350 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15351 (XTget_char_info): Use tabs as multiples of spaces.
15352
15353 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15354 Use tabs as multiples of spaces.
15355
15356 * dispextern.h (struct char_info ): WHAT field.
15357
15358 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15359 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15360
15361Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15362
15363 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15364 value.
15365 (init_char_info): Initialize with glyph row.
15366
15367 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15368
15369 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15370
15371 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15372 glyphs.
15373
15374 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15375 moved to xdisp.c.
15376
15377 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15378
15379 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15380 generation.
15381 (XTget_char_info): Ditto.
15382
15383 * term.c (get_char_info): Intermediate glyph generation.
15384 (append_intermediate_glyph): Ditto.
15385
15386Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15387
427ec082 15388 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15389 CHAR_CURSOR.
15390 (init_char_cursor): Initialize a CHAR_CURSOR.
15391 (get_char_and_advance): Get next character to display.
15392
15393 * dispextern.h (struct char_cursor): Cursor for iterating over
15394 display text of CURRENT_BUFFER.
15395
15396Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15397
15398 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15399
15400 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15401 New member MAX_PIXEL_HEIGHT.
15402
15403 * xterm.c (x_per_char_metric): Get per character metrics.
15404 (XTget_char_info): More cases covered.
15405
15406 * term.c (get_char_and_info): Get next character and character
15407 display information.
15408 (get_char_info): Get character display information.
15409
15410 * dispextern.h: Character display information.
15411
427ec082 15412 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15413 encode character.
15414 (XTget_char_info): Get display information about a character.
15415
15416Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15417
15418 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15419 zero if window is mini-window.
15420
15421 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15422 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15423
427ec082 15424 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15425 (clear_glyph_row): Clear pixel height.
15426 (update_window): Use PIXEL_HEIGHT.
15427
15428 * xdisp.c (display_string): Set row pixel height temporarily.
15429 (display_text_line): Ditto.
15430
427ec082 15431 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15432 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15433
427ec082 15434 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15435 line in default font.
15436 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15437 in default font.
15438 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15439
15440 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15441 in pixels.
15442
15443 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15444
15445 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15446 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15447 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15448 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15449 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15450 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15451 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15452 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15453 pixel values related to windows.
15454
15455Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15456
15457 * xterm.c (XTflash): Flash last line of frame.
15458
15459 * dispextern.h (cursor_in_echo_area): Extern declaration.
15460
15461 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15462 freezes stem from 16-bit functions.
26901792
DL
15463
15464 * xterm.c (x_display_and_set_cursor): Don't display hollow
15465 cursor in mini windows.
15466
15467 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15468 (make_window): Ditto.
15469
15470 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15471 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15472 and X_DISPLAY_BAR_CURSOR.
15473 (x_display_cursor): Use it.
15474 (x_update_window_cursor): Use it.
15475
15476 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15477 selected.
26901792
DL
15478
15479 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15480 of X and Y to denote matrix positions.
15481 (x_display_cursor): Ditto.
15482
15483 * dispnew.c (scrolling_window): Scrolling for windows.
15484
15485Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15486
15487 * dispnew.c (build_frame_matrix): Work on windows with update
15488 flag set.
15489 (build_frame_matrix_from_window_tree): Ditto.
15490 (build_frame_matrix_from_leaf_window): Ditto.
15491
15492 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15493 building frame matrix.
427ec082 15494 (redisplay_internal): Set window update flags instead of
26901792
DL
15495 building frame matrix.
15496
15497 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15498 building frame matrix.
15499
15500 * window.c (make_window): Initialize new members.
15501 (replace_window): Ditto.
15502
15503 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15504 I don't believe this is really necessary.
15505
15506 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15507 border glyph once.
26901792
DL
15508
15509Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15510
427ec082 15511 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15512 window tree off.
15513
427ec082 15514 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15515 window matrix.
15516 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15517 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15518 (x_update_cursor): Work on windows.
15519 (x_display_bar_cursor): Ditto.
15520 (x_draw_single_glyph): Ditto.
15521
15522 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15523
15524 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15525 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15526 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15527 parameter.
26901792 15528
d7d0dac0 15529 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15530
15531 * window.c (window_rightmost_p, window_topmost_p): Based on
15532 window tree.
15533
15534 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15535 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15536
15537 * window.h: PHYS_CURSOR_.* added.
15538
15539 * frame.h (struct frame): Cursor information removed.
15540
15541 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15542 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15543
15544 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15545
15546 * window.c (window_internal_width): Scroll bars no longer
15547 part of window.
15548
d7d0dac0 15549 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15550
d7d0dac0 15551 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15552
15553 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15554 (redisplay_internal): Ditto.
15555 (redisplay_window): Ditto.
15556 (redisplay_window): Ditto.
15557 (display_text_line): Ditto.
15558 (display_mode_line): Ditto.
15559
15560 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15561
15562 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15563 (direct_output_for_insert): Ditto.
15564 (direct_output_forward_char): Ditto.
15565 (update_frame_1): Ditto.
15566
15567Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15568
15569 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15570 being updated.
26901792
DL
15571 (update_window): Set and clear it.
15572
15573 * dispnew.c (update_window_line, update_window, scrolling_window):
15574 First versions.
15575
15576 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15577 bar for window borders.
15578 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15579 with spaces.
15580 (fill_up_glyph_row_with_spaces): Call above function.
15581
15582 * xdisp.c (display_text_line): Don't add vertical bar for
15583 window borders.
15584 (display_string): Ditto.
15585
15586 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15587 (replace_window): Ditto.
15588
15589 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15590
15591 * xfns.c (Fx_contour_region): Use selected window cursor position.
15592 (Fx_uncontour_region): Ditto.
15593 (Fx_select_region): Ditto.
15594
15595 * frame.c (make_frame): Remove CURSOR_X/Y.
15596
15597 * xdisp.c (redisplay_internal): Use window cursor position.
15598
15599 * dispnew.c (update_frame_1): Use cursor position of selected
15600 window.
15601 (change_frame_size_1): Ditto.
15602
15603 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15604 (XTwrite_glyphs): Use cursor position of selected window.
15605
d7d0dac0 15606 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15607
15608 * dispnew.c (set_cursor_to): Set window cursor position.
15609 (direct_output_for_insert): Use window cursor position.
15610 (init_display): Don't use frame cursor position.
15611
15612 * window.h: CURSOR_VPOS/HPOS added.
15613
15614 * frame.h (struct frame): CURSOR_X/Y removed.
15615 (FRAME_CURSOR_X): Removed.
15616 (FRAME_CURSOR_Y): Ditto.
15617
15618 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15619 (direct_output_forward_char): Ditto.
15620
d7d0dac0 15621 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15622
15623 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15624
15625 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15626
15627Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15628
15629 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15630 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15631
15632 * dispextern.h: Changed function names.
15633
15634 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15635 < 2.
15636 (clear_window_matrices): Formerly two functions for desired
15637 and current matrix.
15638 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15639 (update_frame): Return return value from UPDATE_FRAME_1.
15640
15641Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15642
15643 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15644 LAST_TEXT_VPOS.
15645
15646 * frame.c (set_menu_bar_lines): Adjust matrices.
15647
15648 * dispnew.c (set_cursor_to): Set cursor position.
15649
15650 * minibuf.c (read_minibuf): Build frame matrix.
15651
15652 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15653 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15654 relative.
26901792
DL
15655 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15656 reason.
15657
427ec082 15658 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15659 menu bar.
15660 (clear_window_records): Clear window rows.
15661 (clear_frame_records): Clear window and frame rows.
15662 (clear_glyph_matrix): Set all rows of a matrix to empty.
15663
d7d0dac0
SM
15664 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15665 Update frame if set.
26901792
DL
15666 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15667 removed.
15668 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15669 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15670
15671 * dispnew.c (assign_row): Assign one glyph row to another.
15672 (mirrored_make_current): Use it.
15673 (mirror_make_current): Use it.
15674 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15675 used counters for the current glyph row.
427ec082 15676
26901792
DL
15677
15678Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15679
15680 * lisp.h: Prototype for SCAN_BUFFER.
15681
15682 * xdisp.c (redisplay_windows): Simplified.
15683
15684 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15685 with debug checks.
15686 (window_to_frame_hpos): Convert window to frame hpos with checks.
15687 (frame_to_window_vpos): Convert frame to window vpos with checks.
15688 (frame_to_window_hpos): Convert frame to window hpos with checks.
15689
15690 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15691
15692 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15693
15694 * xdisp.c (redisplay_internal): Another instance of
15695 DISPLAY_TEXT_LINE with window relative VPOS.
15696 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15697
15698 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15699 only.
15700
15701 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15702 (redisplay_internal): Ditto.
15703
15704 * dispnew.c (cancel_window_line): Use window matrix. Changed
15705 name to CANCEL_WINDOW_LINE.
15706
15707 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15708 relative VPOS.
15709
427ec082
SS
15710 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15711 to frame vpos.
26901792
DL
15712 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15713 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15714 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15715
15716 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15717 window relative VPOS.
15718 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15719 relative VPOS.
15720
15721 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15722 MATRIX_BUFFER_POSITIONS.
15723
15724 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15725
15726 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15727
427ec082 15728 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15729 matrix. Change name to scroll_full_width_window.
15730
15731 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15732 NONINTERACTIVE.
26901792
DL
15733
15734Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15735
15736 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15737 and window matrices.
26901792
DL
15738 (adjust_window_charstarts): Use window matrix.
15739 (cancel_my_columns): Use window matrix.
15740 (direct_output_for_insert): Use window matrix, only.
15741
15742 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15743 (display_string): Call display_glyphs.
15744 (display_menu_bar_string): Display a string in a menu bar line.
15745 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15746 (display_text_line): Use window matrix.
15747 (try_window): Use window relative positions.
15748
15749Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15750
15751 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15752 (0, 0).
26901792 15753 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15754 top-most windows.
26901792
DL
15755
15756 * window.h (WINDOW_TOPMOST_P): Added.
15757
15758 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15759 (redisplay_window): Ditto.
15760 (display_text_line): Ditto.
15761 (display_menu_bar): Ditto.
15762 (display_mode_line): Ditto.
15763 (display_mode_line): Use window matrix.
15764 (display_string): Use window matrix.
15765 (display_mode_element): Ditto.
15766 (echo_area_display): Don't display if frame has no pools yet.
15767 (echo_area_display): Work with window matrix for mini window.
15768 (redisplay_window): Use window marix for mini window.
15769 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15770 use that for DISPLAY_STRING.
26901792
DL
15771
15772 * dispextern.h: Prototype for prepare_desired_row.
15773
d7d0dac0 15774 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15775
15776 * dispnew.c (adjust_window_charstarts): Always allocate window
15777 matrices.
15778 (clear_glyph_row): Only reset used counters and flags.
15779
15780Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15781
15782 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15783 line is non-empty.
26901792
DL
15784 (realloc_glyph_pool): Don't add 1 to the pool size.
15785 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15786
15787 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15788 (line_draw_cost): Ditto.
15789 (update_line): Ditto.
15790 (update_line): Use SPACE_GLYPH.
15791 (count_blanks): Additional parameter LEN.
15792
15793 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15794 (display_text_line): Don't add null-glyph end marker.
15795 (display_string): Use SPACE_GLYPH.
15796 (display_string): Don't use null-glyph end marker.
15797
15798 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15799
15800 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15801 (fill_up_glyph_row_with_spaces): Ditto.
15802 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15803 rows, instead of null-glyphs.
15804 (direct_output_for_insert): Don't add null-glyph end marker.
15805
15806 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15807 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15808 (do_scrolling): Ditto.
15809
15810 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15811 frame matrix in window matrices.
26901792 15812 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15813 Maybe do corresponding assignments in window matrices.
26901792 15814 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15815 rows agree about glyph pointers.
26901792
DL
15816 (check_matrix_pointers): Ditto.
15817 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15818 maybe mirror the operation in window matrices.
26901792 15819 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15820 frame matrix row was made current.
26901792
DL
15821
15822Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15823
15824 * dispnew.c (check_matrix_pointer_lossage): Check against
15825 pointer lossage in matrices.
15826 (get_glyph_matrix_row): Removed.
15827
15828 * scroll.c (do_scrolling): Simplified.
15829 (do_direct_scrolling): Simplified.
15830 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15831 DO_.*SCROLLING.
427ec082 15832
26901792
DL
15833
15834 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15835 (rotate_vector): Removed.
15836 (rotate_pointers): Removed.
15837 (scroll_frame_lines): Simplified.
15838
15839Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15840
15841 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15842
15843 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15844 what the name says.
15845 (clear_glyph_row): Make a glyph row structure empty.
15846 (make_matrix_row_current): Make a glyph row current.
15847 (make_window_matrix_row_current): Perform analogous row swaps
15848 for window matrices.
15849 (update_line): Call make_matrix_row_current.
15850
15851Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15852
15853 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15854 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15855 INVERSE_P.
15856 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15857 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15858
15859 * all files: use above new names.
15860
15861 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15862 SCROLL_GLYPH_MATRIX.
26901792 15863 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15864 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15865 buffer positions in a glyph row.
15866 (increment_glyph_matrix_buffer_positions): Increment buffer
15867 positions in a range of rows.
15868 (scroll_glyph_matrix): Scroll a glyph matrix.
15869 (swap_glyphs_in_rows): Swap glyphs between rows.
15870 (swap_glyph_pointers): Swap pointers between rows.
15871 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15872 (init_display): Initialize SPACE_GLYPH.
15873 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15874 spaces.
26901792
DL
15875
15876Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15877
15878 * xterm.c (dumprectangle): Use vectors in glyph rows.
15879
15880 * xdisp.c (display_text_line): Use vectors in glyph rows.
15881 (display_string): Ditto.
15882
15883 * scroll.c (do_scrolling): Use vectors in glyph rows.
15884 (do_direct_scrolling): Ditto.
15885
15886 * alloc.c (mark_object): Use vectors in glyph rows.
15887 Mark for all frame types.
15888
15889 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15890 glyph rows.
15891 (get_glyph_matrix_row): Ditto.
15892 (matrix_row): Ditto.
15893 (rotate_pointers): Ditto.
15894 (scroll_frame_lines): Ditto.
15895 (preserve_other_columns): Ditto.
15896 (cancel_my_columns): Ditto.
15897 (update_line): Ditto.
15898 (direct_output_for_insert): Ditto.
15899
15900 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 15901 instead of individual members. Use a vector of used counters.
26901792
DL
15902 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15903 (MATRIX_ROW_GLYPH_START): Ditto.
15904 (MATRIX_ROW_GLYPH_END): Ditto.
15905 (MATRIX_ROW_USED): Ditto.
15906 (MATRIX_ROW_SET_USED): Ditto.
15907
15908 * dispnew.c (line_hash_code): Simplified.
15909
15910Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15911
15912 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15913 CHANGE_FRAME_SIZE_1
15914 (preserve_other_columns): Void return.
15915 (cancel_my_columns): Void return type.
15916 (scrolling): Int return type.
15917 (do_pending_window_change): Void return type.
15918 (change_frame_size): Ditto.
15919 (bitch_at_user): Ditto.
15920 (init_display): Ditto.
15921 (syms_of_display): Ditto.
15922
15923 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
15924 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15925 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15926 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15927 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15928 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15929 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 15930 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15931
26901792 15932 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 15933 void.
26901792
DL
15934 (cancel_line): Return void.
15935 (clear_frame_records): Return void.
427ec082 15936
26901792
DL
15937 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15938 (SET_CHAR_GLYPH): Fill a character glyph.
15939 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15940 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15941 glyph.
26901792
DL
15942 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15943 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15944 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15945 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15946 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15947 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15948 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15949 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15950 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15951
15952 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15953
15954 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 15955 come below CURRENT_MATRIX.
26901792
DL
15956
15957 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 15958 member CURRENT_MATRIX.
26901792
DL
15959
15960Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15961
15962 * scroll.c (do_scrolling): Change algorithm to use pointers.
15963 (do_direct_scrolling): Ditto.
15964
15965 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15966 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15967 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15968 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 15969 Returns 1 if pool changed.
26901792
DL
15970 (matrix_row): Additional check for lost pointers to glyph rows.
15971 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
15972 allocation should take place. Addtional parameter
15973 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 15974 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
15975 when window matrix changes. Additional parameter DIM_ONLY_P set
15976 to 1 to indicate that no allocation should take place.
26901792 15977 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 15978 matrices. Optimize frame redraws.
26901792
DL
15979 (free_glyphs): Free pools.
15980 (check_glyph_memory): Check pools not freed.
15981 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15982 (scroll_frame_lines): Change algorithm to use pointers.
15983 (update_line): Ditto.
15984
15985 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15986 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 15987 MATRIX.
26901792
DL
15988
15989Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15990
15991 * dispextern.h (struct glyph_pool): Replacement for former
15992 FRAME_GLYPH_MATRIX.
15993 (struct glyph_matrix): No longer contains sizes of allocated
15994 areas.
15995
15996 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15997 no glyph pools.
15998
15999 * frame.c (make_frame): Initialize pools.
16000
16001Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
16002
427ec082 16003 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
16004 line moving algorithm has no intermediate steps.
16005 (do_scrolling): Ditto.
16006
16007 * Makefile.in (alloc.o): Add dependency dispextern.h.
16008
16009 * alloc.c: Include dispextern.h for glyph definitions.
16010
16011 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
16012 is legal, return 0 otherwise.
16013
16014 * window.h: Add comment that windows are marked specially.
16015
16016 * alloc.c (mark_object): Mark windows specially.
16017
16018
16019Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
16020
16021 * dispextern.h (struct glyph): Add member OBJECT
16022 referencing a Lisp object from which a glyph was drawn.
16023 Member TEXT_POSITION renamed POSITION.
16024 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
16025
16026 * alloc.c: Include dispextern.h
16027 (mark_object): Mark objects referenced from glyphs.
16028
f28eba7b 16029 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
16030
16031 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
16032 (do_scrolling): Ditto.
16033
427ec082 16034 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
16035 DECODE_MODE_SPEC_BUFFER added.
16036
16037 * window.h: TEMP_MATRIX removed.
16038
16039 * scroll.c: OPHYS_LINES removed.
16040
16041 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
16042 FRAME_PTR -> struct frame *.
16043
16044 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
16045 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16046
16047 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
16048 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16049
16050 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
16051 (do_verify_charstarts): Removed.
16052
16053 * frame.c (Fmake_terminal_frame): Adjust glyphs.
16054 (Fdelete_frame): Free glyphs.
16055 (make_frame): Initialize matrix fields in frame.
16056
f28eba7b 16057 * config.in (PROTO): Added.
26901792 16058
f28eba7b 16059 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
16060
16061 * window.c (Fdelete_window): Free window matrices.
16062 (Fset_window_configuration): Ditto.
16063 (Fdelete_window): Adjust glyphs.
16064 (Fsplit_window): Ditto.
16065 (change_window_height): Ditto.
16066 (Fset_window_configuration): Ditto.
16067 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
16068 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
16069
16070 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
16071
16072 * window.c: Include dispextern.h
16073
16074 * scroll.c (do_scrolling): Use new glyphs.
16075 (do_direct_scrolling): Ditto.
16076
16077 * xdisp.c: Some function prototypes.
16078 (redisplay_internal): Don't do anything if matrices not yet set.
16079 (redisplay_internal): Use new glyphs.
16080 (try_window_id): Ditto.
16081 (copy_part_of_rope): Ditto.
16082 (display_text_line): Ditto.
16083 (display_menu_bar): Ditto.
16084 (display_mode_line): Ditto.
16085 (display_string): Ditto.
16086
16087 * xterm.c: Prototypes for some local functions.
16088 (dumpglyphs): Use new glyphs.
16089 (XTwrite_glyphs): Ditto.
16090 (dumprectangle): Ditto.
16091 (note_mouse_highlight): Ditto.
16092 (fast_find_position): Ditto.
16093 (show_mouse_face): Ditto.
16094 (x_draw_single_glyph): Ditto.
16095 (x_display_bar_cursor): Ditto.
16096 (x_display_box_cursor): Ditto.
16097 (x_new_font): Adjust glyphs when font change.
16098
16099 * term.c (clear_end_of_line): Use new glyphs.
16100 (write_glyphs): Ditto.
16101 (insert_glyphs): Ditto.
16102
16103 * Makefile.in (term.o): term.c depends on dispextern.h
16104
16105 * term.c: Include dispextern.h
16106
16107 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 16108 removed, new inserted.
26901792
DL
16109 (line_hash_code): Use new glyphs.
16110 (line_draw_cost): Ditto
16111 (cancel_line): Ditto
16112 (clear_frame_records): Ditto.
16113 (init_desired_glyphs): Ditto.
16114 (get_display_line): Ditto
16115 (scroll_frame_lines): Ditto.
16116 (preserve_other_columns): Ditto.
16117 (adjust_window_charstarts): Ditto.
16118 (cancel_my_columns): Ditto.
16119 (direct_output_for_insert): Ditto.
16120 (update_frame): Ditto.
16121 (quit_error_check): Made empty.
16122 (scrolling): Use new glyphs.
16123 (count_blanks): Ditto.
16124 (count_match): Ditto.
16125 (update_line): Ditto.
16126 (init_display): Adjust glyphs initially.
16127 (change_frame_size_1): Adjust glyphs.
16128
16129 * dispextern.h: Old glyphs removed, new added.
16130
16131 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16132
16133 * xterm.h: Prototype for min_char_bounds.
16134
16135 * window.h (struct window): Remove old glyphs, add new.
16136
16137 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 16138
26901792
DL
161391999-07-20 Dave Love <fx@gnu.org>
16140
16141 * buffer.c (syms_of_buffer): Make
16142 default-enable-multibyte-characters a user variable.
16143
161441999-07-14 Richard Stallman <rms@gnu.org>
16145
16146 * Version 20.4 released.
16147
161481999-07-14 Richard Stallman <rms@gnu.org>
16149
16150 * filelock.c (lock_file): Do nothing if purifying.
16151
161521999-07-10 Richard Stallman <rms@gnu.org>
16153
16154 * xterm.c (x_display_bar_cursor): Use the cursor-color
16155 to display the bar, not the cursor foreground pixel.
16156
161571999-07-09 Andrew Innes <andrewi@gnu.org>
16158
16159 * w32console.c (w32_use_full_screen_buffer): New variable.
16160 (syms_of_ntterm): Register it.
16161 (initialize_w32_display): Set initial frame size accordingly,
16162 respecting the LINES and COLUMNS environment variables if set.
16163
16164 * w32inevt.c (w32_console_read_socket): Use it.
16165
161661999-07-07 Kenichi Handa <handa@etl.go.jp>
16167
16168 * callproc.c (Fcall_process): Decide coding system for decoding
16169 after we set to the target buffer. If the output goes to a
16170 unibyte buffer, suppress character code conversion.
16171
16172 * fileio.c (Finsert_file_contents): If reading into a unibyte
16173 buffer, suppress character code conversion.
16174
16175 * process.c (create_process): If the output goes to a unibyte
16176 buffer, suppress character code conversion.p
16177
161781999-07-07 Andreas Schwab <schwab@gnu.org>
16179
16180 * xdisp.c (line-number-display-limit): Doc fix.
16181
161821999-07-05 Richard Stallman <rms@gnu.org>
16183
16184 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16185 (Fcall_process_region): Likewise.
16186
161871999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16188
16189 * callproc.c (init_callproc): Set exec_directory if
16190 installation_directory is non-nil, without a test of exec_path.
16191
161921999-07-01 Andrew Innes <andrewi@gnu.org>
16193
16194 * w32xfns.c (drain_message_queue): New function.
16195
16196 * w32term.h (drain_message_queue): Add extern.
16197
16198 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16199 of WaitForMultipleObjects when user input is allowed, so we can
16200 handle incoming window messages. Call drain_message_queue when
16201 there are messages waiting; this ensures that windows created
16202 indirectly from the lisp thread get processed properly, and don't
16203 hang other applications by failing to respond to broadcasts.
16204
162051999-07-01 Andreas Schwab <schwab@gnu.org>
16206
16207 * callint.c (Fcall_interactively): Ignore first element of
16208 event-symbol-elements property.
16209
162101999-07-01 Richard Stallman <rms@gnu.org>
16211
16212 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16213
162141999-07-01 Kenichi Handa <handa@etl.go.jp>
16215
16216 * minibuf.c (read_minibuf): Set the multibyteness of the
16217 minibuffer before inserting `initial' string.
16218
162191999-06-30 Richard Stallman <rms@gnu.org>
16220
16221 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16222
162231999-06-29 Richard M. Stallman <rms@gnu.org>
16224
16225 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16226 Move the handling of MALLOC_CHECK_ envvar here.
16227 (main): Moved from here.
16228
162291999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16230
16231 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16232 function, assigned to the global __malloc_initialize_hook pointer.
16233 (main): Move malloc_set_state call into malloc_initialize_hook
16234 so that it happens as early as possible.
16235
162361999-06-27 Richard M. Stallman <rms@gnu.org>
16237
16238 * keyboard.c (read_key_sequence): Properly reinitialize
16239 fkey_map after translating thru Vkey_translation_map.
16240 After translating thru Vfunction_key_map, don't reset
16241 keytrans-start to 0.
16242
162431999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16244
16245 * w32.c (get_emacs_configuration): Use GetVersionEx to
16246 handle NT5.0 correctly. Include build number in configuration.
16247 w32heap.c (osinfo_cache): New variable.
16248 (cache_system_info): Initialize osinfo_cache.
16249 w32heap.h (osinfo_cache): Declare.
16250
162511999-06-24 Richard M. Stallman <rms@gnu.org>
16252
16253 * casefiddle.c (casify_object): Use make_multibyte_string
16254 if we casify a multibyte string.
16255
162561999-06-22 Ken'ichi Handa <handa@gnu.org>
16257
16258 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16259 del_range_byte instead of del_range_1, set `inserted' to the
16260 number of characters actually inserted.
16261
162621999-06-17 Dave Love <fx@gnu.org>
16263
16264 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16265
162661999-06-18 Paul Eggert <eggert@twinsun.com>
16267
16268 * filelock.c (BOOT_TIME_FILE): New macro.
16269 (get_boot_time): Use it instead of hardwiring the file name.
16270 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16271
162721999-06-17 Dave Love <fx@gnu.org>
16273
16274 * xdisp.c (invalid_eol_type): Make it unsigned.
16275
162761999-06-17 Karl Heuer <kwzh@gnu.org>
16277
16278 * process.c (send_process): Delete unsafe/redundant assignment.
16279
162801999-06-17 Jason Rumney <jasonr@gnu.org>
16281
16282 * w32term.c (dumprectangle): Handle wide characters properly.
16283
162841999-06-16 Andrew Innes <andrewi@gnu.org>
16285
16286 * s/ms-w32.h (strerror): Override the default implementation of
16287 strerror, so we can map winsock error codes.
16288
16289 * w32.c (sys_strerror): New function.
16290
16291 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16292
162931999-06-15 Ken'ichi Handa <handa@gnu.org>
16294
16295 * buffer.c (syms_of_buffer): Don't make
16296 enable-multibyte-characters customizable.
16297
162981999-06-15 Richard M. Stallman <rms@gnu.org>
16299
16300 * editfns.c (Fuser_full_name): Doc fix.
16301
163021999-06-14 Tak Ota <ota@atc.sel.sony.com>
16303
16304 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16305 (get_bitmap_with_cache): Check if CreateBitmap failed.
16306 Adjust cache size dynamically so cache is never larger than the
16307 system limit of GDI resources.
16308 Do cache clearing inline. Move global variables to local scope.
16309
16310
163111999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16312
16313 * unexsgi.c (unexec): Dump the .rodata section from memory
16314 under IRIX6.5 in order to be able to unexec with gcc.
16315
163161999-06-11 Greg Hudson <ghudson@MIT.EDU>
16317
16318 * indent.c (compute_motion): Fix boundary case.
16319
163201999-06-11 Jason Rumney <jasonr@altavista.net>
16321
16322 * w32term.c (cancel_mouse_face): New function. See equiv
16323 changes to xterm.c on 1996-10-31.
16324 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16325 (w32_read_socket): Use cancel_mouse_face.
16326 Update frame position when size is restored.
26901792
DL
16327
163281999-06-04 Richard M. Stallman <rms@gnu.org>
16329
16330 * lread.c (Vuser_init_file): New variable.
16331 (syms_of_lread): Set up Lisp variable.
16332 (Fload): Store the file name there, if var was t before.
16333
163341999-06-04 Paul Eggert <eggert@twinsun.com>
16335
16336 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16337 doesn't work if the system date is changed, or if the system
16338 is suspended. Look at the last-modified time of
16339 /var/run/random-seed instead.
16340
163411999-06-03 Ken'ichi Handa <handa@gnu.org>
16342
16343 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16344 japanese-jisx0208-1978 correctly.
16345
163461999-06-03 Andrew Innes <andrewi@gnu.org>
16347
16348 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16349 as possible to be dumped, for safety.
16350
163511999-06-02 Ken'ichi Handa <handa@gnu.org>
16352
16353 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16354 latin-jisx0201 correctly.
16355
163561999-05-26 Ken'ichi Handa <handa@gnu.org>
16357
16358 * charset.h (Vcharset_table): Comment fixed.
16359
163601999-05-24 Richard Stallman <rms@gnu.org>
16361
16362 * coding.c (syms_of_coding): Doc fix.
16363
16364 * buffer.c (syms_of_buffer): Doc fix.
16365
16366 * filelock.c (lock_if_free): After deleting a stale lock,
16367 try again to lock the file.
16368
163691999-05-22 Andrew Innes <andrewi@gnu.org>
16370
16371 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16372 console window size.
16373 (w32_console_read_socket): Call maybe_generate_resize_event
16374 whenever input events are received, since we don't get told when
16375 the window size changes (as opposed to the buffer size, which we
16376 don't care about).
16377
16378 * w32console.c (clear_frame): Remember that the window width might
16379 be smaller than the screen buffer width.
16380 (write_glyphs): Remove redundant variable attrs. Use
16381 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16382
163831999-05-20 Andrew Innes <andrewi@gnu.org>
16384
16385 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16386 loses focus.
16387
16388 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16389 frame loses focus, and that mouse button state is reset. Ditto
16390 when the menu bar is activated.
16391
163921999-05-18 Richard Stallman <rms@gnu.org>
16393
16394 * abbrev.c (Fdefine_abbrev): Doc fix.
16395
163961999-05-13 Paul Eggert <eggert@twinsun.com>
16397
16398 * filelock.c: Fix performance bug on hosts with large
16399 /var/adm/wtmp files with no boot records.
16400
16401 (boot_time_initialized): New var.
16402 (init_filelock): Initialize it.
16403 (get_boot_time): Use it, instead of nonzero boot_time,
16404 to test whether boot_time is initialized.
16405 Don't invoke utmp routines when dumping.
16406
16407 (get_boot_time): First, try to get the boot time from the
16408 current utmp file, as this can be much faster. Don't try to
16409 get the boot time from utmp and/or wtmp more than once.
16410
16411 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16412 New arg LATEST. All uses changed.
16413
164141999-05-15 Andrew Innes <andrewi@gnu.org>
16415
16416 * w32term.c (dumpglyphs): Use correct colours for drawing
16417 rectangles in place of missing fonts, and make them the right
16418 size.
16419
164201999-05-14 Dave Love <fx@gnu.org>
16421
16422 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16423 non-nil.
16424
164251999-05-11 Andrew Innes <andrewi@gnu.org>
16426
16427 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16428 definition.
16429 (w32_wnd_proc): Reinstall debugging output.
16430 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16431 (syms_of_w32fns): Reinstall new initializer for
16432 Vw32_phantom_key_code.
16433
16434 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16435 names for most non-European charsets, to cope with wildcards or
16436 missing spec dates.
16437 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16438 to avoid deadlock when activating the menu bar.
16439
164401999-05-10 Ken'ichi Handa <handa@gnu.org>
16441
16442 * search.c (boyer_moore): Get charset base value of `untranslated'
16443 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16444
164451999-05-10 Andreas Schwab <schwab@gnu.org>
16446
16447 * fileio.c (Fread_file_name): Correct handling of dollars in file
16448 names. Protect dollars in strings put on the file-name-history.
16449 Substitute homedir by `~' also in default_filename.
16450
16451 * xdisp.c (try_window_id): Fix computation of tab_offset when
16452 backing up over a character that is splitted across lines.
16453
164541999-05-08 Kenichi HANDA <handa@etl.go.jp>
16455
16456 * coding.c (code_convert_region): If eol format is inconsistent,
16457 change coding->symbol to the sibling coding system of Unix like
16458 eol format.
16459
164601999-05-09 Richard M. Stallman <rms@gnu.org>
16461
16462 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16463
16464 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16465
164661999-05-05 Andrew Innes <andrewi@gnu.org>
16467
16468 * w32fns.c (w32_strict_painting): New variable.
16469 (w32_wnd_proc): Use it to select repaint rules.
16470 (syms_of_w32fns): Defvar it.
16471
164721999-05-04 Andrew Innes <andrewi@gnu.org>
16473
16474 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16475 charsets to the standard Windows charset for Japanese.
16476
164771999-05-04 Ken'ichi Handa <handa@gnu.org>
16478
16479 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16480
16481 * ccl.h (struct ccl_program): New member stack_idx.
16482
16483 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16484 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16485 before returing.
16486 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16487
164881999-05-03 Jason Rumney <jasonr@altavista.net>
16489
16490 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16491
164921999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16493
16494 * dired.c (make_time): Make argument type be time_t.
16495
164961999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16497
16498 * msdos.c (unibyte_display_via_language_environment): Add extern.
16499
83c8f461 165001999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16501
16502 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16503 if unibyte_display_via_language_environment is set.
16504 (unibyte_display_via_language_environment):
16505 Variable moved from xfns.c and elsewhere.
16506 (syms_of_xfns): Set up Lisp var.
16507
16508 * xfns.c (unibyte_display_via_language_environment):
16509 Variable moved to xdisp.c.
16510 (syms_of_xfns): Don't set up Lisp var here.
16511
16512 * msdos.c (unibyte_display_via_language_environment):
16513 Variable moved to xdisp.c.
16514 (syms_of_msdos): Don't set up Lisp var here.
16515
16516 * w32fns.c (unibyte_display_via_language_environment):
16517 Variable moved to xdisp.c.
16518 (syms_of_w32fns): Don't set up Lisp var here.
16519
165201999-05-02 Andrew Innes <andrewi@gnu.org>
16521
16522 * s/ms-w32.h (HAVE_FSYNC): New macro.
16523 (fsync): Map to _commit.
16524 (ftruncate): Map to _chsize.
16525
16526 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16527 for ASCII, if enabled, to avoid memory allocation overhead for
16528 implicit Unicode conversion. Also, recognize that ASCII and
16529 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16530 already contains the Unicode characters in that case.
16531 (construct_drag_n_drop): Remove old code that was
16532 trashing the drop location.
16533
16534 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16535 nlines to encoding_buffer_size (real bug was in a ccl program in
16536 lisp/international/coding.el).
16537
16538 * w32reg.c (w32_get_string_resource): Check for name in current
16539 user area, and if not found look in the local machine area.
16540
16541 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16542 (Fw32_shell_execute): New function; used to support browse-url.
16543 (syms_of_w32fns): Register it.
16544 (w32_load_system_font): Force max width to be average
16545 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16546 slowdown.
16547 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16548 already defined.
16549 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16550
16551 * unexw32.c (get_section_info): Dump back the entire EMDATA
16552 section if we can put Emacs' initialized data in a separate
16553 section, otherwise use the my_begdata/my_edata method.
16554
16555 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16556
16557 * coding.c (decode_eol): Set produced/consumed values to zero if
16558 src_bytes is <= 0 on entry.
16559
165601999-05-02 Jason Rumney <jasonr@altavista.net>
16561
16562 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16563 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16564 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16565 field in frame.
16566 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16567 (dumprectangle): Take into account the width of a left-side
16568 scroll bar.
16569
16570 * w32proc.c (sys_kill): Attach to current foreground thread
16571 when grabbing focus; necessary on NT 5.0.
16572
16573 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16574 GetUpdateRect rather than BeginPaint.
16575 (w32_wnd_proc): Attach to current foreground thread
16576 when grabbing focus; necessary on NT 5.0.
16577 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16578 debugging display messages.
16579 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16580 false matching.
16581
165821999-05-02 Kenichi HANDA <handa@etl.go.jp>
16583
16584 * coding.c (setup_raw_text_coding_system): Call
16585 setup_coding_system to initialize the fields of struct
16586 coding_system correctly.
427ec082 16587
26901792
DL
165881999-04-26 Kenichi HANDA <handa@etl.go.jp>
16589
16590 * xterm.c (x_list_fonts): Fix previous change.
16591
165921999-04-26 Richard Stallman <rms@gnu.org>
16593
16594 * config.in (HAVE_LIBXP): Add #undef.
16595 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16596
165971999-04-12 Ken'ichi Handa <handa@gnu.org>
16598
16599 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16600 by them.
16601
166021999-04-12 Karl Heuer <kwzh@gnu.org>
16603
16604 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16605
166061999-04-11 Ken'ichi Handa <handa@gnu.org>
16607
16608 * fontset.c (Fset_fontset_font): Fix previous change.
16609
166101999-04-09 Ken'ichi Handa <handa@gnu.org>
16611
16612 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16613 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16614
166151999-04-08 Richard Stallman <rms@gnu.org>
16616
16617 * process.c (Faccept_process_output): Check validity of PROCESS.
16618
166191999-04-08 Eli Zaretskii <eliz@gnu.org>
16620
16621 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16622
166231999-04-07 Richard Stallman <rms@gnu.org>
16624
16625 * xfns.c (x_set_font): Fix error message.
16626
16627 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16628 (Fnew_fontset, Fset_fontset_font): Check for them here.
16629 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16630 Fix error message syntax.
16631
16632 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16633 from the base buffer.
16634 (Fset_buffer_multibyte): Copy new multibyte status
16635 into the buffer's indirect buffers.
16636
166371999-04-07 Ken'ichi Handa <handa@gnu.org>
16638
16639 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16640 tail.
16641
166421999-04-06 Richard Stallman <rms@gnu.org>
16643
16644 * dired.c (Ffile_attributes): Doc fix.
16645
16646 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16647 Convert 0200 to meta only in a unibyte string.
16648 (Fkey_description): Likewise.
16649
16650 * eval.c (do_autoload): Preserve match data.
16651
166521999-04-06 Kenichi HANDA <handa@etl.go.jp>
16653
16654 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16655 encode_coding to avoid carryover.
16656
16657 * coding.c: Add comments for decode_coding and encode_coding.
16658
16659 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16660 a composite character by skipping its leading code.
16661 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16662 correctly.
16663
16664 * coding.c: Add comments for decode_coding and encode_coding.
16665
16666 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16667 a composite character by skipping its leading code.
16668 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16669 correctly.
16670
166711999-04-06 Eli Zaretskii <eliz@gnu.org>
16672
16673 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16674 table was used.
16675 (jp_kbd_translate_table): Support C-\.
16676 (it_kbd_translate_table): Map `>' correctly.
16677 (it_keyboard): Add `>'.
16678
166791999-04-06 Richard Stallman <rms@gnu.org>
16680
16681 * intervals.c (graft_intervals_into_buffer): Turn off
16682 inhibit_modification_hooks around calling Fset_text_properties.
16683
166841999-04-05 Kenichi HANDA <handa@etl.go.jp>
16685
16686 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16687 glyphs.
16688
166891999-04-05 Eli Zaretskii <eliz@gnu.org>
16690
16691 * msdos.c (jp_kbd_translate_table): Fix last change.
16692
166931999-04-04 Eli Zaretskii <eliz@gnu.org>
16694
16695 * msdos.c (struct kbd_translate): New struct, for key translation
16696 tables private to certain national keyboard layouts.
16697 (struct dos_keyboard_map): Add a pointer to a private translation
16698 table.
16699 (jp_kbd_translate_table): Private table for the Japanese
16700 keyboard.
16701 (jp_keyboard): Japanese keyboard layout.
16702 (it_kbd_translate_table): Private table for the Italian keyboard.
16703 (it_keyboard): Use it_kbd_translate_table.
16704 (keyboard_layout_list): Add the Japanese keyboard.
16705 (dos_rawgetc): Use the keyboard-private translation table, if
16706 available.
16707 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16708
167091999-04-02 Kenichi HANDA <handa@etl.go.jp>
16710
16711 * xdisp.c (redisplay_window): When we call compute_motion with
16712 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16713 (display_text_line): Stop the loop for processing overlay strings
16714 when we reach the right edge of the window.
16715
83c8f461 167161999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16717
16718 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16719 let the data control whether string is unibyte.
16720
167211999-03-30 Richard M. Stallman <rms@gnu.org>
16722
16723 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16724 (pop_kbd_macro): Restore the saved real_this_command.
16725 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16726
167271999-03-26 Richard M. Stallman <rms@gnu.org>
16728
16729 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16730 if buffer-file-name is nil.
16731
167321999-03-25 Jason Rumney <jasonr@altavista.net>
16733
16734 * w32select.c (Fw32_set_clipboard_data): Take into account line
16735 ends when calculating clipboard storage needed for non-ASCII text.
16736
167371999-03-25 Andrew Innes <andrewi@gnu.org>
16738
16739 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16740 (epaths.h): Renamed from paths.h.
427ec082
SS
16741 (clean):
16742 ($(BLD)\filelock.obj):
16743 ($(BLD)\lread.obj):
26901792
DL
16744 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16745
167461999-03-23 Ken'ichi Handa <handa@gnu.org>
16747
16748 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16749 ENCODE_ISO_CHARACTER for the previous change on this macro.
16750
167511999-03-23 Kenichi Handa <handa@etl.go.jp>
16752
16753 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16754 eoltype correctly for backward compatibility.
16755
167561999-03-20 Kenichi HANDA <handa@etl.go.jp>
16757
16758 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16759 invalid, produce the buffer internal byte sequence without encoding.
16760
167611999-03-19 Karl Heuer <kwzh@gnu.org>
16762
16763 * editfns.c (Fformat): Accept %i format.
16764
167651999-03-17 Karl Heuer <kwzh@gnu.org>
16766
16767 * filelock.c (get_boot_time): Test tempname, not filename.
16768
167691999-03-17 Jason Rumney <jasonr@altavista.net>
16770
e5619f6b
JR
16771 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16772 speed display.
16773
16774 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16775 speed display.
16776 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16777 New functions.
16778 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16779 Use bitmap cache.
26901792
DL
16780
16781 * w32fns.c (enum_font_cb2): Set the font height to be the
16782 character height, not the cell height.
16783 (Fw32_select_font): Initialize font dialog with current default font.
16784 (Vw32_system_coding_system): New variable.
16785 (w32_strict_filenames): Add comment.
16786 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16787 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16788 (syms_of_w32fns): Add w32-system-coding-system.
16789
167901999-03-15 Richard M. Stallman <rms@gnu.org>
16791
16792 * xterm.c (XTread_socket) <ConfigureNotify>:
16793 If cursor pos is outside the new frame size, mark cursor as off.
16794
167951999-03-14 Ken'ichi Handa <handa@gnu.org>
16796
16797 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16798
16799 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16800 by them.
16801
168021999-03-14 Richard M. Stallman <rms@gnu.org>
16803
16804 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16805 at beginning.
16806
168071999-03-14 Jason Rumney <jasonr@altavista.net>
16808
16809 * w32fns.c (w32_strict_fontnames): New variable.
16810 (Fx_create_frame): Formatting fix.
16811 (w32_load_system_font): Keep trying to load non-existant font
16812 if w32_strict_fontnames is nil. Formatting fix.
16813 (syms_of_w32fns): Add w32-strict-fontnames.
16814
16815 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16816 (dumpglyphs): Formatting fixes.
16817
168181999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16819
16820 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16821
168221999-03-10 Karl Heuer <kwzh@gnu.org>
16823
16824 * puresize.h (BASE_PURESIZE): Increase to 505000.
16825
168261999-03-09 Richard M. Stallman <rms@gnu.org>
16827
16828 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16829
16830 * filelock.c (init_filelock): New function.
16831
168321999-03-09 Dave Love <fx@gnu.org>
16833
16834 * fileio.c (Ffile_directory_p): Doc fix.
16835
83c8f461 168361999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16837
16838 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16839
168401999-03-08 Richard M. Stallman <rms@gnu.org>
16841
16842 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16843 to only the part that uses get_boot_time_1.
16844
168451999-03-07 Dave Love <fx@gnu.org>
16846
16847 * fileio.c (Finsert_file_contents): Use xfree.
16848
168491999-03-06 Kenichi Handa <handa@etl.go.jp>
16850
16851 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16852 term.o, xselect.o): Depend on ccl.h.
16853
168541999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16855
16856 * makefile.nt: Remove common multiple file compilation commands.
16857
168581999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16859
16860 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16861 newlines added when the arg NO-LINE-BREAK is nil.
16862
168631999-03-04 Karl Heuer <kwzh@gnu.org>
16864
16865 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16866
16867 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16868
168691999-03-04 Dave Love <fx@gnu.org>
16870
16871 * term.c (term_init): Use xmalloc, not malloc.
16872
16873 * callproc.c (Fcall_process): Use xmalloc, xfree.
16874
168751999-03-03 Andreas Schwab <schwab@gnu.org>
16876
16877 * eval.c (Fdefconst): Doc fix.
16878
168791999-03-01 Kenichi Handa <handa@etl.go.jp>
16880
16881 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16882
168831999-03-01 Eli Zaretskii <eliz@gnu.org>
16884
16885 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16886
168871999-02-28 Richard M. Stallman <rms@gnu.org>
16888
16889 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16890
16891 * cmds.c (internal_self_insert): Calculate column properly
16892 in overwrite-of-tab case.
16893
168941999-02-27 Andreas Schwab <schwab@gnu.org>
16895
16896 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16897 malloc in glibc 2.1.
16898
168991999-02-26 Richard Stallman <rms@gnu.org>
16900
16901 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16902
16903 * epaths.in: Renamed from paths.in.
16904 This avoids a conflict with a system header file paths.h on GNU/Linux.
16905
16906 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16907 Use epaths.h istead of paths.h.
16908
169091999-02-26 Andreas Schwab <schwab@gnu.org>
16910
16911 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16912 malloc.
16913
169141999-02-25 Dave Love <fx@gnu.org>
16915
16916 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16917
169181999-02-25 Richard Stallman <rms@gnu.org>
16919
16920 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16921 (WTMP_FILE): Default definition in case not defined.
16922 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16923
26901792
DL
169241999-02-25 Ken'ichi Handa <handa@gnu.org>
16925
16926 * keymap.c (push_key_description): If enable-multibyte-characters
16927 is nil and C is single byte, push C as is.
16928
169291999-02-24 Kenichi Handa <handa@etl.go.jp>
16930
16931 * keymap.c (push_key_description): If enable-multibyte-characters
16932 is non-nil, try to convert unibyte character to multibyte. For
16933 invalid multibyte character, show all bits by octal form.
16934 (Fsingle_key_description): Check the validity of charset for a
16935 generic character.
16936
169371999-02-23 Richard M. Stallman <rms@gnu.org>
16938
16939 * fileio.c (Ffile_regular_p): Undo previous change.
16940
16941 * eval.c (Fdefconst): Doc fix.
16942
16943 * filelock.c (get_boot_time): Don't use BUFSIZ.
16944
169451999-02-22 Andrew Innes <andrewi@gnu.org>
16946
16947 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16948 (EXTRA_LINK): Do version test with strings.
16949
169501999-02-22 Andreas Schwab <schwab@gnu.org>
16951
16952 * fns.c (Fbase64_encode_string): Fix last change.
16953
16954 * termhooks.h (event_kind): Add user_signal.
16955
16956 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16957 (syms_of_keyboard): Initialize them.
16958 (lispy_user_signals): New variable.
16959 (make_lispy_event): Handle user_signal event type.
16960
16961 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16962 (syms_of_emacs): Don't initialize them.
16963 (handle_USR1_signal, handle_USR2_signal): Set event type to
16964 user_signal instead of non_ascii_keystroke, and use plain integers
16965 as code instead of Lisp symbols.
16966
169671999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16968
16969 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16970
169711999-02-21 Richard Stallman <rms@gnu.org>
16972
16973 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16974
16975 * print.c (print_error_message): Don't crash if (cdr data)
16976 is not a list.
16977
169781999-02-21 Eli Zaretskii <eliz@gnu.org>
16979
16980 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16981
169821999-02-20 Andrew Innes <andrewi@gnu.org>
16983
16984 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16985 run, since size can vary from run to run.
16986
16987 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16988 data is included, to enable profiling.
16989 ($(EMACS)): Map file not needed for emacs.exe.
16990
16991 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16992 as malloc before calling uninterrupt_malloc, for consistency.
16993 This also enables profiling to work on WINDOWSNT.
16994
169951999-02-18 Richard Stallman <rms@gnu.org>
16996
16997 * Makefile.in (emacs.o): Depend on termhooks.h.
16998 (filelock.o): Depend on systime.h.
16999
170001999-02-18 Ken'ichi Handa <handa@gnu.org>
17001
17002 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
17003 (Fdecode_big5_char): Likewise.
17004
170051999-02-17 Richard Stallman <rms@gnu.org>
17006
17007 * insdel.c (adjust_markers_for_replace): When doing an insertion
17008 (replacing a region of zero length), handle markers at the
17009 insertion point properly.
17010
170111999-02-17 Andrew Innes <andrewi@gnu.org>
17012
17013 * w32fns.c (Vw32_quit_key): New variable.
17014 (post_character_message): Use it.
17015 (syms_of_w32fns): DEFVAR it.
17016
170171999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
17018
17019 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
17020
170211999-02-16 Richard Stallman <rms@gnu.org>
17022
17023 * filelock.c (within_one_second): New function.
17024 (current_lock_owner): Use that.
17025 (get_boot_time): Use /proc/uptime if available.
17026 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
17027 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 17028
26901792
DL
170291999-02-16 Richard Stallman <rms@gnu.org>
17030
17031 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17032 (syms_of_emacs): Init and staticpro them.
17033 (handle_USR1_signal): Don't run any code, just queue up an event.
17034 (handle_USR2_signal): Likewise.
17035
170361999-02-16 Eli Zaretskii <eliz@gnu.org>
17037
17038 * dired.c (Ffile_attributes): If the file's size doesn't fit in
17039 an integer, return it as a float. Doc string fixed.
17040
170411999-02-16 Richard Stallman <rms@gnu.org>
17042
17043 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17044 (syms_of_emacs): Init and staticpro them.
17045 (handle_USR1_signal): Don't run any code, just queue up an event.
17046 (handle_USR2_signal): Likewise.
17047
170481999-02-15 Kenichi Handa <handa@etl.go.jp>
17049
17050 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
17051 ASCII correctly. Signal error on invalid characters.
17052 (Fdecode_big5_char, Fencode_big5_char): Likewise.
17053
170541999-02-15 Eli Zaretskii <eliz@gnu.org>
17055
17056 * w16select.c (get_clipboard_data): Work around a bug in Windows95
17057 DOS box which doubles the reported size of text in the clipboard.
17058
170591999-02-15 Kenichi Handa <handa@etl.go.jp>
17060
17061 * coding.c (decode_coding_iso2022): Don't set
17062 coding->composed_chars to 0 here.
17063 (setup_coding_system): Set coding->composed_chars to 0 here.
17064
170651999-02-10 Richard Stallman <rms@gnu.org>
17066
17067 * fileio.c (Ffile_regular_p): Use lstat.
17068
170691999-02-09 Richard Stallman <rms@gnu.org>
17070
17071 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
17072 (unexec): Test this instead of specific systems.
17073
17074 * m/macppc.h: New file.
17075
170761999-02-08 Dave Love <fx@gnu.org>
17077
17078 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
17079
170801999-02-08 Ken'ichi Handa <handa@gnu.org>
17081
17082 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
17083 should be set to coding->produced.
17084
170851999-02-07 Paul Fisher <rao@gnu.org>
17086
17087 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
17088 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
17089
170901999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
17091
17092 * editfns.c (Fformat): Doc fix.
17093
170941999-02-06 Richard Stallman <rms@gnu.org>
17095
17096 * process.c (syms_of_process): defsubr it.
17097 (Fprocess_running_child_p): New function.
17098
170991999-02-05 Andrew Innes <andrewi@gnu.org>
17100
17101 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
17102 recording drop position.
17103
171041999-02-05 Ken'ichi Handa <handa@gnu.org>
17105
17106 * coding.c (encode_coding_iso2022): Before writing out an invalid
17107 code, reset graphic planes and registers if necessary.
17108
17109 * term.c (encode_terminal_code): Fix previous change.
17110
171111999-02-04 Eli Zaretskii <eliz@gnu.org>
17112
17113 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17114 static variables.
17115 (set_clipboard_data): Save a copy of the text we put into
17116 clipboard in last_clipboard_text.
17117 (get_clipboard_data): If the clipboard text is identical to what
17118 last_clipboard_text holds, pretend there's no data in the clipboard.
17119
171201999-02-03 Richard Stallman <rms@gnu.org>
17121
17122 * s/gnu.h (NLIST_STRUCT): Add #undef.
17123
171241999-02-03 Eli Zaretskii <eliz@gnu.org>
17125
17126 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17127 encoded, set its pointer and size as returned by encode_coding.
17128
171291999-02-02 Ken'ichi Handa <handa@gnu.org>
17130
17131 * fns.c (Fset_char_table_default): To handle the case that CH is
17132 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17133
171341999-02-02 Andrew Innes <andrewi@gnu.org>
17135
17136 * w32fns.c (syms_of_w32fns): Change default value of
17137 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17138 some mice works properly.
17139
171401999-02-02 Eli Zaretskii <eliz@gnu.org>
17141
17142 * w16select.c (set_clipboard_data): Correctly null-terminate the
17143 string to be put into the Windows clipboard. Use xbuf_addr.
17144
171451999-02-01 Richard Stallman <rms@gnu.org>
17146
17147 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17148
171491999-01-31 Richard Stallman <rms@gnu.org>
17150
17151 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17152 then don't send the signal if the shell owns the terminal.
17153 (Finterrupt_process): Doc change.
427ec082 17154
26901792
DL
171551999-01-31 Andrew Innes <andrewi@gnu.org>
17156
17157 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17158 (copy_executable_and_dump_data): Use it to ensure alignment slop
17159 is zeroed.
17160
171611999-01-30 Andrew Innes <andrewi@gnu.org>
17162
17163 * w32.c (init_environment): Change argv[0] to contain the full
17164 path to Emacs.
17165
17166 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17167
171681999-01-29 Ken'ichi Handa <handa@gnu.org>
17169
17170 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17171 returned by x_new_font (the resolved one) but use the font name
17172 set in the fontset specification.
17173 (x_load_font): For the height of font, if normarl ascent and
17174 descent value are larger than those in max_bounds field, use the
17175 former.
17176
171771999-01-28 Eli Zaretskii <eliz@gnu.org>
17178
17179 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17180
171811999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17182
17183 * makefile.nt: Use full path to temacs.exe when dumping.
17184
171851999-01-27 Jason Rumney <jasonr@altavista.net>
17186
17187 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17188 list was reliable.
17189 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17190 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17191 (w32_list_synthesized_fonts): New function.
17192 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17193 available instead of EnumFontFamilies. List synthesized fonts if
17194 Vw32_enable_italics is non-nil.
427ec082 17195
26901792
DL
171961999-01-27 Richard Stallman <rms@gnu.org>
17197
17198 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17199 Don't complain if ttcompat does not exist.
17200
17201 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17202
172031999-01-27 Andrew Innes <andrewi@gnu.org>
17204
17205 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17206 the lwindow, rwindow and apps keys could not be used as function
17207 keys, because they were being passed to TranslateMessage which
17208 ignores them. Also, key was being changed to SPC.
17209
17210 * makefile.nt: Do make version comparison as strings.
17211
172121999-01-27 Eli Zaretskii <eliz@gnu.org>
17213
17214 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17215 strings, not characters.
17216
17217 * coding.h: Likewise.
17218
17219 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17220 string.
17221
172221999-01-26 Dave Love <fx@gnu.org>
17223
17224 * emacs.c (main): Up-date copyright.
17225
172261999-01-25 Dave Love <fx@gnu.org>
17227
17228 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17229
172301999-01-25 Andreas Schwab <schwab@gnu.org>
17231
17232 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17233
172341999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17235
17236 * xfns.c (x_set_frame_parameters): gcpro as needed.
17237
17238 * window.c (Fset_window_point): If WINDOW is selected but the
17239 current buffer is not its buffer, don't use Fgoto_char.
17240
172411999-01-22 Richard M. Stallman <rms@gnu.org>
17242
17243 * syntax.c (scan_sexps_forward): Delete duplicate code
17244 to set prev_from_syntax, above start of main loop.
17245 At startinstring, check syntax when checking for a match.
17246
172471999-01-22 Jason Rumney <jasonr@altavista.net>
17248
17249 * w32bdf.c: New file.
17250 * w32bdf.h: New file.
17251 * makefile.nt: Add w32bdf.c and w32bdf.h.
17252
17253 * w32gui.h: Include w32bdf.h.
17254 (W32FontStruct) Add bdf element.
17255
17256 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17257 Support BDF fonts.
17258
17259 * w32term.c (W32_TEXTOUT): New macro.
17260 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17261 Simplify baseline calculation. Detect SJIS by font, not glyph.
17262 Call SetTextAlign.
17263 (syms_of_w32term): Remove "jisx0212-sjis" from
17264 w32-charset-to-codepage-alist.
17265 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17266 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17267
26901792
DL
17268 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17269 (x_destroy_bitmap): Returns void not int.
17270 (x_set_border_pixel): Returns void.
17271 (w32_load_bdf_font): New function.
17272 (w32_load_system_font): New function, was w32_load_font. List
17273 fonts before loading. Explicitly set encoding for SJIS fonts.
17274 Set default_ascent to 0 as comment indicates.
17275 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17276 (w32_unload_font): Support BDF fonts.
17277 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17278 Autodetect whether to use koi8-r instead of iso8859-5.
17279 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17280 Associate "ksc5601.1992" with JOHAB_CHARSET.
17281 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17282 (w32_to_x_font): Add resolution.
17283 (x_to_w32_font): Use font resolution to calculate height if supplied.
17284 (w32_font_match): Handle wildcards anywhere within field.
17285 (enumfont_t): Remove unused head pointer.
17286 (enum_font_cb2): Dereference elfLogFont.
17287 (w32_list_bdf_fonts): New function.
17288 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17289 valid frame. Remove MessageBox. Support BDF fonts.
17290 (Fw32_find_bdf_fonts): New function.
17291 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17292 Sw32_find_bdf_fonts.
17293
172941999-01-21 Andrew Innes <andrewi@gnu.org>
17295
17296 * makefile.nt (temacs): Use del to delete file, not rm.
17297
172981999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17299
17300 * keyboard.c (read_key_sequence): Fix previous change.
17301
17302 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17303 as the same. Treat "myname:0" as the same as those two.
17304
173051999-01-19 Jason Rumney <jasonr@altavista.net>
17306
17307 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17308 (w32_to_x_charset): Fix charset mappings.
17309
17310 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17311 (dumpglyphs): Move definitions out of block containing goto.
17312 Remove redundant code for BIG5.
17313 Use w32_codepage_for_font instead of
17314 w32_codepage_for_charset. Add cast to int where float
17315 operation is assigned to int.
17316 (Vw32_charset_to_codepage_alist): New variable.
17317 (w32_codepage_for_charset): Removed.
427ec082
SS
17318 (w32_codepage_for_font): New function, replacing
17319 w32_codepage_for_charset.
26901792
DL
17320 (syms_of_w32term): Add and initialize
17321 w32-charset-to-codepage-alist.
17322
173231999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17324
17325 * xselect.c (x_handle_selection_clear): Don't clear the
17326 selection if Emacs still owns it through a different display.
17327
173281999-01-17 Andrew Innes <andrewi@gnu.org>
17329
17330 * w32proc.c: (w32_executable_type): Relax the check to identify
17331 cygwin-compiled applications, because the exact dll name varies
17332 with release. Now only require the name to start "cygwin".
17333
17334 * w32heap.h: (ROUND_UP):
17335 (ROUND_DOWN): New macros.
17336 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17337 (init_heap): New extern.
17338 (data_region_size):
17339 (recreate_heap):
17340 (read_in_bss):
17341 (map_in_heap):
17342 (round_to_next):
17343 (w32_fatal_reload_error):
17344 (get_section_size): Obsolete externs removed.
17345
17346 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17347 current process.
17348 (round_to_next): Obsolete function removed.
17349 (preload_heap_section): New variable.
17350 (data_region_size): Obsolete variable removed.
17351 (allocate_heap): Modified to determine end of static heap section
17352 used during preload, and use that as initial base address for
17353 dynamic heap instead of hard-coded value.
17354 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17355 calls to commit or decommit pages when allocating from static heap
17356 section during preload.
17357 (recreate_heap): Obsolete function removed.
17358 (init_heap): New function to initialize internal sbrk heap
17359 variables. Uses static heap section during preload, otherwise
17360 calls allocate_heap to reserve a heap region dynamically.
17361 (round_heap): Use ROUND_UP macro instead of round_to_next.
17362
17363 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17364 static "bss" section is used for heap space during preload, and
17365 bss data is now written to the proper section area when dumping.
17366 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17367 (heap_index_in_executable): Obsolete variable removed.
17368 (data_section): New variable.
17369 (data_start_va): Renamed to data_start.
17370 (data_start_file): Obsolete variable removed.
17371 (bss_section):
17372 (extra_bss_size):
17373 (bss_section_static):
17374 (bss_start_static):
17375 (bss_size_static):
17376 (extra_bss_size_static):
17377 (heap_section): New variables.
17378 (_start): Remove code based on old unexec method. Call init_heap
17379 to initialize sbrk heap.
17380 (close_file_data): Update size of file when closing, so that
17381 unexec doesn't have to work out exact size in advance.
17382 (get_bss_info_from_map_file):
17383 (get_section_size): Obsolete functions removed.
17384 (rva_to_section): Fix minor bug, and add a work-around for a bug
17385 in very old linkers.
17386 (offset_to_section):
17387 (relocate_offset): New functions.
17388 (OFFSET_TO_RVA):
17389 (RVA_TO_OFFSET):
17390 (RVA_TO_SECTION_OFFSET):
17391 (PTR_TO_RVA):
17392 (PTR_TO_OFFSET):
17393 (OFFSET_TO_PTR): New macros.
17394 (get_section_info): Modify to support new unexec method;
17395 determines address ranges in process that need dumping, and COFF
17396 sections where data will be dumped. Allows for static and global
17397 bss data to be in separate ranges. No longer relies on knowledge
17398 of section names.
17399 (copy_executable_and_dump_data_section): Renamed
17400 copy_executable_and_dump_data. Completely rewritten to copy
17401 executable section by section, so that raw data areas can be
17402 expanded to hold dumped data as necessary. Allows for bss data to
17403 be in same section as initialized data. Reduces size of static
17404 heap section to that used during preload.
17405 (dump_bss_and_heap):
17406 (w32_fatal_reload_error):
17407 (read_in_bss):
17408 (map_in_heap): Obsolete functions removed.
17409 (unexec): Rounds off preload heap to nearest page rather than
17410 virtual allocation unit. Modified to match other changes.
17411
17412 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17413 data_region_size.
17414
17415 * makefile.nt: (TEMACS_TMP): New macro.
17416 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17417 processor to add static heap section in support of new unexec.
17418
17419 * lastfile.c: Include config.h to pick up data layout pragmas.
17420 [WINDOWSNT]: Remove explicit pragma.
17421
174221999-01-12 Kenichi Handa <handa@etl.go.jp>
17423
17424 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17425 correctly.
17426 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17427
174281999-01-11 Dave Love <fx@gnu.org>
17429
17430 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17431
174321999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17433
17434 * keyboard.c (read_key_sequence): In key-translation-map and
17435 function-key-map, handle symbol with array as fn def.
17436 In function-key-map, handle symbol with keymap as fn def,
17437 and autoloaded definitions.
427ec082 17438
26901792
DL
17439 * puresize.h (BASE_PURESIZE): Increment to 500000.
17440
17441 * print.c (Qtemp_buffer_setup_hook): New variable.
17442 (syms_of_print): Init and staticpro that.
17443 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17444
174451999-01-11 Kenichi Handa <handa@etl.go.jp>
17446
17447 * insdel.c (del_range_1): Call signal_after_change.
17448 (del_range_byte): Likewise.
17449 (del_range_both): Likewise.
17450 (del_range_2): Don't call signal_after_change.
17451
17452 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17453 Lisp code here.
17454
174551999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17456
17457 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17458 never run the debugger, and don't bother checking the args
17459 to see whether the debugger should be run.
17460
174611999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17462
17463 * keyboard.c (read_key_sequence):
17464 Tell get_keyelt to look handle autoloads.
17465 Handle symbols defined as keymaps, and autoloaded keymaps.
17466
174671999-01-06 Kenichi Handa <handa@etl.go.jp>
17468
17469 * search.c (search_buffer): Fix previous change.
17470
174711999-01-06 Eli Zaretskii <eliz@gnu.org>
17472
17473 * w16select.c (set_clipboard_data): Terminate the text with a null
17474 character. Don't allow to put binary data into the clipboard.
17475 Return zero in case of success, 1 or 2 otherwise.
17476 (get_clipboard_data): Only bail out if the null character is in
17477 the last 32-byte chunk of clipboard data
17478 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17479 they save binary data, print a message in the echo area saying the
17480 text was not put into the clipboard.
17481
17482 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17483
174841999-01-06 Andreas Schwab <schwab@gnu.org>
17485
17486 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17487 _BSD_SOURCE, the latter is always defined.
17488
174891999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17490
17491 * fns.c (Frequire): Don't fail to unbind bindings.
17492
174931999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17494
17495 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17496
17497 * charset.c (Ffind_charset_region): Fix doc typo.
17498
174991998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17500
17501 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17502 multibyte in unibyte buffers only.
17503
17504 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17505 and pass it to Fmake_sparse_keymap.
17506
175071998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17508
17509 * alloc.c (MMAP_MAX_AREAS): New macro.
17510 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17511 (init_alloc_once): Use that.
17512
17513 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17514
17515 * alloc.c (lisp_malloc, lisp_free): New functions.
17516 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17517 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17518 (n_interval_blocks, n_float_blocks): New variable.
17519 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17520 (n_marker_blocks, n_string_blocks): New variable.
17521 (init_intervals, make_interval): Set a count variable.
17522 Use lisp_malloc instead of setting allocating_for_lisp.
17523 (init_float, make_float, init_cons, Fcons): Likewise.
17524 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17525 (init_marker, allocate_misc, init_strings): Likewise.
17526 (make_uninit_multibyte_string): Likewise.
17527 (gc_sweep, compact_strings): Decrement the count variables.
17528
17529 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17530 into the old_..._hook variables.
17531
175321998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17533
17534 * keyboard.c: In each active map, for each menu bar item, use only
17535 the first submap.
17536 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17537 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17538 (syms_of_keyboard): Staticpro and init it.
17539
427ec082 17540 * xmenu.c (single_keymap_panes):
26901792
DL
17541
175421998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17543
17544 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17545 by complete_deferred_msg.
17546 (post_character_message): Cancel all deferred messages when
17547 quit_char is typed, in order to break out of potential deadlocks.
17548 (cancel_all_deferred_msgs): New function.
17549 (complete_deferred_msg): Don't abort if msg not found; may have
17550 been cancelled.
17551 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17552 (Fw32_send_sys_command): Wait for system command to
17553 complete before returning.
427ec082 17554
26901792
DL
17555 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17556 not set async_iconified flag though.
17557
17558 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17559 (create_child): Use it.
17560 (syms_of_ntproc): Defvar it. Also fix docstrings for
17561 w32-start-process-share-console and w32-start-process-show-window.
17562
17563 * unexw32.c (_start): Force system calls accessing unmounted
17564 devices to fail without prompting.
17565
175661998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17567
17568 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17569 even when starting the dumped Emacs.
17570
17571 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17572 (Fkey_description): Handle lists like vectors.
17573
175741998-12-21 Kenichi Handa <handa@etl.go.jp>
17575
17576 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17577 because of the change of the second argument of Fread_char.
17578
17579 * charset.c (Fcharset_after): Check range. If POS is out of
17580 range, return nil.
17581
17582 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17583
17584 * lread.c (Fread_char): Change the meaning of the second argument.
17585 (Fread_event): Likewise.
17586 (Fread_char_exclusive): Likewise.
17587
17588 * print.c (printchar): Fix previous change.
17589
17590 * process.c (read_process_output): Decide the multibyteness of
17591 string given to a process filter by a coding system used for
17592 decoding the process output.
17593
175941998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17595
17596 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17597 nonascii-translation-table.
17598 * msdos.c (IT_write_glyphs): Likewise.
17599 * fns.c (concat): Likewise.
17600 * charset.c (unibyte_char_to_multibyte): Likewise.
17601 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17602
176031998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17604
17605 * doc.c (Fdocumentation): Change the doc string for prefix
17606 commands to make it a complete sentence in one line.
17607
176081998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17609
17610 * s/irix6-5.h: New file.
17611 * s/irix6-0.h (IRIX6): Define this symbol.
17612 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17613 (bcopy, bcmp, bzero): Likewise.
17614 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17615 (C_SWITCH_MACHINE): New value for irix6.5.
17616
176171998-12-15 Richard Stallman <rms@gnu.org>
17618
17619 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17620 Do free malloc'd memory even in case of failure. Use xfree, not free.
17621 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17622 (base64_decode_1): Don't fail for short lines.
17623
17624 * print.c (printchar): Outputting multibyte characters
17625 to echo area always makes it multibyte.
17626
17627 * search.c (search_buffer): Don't use Boyer-Moore
17628 to search for an invalid multibyte code.
17629 In unibyte case, no need to check whether there are translations
17630 in more than one charset; just set charset_base to 0.
17631
176321998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17633
17634 * print.c (printchar): Cancel previous change.
17635
176361998-12-15 Kenichi Handa <handa@etl.go.jp>
17637
17638 * callproc.c: Include "ccl.h".
17639 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17640 bit in argument_coding.mode to tell encoding procedure to flush
17641 data. While encoding arguments, if argument_coding uses CCL
17642 program, initialize it again after encoding.
17643 (Fcall_process_region): Doc-string modified. Handle the case that
17644 NARGS is 3.
17645
17646 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17647 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17648 Set `ic' to the head of this command.
17649 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17650 code for an invalid code.
17651 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17652 based on VEC.
17653
17654 * charset.c (Qunknown): New variable.
17655 (init_charset_once): Intern and staticpro Qunknown. Initialize
17656 all elements of Vcharset_symbol_table to Qunknown.
17657 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17658 unibyte characters only. For an invalid composition sequence, set
17659 CHARSETS[1] to 1.
17660 (Ffind_charset_region): Call find_charset_in_str with an
17661 appropriate MULTIBYTE arg. If undefined charsets are found,
17662 include `unknown' is the return value.
17663 (Ffind_charset_string): Likewise.
17664 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17665 (str_cmpchar_id): Max composite character code should be less than
17666 GENERIC_COMPOSITION_CHAR.
17667
17668 * charset.h (find_charset_in_str): Update declaration.
17669
17670 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17671 final_char is invalid.
17672 (decode_coding): If coding->type is coding_type_ccl, call
17673 ccl_coding_driver even if SRC_BYTES is zero.
17674 (code_convert_region): Update `inserted' correctly after calling
17675 coding->post_read_conversion. Even after the code converter
17676 consumed all source text, call it once more if it is
17677 coding_type_ccl to flush out data.
17678
17679 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17680 CODING is handled by CCL program, call code_convert_region.
17681
17682 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17683 correctly.
17684 (string_byte_to_char): Likesize.
17685
17686 * print.c (printchar): When outputting a multibyte character to
17687 echo area, always set message_enable_multibyte to 1.
17688
17689 * process.c (read_process_output): If NBYTES is zero and
17690 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17691 and try decoding again.
17692 (Fprocess_send_eof): If the coding system of PROCESS
17693 requires flushing, call send_process with null-string at first.
17694
17695 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17696 with MULTIBYTE arg 0.
17697 * w32select.c (Fw32_set_clipboard_data): Likewise.
17698 * xselect.c (lisp_data_to_selection_data): Likewise.
17699
177001998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17701
17702 * search.c (Freplace_match): Set OPOINT clearly for the case
17703 where point is in the middle of the text to be replaced.
17704
17705 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17706 if compute_motion fails to advance at all, don't back it up.
17707
177081998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17709
17710 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17711
427ec082 17712 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17713
177141998-12-09 Richard Stallman <rms@gnu.org>
17715
17716 * insdel.c (insert_from_buffer_1): Properly count the size
17717 of output from conversion to multibyte even when input
17718 is split across the gap.
17719
177201998-12-09 Karl Heuer <kwzh@gnu.org>
17721
17722 * keyboard.c: Doc fixes.
17723
17724 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17725
177261998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17727
17728 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17729 characters, only convert CRLF to LF.
17730
177311998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17732
17733 * makefile.nt: Do string comparision of _NMAKE_VER.
17734
177351998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17736
17737 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17738 coding.h, and disptab.h
17739
17740 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17741 (syms_of_msdos): DEFVAR_LISP it.
17742 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17743 (internal_terminal_init): Set up insert_glyphs_hook and
17744 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17745 (unibyte_display_via_language_environment): New variable.
17746 (syms_of_msdos): Devfar it.
17747 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17748 Encode the character codes of the glyphs according to the
17749 terminal_coding in effect.
17750
177511998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17752
17753 * fns.c (Fstring_as_unibyte): Doc fix.
17754
177551998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17756
17757 * charset.h: Declare char_valid_p.
17758
177591998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17760
17761 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17762
17763 * msdos.c (init_environment): Record the time we started up.
17764 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17765 fast after startup (aka crash).
17766
177671998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17768
17769 * w32.c (check_windows_init_file): Use decode_env_path when
17770 using EMACSLOADPATH.
17771
177721998-12-02 Jason Rumney <jasonr@altavista.net>
17773
17774 * w32term.c (dumpglyphs): Use unsigned char arrays.
17775 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17776 for various languages.
17777 Compensate for fonts that have underhangs (e.g., Thai).
17778
17779 * w32term.h (FONT_MAX_WIDTH): New macro.
17780
177811998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17782
17783 * keyboard.c (Qlanguage_change): New variable.
17784 (syms_of_keyboard): Init it.
17785 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17786 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17787 keys; add name for Escape key; extend to 256 elements.
17788 (parse_modifiers): Make non-static.
17789
17790 * keyboard.h (parse_modifiers): Declare prototype.
17791
17792 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17793
17794 * w32fns.c (w32_last_error): Fix cut+paste error.
17795 (Vw32_phantom_key_code): New variable.
17796 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17797 (syms_of_w32fns): Init and register them.
17798 (reset_modifiers): Use a more precise test for whether Emacs has
17799 keyboard focus. Synchronize state of all keys that can be used as
17800 modifiers, to overcome problems arising from hot-keys.
17801 (w32_key_to_modifier): Be careful not to call intern() to avoid
17802 requiring thread synchronization.
17803 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17804 (w32_wnd_proc): Ensure lock key indicator lights are updated
17805 promptly on Windows 9x, by passing key events on to the system.
17806 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17807 responding to Windows key events when not wanted.
17808 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17809 Ctrl-NumLock into pause by the system.
17810 (w32_wnd_proc): Don't translate key combinations containing any
17811 modifiers other than shift (and capslock).
17812 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17813 can't determine the key states until we have keyboard focus).
17814 (Fw32_toggle_lock_key): New function.
17815 (syms_of_w32fns): Defsubr it.
17816
17817 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17818 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17819 (w32_console_toggle_lock_key): New function.
17820
17821 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17822
178231998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17824
17825 * search.c (Freplace_match): Set OPOINT clearly for the case
17826 where point is in the middle of the text to be replaced.
17827
17828 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17829 if compute_motion fails to advance at all, don't back it up.
17830
178311998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17832
17833 * xfns.c (Qouter_window_id): New variable.
17834 (syms_of_xfns): Initialize it.
17835 (x_report_frame_params): Set up outer-window-id parameter.
17836
17837 * keymap.c (Fsingle_key_description): Fix previous change.
17838
178391998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17840
17841 * lisp.h (Frequire): Update declaration.
17842
178431998-11-26 Kenichi Handa <handa@etl.go.jp>
17844
17845 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17846 if the charset is ascii.
17847 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17848
17849 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17850 make an appropriate one byte string.
17851 (char_bytes): Handle the case that C is a single byte char or has
17852 modifier bits.
17853
17854 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17855
17856 * cmds.c (internal_self_insert): If C has modifier bits, insert
17857 appropriate one byte char.
17858
178591998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17860
17861 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17862 Clear text properties in the new string.
17863
178641998-11-24 Felix Lee <flee@cygnus.com>
17865
17866 * process.c (read_process_output): Call signal_after_change.
17867
178681998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17869
17870 * buffer.c (syms_of_buffer): Doc fix.
17871
17872 * keyboard.c (syms_of_keyboard): Doc fix.
17873
178741998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17875
17876 * frame.c (Fset_mouse_position): Doc fix.
17877
178781998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17879
17880 * keymap.c (Fmake_keymap): Doc fix.
17881
178821998-11-17 Kenichi Handa <handa@etl.go.jp>
17883
17884 * category.c (word_boundary_p): If C1 or C2 are composite
17885 characters, test their first components.
17886
178871998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17888
17889 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17890 don't do save-excursion, just restore selected window.
17891
17892 * window.c (window_loop): For UNSHOW_BUFFER,
17893 always do consider minibuffer windows.
427ec082 17894
26901792
DL
178951998-11-16 Kenichi Handa <handa@etl.go.jp>
17896
17897 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17898
17899 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17900
17901 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17902
17903 * s/bsdos4.h: New file.
17904
179051998-11-16 Kenichi Handa <handa@etl.go.jp>
17906
17907 * Makefile.in (abbrev.o): Depend on charset.h
17908 (bytecode.o): Depend on charset.h.
17909
17910 * bytecode.c: Include charset.h.
17911
17912 * abbrev.c: Include charset.h.
17913
17914 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17915 the first component.
17916
179171998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17918
17919 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17920
179211998-11-11 Richard Stallman <rms@gnu.org>
17922
17923 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17924
17925 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17926
17927 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17928 (INTERRUPT_INPUT): #define commented out.
17929
17930 * m/aviion-intel.h: New file.
17931
179321998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17933
17934 * fns.c (MAX_ALLOCA): New macro.
17935 (Fbase64_encode_region, Fbase64_encode_string,
17936 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17937 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17938
179391998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17940
17941 * insdel.c (byte_combining_error): Error message improved.
17942
17943 * charset.c (char_valid_p): Handle a composite character correctly.
17944
179451998-11-11 Kenichi Handa <handa@etl.go.jp>
17946
17947 * charset.c (str_cmpchar_id): Check the byte sequence for
17948 composition more rigidly.
17949 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17950 contains an invalid multibyte sequence.
17951
17952 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17953
179541998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17955
17956 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17957 (WM_EMACS_SETKEYBOARDLAYOUT):
17958 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17959 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17960 (LEFT_WIN_PRESSED):
17961 (RIGHT_WIN_PRESSED):
26901792
DL
17962 (APPS_PRESSED): New console keyboard modifier flags.
17963
17964 * w32term.c (convert_to_key_event): Removed.
17965 (is_dead_key): Copied to w32fns.c.
17966 (w32_read_socket): Generate language_change_event. Modify to work
17967 with keyboard handling changes in w32_wnd_proc.
17968
17969 * w32proc.c (sys_kill): Set extended key flag when faking
17970 Ctrl-Break keystrokes.
17971 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17972 arbitrary locale property using a numerical index.
17973 (Vw32_valid_codepages): New variable.
427ec082
SS
17974 (enum_codepage_fn):
17975 (Fw32_get_valid_codepages):
17976 (Fw32_get_console_codepage):
17977 (Fw32_set_console_codepage):
17978 (Fw32_get_console_output_codepage):
17979 (Fw32_set_console_output_codepage):
17980 (Fw32_get_codepage_charset):
17981 (Fw32_get_valid_keyboard_layouts):
17982 (Fw32_get_keyboard_layout):
26901792
DL
17983 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17984 handling functions.
17985 (syms_of_ntproc): Register them.
17986
17987 * w32inevt.c: Include w32term.h and w32heap.h.
17988 (map_keypad_keys):
17989 (Vw32_enable_caps_lock):
17990 (Vw32_enable_num_lock):
17991 (Vw32_pass_lwindow_to_system):
17992 (Vw32_pass_rwindow_to_system):
17993 (Vw32_lwindow_modifier):
17994 (Vw32_rwindow_modifier):
17995 (Vw32_apps_modifier):
17996 (Vw32_scroll_lock_modifier):
17997 (w32_key_to_modifier): Add externs.
17998 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17999 Scroll Lock as potential modifiers; exclude numpad keys from
18000 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
18001 code.
18002 (is_dead_key): Copy from w32fns.c.
18003 (w32_kbd_patch_key): Comment attempt to improve handling of
18004 dead-keys, and system bug relating to same on Windows NT. Work
18005 around the bug by calling ToUnicode and then converting to the
18006 correct codepage.
18007 (map_virt_key): Removed obsolete variable.
18008 (lispy_function_keys): Add extern.
18009 (key_event): Major rework of keyboard input handling: optionally
18010 recognize Windows keys and Apps key as modifiers; optionally treat
18011 NumLock, CapsLock and ScrollLock as function keys; let system
18012 translate keystrokes to characters to avoid system bugs relating
18013 to dead-key handling; preserve shift distinction for control
18014 characters. Remove some obsolete code.
18015
18016 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
18017 and w32heap.h.
18018
18019 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
18020 (Vw32_pass_lwindow_to_system):
18021 (Vw32_pass_rwindow_to_system):
18022 (Vw32_lwindow_modifier):
18023 (Vw32_rwindow_modifier):
18024 (Vw32_apps_modifier):
18025 (Vw32_enable_num_lock):
18026 (Vw32_enable_caps_lock):
18027 (Vw32_scroll_lock_modifier): New variables.
18028 (modifier_set): Return toggle state for Scroll Lock.
18029 (w32_key_to_modifier): New function. Returns chosen modifier bit
18030 for given key.
18031 (w32_get_modifiers): Returns modifier flags for
18032 non-keyboard input events.
18033 (construct_console_modifiers): Renamed from construct_modifiers;
18034 recognize Windows and Apps keys as modifiers.
18035 (w32_get_key_modifiers): New function. Returns modifier flags for
18036 keyboard input events.
18037 (map_keypad_keys): Make non-static. Use second arg as extended
18038 flag.
18039 (w32_grabbed_keys): New variable.
18040 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
18041 (register_hot_keys):
18042 (unregister_hot_keys):
18043 (lookup_vk_code):
18044 (w32_parse_hot_key):
18045 (Fw32_register_hot_key):
18046 (Fw32_unregister_hot_key):
18047 (Fw32_registered_hot_keys):
18048 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
18049 (post_character_message): New function.
18050 (w32_msg_pump): Handle new messages for using hotkeys and changing
18051 keyboard layout/language.
18052 (w32_wnd_proc): Major rework of keyboard input handling:
18053 optionally recognize Windows keys and Apps key as modifiers;
18054 optionally treat NumLock, CapsLock and ScrollLock as function
18055 keys; let system translate keystrokes to characters to avoid
18056 system bugs relating to dead-key handling; preserve shift
18057 distinction for control characters; forward keyboard
18058 layout/language changes to lisp; detect and convert hot-key events
18059 to normal keystrokes.
18060 (syms_of_w32fns): Register new functions and variables.
18061 (w32_last_error): New function for use in debugging.
18062
180631998-11-10 Kenichi Handa <handa@etl.go.jp>
18064
18065 * category.h (CATEGORY_SET): Adjusted for the change of
18066 cmpchar_component.
18067 (CATEGORY_SET): Likewise.
18068
18069 * charset.c (cmpchar_component): New arg NOERROR. Check
18070 composition char ID more strictly.
18071 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
18072 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
18073 return 255.
18074 (Fcompose_string): Signal error if STR contains a rule-based
18075 composition character.
18076
18077 * charset.h (cmpchar_component): Proto-type adjusted.
18078
180791998-11-09 Kenichi Handa <handa@etl.go.jp>
18080
18081 * charset.c (string_to_non_ascii_char): Return correct length for
18082 a charset of dimension 2 and composition character.
18083
180841998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18085
18086 * keymap.c (Fsingle_key_description): Handle generic characters.
18087
18088 * process.c (Fprocess_status): Doc fix.
18089
180901998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
18091
18092 * charset.c (init_charset_once): Fix previous change.
18093
180941998-11-06 Kenichi Handa <handa@etl.go.jp>
18095
18096 * charset.c (string_to_non_ascii_char): Fix previous change.
18097 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
18098
18099 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
18100 character correctly.
18101 (STRING_CHAR): Handle an invalid charater correctly.
18102
181031998-11-05 Kenichi Handa <handa@etl.go.jp>
18104
18105 * charset.c (string_to_non_ascii_char): Fix previous change.
18106
18107 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
18108
18109 * editfns.c (Fstring_to_char): Don't return a multibyte character
18110 if STRING is a unibyte string.
18111
18112 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18113 character.
18114
18115 * xdisp.c (display_text_line): Check validity of a multibyte character.
18116 (display_string): Likewise. Handle an invalid character correctly.
18117
181181998-11-05 Karl Heuer <kwzh@gnu.org>
18119
18120 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18121 If nothing to do, return immediately.
18122 (syms_of_insdel): Initialize combine_after_change_buffer.
18123
181241998-11-05 Richard Stallman <rms@gnu.org>
18125
18126 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18127
181281998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18129
18130 * w32term.c (w32_enable_unicode_output): Rename from
18131 w32_no_unicode_output.
18132 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18133 and new semantics.
18134
181351998-11-04 Jason Rumney <jasonr@altavista.net>
18136
18137 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18138 been created yet.
18139
18140 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18141
181421998-11-04 Kenichi Handa <handa@etl.go.jp>
18143
18144 * charset.c (string_to_non_ascii_char): Change the check for the
18145 varidity of multibyte form.
18146 (update_charset_table): Check validity of BYTES. Don't set
18147 bytes_by_char_head here.
18148 (init_charset_once): Set bytes_by_char_head completely.
18149
18150 * frame.c (do_switch_frame): Cancel previous change.
18151
18152 * print.c (print_string): Check validity of a character.
18153 (print): Likewise.
18154
18155 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18156
18157 * m/ews4800.h, s/ux4800.h: New files.
18158
181591998-11-03 Theodore Jump <tjump@tertius.com>
18160
18161 * makefile.nt: Compile multiple source files when possible.
18162
18163 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 18164
26901792
DL
181651998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18166
18167 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18168 so don't rely on it succeeding.
18169
18170 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18171 LOGFONT struct if x font doesn't specify the charset.
18172 (x_to_w32_charset): Change >= to == when testing results of
18173 stricmp.
18174
181751998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18176
18177 * fns.c (Frequire): New arg NOERROR.
18178
181791998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18180
18181 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18182
181831998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18184
18185 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18186 (syms_of_xfaces): Initialization deleted.
18187
18188 * textprop.c (Qmouse_face): Variable definition moved here.
18189 (syms_of_textprop): Initialize it.
18190
18191 * data.c (set_internal): For built-in maybe-local vars,
18192 when BINDFLAG is set, do not mark them as local.
18193
181941998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18195
18196 * insdel.c (replace_range): Fix previous change.
18197
181981998-10-31 Kenichi Handa <handa@etl.go.jp>
18199
18200 * editfns.c (Fsubst_char_in_region): Fix previous change.
18201 (Ftranslate_region): Fix previous change.
18202
18203 * fns.c (Fbase64_decode_region): Fix previous change.
18204
18205 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18206
18207 * insdel.c (byte_combining_error): New function.
18208 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18209 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18210 CHECK_BYTE_COMBINING_FOR_INSERT.
18211 (insert_from_buffer_1): Likewise.
18212 (adjust_after_replace): Check the posibility of inhibitted byte
18213 combining correctly.
18214 (replace_range): Before signaling an error for inhibitted byte
18215 combining, recover the buffer in a safe state.
18216 (del_range_2): Check the posibility of inhibitted byte combining
18217 correctly.
18218
182191998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18220
18221 * xselect.c (Vselection_coding_system): Doc fix.
18222
18223 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18224 when we have both char and byte position. Fix type clashes.
18225
18226 * eval.c (Fsignal): Use a separate format string when passing
18227 error message string to fatal, in case it contains %'s.
18228
18229 * editfns.c (Fchar_after): Fix type clashes.
18230
18231 * charset.c (Fchar_bytes): Doc fix.
18232 (char_bytes): Fix returned value to match returned type.
18233 (syms_of_charset): Fix type clash in initialisation of
18234 Vauto_fill_chars.
18235
182361998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18237
18238 * w32console.c (initialize_w32_display): Use buffer coords
18239 instead of buffer size (which may be larger than the window).
18240
18241 * fileio.c (init_fileio_once): New function.
18242
18243 * emacs.c (main): Invoke init_fileio_once.
18244
182451998-10-28 Paul Eggert <eggert@twinsun.com>
18246
18247 * xterm.c (XTread_socket): Check the returned value of
18248 XmbLookupString more carefully.
18249
182501998-10-28 Kenichi Handa <handa@etl.go.jp>
18251
18252 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18253 (DECODE_CHARACTER_DIMENSION1): Likewise.
18254 (DECODE_CHARACTER_DIMENSION2): Likewise.
18255 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18256
18257 * editfns.c (Fsubst_char_in_region): Fix previous change.
18258 (Ftranslate_region): Fix previous change.
18259
18260 * insdel.c (check_markers): Check if markers are at character boundry.
18261 (adjust_markers_for_insert): Fix previous change.
18262 (count_combining_before): Don't limit the check at BEGV.
18263 (count_combining_after): Don't limit the check at ZV.
18264 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18265 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18266 (insert_from_string_1): Likewise.
18267 (insert_from_buffer_1): Likewise.
18268 (adjust_after_replace): Inhibit bytes combined across region
18269 boundary. Update end_unchanged correctly.
18270 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18271 end_unchanged correctly.
18272 (del_range_2): Inhibit bytes combined across region boundary.
18273 Update end_unchanged correctly.
18274
182751998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18276
18277 * w32.c (check_windows_init_file): Also look in load path specified
18278 in environment.
18279
18280 * w32console.c (Fset_message_beep): Recognize 'silent.
18281 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18282
26901792
DL
18283 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18284
18285 * w32select.c (Vnext_selection_coding_system): New variable.
18286 (syms_of_w32select): DEFVAR_LISP it.
18287 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18288 non-nil. Always convert multibyte strings.
18289 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18290 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18291
26901792
DL
182921998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18293
18294 * fns.c (Fbase64_decode_string): Doc fix.
18295 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18296 Likewise.
18297
182981998-10-27 Dave Love <fx@gnu.org>
18299
18300 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18301 newline in doc string.
18302
183031998-10-27 Kenichi Handa <handa@etl.go.jp>
18304
18305 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18306 that byte combining before happens.
18307 (Ftranslate_region): Likewise.
18308
18309 * insdel.c (adjust_after_replace): Correctly handle the case that
18310 both byte combining before and byte combining after happen.
18311 (replace_range): Likewise.
18312
183131998-10-26 Kenichi Handa <handa@etl.go.jp>
18314
18315 * category.c (syms_of_category): Doc-string modified.
18316
18317 * coding.c (code_convert_region): Kill the work buffer created by
18318 pre-write-conversion.
18319
183201998-10-25 Jason Rumney <jasonr@altavista.net>
18321
18322 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18323
183241998-10-23 Kenichi Handa <handa@etl.go.jp>
18325
18326 * coding.c (code_convert_region): While preserving the orignal
18327 point, pay attention to the byte combining problem.
18328
18329 * fns.c (Fbase64_decode_region): Pay attention to the byte
18330 combining problem.
18331
18332 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18333 combined_before_bytes and combined_after_bytes into account.
18334 (count_combining_after): Handle the case that LENGTH is zero.
18335 (adjust_after_replace): Record deletion at correct buffer
18336 position. Handle the case that LEN is zero.
18337 (replace_range): Record deletion at correct buffer position.
18338 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18339 combined bytes.
18340
183411998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18342
18343 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18344
26901792
DL
183451998-10-21 Kenichi Handa <handa@etl.go.jp>
18346
18347 * coding.c (setup_coding_system): Fix setting up
18348 coding->spec.ccl.valid_codes for CCL based coding system.
18349 (code_convert_region): Set point to FROM before inserting the
18350 result of pre-write-funciton. Preserve original point.
18351 (code_convert_string): If coding->type is coding_type_ccl, do
18352 conversion even if the length of conversion region is zero.
18353
18354 * fontset.c: Include frame.h before fontset.h.
427ec082 18355 (list_fonts_func): Fix prototype.
26901792
DL
18356
18357 * frame.c: Include frame.h before fontset.h.
18358
18359 * xterm.c: Likewise.
18360
183611998-10-21 Jason Rumney <jasonr@altavista.net>
18362
18363 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18364 general macros. Don't call x_list_font directory, instead call a
18365 function set in list_fonts_func.
18366
18367 * fontset.h (list_fonts_func): Fix prototype.
18368
183691998-10-20 Jason Rumney <jasonr@altavista.net>
18370
18371 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18372
18373 * w32faces.c: Update comments referring to obsolete structs.
18374 (allocate_face, copy_face, face_eql, load_font,
18375 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18376 frame_update_line_height, merge_faces, compute_base_face,
18377 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18378
18379 * w32fns.c: (Vx_pixel_size_width): New global variable.
18380 (unibyte_display_via_language_environment): New global variable.
18381 (x_set_font): Add support for setting fontsets.
18382 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18383 font names to match xlfd-tight-regexp.
18384 (w32_load_font): Rewrite based on x_load_font.
18385 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18386 `iso8859-1' rather than `ansi'.
18387 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18388 end. Move charset into `charset registry' field.
18389 (enum_font_cb2): Check charsets match. Include width in font list.
18390 (w32_list_fonts): Rewrite based on x_list_fonts.
18391 Moved from w32term.c to have access to enumfont_t struct.
18392 (Fx_list_fonts): w32 specific version eliminated. Include
18393 `x-list-fonts.c'.
18394 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18395 functions for fontset support - adapted from x_ equivalents.
18396 (syms_of_w32fns): New lisp variables initialised. Function
18397 pointers for fontset.c set up.
18398
427ec082 18399 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18400 Add ENCODE_BIG5 macro from coding.c.
18401 (w32_no_unicode_output): New variable.
18402 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18403 functions.
18404 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18405 (dumpglyphs): Rewrite based on xterm.c equivalent.
18406 (x_new_font): Use functionality provided in fontset.c.
18407 (x_new_fontset): New function based on the one in xterm.c.
18408 (syms_of_w32term): Add w32-no-unicode-output flag.
18409
427ec082 18410 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18411 (Vx_pixel_size_width_font_regexp,
18412 unibyte_display_via_language_environment): Declare variables.
427ec082 18413 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18414 Declare functions.
18415 (w32_output): New fields font_baseline and fontset.
18416 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18417
18418 * w32xfns.c: Include charset.h and fontset.h.
18419
184201998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18421
18422 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18423
184241998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18425
18426 * msdos.c (mouse_init): Reset the button press/release info of the
18427 mouse driver.
18428 (mouse_preempted): New variable.
18429 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18430 (XMenuActivate): Preempt the mouse during menu-handling loop.
18431 Release the current time slice while idling in the menu-handling
18432 loop. Leave the loop only if the user pressed, then released the
18433 same button. Discard all mouse events that are pending in the
18434 event queue before exiting.
18435
184361998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18437
18438 * editfns.c (Fformat): Increase buffer size for floating format.
18439
184401998-10-17 Kenichi Handa <handa@etl.go.jp>
18441
18442 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18443 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18444 Declare auto-fill-chars as a Lisp variable and initialize it.
18445
18446 * charset.h (Vauto_fill_chars): Extern it.
18447
18448 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18449
184501998-10-16 Kenichi Handa <handa@etl.go.jp>
18451
18452 * casefiddle.c (casify_object): Use make_string instead of
18453 make_specified_string to cope with byte-combining situation.
18454
18455 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18456 1 when encountered with a code of the range 0x80..0x9F.
18457
184581998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18459
18460 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18461 trying $TMP and $TEMP, since the former is always set in msdos.c.
18462 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18463 the temporary files, check $TMPDIR as well.
18464
184651998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18466
427ec082 18467 * process.c (exec_sentinel, read_process_output):
26901792
DL
18468 Restore waiting_for_user_input_p after running Lisp code.
18469
18470 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18471 (command_loop): Likewise.
18472
184731998-10-14 Kenichi HANDA <handa@etl.go.jp>
18474
18475 * data.c (Faset): Fix previous change.
18476
18477 * fns.c (Ffillarray): Fix previous change.
18478
18479 * insdel.c (adjust_markers_for_combining): This function deleted.
18480 (adjust_markers_for_replace): Correctly adjust marker positions.
18481 Don't record these adjustment because they were recorded already.
18482 (combine_bytes): Don't adjust markers here.
18483
184841998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18485
18486 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18487
184881998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18489
18490 * keyboard.c (Fclear_this_command_keys): New function.
18491 (syms_of_keyboard): defsubr it.
18492
18493 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18494
184951998-10-12 Kenichi Handa <handa@etl.go.jp>
18496
18497 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18498
18499 * charset.c (Fstring): Call make_string instead of
18500 make_string_from_bytes.
18501 (Ffind_charset_region): Include `composition' in the returned list
18502 if the region contains any composite characters.
18503 (Ffind_charset_string): Include `composition' in the returned list
18504 if the string contains any composite characters.
18505 (find_charset_in_str): Handle CMPCHARP arg correctly.
18506
18507 * coding.c (shrink_decoding_region): If a charset other than ascii
18508 is initially designated to G0, don't shrink the region.
18509 (shrink_encoding_region): Likewise.
18510
18511 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18512 byte-combining situation.
18513
18514 * fns.c (clear_string_char_byte_cache): New function.
18515 (Ffillarray): Handle multibyte string correctly.
18516
18517 * lisp.h (clear_string_char_byte_cache): Extern it.
18518
18519 * xselect.c (lisp_data_to_selection_data): Call
18520 find_charset_in_str with CMPCHARP arg 0.
18521 * w16select.c (Fw16_set_clipboard_data): Likewise.
18522 * w32select.c (Fw32_set_clipboard_data): Likewise.
18523
185241998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18525
18526 * keyboard.c (parse_menu_item): For top level of menu bar,
18527 accept ordinary commands, and treat them just like a keymap.
18528
185291998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18530
18531 * xdisp.c (redisplay_window): Clear w->window_end_valid
18532 before running the window-scroll-functions hook, if appropriate.
18533
185341998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18535
18536 * data.c (Fstring_to_number): Don't recognize floating point
18537 if base is not 10.
18538
18539 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18540 (check_all_windows): New function for debugging tests.
18541 (syms_of_window): Initialize it.
18542
18543 * window.c (Qwindow_configuration_p): New variable.
18544 (Fwindow_configuration_frame): New function.
18545 (syms_of_window): defsubr it.
18546 (Fset_window_configuration): Return t if frame is live.
18547 Use Qwindow_configuration_p.
18548
18549 * xfns.c (check_x_display_info): Don't use selected_frame
18550 if it is dead.
18551
185521998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18553
18554 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18555
185561998-10-08 Kenichi Handa <handa@etl.go.jp>
18557
18558 * buffer.h (inhibit_modification_hooks): Extern it.
18559
18560 * buffer.c (inhibit_modification_hooks): New variable.
18561 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18562
18563 * charset.c (invalid_character): Prepend `0' to octal
18564 representation. Give error sufficient args.
18565
18566 * coding.c (code_convert_region): Set inhibit_modification_hooks
18567 to 1 before calling Fset_text_properties.
18568
18569 * insdel.c (signal_before_change): If inhibit_modification_hooks
18570 is nonzero, do nothing.
18571 (signal_after_change): Likewise.
18572
185731998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18574
18575 * process.c: Doc fixes.
18576
185771998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18578
18579 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18580
185811998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18582
18583 * w32.c (init_ntproc): Check for Windows init file.
18584 (term_ntproc): Do not check for it here.
18585
185861998-09-28 Kenichi Handa <handa@etl.go.jp>
18587
18588 * coding.c (check_composing_code): Fix previous change. Now it
18589 alwasy returns 0 or -1.
18590 (decode_coding_iso2022): Adjusted for the above change.
18591 (encode_coding_iso2022): When encoding the last block, flush out
18592 tailing garbage bytes.
18593 (setup_coding_system): Delete unnecessary code.
18594 (shrink_decoding_region): Check translation table. If ASCII
18595 should be translated, give up shrinking.
18596 (shrink_encoding_region): Likewise.
18597 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18598 (SHRINK_CONVERSION_REGION): New macro.
18599 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18600 properties here.
18601 (code_convert_region): In the case of encoding, always calulate
18602 correct character number.
18603 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18604 (code_convert_region1): Don't delete text properties here.
18605
18606 * insdel.c (adjust_after_replace): Don't delete text properties here.
18607
18608 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18609
186101998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18611
18612 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18613
186141998-09-26 Kenichi Handa <handa@etl.go.jp>
18615
18616 * coding.h (struct coding_system): New member composed_chars.
18617
18618 * coding.c (check_composing_code): If the current composing
18619 sequence doesn't end properly, return -1.
18620 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18621 (DECODE_CHARACTER_DIMENSION1): Likewise.
18622 (decode_coding_iso2022): Check validity of a composing sequence.
18623 (code_convert_string): If the length of text to be converted is
18624 shrunk to zero, don't perform code conversion.
18625 (shrink_decoding_region): Fix previous change.
18626
18627 * editfns.c (Fformat): Check format control characters.
18628
186291998-09-25 Kenichi Handa <handa@etl.go.jp>
18630
18631 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18632 single CR code correctly.
18633 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18634 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18635
186361998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18637
18638 * w32fns.c (w32_color_map_lookup): New function.
18639 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18640
186411998-09-22 Kenichi Handa <handa@etl.go.jp>
18642
18643 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18644
18645 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18646 strings unibyte.
18647 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18648
186491998-09-22 Kenichi Handa <handa@etl.go.jp>
18650
18651 * callint.c (Fcall_interactively): Don't use input method when
18652 reading a character in the case of `c' code letter.
18653
186541998-09-21 Dave Love <fx@gnu.org>
18655
18656 * editfns.c (Fsave_restriction): Doc fix.
18657
186581998-09-21 Richard Stallman <rms@gnu.org>
18659
18660 * lread.c (build_load_history): Do add to Vload_history
18661 even when dumping Emacs.
18662
186631998-09-18 Kenichi Handa <handa@etl.go.jp>
18664
18665 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18666 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18667 cause error if the program is going to output some bytes. When
18668 outputing a string to notify an error, check the case that
18669 DST_BYTES is zero.
18670
427ec082 18671 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18672
18673 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18674 user or the CCL program executed an invalid command, return
18675 CODING_FINISH_INTERRUPT.
18676 (code_convert_region): Pay attention to the converters return
18677 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18678
186791998-09-16 Kenichi Handa <handa@etl.go.jp>
18680
18681 * coding.c (code_convert_region): Update beg_unchanged and
18682 end_unchanged after we delete the source text.
18683
18684 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18685 position if it is FROM.
18686 (adjust_markers_for_combining): New function.
18687 (combine_bytes): Call adjust_markers_for_combining instead of
18688 adjust_markers_for_replace.
18689 (adjust_after_replace): Record deletion of combining after bytes
18690 with the correct position.
18691 (replace_range): Likewise. Record the actual deletion after
18692 recoding deletions of combining bytes.
18693
18694 * xdisp.c (message_log_check_duplicate): Count byte length of the
18695 latest message correctly.
18696
186971998-09-12 Richard Stallman <rms@gnu.org>
18698
18699 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18700 instead of SET_PT_BOTH.
18701 (try_window_id, display_text_line): Likewise.
18702
187031998-09-12 Karl Heuer <kwzh@gnu.org>
18704
18705 * data.c (Fmake_local_variable): Doc fix.
18706
187071998-09-10 Dave Love <fx@gnu.org>
18708
18709 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18710
187111998-09-10 Richard Stallman <rms@gnu.org>
18712
18713 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18714 (bcopy, bcmp, bzero): Add #undef.
18715
18716 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18717 first exit if selected frame is dead (no live frames remain).
18718 (read_key_sequence): Likewise.
18719
187201998-09-10 Karl Heuer <kwzh@gnu.org>
18721
18722 * emacs.c (main): Mention --display and --eval in help.
18723
187241998-09-07 Paul Eggert <eggert@twinsun.com>
18725
18726 * editfns.c (emacs_memftime): New function.
18727 (Fformat_time_string): Use it to handle null bytes in formats
18728 correctly.
18729
187301998-09-08 Kenichi Handa <handa@etl.go.jp>
18731
18732 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18733 (Ffind_charset_string): For unibyte string, return (ascii).
18734
18735 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18736 arg MARKERS 1.
18737
18738 * insdel.c (adjust_after_replace): Don't add combining bytes to
18739 the args given to adjust_point. Handle correctly the case that
18740 there are both before and after combining bytes.
18741 (replace_range): Likewise.
18742
187431998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18744
18745 * fns.c (base64_decode_1, base64_encode_1): New functions.
18746 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18747 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18748
187491998-09-07 Karl Heuer <kwzh@gnu.org>
18750
18751 * eval.c (error): After enlarging buffer, write to it, not to buf.
18752
18753 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18754
187551998-09-07 Kenichi Handa <handa@etl.go.jp>
18756
18757 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18758 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18759 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18760
18761 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18762 chars in produced byte sequence.
18763 (Ffind_operation_coding_system): Doc-string fixed.
18764
18765 * insdel.c (count_combining_after): Check also preceding bytes at
18766 POS if all characters in STRING are not character head.
18767
187681998-09-06 Paul Eggert <eggert@twinsun.com>
18769
18770 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18771 Don't assume that localtime and gmtime return non-NULL.
18772
187731998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18774
18775 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18776 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18777 New functions.
18778
187791998-09-06 Richard Stallman <rms@gnu.org>
18780
18781 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18782
18783 * lread.c (Fload): Handle case where openp finds a magic file
18784 but it has no `load' handler or that handler calls `load'.
18785 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18786
187871998-09-04 Dave Love <fx@gnu.org>
18788
18789 * buffer.c (enable-multibyte-characters): Doc fix.
18790
187911998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18792
18793 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18794
187951998-09-01 Kenichi Handa <handa@etl.go.jp>
18796
18797 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18798 address in buffer from byte-position.
18799
188001998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18801
18802 * w16select.c (Vnext_selection_coding_system): New variable.
18803 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18804 Vselection_coding_system.
18805 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18806 Vnext_selection_coding_system if non-nil.
18807 (Fw16_get_clipboard_data): Always convert a string that includes
18808 non-ASCII characters. Use Vnext_selection_coding_system if
18809 non-nil.
18810
188111998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18812
18813 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18814 mouse capture.
18815
188161998-08-31 Kenichi Handa <handa@etl.go.jp>
18817
18818 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18819 x_list_font returns.
18820
188211998-08-31 Paul Eggert <eggert@twinsun.com>
18822
18823 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18824 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18825
188261998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18827
18828 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18829 cursor, save and restore previous cursor position in the
18830 minibuffer.
18831
188321998-08-31 Kenichi Handa <handa@etl.go.jp>
18833
18834 * charset.c (unibyte_char_to_multibyte):
18835 Vnonacii_translation_table will convert a 7-bit charcater.
18836 (multibyte_char_to_unibyte): Handle the case that
18837 Vnonacii_translation_table converts a multibyte charcater to a
18838 unibyte charcter of less than 128.
18839 (init_charset_once): Initialize nonascii_insert_offset and
18840 Vnonacii_translation_table.
18841
18842 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18843 processing if CODING requires flushing.
18844 (encode_coding): Likewise.
18845 (code_convert_region): Likewise.
18846 (code_convert_string): Likewise.
18847
18848 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18849 to convert a character less than 160 to multibyte.
18850 * insdel.c (copy_text): Likewise.
18851 (count_size_as_multibyte): Likewise.
18852 * xterm.c (dumpglyphs): Likewise.
18853
188541998-08-29 Paul Eggert <eggert@twinsun.com>
18855
18856 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18857 using negation, not subtraction; this makes a difference with
18858 IEEE floating point arithmetic (and also if integer arithmetic
18859 is ones' complement or signed-magnitude!).
18860
188611998-08-29 Karl Heuer <kwzh@gnu.org>
18862
18863 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18864
188651998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18866
18867 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18868
188691998-08-28 Paul Eggert <eggert@twinsun.com>
18870
18871 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18872 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18873 path only if we're not building with Motif.
18874
188751998-08-28 Kenichi Handa <handa@etl.go.jp>
18876
18877 * insdel.c (adjust_after_replace): Fix the code to record undo
18878 information for the case that `before combining' happens. Remove
18879 text properties which are added to the new text by
18880 offset_intervals.
18881
18882 * coding.c (code_convert_region1): Remove all text properties of
18883 the region.
18884
188851998-08-28 Kenichi Handa <handa@etl.go.jp>
18886
18887 * charset.h (CHAR_BYTES): New macro.
18888
18889 * charset.c (Fchar_bytes): Now always return 1.
18890 (char_bytes): New function.
18891
18892 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18893 range, return nil.
18894 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18895 nil.
18896
18897 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18898 * fns.c (concat): Likewise.
18899 * insdel.c (count_size_as_multibyte): Likewise.
18900 * xdisp.c (message_dolog): Likewise.
18901
189021998-08-27 Kenichi Handa <handa@etl.go.jp>
18903
18904 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18905 correctly. They are for SS2 and SS3 respectively.
18906 (ccl_coding_driver): Fix previous change.
18907
189081998-08-26 Paul Eggert <eggert@twinsun.com>
18909
18910 * xterm.c (fixup_locale): New function. For now, it resets
18911 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18912 resets LC_MESSAGES to "C".
18913 (x_term_init): Use it to fix up the locale after setlocale
18914 (LC_ALL, "").
18915
189161998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18917
18918 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18919 case it was prototyped the old way.
18920
189211998-08-25 Kenichi Handa <handa@etl.go.jp>
18922
18923 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18924 returns a null string. This happens when dxpc 3.7 is being used.
18925
189261998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18927
18928 * keyboard.c (input-method-previous-message): Doc fix.
18929
18930 * coding.c (file-coding-system-alist,
18931 select-safe-coding-system-function): Doc fix.
18932
189331998-08-23 Kenichi HANDA <handa@etl.go.jp>
18934
18935 * coding.c (detect_coding_iso2022): Don't check the byte length of
18936 succeeding codes (0xa0..0xFF) if the codes follows single shift
18937 code (SS2 or SS3).
18938
189391998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18940
18941 * coding.c (detect_coding_system): If detect_eol_type returns
18942 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18943 correctly.
18944
18945See ChangeLog.7 for earlier changes.