*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
CommitLineData
bad77ef7
EZ
12000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
2
3 * fileio.c (Frename-file) [DOS_NT]: If the file names are
4 identical but for the letter-case, don't call
5 barf_or_query_if_file_exists.
6
c28da489
MB
72000-07-25 Miles Bader <miles@gnu.org>
8
9 * editfns.c (find_field): Honor special `boundary' fields.
10 (Qboundary): New variables.
11 (syms_of_editfns): Initialize Qboundary.
12 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
13 Use scan_buffer instead of find_before_next_newline, because it
14 allows us to detect the boundary case where there's a newline at
15 the search limit.
16 * lisp.h (Fconstrain_to_field): Update external declaration.
17
e3c31fd5
GM
182000-07-24 Gerd Moellmann <gerd@gnu.org>
19
20 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
21 if that is nil.
c28da489 22
c66c29a2
DL
232000-07-24 Dave Love <fx@gnu.org>
24
25 * s/sunos4-0.h, s/sol2.h:
26 (LIBS_TERMCAP): Move from m/sparc.h.
27
28 * m/sparc.h (TERMINFO): Moved to system files (probably only
29 relevant for sunos4 judging by its vintage).
30 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
31 __arch64__.
32
fbe0a958
EZ
332000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
34
35 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
36 name to single_keymap_panes.
37
7d88e5c9
AS
382000-07-24 Andreas Schwab <schwab@suse.de>
39
40 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
41
e024b101
GM
422000-07-24 Gerd Moellmann <gerd@gnu.org>
43
44 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
45 parameters instead of using int parameters. Expect FN to accept
46 EMACS_INT parameters.
47 (display_echo_area, resize_echo_area_axactly, current_message)
48 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
49 with new argument list.
50 (resize_mini_window_1): New callback function.
51 (current_message_1, truncate_message_1, set_message_1): Change
52 parameter lists to the new format expected by
53 with_echo_area_buffer.
54
25c1a9ce
KH
552000-07-24 Kenichi Handa <handa@etl.go.jp>
56
57 * fontset.c (fontset_ref): Remove INLINE declaration.
58 (fontset_ref_via_base): Likewise.
59 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
60 to downcase.
61
7f987ac0
EZ
622000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
63
64 * msdos.c (IT_note_mouse_highlight): Process overlays in the
65 correct order of priority. If help echo was found in an overlay,
66 use that overlay as the object in which the help echo was found.
67
e2db3069
MB
682000-07-22 Miles Bader <miles@gnu.org>
69
70 * textprop.c (Fprevious_single_char_property_change): The initial
71 property value should be from the position preceding POSITION, not
72 following it.
73
5e3203e4
EZ
742000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
75
76 * coding.c (syms_of_coding): Doc fix for
77 inhibit-iso-escape-detection.
78
62145073
GM
792000-07-21 Gerd Moellmann <gerd@gnu.org>
80
c20aeb83
GM
81 * xterm.c (note_mouse_highlight): Process overlays in the right
82 order of priority.
83
743934db
GM
84 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
85
86 * xterm.c (note_mouse_highlight): If help-echo was found in an
87 overlay, use that overlay as the object in which the help was
88 found.
89
d1dc7e43
GM
90 * window.c (foreach_window_1): Fix typo reversing an if-condition.
91
62145073
GM
92 * window.c (foreach_window): Instead of a fake variable argument
93 list, take one USER_DATA argument.
94 (foreach_window_1): Likewise, and call callback functions with two
95 args, the window and USER_DATA.
96 (struct check_window_data): New struct.
97 (check_window_containing): Use it.
98 (window_from_coordinates): Set up a struct check_window_data for
99 foreach_window.
100 (add_window_to_list, freeze_window_start): Change parameters
101 according to new calling convention.
102
103 * window.h (foreach_window): Change prototype.
104
105 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
106
1072000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
108
109 * xmenu.c (menu_help_callback): Call show_help_echo with
110 additional arguments OBJECT and POS.
111
11270583
KH
1122000-07-21 Kenichi Handa <handa@etl.go.jp>
113
07b14857
KH
114 * data.c (Faset): Allow storing any multibyte character in a
115 string. Convert unibyte string to multibyte if necessary.
116
11270583
KH
117 * xfns.c (x_encode_text): New function.
118 (x_set_name): Use x_encode_text.
119 (x_set_title): Likewise.
120
121 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
122
123 * xterm.h (x_encode_text): Add prototype.
124
bc75b4fd
DL
1252000-07-20 Dave Love <fx@gnu.org>
126
127 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
128 xfree, not free.
129
48c14970
EZ
1302000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
131
132 * msdos.c (help_echo_window): New variable.
133 (syms_of_msdos): Initialize and staticpro it.
134 (IT_note_mode_line_highlight): Set help_echo_window.
135 (IT_note_mouse_highlight): Ditto.
136 (dos_rawgetc): Store help_echo_window in the second event produced
137 for HELP_EVENTs.
138
139 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
140 Record the object that generated the help echo and the position of
141 that object in help_echo_object and help_echo_pos. Record that
142 some glyphs in a row are displayed in mouse-face.
143 (IT_update_begin): Don't clear mouse highlight unless one of the
144 enabled glyph rows is marked as being displayed in mouse-face.
145 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
146 and position recorded in help_echo_object and help_echo_pos to the
147 event queue.
148 (IT_menu_display): Accept a new argument PN: the pane number of
149 the current menu pane. Record the pane number and the item
150 number of the item which has associated help string.
151 (XMenuActivate): Update the prototype for help_callback in
152 function declaration. Call IT_menu_display with the current menu
153 pane number as an additional argument. Call help_callback with
154 two additional arguments: the pane number and the item number of
155 the menu item associated with the help text.
156 (help_echo_object, help_echo_pos): New variables.
157 (syms_of_msdos): Initialize them and staticpro help_echo_object.
158
159 * msdos.h (XMenuActivate): Update prototype.
160
4279296d
GM
1612000-07-19 Gerd Moellmann <gerd@gnu.org>
162
47db06aa
GM
163 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
164 Add some more prototypes.
165
166 * xterm.c, xterm.h: Add some more prototypes.
167
168 * lisp.h (Fnext_single_char_property_change): Add prototype.
169
170 * dispnew.c (direct_output_for_insert): Remove confusing
171 outer local variable mouse_face_overwritten_p.
172 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
173
4279296d
GM
174 * alloc.c (allocate_string_data): Don't copy old string contents.
175
670acd62
KH
1762000-07-19 Kenichi Handa <handa@etl.go.jp>
177
178 * coding.c (code_convert_region): Delete text properties before
179 shrinking the conversion region.
180
7cea38bc
GM
1812000-07-18 Gerd Moellmann <gerd@gnu.org>
182
dc1cac59
GM
183 * dispnew.c (update_text_area): Write the whole row if it
184 has mouse-face in it.
185
85a8aca9
GM
186 * xfaces.c (face-alternative-font-family-alist): Remove
187 DEFVAR_LISP; staticpro instead.
188
7cea38bc
GM
189 * xmenu.c (menu_help_callback): Call show_help_echo with
190 new arguments.
191
192 * keyboard.c (show_help_echo): Add parameter WINDOW.
193 (read_char): Call show_help_echo with window extracted from Lisp
194 help event.
195 (gen_help_event): Add parameter WINDOW.
196
197 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
198
199 * xterm.c (help_echo_window): New variable.
200 (note_mouse_highlight, note_tool_bar_highlight): Set
201 help_echo_window.
202 (XTread_socket): Pass help_echo_window to gen_help_event.
203 (syms_of_xterm): Initialize and staticpro help_echo_window.
204
f8276b77
DL
2052000-07-18 Dave Love <fx@gnu.org>
206
207 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
208 systime.h.
209
088831a6
GM
2102000-07-18 Gerd Moellmann <gerd@gnu.org>
211
3d6cd763
GM
212 * alloc.c (allocate_string_data): If string had already data
213 assigned, copy old contents to new string data.
214
215 * coding.c (syms_of_coding): Fix typo in spelling of variable
216 `inhibit-iso-escape-detection'.
217
088831a6
GM
218 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
219
220 * Makefile.in: Add dependencies on dispextern.h.
221 (alloca.o): Don't define malloc and define EMACS_FREE instead of
222 `free'; both can conflict with system header files.
223
bc8a8d55
KH
2242000-07-18 Kenichi Handa <handa@etl.go.jp>
225
226 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
227 undefined.
228
069f5950
DL
2292000-07-18 Dave Love <fx@gnu.org>
230
231 * window.c (Fwindow_list): Declare arg `window'.
232
aa96c820
KH
2332000-07-18 Kenichi Handa <handa@etl.go.jp>
234
235 * coding.c (setup_coding_system): Don't override the explicitly
236 specified designations.
237
06be8d32
MB
2382000-07-15 Miles Bader <miles@gnu.org>
239
240 * editfns.c (char_property_eq, char_property_stickiness): Renamed
241 from `text_property_eq' and `text_property_stickiness', respectively.
242 (find_field, Fconstrain_to_field, char_property_eq)
243 (char_property_stickiness): Changed to call char-property functions
244 instead of text-property-only ones.
245
246 * textprop.c (Fnext_single_char_property_change): Made a subr (was
247 `next_single_char_property_change'). Do more error checking, and
248 cleanup limit behavior.
249 (Fprevious_single_char_property_change): New function.
250 (syms_of_textprop): Initialize new subrs.
251
252 * xdisp.c (display_prop_end, invisible_text_between_p):
253 Call Fnext_single_char_property_change instead of
254 next_single_char_property_change.
255
3fddcdc3
JR
2562000-07-15 Jason Rumney <jasonr@gnu.org>
257
258 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
259 after menu is finished with.
260 (add_menu_item): Only consider wv->title as a menu title.
261 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
262
263 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
264 null title.
265 (FONT_REGEXP): Remove unused macro, and its sub-components.
266 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
267
268 * w32term.c (help_echo_object, help_echo_pos): New variables.
269 (note_mode_line_highlight): Store additional information about the
270 help-echo in help_echo_object and help_echo_pos. Check both
271 `local-map' and `keymap' properties for changing the cursor
272 (note_mouse_highlight): Store additional information about the
273 help-echo in help_echo_object and help_echo_pos.
274 (note_tool_bar_highlight): Set help_echo_object to nil and
275 help_echo_pos to -1.
276 (w32_read_socket): Use gen_help_event instead of filling
277 input_events manually.
278 (syms_of_w32term): Staticpro help_echo_object.
279 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
280 set, arrange for a mouse-highlight redisplay in
281 XTframe_up_to_date.
282 (x_clear_mouse_face): New function.
283 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
284 (x_update_window_begin): No need to turn off the mouse
285 highlight here.
286 (show_mouse_face): Set the mouse_face_p flag of glyph rows
287 depending on whether they contain glyphs highlighted in
288 mouse-face.
289 (x_fill_stretch_glyph_string): Consume runs of stretch
290 glyphs instead of a single one.
291 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
292 with new argument list.
293 (x_set_glyph_string_gc): Make sure the face's GC is valid.
294 (x_append_glyph, x_append_composite_glyph)
295 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
296 changes in struct glyph starting 1999-12-27. See comments for
297 xterm.c on 2000-07-05.
298
178c5d9c
SS
2992000-07-14 Sam Steingold <sds@gnu.org>
300
301 * xfaces.c (realize_x_face): Fix the last patch:
302 check `default_face' before dereferencing.
303
6fe533f6
DL
3042000-07-14 Dave Love <fx@gnu.org>
305
069f5950 306 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 307
dd7b81cf
KH
3082000-07-14 Kenichi Handa <handa@etl.go.jp>
309
0693904a 310 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 311 default_face's fontset, not using the default fontset.
0693904a 312
dd7b81cf
KH
313 * coding.c (inhibit_iso_escape_detection): New variable.
314 (syms_of_coding): Make it a Lisp variable.
315 (detect_coding_iso2022): If inhibit_iso_escape_detection is
316 nonzero, ignore ISO2022's escape sequence.
317
d5aa31d8
GM
3182000-07-14 Gerd Moellmann <gerd@gnu.org>
319
e5acf0ca
GM
320 * alloca.c (malloc) [emacs]: Define as xmalloc.
321
bd23a692
GM
322 * xfns.c (Fx_show_tip): If frame parameters contain a position,
323 use that instead of the mouse position. Add parameters DX and DY.
324
325 * dispextern.h (Fx_show_tip): Adjust number of parameters
326 in prototype.
327
9662da0b
GM
328 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
329 if HELP is a function, call it with OBJECT and POS as parameters
330 to get the help to display.
331 (gen_help_event, kbd_buffer_store_help_event): New functions.
332 (kbd_buffer_get_event): Construct the Lisp help-event differently.
333 (read_char): Call show_help_echo with new parameters.
334
178c5d9c 335 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
336 Add prototypes.
337
338 * xterm.c (help_echo_object, help_echo_pos): New variables.
339 (note_mode_line_highlight): Store additional information about the
340 help-echo in help_echo_object and help_echo_pos. Check both
341 `local-map' and `keymap' properties for changing the cursor
342 (note_mouse_highlight): Store additional information about the
343 help-echo in help_echo_object and help_echo_pos.
344 (note_tool_bar_highlight): Set help_echo_object to nil and
345 help_echo_pos to -1.
346 (XTread_socket): Use gen_help_event instead of filling
347 input_events manually.
348 (syms_of_xterm): Staticpro help_echo_object.
349
350 * xmenu.c (menu_highlight_callback): Use
351 kbd_buffer_store_help_event instead of setting up and input_event
352 structure manually.
353
354 * xdisp.c (eval_form): GCPRO argument sexpr.
355 (call_function): New function.
356 (handle_single_display_prop): Use call_function and FUNCTIONP
357 instead of checking whether if font_height is a symbol and
358 using eval_form.
359
360 * eval.c (internal_condition_case_2): New function.
361
362 * lisp.h (FUNCTIONP): New macro.
363 (internal_condition_case_2, call_function): Add prototypes.
364
d5aa31d8
GM
365 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
366 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
367 Always set `arg' member of input_events.
368 (construct_menu_click): Unused function removed.
369
370 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
371
372 * w32term.c (construct_mouse_click, construct_mouse_wheel)
373 (construct_drag_n_drop, x_scroll_bar_handle_click)
374 (w32_read_socket): Always set `arg' member of input_events.
375
376 * keyboard.c (show_help_echo): Use eval_form. Add comment.
377
378 * lisp.h (eval_form): Add prototype.
379
380 * xdisp.c (eval_form): Make it externally visible.
381
0f1a9b23
GM
3822000-07-13 Gerd Moellmann <gerd@gnu.org>
383
384 * xterm.c (x_handle_tool_bar_click): Store the frame in the
385 frame_or_window slot of TOOL_BAR_EVENT input events instead of
386 consing. For prefix events, store the frame in the `arg' slot of
387 the event, otherwise store the key there.
388 (XTread_socket): Instead of consing, use the frame_or_window slot
389 of HELP_EVENTs for the frame, and the `arg' slot for the help
390 string.
391
392 * xmenu.c (menu_highlight_callback): Store help string in the
393 `arg' member of the input event; don't cons.
394 (menubar_selection_callback): Use the `arg' slot of input events
395 to queue additional information, instead of consing.
396
397 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
398
399 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
400 TOOL_BAR_EVENTs.
401 (w32_read_socket): Adapt to changes in HELP_EVENTs.
402
403 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
404 input events to queue additional information, instead of consing.
405
406 * keyboard.c (kbd_buffer_gcpro): Renamed from
407 kbd_buffer_frame_or_window. Now used for all Lisp objects
408 referenced from the input queue.
409 (kbd_buffer_store_event): Always use structure assignment for
410 copying input events. Record all Lisp objects referenced from
411 events in kbd_buffer_gcpro.
412 (kbd_buffer_get_event): Construct Lisp `help-echo' events
413 differently from input events. Test for prefix menu_bar_events
414 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
415 event in kbd_buffer_gcpro to nil.
416 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
417 frame_or_window is equal to its arg member as prefix events.
418 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
419 used by an input event to nil.
420 (init_keyboard): Use two times the size of the input queue
421 for kbd_buffer_gcpro.
422 (syms_of_keyboard): Likewise.
423
424 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
425 USER_SIGNAL_EVENT.
426
427 * termhooks.h (struct input_event): Add member `arg'.
428 (MENU_BAR_EVENT): Renamed from menu_bar_event.
429 (USER_SIGNAL_EVENT): Renamed from user_signal.
430
431 * xfaces.c (ASET): Remove definition.
432
433 * lisp.h (AREF, ASET, ASIZE): New macros.
434
435 * fontset.c (AREF, ASIZE): Remove definitions.
436
437 * fns.c (AREF): Remove definition.
178c5d9c 438
0f1a9b23
GM
439 * composite.c (AREF): Remove definition.
440
712eaef2
GM
4412000-07-12 Gerd Moellmann <gerd@gnu.org>
442
d8ee7803
GM
443 * dispnew.c (redraw_overlapped_rows): Add missing local.
444 (scrolling_window): Remove debug code.
445
712eaef2
GM
446 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
447 Before scrolling, turn off a mouse-highlight in the window
448 being scrolled.
449
450 * xterm.c (x_update_window_end): Add parameter
451 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
452 redisplay in XTframe_up_to_date.
453 (x_clear_mouse_face): New function.
454 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
455
456 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
457 current glyph row.
458 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
459 it when any row is written to that contains glyphs highlighted in
460 mouse-face.
461 (update_window): Call the window update end hook with new
462 parameter MOUSE_FACE_OVERWRITTEN_P.
463 (direct_output_for_insert): Give up if row contains mouse-face.
464
465 * dispextern.h (struct redisplay_interface): Add parameter
466 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
467 (clear_mouse_face): New function pointer member.
468
02010917
SM
4692000-07-11 Stefan Monnier <monnier@cs.yale.edu>
470
471 * syntax.c (back_comment): Use one switch rather than a few `if's.
472 Obey open_paren_in_column_0_is_defun_start.
473 When reverting to the `slow' method, try to nicely handle the case
474 of nested comments by checking that the comment-starter we found
475 does indeed match the comment-ender.
476 (scan_sexps_forward, scan_sexps_forward):
477 Ignore excessive opening parenthesis rather than throwing an error.
478
d76c03ea
GM
4792000-07-11 Gerd Moellmann <gerd@gnu.org>
480
481 * doc.c (Fsubstitute_command_keys): Handle case that a GC
482 in Fwhere_is_internal or get_keymap_1 relocates string contents.
483
484 * dispnew.c (direct_output_forward_char): Give up if currently
485 displaying a message instead of the minibuffer contents.
486
487 * xterm.c (x_update_window_begin): No need to turn off the mouse
488 highlight here.
489 (show_mouse_face): Set the mouse_face_p flag of glyph rows
490 depending on whether they contain glyphs highlighted in
491 mouse-face.
492
493 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
494 compare the mouse_face_p flags of both rows.
495
496 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
497
d55ead18
EZ
4982000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
499
500 * keyboard.c (show_help_echo): Accept additional parameter
501 ok_to_overwrite_keystroke_echo.
502 (read_char): Call show_help_echo with a zero
503 ok_to_overwrite_keystroke_echo argument.
504 * keyboard.h (show_help_echo): Update prototype of
505 show_help_echo.
506 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
507 ok_to_overwrite_keystroke_echo argument.
508 * w32menu.c (w32_menu_display_help): Call show_help_echo with
509 non-zero ok_to_overwrite_keystroke_echo argument.
510
df75b1a3
GM
5112000-07-10 Gerd Moellmann <gerd@gnu.org>
512
4b92c49a
GM
513 * xdisp.c (try_window_id): If changes are all below what is
514 displayed in the window, and point is in the window, we still
515 might have to find point on the display.
516
517 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
518 glyphs instead of a single one.
519 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
520 with new argument list.
521 (x_set_glyph_string_gc): Make sure the face's GC is valid.
522
df75b1a3
GM
523 * keymap.c (get_keymap_1): Add comment that this function can GC.
524 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
525 comment that functions can GC.
526 (Fset_keymap_parent): GCPRO arg KEYMAP.
527
4314cf3e
EZ
5282000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
529
530 * msdos.c (XMenuActivate): After exiting the menu, restore the
531 echo area message and erase it.
532
ab49ce15
KH
5332000-07-10 Kenichi Handa <handa@etl.go.jp>
534
535 * fontset.c (Ffontset_info): Make the return value more compatible
536 with that of Emacs 20.
537
090a072f
GM
5382000-07-07 Gerd Moellmann <gerd@gnu.org>
539
540 * eval.c (Fsignal): Handle case that backtrace_list is null.
541
f92de4a6
KH
5422000-07-07 Kenichi Handa <handa@etl.go.jp>
543
544 * ccl.c (Fccl_execute): Typo fixed.
545
dd8888a1
GM
5462000-07-06 Gerd Moellmann <gerd@gnu.org>
547
e5c81191 548 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 549
dd8888a1
GM
550 * window.c (Fwindow_list): Reverse list at the end.
551 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
552 means allow windows on OWINDOW's frame, only.
553 (window_loop): Simplified; use Fwindow_list.
554
555 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
556
485266d0
GM
5572000-07-05 Gerd Moellmann <gerd@gnu.org>
558
559 * xterm.c (XTread_socket): Increment handling_signal at the start,
560 decrement it at the end.
561
562 * eval.c (handling_signal): New variable.
563 (Fsignal): Abort if handling_signal is non-zero.
564
565 * lisp.h (handling_signal): External declaration.
178c5d9c 566
485266d0
GM
567 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
568
80fcd514
KR
5692000-07-05 Ken Raeburn <raeburn@gnu.org>
570
571 Sound support for NetBSD through "Linux emulation" support:
572 * config.in (HAVE_SOUNDCARD_H): Undef.
573 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
574 * Makefile.in (LIBSOUND): New variable.
575 (LIBES): Include it.
576 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
577 <soundcard.h>.
578 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
579 elsewhere.
580 (vox_open): Use DEFAULT_SOUND_DEVICE.
581 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
582
d5c5cddd
GM
5832000-07-05 Gerd Moellmann <gerd@gnu.org>
584
585 * print.c (print_error_message): If Vsignaling_function is set,
586 show it in *Messages*.
587
588 * lisp.h (Vsignaling_function): External declaration.
589
590 * eval.c (Vsignaling_function): New variable.
591 (Fsignal): Compute it.
592 (syms_of_eval): Staticpro it.
593
65171e3a
DL
5942000-07-05 Dave Love <fx@gnu.org>
595
596 * syswait.h: Use the autoconf recommended approach. Old code
597 #if'd out in case we need to revert.
598
178c5d9c 599 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 600
e2c46326
AI
6012000-07-05 Andrew Innes <andrewi@gnu.org>
602
603 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
604 when non-NULL instead of __morecore, to take account of buffer
605 memory. This also solves a problem with spurious memory warnings
606 on Windows.
607
608 * ralloc.c: Make real_morecore non-static.
609
610 * eval.c (internal_condition_case): Comment out abort if
611 interrupt_input_blocked is not zero.
612
613 * makefile.nt: Add support for `bootstrap' and related targets.
614 Include minimal debug info in emacs.exe in release build.
615 Remove all dependencies on lisp.h, and fixup some others.
616
617 * w32.c (init_environment): Install code from 20.7 for providing
618 default values for environment variables, based on the
619 executable's own location.
620 (map_w32_filename): Handle filenames that are longer than
621 MAX_PATH.
622 (sys_socket): Install socket inheritance bug fix from 20.7.
623
624 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
625 here via blockinput.h).
626
a027a91b
SM
6272000-07-05 Stefan Monnier <monnier@cs.yale.edu>
628
e4b31601
SM
629 * w32menu.c (w32_menu_display_help):
630 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
631
632 * keyboard.h (show_help_echo): Declare.
633
634 * keyboard.c (show_help_echo): New function, extracted from read_char.
635 Feval its `msg' argument if it's a cons cell.
636 (read_char): Use it.
4cf8d9d5 637 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 638
178c5d9c 639 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 640 (note_tool_bar_highlight, XTread_socket):
178c5d9c 641 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
642 (dos_rawgetc):
643 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
644 (note_tool_bar_highlight, w32_read_socket):
645 Do not gratuitously ignore non-string `help-echo' properties.
646
88d75730
GM
6472000-07-05 Gerd Moellmann <gerd@gnu.org>
648
969f7e79
GM
649 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
650
71201b00
GM
651 * window.c (delete_all_subwindows): Reset Vwindow_list.
652
88d75730
GM
653 * xterm.c (x_append_glyph, x_append_composite_glyph)
654 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
655 changes in struct glyph starting 1999-12-27. Some bit-fields of
656 struct glyph were not set, which made glyphs unequal when compared
657 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
658 effects were the result. This also depended on the contents of
659 memory returned by xmalloc. If flickering happens again, activate
660 the code in clear_glyph_row that's in #if 0. If the flickering is
661 gone with that, chances are that it is caused by something
662 similar.
663
664 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 665
88d75730
GM
666 * dispextern.h: Add some comments.
667
668 * window.c (add_window_to_list): Add parameter LIST.
669 (window_list): Order list so that, for each frame, windows are
670 in canonical order, and so that frames appear in the list in
671 the order given by Vframe_list.
672 (next_window): Reverse the handling of NEXT_P.
673
53654733
GM
6742000-07-04 Gerd Moellmann <gerd@gnu.org>
675
87efd256
GM
676 * window.c (Vwindow_list): New variable.
677 (make_window, delete_window): Set Vwindow_list to nil.
678 (check_window_containing): New function.
679 (window_from_coordinates): Rewritten.
680 (add_window_to_list, window_list, candidate_window_p)
681 (decode_next_window_args, next_window): New functions.
682 (Fnext_window, Fprevious_window): Rewritten in terms of
683 next_window.
684 (Fwindow_list): New function.
685 (Fother_window): Cleaned up.
686 (foreach_window): Add a longer "variable argument list". Let
687 callback function return 0 to indicate that cycling over windows
688 should stop.
689 (foreach_window_1): Likewise.
690 (freeze_window_start): Return int.
691 (init_window): New function.
692 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
693
694 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
695 input_event with bzero.
696 (main): Call init_window.
697
53654733
GM
698 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
699 a menu filter.
700
4a8c194f
KH
7012000-07-04 Kenichi Handa <handa@etl.go.jp>
702
703 * composite.h (make_composition_value_copy): Extern it.
704
705 * composite.c (make_composition_value_copy): New function.
706
707 * editfns.c (Fformat): While copying text properties, make each
708 composition property value a copy.
709
710 * fns.c (concat): While copying text properties, make each
711 composition property value a copy.
712
831a6cb0
GM
7132000-07-03 Gerd Moellmann <gerd@gnu.org>
714
2f516940
GM
715 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
716
178c5d9c 717 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
718 marked already.
719
831a6cb0
GM
720 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
721 include those frames as candidates which have their focus
722 redirected to the minibuffer frame.
723
d9c4f922
SM
7242000-07-03 Stefan Monnier <monnier@cs.yale.edu>
725
726 * fns.c (Fputhash): Return `value' rather than nil.
727
3780bc22
GM
7282000-06-30 Gerd Moellmann <gerd@gnu.org>
729
97d176db
GM
730 * frame.c (next_frame): Don't check focus redirection in case
731 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
732 unless their focus is redirected, which contradicts the
733 specification of next-frame, and leads to infinite loops in
734 certain situations when cycling through windows with next-window.
735
dca9961d
KH
7362000-06-30 Kenichi Handa <handa@etl.go.jp>
737
738 * coding.c (code_convert_region): Even if the length of text is
739 zero, try to convert it if coding->type is coding_type_ccl.
740 (decode_coding_string, encode_coding_string): Likewise.
741
d5483ab1
GM
7422000-06-28 Gerd Moellmann <gerd@gnu.org>
743
af5c25e1 744 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 745 the display if windows_or_buffers_changed.
af5c25e1
GM
746
747 * dispnew.c (struct row_entry): New structure.
748 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
749 (row_table_size, old_lines, new_lines, old_lines_size)
750 (new_lines_size, run_pool, runs_size, runs): New variables.
751 (add_row_entry): New function.
752 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 753 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
754 holding them in local variables. Use a larger hash table whose
755 size depends on glyph matrix sizes. Don't use bzero to clear the
756 hash table; instead, clear used slots only.
757
758 * fns.c (next_almost_prime): Make it externally visible.
759
760 * lisp.h (next_almost_prime): Add prototype.
761
d5483ab1
GM
762 * s/isc4-0.h (sigunblock): Define.
763
764 * s/sco5.h (sigunblock): Define.
765
93e40f40
DL
7662000-06-27 Dave Love <fx@gnu.org>
767
768 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
769 (moved to osf5-0.h).
770 [!NOT_C_CODE]: Protect string.h stuff.
771
772 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
773 (sys_siglist, NSIG): Definitions moved here from osf1.h.
774
3c4b7685
GM
7752000-06-27 Gerd Moellmann <gerd@gnu.org>
776
97d176db 777 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
778 below the last line from the needed window height.
779
32cad0aa
SM
7802000-06-26 Stefan Monnier <monnier@cs.yale.edu>
781
782 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
783 (Fwidget_get): Use it.
784 (syms_of_fns): Defsubr it.
785
2c69ced2
GM
7862000-06-26 Gerd Moellmann <gerd@gnu.org>
787
178c5d9c 788 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
789 display info for XIM.
790 (xim_open_dpy): Likewise.
791 (xim_close_dpy): Don't free the display info's XIM.
792
793 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
794
795 * config.in (USE_XIM): New define.
796
3fc720e4
GM
797 * keymap.c (get_keyelt): For menu-items containing a `:filter
798 FILTER', apply FILTER to the menu-item's definition to get the
799 real definition to use.
800
801 * lisp.h (QCfilter): External declaration.
802
2c69ced2
GM
803 * xfns.c (Fimage_size): New function.
804 (syms_of_xfns): Defsubr it.
805
f978b2a2
AS
8062000-06-26 Andreas Schwab <schwab@suse.de>
807
808 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
809 Fstring_as_unibyte.
810
94cc7892
DL
8112000-06-25 Dave Love <fx@gnu.org>
812
813 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
814 tgetnum.
815
816 * Makefile.in (blockinput.h): Depend on atimer.h.
817 (atimer.h): Depend on systime.h.
818
819 * blockinput.h: Protect against multiple inclusion. Include
820 atimer.h.
821
822 * atimer.h: Protect against multiple inclusion. Include
823 systime.h.
824
825 * lisp.h (swap_in_global_binding): Declare.
826
b8c24556
KR
8272000-06-24 Ken Raeburn <raeburn@gnu.org>
828
829 * process.c (Fopen_network_stream): Turn off atimers for duration
830 of call to connect. (Patch from Gerd.)
831
8cf8560b
DL
8322000-06-23 Dave Love <fx@gnu.org>
833
511c7541
DL
834 * ralloc.c: Maybe include unistd.h
835
8cf8560b
DL
836 * emacs.c (setgrp): Undefine before defining.
837 (malloc_warning, set_time_zone_rule, index): Prototype.
838
839 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
840 HAVE_STRUCT_TIMEZONE.
841
842 * s/osf1.h: Move string.h hack here from alpha.h and make it
843 conditional.
844 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
845 _XOPEN_SOURCE.
846 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
847 (SOCKLEN_TYPE): Don't define.
848
849 * m/alpha.h: Remove string.h hack.
850
851 * s/osf5-0.h: New file.
852
853 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
854 include time.h, done by systime.h.
855 [__FreeBSD__]: Remove redundant includes.
856
3fc720e4 857 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
858 (delete_temp_file): Return Qnil to avoid warning.
859
860 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
861
862 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
863 HAVE_X_WINDOWS.
864
865 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
866
867 * composite.h (compose_text): Declare.
868
869 * xterm.c: Don't include sys/types.h unconditionally. Don't
870 protect its inclusion with !USG (following xmenu.c).
871
ea055732
GM
8722000-06-23 Gerd Moellmann <gerd@gnu.org>
873
874 * xfns.c (x_create_tip_frame): Initialize frame's colors like
875 in x_create_frame.
876
74b01b80
EZ
8772000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
878
879 * coding.c (decode_eol_post_ccl): Special handling for undecided
880 and inconsistent EOL types.
881
64f3a166
GM
8822000-06-22 Gerd Moellmann <gerd@gnu.org>
883
16cf31f7
GM
884 * xrdb.c (x_load_resources): Add default resource for scroll bar's
885 trough color and main window's background color.
886
178c5d9c 887 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
888 differently.
889
890 * xterm.h (Xt_app_con): External declaration.
891
892 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 893
486a103d
GM
894 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
895
64f3a166
GM
896 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
897 (handle_invisible_prop): Record the start of invisible text in
898 it->add_overlay_start.
899 (struct overlay_entry): Add member `overlay'.
900 (handle_overlay_change): Simplify.
901 (next_overlay_string): After having processed overlay strings at the
902 end of the buffer, record that fact in
903 it->overlay_strings_at_end_processed_p.
904 (compare_overlay_entries): If before- and after-strings come
905 from the same overlay, let before-strings come first.
906 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
907 (load_overlay_strings): Take it->add_overlay_start into account
908 when adding overlay strings.
909
910 * dispextern.h (struct it): Add member add_overlay_start.
911
bb746ea6
DL
9122000-06-22 Dave Love <fx@gnu.org>
913
914 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
915
916 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
917
a8f573f3
KH
9182000-06-22 Kenichi Handa <handa@etl.go.jp>
919
920 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
921 is greater than 0.
922
9f2bbc92
DL
9232000-06-21 Dave Love <fx@gnu.org>
924
178c5d9c 925 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 926
3ee5041c
SM
9272000-06-21 Stefan Monnier <monnier@cs.yale.edu>
928
929 * syntax.c (back_comment): Simplify string-parity counting (with
930 the added benefit of handling multiple string-styles as long as
931 they are not intertwined).
932 Jump to the slow code as soon as a comment starter is found in
933 a "string_lossage" position. Fixes the case: " /* " /* " */.
934
4c343001
DL
9352000-06-21 Dave Love <fx@gnu.org>
936
937 * Makefile.in: Use GETLOADAVG_LIBS.
938
939 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
940 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
941
e6365855
SM
9422000-06-20 Stefan Monnier <monnier@cs.yale.edu>
943
944 * syntax.c (describe_syntax): Recognize the `n'estable bit.
945 (Fforward_comment, scan_lists):
946 Check the comstyle of single-char comment-starters.
947 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
948 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
949 Check the comstyle of single-char comment-starters.
950 Clarify control-flow around the Scomment case.
e6365855 951
5700d2cc
DL
9522000-06-20 Dave Love <fx@gnu.org>
953
d355bd8a
SM
954 * fns.c (make_hash_table, maybe_resize_hash_table):
955 Cast arg of next_almost_prime.
5700d2cc 956
178c5d9c 957 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
958
959 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
960 and unistd.h.
961
4a27bdfb
GM
9622000-06-20 Gerd Moellmann <gerd@gnu.org>
963
a61d762c
GM
964 * keyboard.c (adjust_point_for_property): Check if display
965 property should be treated as intangible by looking at its
966 value.
967
178c5d9c 968 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
969 (display_prop_intangible_p): New functions.
970
971 * dispextern.h (display_prop_intangible_p): Add prototype.
972
973 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 974
4a27bdfb
GM
975 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
976 argument to sigprocmask.
977
978 * s/sco5.h (sigblock): Redefined to pass a pointer as second
979 argument to sigprocmask.
980
981 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
982 sigprocmask_set, and pass a pointer to it to sigprocmask.
983
984 * sysdep.c (sigprocmask_set): New variable.
985
986 * fileio.c (make_temp_name): Don't use `%s' in string passed to
987 report_file_error.
988
427ec082
SS
9892000-06-20 Sam Steingold <sds@gnu.org>
990
991 * xrdb.c: Don't declare xmalloc, xrealloc.
992
8972fe79 9932000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
994
995 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
996 (re_comp): Cast gettext return value to avoid complaints when
997 !HAVE_LIBINTL.
998
074b6efe
DL
9992000-06-20 Dave Love <fx@gnu.org>
1000
f85c008a
DL
1001 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
1002 HAVE_GETTIMEOFDAY.
1003
5700d2cc 1004 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 1005
d355bd8a 1006 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
1007
1008 * m/alpha.h: Don't declare xmalloc, xrealloc.
1009
0af4f205
DL
1010 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
1011
1012 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
1013
1014 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
1015
1016 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
1017 HAVE_GETWD.
1018
074b6efe
DL
1019 * keyboard.h (poll_for_input_1): Declare.
1020
1021 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
1022
1023 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
1024
1025 * doprnt.c: Don't declare xmalloc, xrealloc.
1026
1027 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
1028 (getenv, ctime, getwd): Removed.
1029 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
1030
1031 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
1032 x_set_tool_bar_lines.
1033
1034 * config.in: Add HAVE_GETWD. Move some definitions above
1035 machine/system includes.
1036
68a5e97b
KH
10372000-06-20 Kenichi Handa <handa@etl.go.jp>
1038
95417e1e
KH
1039 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
1040
68a5e97b
KH
1041 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
1042 contain information about ENCODING.
1043
1044 * fontset.c (FONTSET_ASCII): Use the first element of char table
1045 for an ASCII font, not defalt slot.
1046 (fontset_ref_via_base): If FONTSET doesn't contain information for
1047 C, try the default fontset.
1048 (make_fontset): Don't copy the default fontset.
1049 (fontset_font_pattern): Likewise.
1050 (accumulate_font_info): If ELT is nil, use the corresponding
1051 element in the default fontset.
1052
3b4fa1b2
DL
10532000-06-19 Dave Love <fx@gnu.org>
1054
943e731c
DL
1055 * syntax.c (Fparse_partial_sexp): Doc fix.
1056
1057 * regex.h: Test PROTOTYPES as well as __STDC__.
1058
3b4fa1b2
DL
1059 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
1060 errno, strerror. Put text after #endif in comment.
1061
1062 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
1063 pcc).
1064
1065 * xterm.c (x_frame_of_widget): Likewise.
1066
cdf0357b
GM
10672000-06-19 Gerd Moellmann <gerd@gnu.org>
1068
1069 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1070 to Vfundamental_mode_abbrev_table.
1071
1072 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1073 bogus objects are marked. This slows down GC by ~80 percent, but
1074 it might be worth trying when debugging GC-related problems.
1075 This feature requires conservative stack marking to be enabled.
1076
1077 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1078 returns XLookupChars, reset `modifiers' to zero.
1079
998e9f8c
DL
10802000-06-19 Dave Love <fx@gnu.org>
1081
1082 * mktime.c: Unprotoized.
1083
18e21ce8 10842000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1085
1086 * data.c (set_internal): If variable is frame-local,
1087 store the new value immediately into the frame parameter alist.
1088
140c4ac6
KR
10892000-06-19 Ken Raeburn <raeburn@gnu.org>
1090
14358466
KR
1091 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1092 in the custom handler pointer.
1093
140c4ac6
KR
1094 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1095 value, or checks for CHAR_META can fail when Lisp_Object is a
1096 union type.
1097 * keymap.c (get_keyelt): Likewise.
1098
10d7bf84
KH
10992000-06-19 Kenichi Handa <handa@etl.go.jp>
1100
1101 * ccl.h (struct ccl_program): New member eol_type.
1102 (struct ccl_spec): New member cr_carryover.
1103
1104 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1105 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1106
1107 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1108 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1109 (decode_eol_post_ccl): New function.
1110 (decode_coding): Don't detect EOL format here for CCL based coding
1111 systems.
1112 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1113 decode_eol_post_ccl after running the CCL program.
1114 (code_convert_region): Don't detect EOL format here for CCL based
1115 coding systems.
1116 (decode_coding_string): Likewise.
1117
52e386c2
KR
11182000-06-18 Ken Raeburn <raeburn@gnu.org>
1119
1120 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1121 when treating it as an integer.
1122
1123 * coding.h (encode_coding_string): Declare.
1124
1125 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1126 it as an integer.
1127
1128 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1129 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1130 to be passed to get_local_map.
1131
1132 * sound.c (Fplay_sound): Don't call make_number on
1133 Frun_hook_with_args count argument.
1134
1135 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1136 for lisp objects in X event structure data field, when lisp
1137 objects are represented with unions.
1138 (x_scroll_bar_to_input_event): Ditto.
1139
b357b9d4
KR
11402000-06-16 Ken Raeburn <raeburn@gnu.org>
1141
1142 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1143 termination of string. Fix sense of test whether
1144 Vline_number_display_limit is an integer.
b357b9d4 1145
a871441d
GM
11462000-06-16 Gerd Moellmann <gerd@gnu.org>
1147
a9021acd
GM
1148 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1149 only if HAVE_X_WINDOWS.
1150
6344985d
GM
1151 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1152 of titles.
1153
427ec082 1154 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1155 out of bounds.
1156
228b083e
EZ
11572000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1158
1159 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1160 of its headers.
1161
c25b53a2
KH
11622000-06-15 Kenichi Handa <handa@etl.go.jp>
1163
1164 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1165 start of the while loop.
1166
a6981b11
GM
11672000-06-15 Gerd Moellmann <gerd@gnu.org>
1168
e9924e52
GM
1169 * atimer.c (alarm_signal_handler): Add forward declaration.
1170
a6981b11
GM
1171 * data.c (set_internal): Remove debug code.
1172
25fa6deb
GM
11732000-06-14 Gerd Moellmann <gerd@gnu.org>
1174
dce6b995
GM
1175 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1176
9f817ea4
GM
1177 * unexec.c (toplevel) [COFF]: Include coff.h.
1178
1179 * s/lynxos.h: New file.
1180
1181 * keymap.c (Fsingle_key_description): Enclose function key and
1182 event symbol names in angle brackets.
1183
8a4e3c0c
GM
1184 * xdisp.c (setup_echo_area_for_printing): Call
1185 message_log_maybe_newline if message_buf_print is not set.
1186
1187 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1188 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1189 function does something useful even when message_buf_print is
1190 already set.
1191
25fa6deb
GM
1192 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1193 variables.
1194 (ensure_echo_area_buffers): Initialize echo buffer's
1195 truncate lines setting to nil.
1196 (with_echo_area_buffer): Don't set the echo buffer's truncate
1197 lines setting here.
8a4e3c0c 1198 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1199 of message_truncate_lines.
1200 (resize_mini_window): Handle case that lines are truncated.
1201 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1202 message-truncate-lines.
1203
1204 * keyboard.c (read_char): Bind message-truncate-lines to t
1205 while displaying a help-echo.
1206
1207 * lisp.h (Qmessage_truncate_lines): External declaration.
1208
163dcff3
GM
12092000-06-13 Gerd Moellmann <gerd@gnu.org>
1210
1681ead6
GM
1211 * xdisp.c (Vline_number_display_limit): Renamed from
1212 line_number_display_limit.
1213 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1214 Extend documentation string. Initialize
1215 Vline_number_display_limit to nil meaning no limit.
1216 (decode_mode_spec): Use Vline_number_display_limit with its new
1217 meaning.
1218
163dcff3
GM
1219 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1220
18e21ce8 12212000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1222
1223 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1224
163dcff3
GM
1225 * xfns.c (x_set_frame_parameters): Comment fix.
1226
1227 * frame.c (store_frame_param): Call swap_in_global_binding if the
1228 variable's current binding was chosen based on this frame.
1229
1230 * data.c (swap_in_global_binding): New function.
1231
a704139d
EZ
12322000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1233
1234 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1235 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1236
9b6610db
EZ
12372000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1238
1239 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1240
c68833d2
JR
12412000-06-12 Jason Rumney <jasonr@gnu.org>
1242
1243 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1244
1245 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1246
1247 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1248
1249 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1250
ed1056b3
GM
12512000-06-12 Gerd Moellmann <gerd@gnu.org>
1252
1253 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1254 (syms_of_xfaces): Defsubr Sdump_colors.
1255 (x_free_colors): Don't treat b&w specially on default visual.
1256 (x_free_dpy_colors): New function.
1257 (free_face_colors): Don't check visual class; it's done
1258 in x_free_colors.
1259
1260 * xterm.c (x_frame_of_widget): New function.
1261 (x_alloc_nearest_color_for_widget): Use it.
1262 (x_copy_dpy_color): New function.
1263 (x_destroy_window): Free various colors.
1264
5050a2ef
KH
12652000-06-12 Kenichi Handa <handa@etl.go.jp>
1266
1267 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1268
1269 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1270
1271 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1272
1273 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1274
1275 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1276
fb1b041d
DL
12772000-06-11 Dave Love <fx@gnu.org>
1278
1279 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1280
ff96b5f4
EZ
12812000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1282
1283 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1284
db8eeecd
GM
12852000-06-11 Gerd Moellmann <gerd@gnu.org>
1286
ed1056b3 1287 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1288 to `XEvent *'.
1289
49b71c5f
KH
12902000-06-10 Kenichi Handa <handa@etl.go.jp>
1291
c479bd55
KH
1292 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1293 (regex_compile): Fix the code for handling the case of single byte
1294 char and multibyte char being mixed in a range within [...].
1295
ff6a65c2
KH
1296 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1297 and dst_multibyte members of coding.
1298
49b71c5f
KH
1299 * charset.c (update_charset_table): Update the table
1300 bytes_by_char_head.
1301 (init_charset_once): Initialize elements of bytes_by_char_head to
1302 1 except for leading codes for private charases.
1303
1304 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1305 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1306 sequence.
1307
9e80b57d
KR
13082000-06-09 Ken Raeburn <raeburn@gnu.org>
1309
1310 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1311 access the data it doesn't point to.
1312
f83fe4b4
GM
13132000-06-08 Gerd Moellmann <gerd@gnu.org>
1314
1315 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1316 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1317 event queue. This is necessary because Emacs otherwise won't
1318 perform a switch-frame to a new frame until some other event, for
1319 example a keystroke event, forces it to do so. This has various
1320 effects, one visible being that the cursor of a frame created with
1321 C-x 5 2 or switched to with a window manager key binding like
1322 A-TAB stays hollow because selected_window isn't on the newly
1323 focused frame until the switch-frame is performed.
1324
1325 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1326 generating a switch-frame event if necessary.
1327
1328 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1329
1330 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1331 it's an integer.
1332
0890801b
KH
13332000-06-08 Kenichi Handa <handa@etl.go.jp>
1334
1335 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1336 charset.
1337
173cbca8
GM
13382000-06-07 Gerd Moellmann <gerd@gnu.org>
1339
3091c2a6
GM
1340 * window.c (displayed_window_lines): Take empty lines at
1341 the bottom of a window into account.
427ec082 1342
f38952fe
GM
1343 * window.c (displayed_window_lines): New function.
1344 (Fmove_to_window_line): Use displayed_window_lines to determine
1345 the number of lines to move, instead of using the window's height.
1346
1347 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1348 to stop reading, even if the form read sets point to a different
1349 value when evaluated.
1350
427ec082 1351 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1352 put the cursor.
1353
6ba6c818
KH
13542000-06-07 Kenichi Handa <handa@etl.go.jp>
1355
1356 * fileio.c (e_write): Free composition data if stored in
1357 coding->cmp_data.
1358
5f1aea9a
GM
13592000-06-06 Gerd Moellmann <gerd@gnu.org>
1360
666852af
GM
1361 * xdisp.c (display_line): Set row's and iterator's
1362 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1363 Set cursor even if row ends in the middle of a character.
1364 (dump_glyph_row): Print values of new flags.
1365 (redisplay_window) <cursor movement in unchanged window>: When
1366 point has been moved forward, and PT is at the end of the cursor
1367 row, don't place the cursor in the next row if the cursor row ends
1368 in the middle of a character or at ZV.
1369
1370 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1371 (struct glyph_row): Add starts_in_middle_of_char_p and
1372 ends_in_middle_of_char_p.
1373 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1374 ends_in_middle_of_char_p flag.
1375 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1376
d13f3e2e
GM
1377 * term.c (append_glyph): Revert change of 2000-06-06.
1378
1379 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1380 padding glyph not fitting on line as whole character not
1381 fitting on line.
1382
5f1aea9a
GM
1383 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1384 this isn't true for images with `:ascent 100'.
1385
10cda9b0
KH
13862000-06-06 Kenichi Handa <handa@etl.go.jp>
1387
ed00559d
KH
1388 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1389 as modified if it is originally unmodified.
1390
10cda9b0
KH
1391 * term.c (encode_terminal_code): Change the way to check if
1392 terminal coding does any conversion.
1393 (append_glyph): Set glyph->pixel_width correctly.
1394
1395 * xdisp.c (display_line): While checking line continuation, pay
1396 attention to a padding glyph.
1397
1969fae2
GM
13982000-06-05 Gerd Moellmann <gerd@gnu.org>
1399
1400 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1401
162ccef4
DL
14022000-06-05 Dave Love <fx@gnu.org>
1403
f19f32dd
DL
1404 * xdisp.c: Include fontset.h.
1405
1406 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1407
1408 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1409
1410 * dispnew.c: Conditionally include term.h.
1411
1412 * coding.h: Declare code_convert_string_norecord.
1413
1414 * frame.h (struct frame): Use volatile unconditionally.
1415
1416 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1417
1418 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1419
1420 * systime.h: Protect against multiple inclusion.
1421 (timezone) [USG5_4]: Define as time_t.
1422
1423 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1424 (Foptimize_char_table, make_temp_name): Declare.
1425
1426 * Makefile.in (xdisp.o): Depend on fontset.h.
1427
1428 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1429
1430 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1431 (Foptimize_char_table, make_temp_name): Declare.
1432
427ec082 1433 * s/irix4-0.h:
162ccef4
DL
1434 * s/irix5-0.h:
1435 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1436
2082fe81
DL
14372000-06-02 Dave Love <fx@gnu.org>
1438
1439 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1440
dcf671d2
GM
14412000-06-02 Gerd Moellmann <gerd@gnu.org>
1442
1443 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1444 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1445 be freed.
1446
1447 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1448 glyph, use the ASCII NUL character to determine the face.
1449
d42122a3
DL
14502000-06-02 Dave Love <fx@gnu.org>
1451
1452 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1453 (VFORK_RETURN_TYPE): Remove.
427ec082 1454
d42122a3
DL
1455 * config.in: Add NO_MATHERR.
1456
dd432f16
DL
14572000-06-01 Dave Love <fx@gnu.org>
1458
90aa4ea8
DL
1459 * cmds.c (internal_self_insert): Don't check
1460 Vbefore_change_function, Vafter_change_function.
1461
1462 * insdel.c (signal_before_change, signal_after_change): Likewise.
1463
1464 * buffer.c (Vbefore_change_function, Vafter_change_function):
1465 Variables and their initializations deleted.
1466
2330c9d4
DL
1467 * callint.c (Fcall_interactively): Doc fix.
1468
dd432f16
DL
1469 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1470
bf9e8804
DL
14712000-05-31 Dave Love <fx@gnu.org>
1472
1473 * textprop.c: Revert last change -- duplicated.
1474
3694b4ab
GM
14752000-05-31 Gerd Moellmann <gerd@gnu.org>
1476
1477 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1478 in #if 0.
1479
1480 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1481
f14156cd
JR
14822000-05-31 Jason Rumney <jasonr@gnu.org>
1483
8119aab8
JR
1484 * search.c (Fre_search_forward, Fre_search_backward)
1485 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1486
f14156cd
JR
1487 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1488
4aab9be3
JR
14892000-05-30 Jason Rumney <jasonr@gnu.org>
1490
1491 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1492 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1493
1494 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1495 member.
1496
1497 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1498 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1499 expand a nil default_filename.
1500
1501 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1502 pointer to glyph_to_pixel_coords, not a frame.
1503
1504 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1505 coding.h to dependencies.
1506
1507 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1508
1509 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1510 window pointer to be consistent with w32term.c and xterm.c.
1511
1512 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1513 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1514 (Qline_spacing, Qcenter): New variables.
1515 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1516 (x_set_line_spacing): New function.
1517 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1518 macros.
1519 (x_specified_cursor_type): New function.
1520 (x_set_cursor_type): Use it.
1521 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1522 and icon strings.
1523 (validate_x_resource_name, x_get_resource_string): Measure lengths
1524 of external strings in bytes.
1525 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1526 GetTextExtentPoint32 with NULL title.
1527 (Fx_create_frame): Initialize Qline_spacing.
1528 (w32_load_system_font): Initialize font->double_byte_p.
1529 (x_to_w32_charset): Use Vw32_charset_info_alist.
1530 (Image, busy cursor, tooltip functions): Merged changes from
1531 xfns.c. Not yet functional on Windows.
1532
1533 * w32gui.h (W32FontStruct): Add double_byte_p member.
1534
1535 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1536 (emacs_button_translation): Use it.
1537 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1538 in `mask' to be set.
1539
1540 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1541 menu strings.
1542
1543 * w32term.c: Format and doc changes to bring closer to xterm.c.
1544 (w32_char_font_type): New enum.
1545 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1546 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1547 (w32_encode_char): New function.
1548 (x_encode_char): Removed.
1549 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1550 x_encode_char and w32_font_is_double_byte.
1551 (x_produce_image_glyph): Use image_ascent.
1552 (x_produce_glyphs): Use new version of w32_per_char_metric and
1553 handle NULL return value. Allow extra line spacing.
1554 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1555 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1556 w32_font_type member of glyph instead.
1557 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1558 (fast_find_position): Make sure not to consider rows not visible
1559 in the window.
1560 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1561 w32_menu_display_help with input blocked, as it can abort.
1562 (x_display_and_set_cursor): Choose cursor depending
1563 on buffer-local value of cursor_type.
1564 (x_draw_bar_cursor): Add parameter WIDTH.
1565
1566 * w32term.h (CP_DEFAULT): Define.
1567 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1568
10fc3187
GM
15692000-05-30 Gerd Moellmann <gerd@gnu.org>
1570
1571 * search.c (Fre_search_forward, Fre_search_backward)
1572 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1573
d0555360
KH
15742000-05-30 Kenichi Handa <handa@etl.go.jp>
1575
1576 * coding.c (detect_coding_iso2022): Fix code for checking
1577 CODING_CATEGORY_MASK_ISO_8_2.
1578
f1ad044f
SM
15792000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1580
1581 * regex.c (PREFETCH_NOLIMIT): New function.
1582 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1583
84ec3b4b
GM
15842000-05-29 Gerd Moellmann <gerd@gnu.org>
1585
66254a13
GM
1586 * syntax.c (find_defun_start): Move test for
1587 open_paren_in_column_0_is_defun_start outside of the loop.
1588
49e70dec
GM
1589 * xdisp.c (redisplay_window): Really switch buffers when
1590 displaying mode lines, and temporarily set selected_frame to the
1591 frame of the window that's redisplayed.
1592
84ec3b4b
GM
1593 * xfaces.c (free_realized_faces): Block/unblock input.
1594 (free_realized_multibyte_face): Ditto.
1595
869a3a14
DL
15962000-05-29 Dave Love <fx@gnu.org>
1597
1598 * textprop.c (Qkeymap): New variable.
1599 (syms_of_textprop): Intern it.
1600
1601 * keymap.c: Include intervals.h.
1602 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1603
1604 * Makefile.in (keymap.o): Depend on intervals.h.
1605
1606 * keyboard.c (menu_bar_items, tool_bar_items)
1607 (Fexecute_extended_command): Deal with `keymap' property.
1608 (read_key_sequence): Track map from `keymap' property as well as
1609 `local_map'.
1610
1611 * intervals.c (get_local_map): Extra arg to allow looking for
1612 `keymap' too.
1613
1614 * intervals.h (map_property): New enum.
1615 (get_local_map): Extra arg using it.
1616 (Qkeymap): Declare.
1617
84ec3b4b 1618 * lisp.h (get_local_map): Don't declare here.
869a3a14 1619
89d0c844
KH
16202000-05-29 Kenichi Handa <handa@etl.go.jp>
1621
1622 * Makefile.in (callproc.o): Depend on composite.h.
1623
1624 * callproc.c: Include composite.h.
1625 (Fcall_process): Handle composition correctly.
1626
1627 * coding.h (coding_allocate_composition_data): Extern it.
1628 (coding_restore_composition): Likewise.
1629
1630 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1631 yet allocated, finish decoding with result
1632 CODING_FINISH_INSUFFICIENT_CMP.
1633 (coding_allocate_composition_data): Make it non-static.
1634 (coding_restore_composition): Likewise.
1635
797a084a
EZ
16362000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1637
1638 * charset.c (syms_of_charset): Revert last change.
1639
cf872af5
EZ
16402000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1641
1642 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1643 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1644 Handa.
cf872af5 1645
5b1ae051
EZ
16462000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1647
1648 * charset.c (syms_of_charset): Set width of character sets
1649 eight-bit-control and eight-bit-graphic to 1 column.
1650
34ec9ebe
GM
16512000-05-26 Gerd Moellmann <gerd@gnu.org>
1652
1653 * config.in (HAVE_SPEED_T): New define.
1654
1655 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1656 `extern speed_t'.
1657
dd854dc2
DL
16582000-05-26 Dave Love <fx@gnu.org>
1659
1660 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1661
1662 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1663 (Fsubr_arity): New function.
1664 (syms_of_data): Install them.
1665
ba9f8f95
KH
16662000-05-26 Kenichi Handa <handa@etl.go.jp>
1667
0f3e0672
KH
1668 * charset.c (init_charset_once): Set the table bytes_by_char_head
1669 correctly.
1670
cebefb44
KH
1671 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1672 the default fontset to what Emacs uses by default.
0f3e0672
KH
1673 (check_registry_encoding): This function deleted.
1674 (Fset_fontset_font): Remove the adhoc condition for the default
1675 fontset. Allow cons in FONTNAME.
cebefb44 1676
0f3e0672
KH
1677 * fns.c (map_char_table): Ignore char-table entries for
1678 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1679
7a18af49
KR
16802000-05-25 Ken Raeburn <raeburn@gnu.org>
1681
1682 * emacs.c (main): Initialize keyboard syms before initializing
1683 window code, so face names are available.
1684
d2af47df
SM
16852000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1686
1687 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1688 of an anchor at the beginning of a shy-group.
1689
fc6a6a4e
GM
16902000-05-25 Gerd Moellmann <gerd@gnu.org>
1691
1692 * xdisp.c (handle_invisible_prop): Don't try to skip over
1693 invisible text if end of text is already reached.
1694
005f0d35
DL
16952000-05-25 Dave Love <fx@gnu.org>
1696
02513cdd
DL
1697 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1698
005f0d35
DL
1699 * coding.c (encode_eol): Add null statement after label.
1700
89f6ca4e
EZ
17012000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1702
1703 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1704 2000-05-20.
1705
a4e1759e
KH
17062000-05-25 Kenichi Handa <handa@etl.go.jp>
1707
1708 * ccl.c (ccl_driver): Fix previous change.
1709
eacfd7fe
KH
17102000-05-25 Kenichi Handa <handa@etl.go.jp>
1711
46ab33a9
KH
1712 * coding.c (run_pre_post_conversion_on_str): Set point to the
1713 beginning of buffer before calling coding->post_read_conversion.
1714 (decode_coding_string): Give correct args to
1715 run_pre_post_conversion_on_str.
1716 (encode_coding_string): Likewise.
1717
eacfd7fe
KH
1718 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1719 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1720 eight-bit-graphic correctly.
1721
f8569325
DL
17222000-05-24 Kenichi HANDA <handa@etl.go.jp>
1723
1724 * fileio.c (Finsert_file_contents): Even if a file is not found,
1725 execute codes for setting up coding system. Call
1726 after-insert-file-functions unconditionally.
1727
04545643
GM
17282000-05-24 Gerd Moellmann <gerd@gnu.org>
1729
1730 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1731 BSD_PGRPS are not defined.
1732
747d90ea
KH
17332000-05-24 Kenichi Handa <handa@etl.go.jp>
1734
1735 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1736 DESCRIPTION.
1737 (syms_of_charset): Avoid building same strings.
1738
716e3b88
GM
17392000-05-23 Gerd Moellmann <gerd@gnu.org>
1740
1741 * lread.c (Fload): Add a comment about the meaning of
1742 Vuser_init_file being t.
1743
1744 * puresize.h (BASE_PURESIZE): Increase to 675000.
1745
1746 * s/gnu-linux.h (setpgrp): Don't define it here because this
1747 prevents compilation on GNU/Linux systems with glib 2.2.
1748
1749 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1750 as setpgid.
427ec082 1751
9aeb39fa
EZ
17522000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1753
1754 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1755 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1756 version.
1757 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1758
29ced61b
KH
17592000-05-23 Kenichi Handa <handa@etl.go.jp>
1760
0574a2ed
KH
1761 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1762 unconditionally.
1763
3d80f24d
KH
1764 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1765
1766 * term.c (encode_terminal_code): Set coding->src_multibyte
1767 properly.
1768
29ced61b
KH
1769 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1770
d7e00792
KH
17712000-05-22 Kenichi Handa <handa@etl.go.jp>
1772
c9d80d38
KH
1773 * keyboard.c (read_char): Allow character codes 128..255 to be
1774 handled by input-method-function.
1775
d7e00792
KH
1776 * insdel.c (adjust_markers_for_replace): Fix previous change.
1777 (adjust_after_replace): If PREV_TEXT is nil, call
1778 adjust_markers_for_insert, not adjust_markers_for_replace.
1779
087121cc 17802000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1781
087121cc
GM
1782 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1783 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1784 [HAVE_GRANDPT]: Define.
1785 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1786
1787 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1788 like SYSV_PTYS.
1789
1790 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1791
1792 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1793
c9671f81
KH
17942000-05-20 Kenichi Handa <handa@etl.go.jp>
1795
1796 The following changes are to handle 8-bit characters in a
1797 multibyte buffer/string without facing with byte combining
1798 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1799 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1800
1801 * Makefile.in (fns.o): Depend on charset.h.
1802
1803 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1804 convert it to unibyte.
1805 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1806
1807 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1808 apparent char boundary.
1809 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1810 0x80..0x9F to/from multibyte form.
1811
1812 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1813 to unibyte.
1814
1815 * callproc.c (Fcall_process): Always encode an argument string if
1816 it is multibyte. Setup src_multibyte and dst_multibyte members of
1817 process_coding properly.
ce75fd23 1818
c9671f81
KH
1819 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1820 SPLIT_NON_ASCII_CHAR.
1821
1822 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1823 as is.
1824 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1825
1826 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1827 variables.
1828 (SPLIT_CHARACTER_SEQ): This macro deleted.
1829 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1830 valid.
1831 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1832 and eight-bit-graphic.
1833 (char_to_string): Likewise. Signal an error for too large
1834 character code.
1835 (char_printable_p): Return 0 for 8-bit characters.
1836 (update_charset_table): Update iso_charset_table only when a final
1837 character is non-negative.
1838 (find_charset_in_text): Renamed from find_charset_in_str.
1839 Arguments and return value changed. Callers changed.
1840 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1841 be -1 if CHARSET is used only internally.
1842 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1843 eight-bit-graphic.
1844 (Fcharset_after): Simplified.
1845 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1846 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1847 (multibyte_chars_in_text): Simplified by assuming there's no
1848 invalid multibyte sequence.
1849 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1850 str_as_unibyte): New functions.
1851 (Fstring): Simpified by assuming that byte combining never
1852 happens.
1853 (init_charset_once): Initialization for
1854 LEADING_CODE_8_BIT_CONTROL.
1855 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1856 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1857 eight-bit-control and eight-bit-graphic.
1858
1859 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1860 CHARSET_8_BIT_GRAPHIC): New macros.
1861 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1862 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1863 (CHARSET_REVERSE_CHARSET): Likewise.
1864 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1865 eight-bit-graphic.
1866 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1867 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1868 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1869 encounter an invalid multibyte sequence.
1870 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1871 sequence is always valid.
1872 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1873 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1874 macros.
1875 (CHAR_STRING): For 8-bit characters, call char_to_string.
1876 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1877 multibyte sequence is always valid.
1878 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1879 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1880 str_as_unibyte): Extern them.
1881 (BCOPY_SHORT): Fix a bug.
1882 (CHAR_LEN): This macro deleted. Callers changed to use
1883 CHAR_BYTES.
1884 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1885 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1886 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1887
bd4bde7f 1888 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1889 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1890 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1891 EMIT_BYTES): New macros.
1892 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1893 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1894 macros deleted.
1895 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1896 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1897 check the validity of multibyte sequence.
1898 (decode_coding_emacs_mule): New function.
1899 (encode_coding_emacs_mule): New macro.
1900 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1901 the source.
1902 (DECODE_ISO_CHARACTER): Just return a character code.
1903 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1904 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1905 EMIT_CHAR to produced decoded characters. Exit the loop only by
1906 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1907 block here.
1908 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1909 only position codes for an invalid character.
1910 (encode_designation_at_bol): Return new destination pointer. 5th
1911 arg DSTP is changed to DST.
1912 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1913 from the source by ONE_MORE_CHAR. Don't handle the case of last
1914 block here.
1915 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1916 macros deleted.
1917 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1918 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1919 TWO_MORE_BYTES to fetch a byte from the source.
1920 (encode_eol): Pay attention to coding->src_multibyte.
1921 (detect_coding, detect_eol): Preserve members src_multibyte and
1922 dst_multibyte.
1923 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1924 (encoding_buffer_size): Set magnification to 3 for all coding
1925 systems that require encoding.
1926 (ccl_coding_driver): For decoding, be sure that the result is
1927 valid multibyte sequence.
1928 (decode_coding): Initialize coding->errors and coding->result.
1929 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1930 and raw-text, always call decode_eol. Handle the case of last
1931 block here. If not coding->dst_multibyte, convert the resulting
1932 sequence to unibyte.
1933 (encode_coding): Initialize coding->errors and coding->result.
1934 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1935 and raw-text, always call encode_eol. Handle the case of last
1936 block here.
1937 (shrink_decoding_region, shrink_encoding_region): Detect cases
1938 that we can't skip data more rigidly.
1939 (code_convert_region): Setup src_multibyte and dst_multibyte
1940 members of coding. For decoding, if the buffer is multibyte,
1941 convert the source sequence to unibyte in advance. For encoding,
1942 if the buffer is multibyte, convert the resulting sequence to
1943 multibyte afterward.
1944 (run_pre_post_conversion_on_str): New function.
1945 (code_convert_string): Deleted and divided into the following two.
1946 (decode_coding_string, encode_coding_string): New functions.
1947 (code_convert_string1, code_convert_string_norecord): Call one of
1948 above.
1949 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1950 MAKE_NON_ASCII_CHAR.
1951 (Fset_terminal_coding_system_internal,
1952 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1953 and dst_multibyte members.
1954 (init_coding_once): Initialize iso_code_class with new enum
1955 ISO_control_0 and ISO_control_1.
1956
1957 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1958 devided into ISO_control_0 and ISO_control_1.
1959 (struct coding_system): New members src_multibyte, dst_multibyte,
1960 errors, and result. Delete member fake_multibyte.
1961 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1962 nonzero.
1963 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1964 nonzero.
1965
1966 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1967 (Faset): Likewise.
1968
1969 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1970 multibyte form.
1971 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1972 combining occurs.
1973 (Ftranspose_region): Delete codes for handling byte combining.
1974
1975 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1976 dst_multibyte members of coding. On handling REPLACE on unibyte
1977 buffer, convert the result of decode_coding to unibyte. On
1978 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1979 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1980 multibyteness of the source (buffer or string).
1981
1982 * fns.c (concat): Handle 8-bit characters correctly.
1983 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1984 unibyte in the result.
1985 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1986 valid multibyte form in the result.
1987 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1988 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1989 return -1, signal an error.
1990 (base64_encode_1): New arg MULTIBYTE. Get each character by
1991 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1992 character is found, return -1.
1993 (Fbase64_decode_region): Delete codes for handling byte-combining.
1994 Treat each decoded byte as a unibyte character.
1995 (Fbase64_decode_string): Return unibyte string.
1996 (Fcompare_strings, concat, string_byte_to_char): Use
1997 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1998 FETCH_STRING_CHAR_ADVANCE.
1999 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2000 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
2001
2002 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
2003 SPLIT_NON_ASCII_CHAR.
2004 (fontset_ref_via_base, fontset_set): Likewise
2005
2006 * insdel.c (adjust_markers_for_record_delete): Deleted.
2007 (adjust_markers_for_insert): Argument changed. Caller changed.
2008 (adjust_markers_for_replace): Likewise.
2009 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
2010 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
2011 (copy_text): Delete unused local varialbe c_save. For converting
2012 to multibyte, be sure to make all 8-bit characters in valid
2013 multibyte form.
2014 (count_size_as_multibyte): Handle 8-bit characters correctly.
2015 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2016 adjust_after_replace, replace_range, del_range_2)
2017 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
2018 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2019 adjust_after_replace, replace_range, del_range_2) Delete codes for
2020 handling byte combining.
2021 (adjust_before_replace): Deleted.
427ec082 2022
c9671f81
KH
2023 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
2024 SPLIT_NON_ASCII_CHAR.
2025 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2026 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
2027 unconditionally.
2028 (Fkey_description): Likewise.
2029
2030 * lread.c (read1): On reading multibyte string, be sure to make
2031 all 8-bit chararacters in valid multibyte form.
2032 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2033
2034 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
2035 unconditionally.
2036
2037 * process.c (Fstart_process): GCPRO current_dir before calling
2038 Ffind_operation_coding_system. Encode arguments here.
2039 (create_process): Don't encode arguments here. Setup
2040 src_multibyte and dst_multibyte members of struct coding.
2041 (read_process_output): Setup src_multibyte and dst_multibyte
2042 members of struct coding. If the output is to multibyte buffer,
2043 always decode the output of the process. Adjust the
2044 representation of 8-bit characters to the multibyteness of the
2045 output.
2046 (send_process): Setup coding->src_multibyte according to the
2047 multibyteness of the source.
2048
2049 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
2050 unconditionally.
2051 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
2052 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
2053
2054 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
2055 CHAR_LEN.
2056
2057 * w16select.c (Fw16_set_clipboard_data): Setup members
2058 src_multibyte and dst_multibyte of coding. Adjusted for the
2059 change for find_charset_in_str.
2060 (Fw16_get_clipboard_data): Likewise.
2061
2062 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
2063 dst_multibyte of coding.
2064 (x_to_w32_font): Likewise.
2065
2066 * w32select.c (Fw32_set_clipboard_data): Setup members
2067 src_multibyte and dst_multibyte of coding. Adjusted for the
2068 change for find_charset_in_str.
2069 (Fw32_get_clipboard_data): Likewise.
2070
2071 * xdisp.c (get_next_display_element): Handle 8-bit characters
2072 correctly.
2073 (next_element_from_display_vector): Use CHAR_BYTES instead of
2074 CHAR_LEN.
2075 (disp_char_vector): Use SPLIT_CHAR instead of
2076 SPLIT_NON_ASCII_CHAR.
2077
2078 * xselect.c (selection_data_to_lisp_data): Setup members
2079 src_multibyte and dst_multibyte of coding. Adjusted for the
2080 change for find_charset_in_str.
2081 (lisp_data_to_selection_data): Likewise.
2082
5f64c9e0
GM
20832000-05-19 Gerd Moellmann <gerd@gnu.org>
2084
2b63d473
GM
2085 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2086 buffer.
2087
5f64c9e0
GM
2088 * dispextern.h (Vimage_types): Add extern declaration.
2089
2090 * xdisp.c (Vimage_types): Moved here from xfns.c.
2091 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2092
2093 * xfns.c (Vimages_types): Moved to xdisp.c.
2094 (syms_of_xfns): Move `image-types' to xdisp.c.
2095
2096 * w32fns.c (Vimage_types): Removed.
2097 (syms_of_w32fns): Remove `image-types'.
2098
813086ea
KH
20992000-05-18 Kenichi Handa <handa@etl.go.jp>
2100
2101 * fns.c (map_char_table): Pay attention to character number of
2102 charset. Check the validity of charset at the first level. For
2103 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2104 the default value.
2105
2106 * fontset.c: Include "buffer.h".
2107 (fs_load_font): If the face has fontset, record the face ID in
2108 that fontset.
2109 (Finternal_char_font): New function.
2110 (accumulate_font_info): New function.
2111 (Ffontset_info): Rewritten for the new fontset implementation.
2112 (syms_of_fontset): Register Vdefault_fontset in the first element
2113 of Vfontset_table. Include Vdefault_fontset in
2114 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2115 function.
2116
bdaebbf0
DL
21172000-05-16 Dave Love <fx@gnu.org>
2118
2119 * m/iris5d.h: Deleted -- unused.
2120
cb613bb8
GM
21212000-05-16 Gerd Moellmann <gerd@gnu.org>
2122
b15f3b77
GM
2123 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2124 `invalid' instead of `illegal'.
2125
2126 * indent.c (Fmove_to_column): When ending within a tab, insert
2127 spaces first so that markers at the end of the tab get adjusted.
2128
835c1b36
GM
2129 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2130 buffer list that wasn't selected in that frame.
2131
cb613bb8
GM
2132 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2133 is needed on mescaline, use a 2 char prefix, and call
2134 make_temp_name with second arg non-zero.
2135
2136 * fileio.c (make_temp_name): New function, extracted from
2137 Fmake_temp_name.
2138 (Fmake_temp_name): Use it.
2139
f685bea9
EZ
21402000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2141
2142 * window.c (coordinates_in_window): Subtract 1 when computing
2143 right_x.
2144
a1b8d58b
GM
21452000-05-15 Gerd Moellmann <gerd@gnu.org>
2146
2147 * Makefile.in (lisp): Add env.elc.
2148
2149 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2150
a265079f
GM
21512000-05-12 Gerd Moellmann <gerd@gnu.org>
2152
2153 * search.c (Freplace_match): Handle case of `\N' in the
2154 replacement when there's no group N.
2155
da4496b6
GM
21562000-05-11 Gerd Moellmann <gerd@gnu.org>
2157
0ace421a
GM
2158 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2159 of the message to message_dolog.
2160
1172eb8d
GM
2161 * keyboard.c (read_char): Don't clear current message for help
2162 events; let the code handling help events handle this. Change
2163 code detecting help events that should be ignored.
2164
da4496b6
GM
2165 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2166 we're interating over a string.
2167
0623e40f
DL
21682000-05-09 Dave Love <fx@gnu.org>
2169
2170 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2171 that offset before writing. Move gcpro region past call of
2172 Ffile_regular_p.
2173
bae2503b
DL
21742000-05-04 Dave Love <fx@gnu.org>
2175
2176 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2177
ec82fb2f
GM
21782000-05-04 Gerd Moellmann <gerd@gnu.org>
2179
2180 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2181 of inserted characters when BUF equals the current buffer, and PT
2182 is in front of or equal to FROM.
2183
cbf18892
GM
21842000-05-03 Gerd Moellmann <gerd@gnu.org>
2185
4ff40dd0
GM
2186 * xdisp.c (handle_single_display_prop): If display property value
2187 is invalid, or something not supported on the frame, restore
2188 iterator's position to what it was initially. Make sure to return
2189 0 for invalid and unsupported property values.
2190
cbf18892
GM
2191 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2192 that x_per_char_metric returns null.
2193
1b0672c3
GM
21942000-05-02 Gerd Moellmann <gerd@gnu.org>
2195
576da55d
GM
2196 * xterm.h (struct face): Add forward declaration.
2197 (struct image): Ditto.
2198 (image_ascent): Add prototype.
2199
2200 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2201 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2202 image_ascent instead of using IMAGE_ASCENT.
2203
2204 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2205 (IMAGE_ASCENT): Removed.
2206
2207 * xfns.c (Qcenter): New variable.
2208 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2209 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2210 (image_ascent): New function.
2211 (lookup_image): Recognize `:ascent center'.
2212 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2213 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2214 (xbm_load): Don't set image's ascent here.
2215 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2216 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2217 check ascent values here.
2218 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2219 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2220 (syms_of_xfns): Initialize Qcenter.
2221
1b0672c3
GM
2222 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2223 to the limits, increase the limits.
2224
0d7811ed
KH
22252000-05-01 Kenichi Handa <handa@etl.go.jp>
2226
2227 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2228 Check Vfont_encoding_alist against the full name of the opened
2229 font.
2230
a943a5ca
GM
22312000-04-28 Gerd Moellmann <gerd@gnu.org>
2232
2233 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2234 taller than the window.
2235
5dba1e29
KH
22362000-04-28 Kenichi Handa <handa@etl.go.jp>
2237
2238 * xfaces.c (realize_x_face): Fix the argument of the second
2239 xassert. BASE_FACE may not be a face for ASCII.
2240
353964e3
GM
22412000-04-27 Gerd Moellmann <gerd@gnu.org>
2242
c76e04a8
GM
2243 * print.c (print_object): Treat print-length < 0 as nil.
2244
2245 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2246
2247 * s/freebsd.h (TERMCAP_OBJ): Removed.
2248 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2249
2250 * lread.c (read1): Don't treat period followed by certain
2251 characters as symbol start.
2252
2253 * xfns.c (slurp_file): New function.
2254 (xbm_image_p): Handle case of in-memory XBM files.
2255 (xbm_scan): Rewritten to work on memory buffers instead of files.
2256 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2257 Work on memory buffers instead of files. If DATA is null test
2258 if buffer looks like an in-memory XBM file.
2259 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2260 memory buffers instead of files.
2261 (xbm_file_p): New function.
2262 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2263
353964e3
GM
2264 * lread.c (end_of_file_error): New function.
2265 (read1): Call it instead of signaling `end-of-file' directly.
2266
427ec082 2267 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2268 with Fprinc instead of Fprin1.
2269
24d744ac
KR
22702000-04-26 Ken Raeburn <raeburn@gnu.org>
2271
2272 * window.c (freeze_window_start): Check that minibuffer scroll
2273 window isn't nil before extracting the window structure pointer
2274 from it.
2275
2276 * undo.c (record_delete): If we hit the end of the undo list, stop
2277 picking elements apart.
2278
7464346d
GM
22792000-04-26 Gerd Moellmann <gerd@gnu.org>
2280
2281 * xdisp.c (display_line): If lines are continued, restore
2282 iterator's ascent/descent information to the values before the
2283 first glyph not fitting on the line.
2284
612839b6
GM
22852000-04-25 Gerd Moellmann <gerd@gnu.org>
2286
2287 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2288 positions in glyph matrix. Don't compute new window end
2289 positions.
2290
2291 * dispnew.c (increment_matrix_positions): Renamed from
2292 increment_glyph_matrix_buffer_positions.
2293 (increment_row_positions): Renamed from
2294 increment_glyph_row_buffer_positions.
2295
2296 * dispextern.h: Change names of renamed functions from dispnew.c
2297 in prototypes.
2298
cc181e95
GM
22992000-04-24 Gerd Moellmann <gerd@gnu.org>
2300
abfcc168
GM
2301 * fileio.c (Fdo_auto_save): Create directories for auto-save
2302 list file if necessary.
2303
cc181e95
GM
2304 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2305 from buffer or frame.
2306 (automatic_hscrolling_p): New variable.
2307 (hscroll_windows): Scroll windows horizontally only if automatic
2308 hscrolling is allowed.
2309 (syms_of_xdisp): New variable `automatic-hscrolling'.
2310
2311 * frame.h (struct frame): Add member extra_line_spacing.
2312
2313 * xfns.c (x_set_line_spacing): New function.
2314 (Fx_create_frame): Set line spacing from resources.
2315 (Qline_spacing): New variable.
2316 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2317
cc181e95
GM
2318 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2319
2320 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2321 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2322 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2323 extra_line_spacing from default value.
2324 (init_buffer_once): Initialize default value of extra_line_spacing.
2325
2326 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2327 and extra3.
2328
2329 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2330 prompt_width. Add extra line spacing.
2331
2332 * term.c (produce_glyphs): Remove reference to struct it's
2333 prompt_width.
2334
2335 * dispextern.h (struct it): Remove member prompt_width, add
2336 extra_line_spacing.
2337
58827478
GM
23382000-04-22 Gerd Moellmann <gerd@gnu.org>
2339
2340 * dispnew.c (update_frame_line): When writing a whole line, make
2341 sure cursor is in the right row afterwards, otherwise a use of
2342 capability `ch' in cmgoto might leave the cursor in the row below.
2343
25a87f42
GM
23442000-04-21 Gerd Moellmann <gerd@gnu.org>
2345
2346 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2347
2348 * keyboard.c (timer_check): Fix typo in comment.
2349
54edf5c2
KH
23502000-04-21 Kenichi Handa <handa@etl.go.jp>
2351
2352 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2353 name change: ch -> character.
2354
3a64eef5
GM
23552000-04-20 Gerd Moellmann <gerd@gnu.org>
2356
2357 * keyboard.c (echo_message_buffer): New variable.
2358 (echo_now): Set echo_message_buffer to the echo area buffer used
2359 to display the echo.
2360 (cancel_echoing): Reset echo_message_buffer to nil.
2361 (read_char): Code rewritten that handles canceling an echo or
2362 echoing a dash, respectively.
2363
2364 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2365 directory doesn't exist.
2366
6142fdcb
DL
23672000-04-19 Dave Love <fx@gnu.org>
2368
2369 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2370 (concat): Don't allow numeric args.
2371 (Fconcat): Doc change.
6142fdcb 2372
ac6b5352
SM
23732000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2374
2375 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2376 instead define end_match(1|2) more carefully.
2377 Use GET_CHAR_BEFORE_2 for `begline'.
2378
cb9215e4
GM
23792000-04-19 Gerd Moellmann <gerd@gnu.org>
2380
5e3dac3f
GM
2381 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2382 on 64-bit systems where NULL is defined as `0'.
2383
2384 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2385 the `variable argument list' to make it work on Alpha.
2386
cb9215e4
GM
2387 * m/alpha.h (_LP64) [!_LP64]: Define.
2388 (ORDINARY_LINK): Define for NetBSD.
2389
2390 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2391
f532dca0
DL
23922000-04-19 Dave Love <fx@gnu.org>
2393
c750667e
DL
2394 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2395 change.
2396
2397 * Makefile.in (LIBS): Don't use.
2398 (GETLOADAVG_OBJ): Define again.
2399 (otherobj): Add GETLOADAVG_OBJ.
2400
f532dca0
DL
2401 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2402
1c7e22fd
GM
24032000-04-18 Gerd Moellmann <gerd@gnu.org>
2404
f6d3257b
GM
2405 * lread.c (read_filtered_event): Cancel and start busy cursor.
2406
427ec082 2407 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2408 that the per-character metrics may be null.
2409
e10f64e7
GM
24102000-04-17 Gerd Moellmann <gerd@gnu.org>
2411
0daee095
GM
2412 * buffer.c (clone_per_buffer_values): New function.
2413 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2414 clone_per_buffer_values if CLONE is not nil.
2415
e10f64e7
GM
2416 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2417
38687d43
DL
24182000-04-16 Dave Love <fx@gnu.org>
2419
2420 * Makefile.in: Remove obsolete localcpp stuff.
2421 (GETLOADAVG_OBJ): Don't define.
2422 (obj): Move LIBOBJS...
2423 (otherobj): ... to here.
2424 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2425 whitespace-only lines after the continuation (Irix).
2426
c21c7262
GM
24272000-04-14 Gerd Moellmann <gerd@gnu.org>
2428
2429 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2430
2431 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2432
314767c0
DL
24332000-04-14 Dave Love <fx@gnu.org>
2434
2435 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2436 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2437 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2438 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2439 NLIST_STRUCT.
2440
2441 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2442 autoconfiscated HAVE_GETLOADAVG.
2443
2444 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2445 BROKEN_MKTIME.
2446
a2522dca
GM
24472000-04-14 Gerd Moellmann <gerd@gnu.org>
2448
2449 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2450 (fill_in_lock_file_name): Avoid existing files that aren't
2451 links.
2452
33744b5d
DL
24532000-04-14 Dave Love <fx@gnu.org>
2454
c21c7262 2455 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2456 (INTERVAL_SRC): Convert to make variable.
2457 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2458 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2459 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2460 add LIBOBJS.
2461 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2462 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2463 (shortlisp): Add facemenu, float-sup, frame.
2464 (SOME_MACHINE_LISP): Remove them from here.
2465 (LIBES): Change unused LDLIBS to autoconf LIBS.
2466
2467 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2468
9d3d5916
KH
24692000-04-14 Kenichi Handa <handa@etl.go.jp>
2470
2471 * composite.c (update_compositions): If FROM and TO are not in a
2472 valid range, do nothing.
2473
198e3c7a
GM
24742000-04-13 Gerd Moellmann <gerd@gnu.org>
2475
2476 * tparam.c (tparam1): Abort when encountering an unknown
2477 `%'-specifier.
2478
2479 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2480 terminfo.o.
2481
2482 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2483 as TERMCAP_OBJ.
2484
055a28c9
EZ
24852000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2486
2487 * fileio.c (a_write): Remove redundant semi-colons.
2488 (e_write): Return -1 if failed to write all the data.
2489 This fixes the changes made at 1999-12-15.
2490
f5c75033
DL
24912000-04-12 Dave Love <fx@gnu.org>
2492
2493 * fns.c (mapcar1): Test for null vals to support mapc.
2494 (Fmapc): New function.
2495
0c3cfc51
EZ
24962000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2497
2498 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2499 (IT_frame_up_to_date): Support the buffer local value of
2500 cursor-type, if defined.
2501
33465a31
DL
25022000-04-10 Dave Love <fx@gnu.org>
2503
2504 * editfns.c (preceding-char, following-char): Doc fix.
2505
6ed56568
KR
25062000-04-10 Ken Raeburn <raeburn@gnu.org>
2507
2508 * Makefile.in (temacs): Revert 2000-03-12 change.
2509
7cf80d4e
JR
25102000-04-10 Jason Rumney <jasonr@gnu.org>
2511
2512 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2513
34f3f342
GM
25142000-04-10 Gerd Moellmann <gerd@gnu.org>
2515
1a1b1895
GM
2516 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2517 area buffer, if it's not set up yet.
2518
34f3f342
GM
2519 * indent.c (compute_motion): Set immediate_quit.
2520
be0dbdab
GM
25212000-04-09 Gerd Moellmann <gerd@gnu.org>
2522
c45be9ac
GM
2523 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2524 variable.
2525 (realize_tty_face): Suppress boldness if colors are the inverse of
2526 the default colors, and tty_suppress_bold_inverse_default_colors_p
2527 is set.
2528 (Ftty_suppress_bold_inverse_default_colors): New function.
2529 (syms_of_xfaces): Defsubr it.
2530
be0dbdab
GM
2531 * buffer.c (Frestore_buffer_modified_p): New function.
2532 (syms_of_buffer): Defsubr it.
2533
e8413c3b
KR
25342000-04-08 Ken Raeburn <raeburn@gnu.org>
2535
87f67317
KR
2536 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2537 charset id (int) argument, not a charset (Lisp_Object).
2538
e8413c3b
KR
2539 * coding.h (code_convert_string): Declare.
2540 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2541 object, as the fourth argument to code_convert_string.
2542
2543 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2544 value.
2545 (Fset_fontset_font): Use EQ to compare lisp objects.
2546
7c752c80
KR
25472000-04-05 Ken Raeburn <raeburn@gnu.org>
2548
c0333abc
KR
2549 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2550 a pointer that looks like a lisp object.
2551 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2552 zero, instead see whether it's an integer object, since they can't
2553 have intervals.
2554 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2555
7c752c80
KR
2556 * dispnew.c (allocate_matrices_for_frame_redisplay,
2557 direct_output_forward_char): Use X(U)INT and make_number as needed
2558 to convert between (unsigned) int values and lisp integers.
2559 * keyboard.c (read_key_sequence): Likewise.
2560 * lread.c (substitute_object_recurse): Likewise.
2561 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2562 * minibuf.c (do_completion, Fminibuffer_complete_word,
2563 Fminibuffer_completion_help): Likewise.
2564 * term.c (produce_special_glyphs): Likewise.
2565
2566 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2567 * print.c (print_preprocess, print_object): Likewise.
2568
2569 * search.c (compile_pattern): Use NILP when checking for nil.
2570
74e49b38
KR
2571 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2572 __OPTIMIZE__]: Provide a GNU C macro version that handles
2573 lisp-object unions.
2574 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2575 field, to better cope with ENABLE_CHECKING and calls that modify a
2576 Lisp_Object using its old value.
2577
685e5ed2
GM
25782000-04-04 Gerd Moellmann <gerd@gnu.org>
2579
c407c570
GM
2580 * window.c (compare_window_configurations): Signal an error
2581 if parameters C1 or C2 aren't window configurations.
2582
685e5ed2
GM
2583 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2584 AFTER_POTENTIAL_GC calls around calls to functions that can
2585 signal an error and thus invoke the debugger.
2586
587a49ab
GM
25872000-04-03 Gerd Moellmann <gerd@gnu.org>
2588
62f20204
GM
2589 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2590 an error if decoding fails.
2591
587a49ab
GM
2592 * keyboard.c (lispy_mouse_names): Variable removed.
2593 (Vlispy_mouse_stem): New variable.
2594 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2595 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2596 for any mouse button number. Increase size of mouse_syms and
2597 button_down_location as needed. Call modify_event_symbol with
2598 different arguments.
2599 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2600 Call modify_event_symbol with different arguments.
2601 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2602 for any button number. Call modify_event_symbol with different
2603 arguments.
2604 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2605 Accept a string for NAME_ALIST_OR_STEM.
2606
2607 * lisp.h (larger_vector): Add prototype.
2608
2609 * fns.c (larger_vector): Make externally visible.
2610
2611 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2612
2d1675e4
SM
26132000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2614
2615 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2616 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2617 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2618 we are between str1 and str2.
2619 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2620 (PATFETCH): Use `TRANSLATE'.
2621 (PATFETCH_RAW): Fetch multibyte char if applicable.
2622 (PATUNFETCH): Remove.
2623 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2624 When writing a char, write it directly into the pattern buffer rather
2625 than going needlessly through a temp char-array.
2626 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2627 multibyte magic and remove the useless `#ifdef emacs'.
2628 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2629 buffer.
2630
2631 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2632 conditional on `emacs'.
2633
2634 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2635
cc2d8c6b
KR
26362000-04-01 Ken Raeburn <raeburn@gnu.org>
2637
2638 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2639 non-union-type versions of XMARK and friends here, because XMARK
2640 and friends won't work on an integer field if NO_UNION_TYPE is not
2641 defined.
2642 (make_number): Define as a function if it's not defined as a
2643 macro.
2644
09654086
KR
2645 * composite.c (run_composite_function): Use NILP when checking for
2646 nil.
2647 (syms_of_composite): Delete local var NARGS, pass an int as first
2648 argument to Fmake_hash_table.
2649
2387b382
KR
2650 * editfns.c (text_property_stickiness): Use NILP to test
2651 Lisp_Object boolean value.
2652 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2653 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2654 problems reading from and changing the same lisp value in an
2655 XSETSTRING call.
2656
27660e89
GM
26572000-04-01 Gerd Moellmann <gerd@gnu.org>
2658
2659 * term.c (TN_no_color_video): New variable.
2660 (term_init): Intitialize TN_no_color_video.
2661 (enum no_color_bit): New enumeration.
2662 (MAY_USE_WITH_COLORS_P): New macro.
2663 (turn_on_face): Use it to determine if attributes may be used
2664 combined with colors.
2665
3578db3c
KR
26662000-04-01 Ken Raeburn <raeburn@gnu.org>
2667
2668 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2669 with int lvalues via casts; instead, just yield lisp object
2670 lvalues.
2671 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2672 proper accessor macros.
2673 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2674 (grow_mini_window): Fix typo getting int value of root->height.
2675
6fc556fd
KR
2676 * xdisp.c (compute_string_pos): Fix order of arguments to
2677 string_pos_nchars_ahead.
2678 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2679 count arg to variable-arg routines like Frun_hook_with_args and
2680 Fformat.
587a49ab
GM
2681 (back_to_previous_visible_line_start)
2682 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2683 fixed-arg routines like Fget_char_property and Fmake_string.
2684 (reconsider_clip_changes): Use XINT when comparing integer lisp
2685 objects, or passing them as int arguments.
587a49ab
GM
2686 (mark_window_display_accurate, insert_left_trunc_glyphs)
2687 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2688 storing or passing integer values as lisp objects.
2689 (set_cursor_from_row, highlight_trailing_whitespace): Use
2690 INTEGERP, not implicit test against zero, for glyph object.
2691 (try_window_id): Don't use make_number when we want an int value.
2692
2693 * xfaces.c (xlfd_symbolic_value): Make last argument a
2694 Lisp_Object, to be consistent with callers.
2695 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2696 (lface_hash): Apply XFASTINT to lisp values before folding in.
2697
2698 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2699 fill in window width and height. Pass an int, not a lisp object,
2700 as first arg to Finsert.
2701
6e7b2457
GM
27022000-04-01 Gerd Moellmann <gerd@gnu.org>
2703
610d841e
GM
2704 * xfaces.c (realize_basic_faces): Block input while realizing
2705 the faces.
2706
6e7b2457
GM
2707 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2708
2709 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2710
aa110c0c
GM
27112000-03-31 Gerd Moellmann <gerd@gnu.org>
2712
2713 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2714 or ASCII, handle case that per-char metric is null.
aa110c0c 2715
8801a864
KR
27162000-03-30 Ken Raeburn <raeburn@gnu.org>
2717
c6129d7e
KR
2718 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2719
8801a864
KR
2720 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2721 XSUBR, XBUFFER): Verify correct object type before returning
2722 pointer, using eassert.
2723 * frame.h (XFRAME): Likewise.
2724
2725 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2726 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2727 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2728 type.
2729 * data.c (set_internal): Likewise.
2730 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2731 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2732 * fileio.c (auto_save_1): Likewise.
2733 * insdel.c (check_markers): Likewise.
2734 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2735 * undo.c (record_insert): Likewise.
2736 * vmsproc.c (child_sig): Likewise.
2737 * window.c (unshow_buffer, window_loop): Likewise.
2738 * xterm.c (x_erase_phys_cursor): Likewise.
2739
8e7af858
GM
27402000-03-30 Gerd Moellmann <gerd@gnu.org>
2741
2742 * xfns.c (free_image_cache): Free the cache structure itself
2743 last, after all its members have been freed.
2744
2745 * lisp.h (xstrdup): Add prototype.
2746
2747 * alloc.c (xstrdup): Moved here from xfaces.c.
2748 (allocating_for_lisp): Variable removed.
2749 (lisp_malloc): Block input around the calls to malloc and
2750 mem_insert.
2751
2752 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2753 of Fsymbol_value.
2754 (xstrdup): Moved to alloc.c.
2755
e0b8c689
KR
27562000-03-29 Ken Raeburn <raeburn@gnu.org>
2757
b96f9fb7
KR
2758 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2759
2760 * emacs.c (main): Fix sense of no-loadup test.
2761
e0b8c689
KR
2762 * config.in (ENABLE_CHECKING): Undef.
2763
2764 * lisp.h (struct interval): Replace "parent" field with a union of
2765 interval pointer and Lisp_Object; add new bitfield to use as
2766 discriminant. Change other flag fields to bitfields.
2767 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2768 is defined and the supplied test fails, print a message and
2769 abort.
2770 (eassert): New macro. Use CHECK to provide an assert-like
2771 facility.
2772
2773 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2774 pointers; abort if the value looks like a lisp object.
2775 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2776 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2777 Modify for new interval parent definition.
2778
2779 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2780 UNMARK_BALANCE_INTERVALS): Update references that need an
2781 addressable lisp object in the interval structure.
2782 (die): New function.
2783 (suppress_checking): New variable.
2784
2785 * intervals.c (interval_start_pos): Just return 0 if there's no
2786 parent object.
2787
f83c5440
GM
27882000-03-29 Gerd Moellmann <gerd@gnu.org>
2789
2790 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2791 and earlier Emacs versions.
2792
2793 * keyboard.c (Ftop_level): Cancel busy-cursor.
2794
2795 * eval.c (call_debugger): Cancel busy-cursor.
2796
fdce64ff
KH
27972000-03-29 Kenichi Handa <handa@etl.go.jp>
2798
2799 * search.c (Freplace_match): Adjust multibyteness of the current
2800 buffer and NEWTEXT. Free allocated memory before signaling an
2801 error.
2802
f6a3f532
SM
28032000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2804
2805 * regex.c (analyse_first): New function obtained by ripping out most
2806 of re_compile_fastmap and generalizing it a little bit so that it
2807 can also just return whether a given (sub)pattern can match the empty
2808 string or not.
2809 (regex_compile): Use `analyse_first' to decide whether the loop-check
2810 needs to be done or not for *, +, *? and +? (the loop check is costly
2811 for non-greedy repetition).
2812 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2813
e9b309ac
DL
28142000-03-28 Dave Love <fx@gnu.org>
2815
bb15bd9a
DL
2816 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2817 alpha.
2818
e9b309ac
DL
2819 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2820
ed0767d8
SM
28212000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2822
2823 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2824 an expression.
2825 (enum re_opcode_t): Update description of succeed_n.
2826 (PATFETCH): Always define.
2827 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2828 operators, char classes, shy-groups and intervals).
2829 Optimize special cases of intervals so as to only use succeed_n and
2830 jump_n when really needed.
2831 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2832 that we don't have to handle the special cases any more.
2833 Simplify on_failure_jump handling as well.
2834
e11e7e46
JR
28352000-03-28 Jason Rumney <jasonr@gnu.org>
2836
2837 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2838
88faab89
GM
28392000-03-27 Gerd Moellmann <gerd@gnu.org>
2840
182ff242
GM
2841 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2842
2843 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2844
182ff242
GM
2845 * alloc.c (mark_maybe_object): New function.
2846 (mark_memory): Use it.
2847 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2848 (setjmp_tested_p, longjmp_done): New variables.
2849 (test_setjmp): New function.
2850 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2851 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2852
c1005d06
GM
2853 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2854 to DEC_TEXT_POS and INC_TEXT_POS.
2855
2856 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2857 with parameter MULTIBYTE_P.
2858
427ec082 2859 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2860 MULTIBYTE_P.
2861
7439e5b9 2862 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2863 buffers because it looks for multibyte character byte sequences
2864 which don't exist in unibyte text.
7439e5b9 2865
d9c545da
GM
2866 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2867
11fd416e 2868 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2869 [DEBUG_X_COLORS]: New functions.
2870 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2871
2872 * xfns.c (x_set_cursor_color): Get color reference counts right.
2873
2874 * xterm.c (x_copy_color): New function.
2875 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2876
2877 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2878 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2879 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2880 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2881 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2882 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2883 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2884 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2885 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2886 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2887
11fd416e
GM
2888 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2889 names for handling per-buffer variables.
d9c545da
GM
2890
2891 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2892 instead of MAX_BUFFER_LOCAL_VARS.
2893 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2894
2895 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2896
88faab89
GM
2897 * xfns.c (x_specified_cursor_type): New function.
2898 (x_set_cursor_type): Use it.
2899
2900 * buffer.h (struct buffer): Add cursor_type.
2901
d80f42b7
SM
29022000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2903
2904 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2905 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2906 opcode.
d80f42b7
SM
2907 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2908 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2909 executing it as well as when popping it off the stack to find infinite
2910 loops in non-greedy repetition operators.
2911
89e80928
GM
29122000-03-26 Gerd Moellmann <gerd@gnu.org>
2913
3d4ff2dd
GM
2914 * doc.c (Qfunction_documentation): New variable.
2915 (syms_of_doc): Initialize Qfunction_documentation.
2916 (Fdocumentation): If FUNCTION is a symbol with non-nil
2917 `function-documentation' property, return a documentation derived
2918 from that.
2919
bd96bd79
GM
2920 * buffer.c (syms_of_buffer): Add default-cursor-type.
2921 (init_buffer_once): Don't let cursor_type have a local value
2922 in every buffer.
2923
19d1bc27
GM
2924 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2925 on buffer-local value of cursor_type.
2926 (x_draw_bar_cursor): Add parameter WIDTH.
2927
2928 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2929 (init_buffer_once): Set default cursor_type value to t.
2930 Mark cursor_type as local everywhere.
2931 (syms_of_buffer): New per-buffer variable cursor-type.
2932
89e80928
GM
2933 * buffer.h (struct buffer): Remove member local_var_flags,
2934 add local_flags.
2935 (MAX_BUFFER_LOCAL_VARS): New macro.
2936 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2937 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2938 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2939 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2940
2941 * print.c (print_object): Use new macros for per-buffer
2942 variables.
2943
2944 * category.c (Fset_category_table): Use new macros for per-buffer
2945 variables.
2946
2947 * buffer.c (buffer_permanent_local_flags): Make a char array.
2948 (max_buffer_local_idx): New variable.
2949 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2950 for new handling of per-buffer variables.
2951 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2952 (init_buffer_once): Initialize per-buffer vars differently.
2953 Set max_buffer_local_idx.
2954
2955 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2956 variables.
2957
2958 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2959 variables.
2960
2961 * data.c (do_symval_forwarding, store_symval_forwarding)
2962 (find_symbol_value, set_internal, default_value, Fset_default)
2963 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2964 per-buffer variables.
2965
2966 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2967
9a0dd3dc
GM
29682000-03-24 Gerd Moellmann <gerd@gnu.org>
2969
b68c375f
GM
2970 * xterm.c (x_term_init): Unblock input around call1 of
2971 Qvendor_specific_keysyms.
2972
9a0dd3dc
GM
2973 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2974 (find_defun_start): Consider an open parenthesis in column 0
2975 a defun start only if open_paren_in_column_0_is_defun_start is set.
2976 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2977
7973e637
SM
29782000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2979
2980 * eval.c (Fautoload): Add entry in load-history (if after dump).
2981 * lread.c (load-history): Update docstring.
2982
39210e90
GM
29832000-03-24 Gerd Moellmann <gerd@gnu.org>
2984
2985 * indent.c (Fvertical_motion): Always use the current buffer.
2986 Temporarily change the window's buffer, if necessary.
2987
72db3ab5
GM
29882000-03-23 Gerd Moellmann <gerd@gnu.org>
2989
2990 * xterm.c (fast_find_position): Make sure not to consider rows
2991 not visible in the window.
2992
990b2375
SM
29932000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2994
2995 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2996 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2997
ff4df011
JR
29982000-03-22 Jason Rumney <jasonr@gnu.org>
2999
3000 * w32menu.c (single_submenu): Set help string to NULL if none.
3001 (w32_menu_show): Set help string correctly.
3002 (add-menu-item): Set help string in MIIM_DATA for menu item.
3003 Load SetMenuItemInfoA explicitly.
3004 (w32_menu_display_help): New function.
427ec082 3005
ff4df011
JR
3006 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
3007 (QCdata): Moved to xdisp.c.
3008
3009 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
3010 (Vw32_charset_to_codepage_alist): Removed.
3011 (Vw32_charset_info_alist): New variable.
3012 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
3013 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
3014 greek, hebrew, thai, johab, mac, unicode]): New symbols.
3015 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
3016 with TODO comment.
3017 (w32_codepage_for_font): Use Vw32_charset_info_alist.
3018 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
3019 Define Vw32_charset_info_alist and w32_charset symbols.
3020
30212000-03-22 Jason Rumney <jasonr@gnu.org>
3022
3023 * makefile.nt (w32bdf.obj): Update dependencies.
3024
3025 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
3026
3027 * w32fns.c: Include fontset.h after dispextern.h.
3028 (Fx_create_frame): Do not create fontset.
3029 (w32_load_system_font): Doc fix.
3030 (Fx_close_connection): Free full_name if it is not shared.
3031
3032 * w32term.c: Include fontset.h after dispextern.h.
3033 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
3034 updated.
3035 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
3036 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
3037 (w32_font_is_double_byte): New function, needs body.
3038 (x_append_glyph): Set glyph->glyph_not_available_p.
3039 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3040 it->charset. If it->multibyte_p is zero and it->c is a multibyte
3041 character, convert it to a unibyte character.
3042 (struct glyph_string): Delete member `charset'.
3043 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
3044 calculating it is found.
3045 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3046 the case that per char metric is not available correctly.
3047 (x_fill_glyph_string): Handle the case that the specific glyph is
3048 not available correctly.
3049 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3050 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3051 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3052 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3053 fontset. Don't call FS_LOAD_FONT.
3054
439d5cb4
KR
30552000-03-22 Ken Raeburn <raeburn@gnu.org>
3056
3057 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
3058 (INT_LISPLIKE): New macro.
3059 (NULL_INTERVAL_P): Use it.
3060 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
3061 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
3062 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
3063
3064 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
3065 explicit references to "parent" field of struct interval and
3066 associated unclean type conversions.
3067 * intervals.c (create_root_interval, root_interval, rotate_right,
3068 rotate_left, balance_possible_root_interval, split_interval_right,
3069 split_interval_left, interval_start_pos, find_interval,
3070 next_interval, previous_interval, update_interval,
3071 adjust_intervals_for_insertion, delete_node, delete_interval,
3072 adjust_intervals_for_deletion, merge_interval_right,
3073 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3074 copy_intervals_to_string): Likewise.
3075 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3076 Likewise.
3077 * syntax.c (update_syntax_table): Likewise.
3078
3079 * intervals.c (reproduce_tree_obj): New function, like
3080 reproduce_tree but takes a Lisp_Object for the parent. Declare
3081 with prototype.
3082 (graft_intervals_into_buffer): Use it when appropriate.
3083 (reproduce_tree): Declare with prototype.
3084 (balance_possible_root_interval): Check that the parent is a lisp
3085 object before trying to examine its type.
3086
ee1c5b21
GM
30872000-03-22 Gerd Moellmann <gerd@gnu.org>
3088
3089 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3090 as strings only if both are known to be strings.
3091
3092 * s/openbsd.h (LIBS_TERMCAP): Undef.
3093
1fb352e0
SM
30942000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3095
3096 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3097 definitions for non-Emacs compilation.
3098 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3099 outside of `#ifdef emacs'.
3100 (print_partial_compiled_pattern): Update.
3101 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3102 (re_compile_fastmap): Merge handling of charset and charset_not (for
3103 emacs and non-emacs compilation as well).
3104 Similarly for (not)categoryspec and (not)syntaxspec.
3105 Don't use the fastmap when reaching `anychar' since the added
3106 complexity is not justified.
3107 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3108 and (not)syntaxspec. Merge (not)categoryspec.
3109
fdaa1f77
KH
31102000-03-22 Kenichi Handa <handa@etl.go.jp>
3111
ff1a0d8e
KH
3112 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3113 FACE_FOR_CHAR): Define them differently for the configuration of
3114 --without-x.
fdaa1f77 3115
d152fb46
DL
31162000-03-21 Dave Love <fx@gnu.org>
3117
3118 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3119 doc string.
3120
d2cafc8c
GM
31212000-03-21 Gerd Moellmann <gerd@gnu.org>
3122
3123 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3124 (lface_fully_specified_p): Don't check contents of
3125 LFACE_FONT_INDEX because that attribute is optional.
3126 (realize_x_face): Remove now unwarranted xassert.
3127
9111d4b5
KH
31282000-03-21 Kenichi HANDA <handa@etl.go.jp>
3129
3130 The following changes are to make font selection based on
3131 characters, not charset. In addition, they recover fontset
3132 facilities while utilizing the new font selection mechanism.
3133
6c4bfdc0
KH
3134 * Makefile.in (fontset.o): Depend on dispextern.h.
3135
3136 * alloc.c (mark_face_cache): Don't mark face->registry.
3137
9111d4b5
KH
3138 * dispextern.h (struct glyph): New member glyph_not_available_p.
3139 Use 22 bits for face_id.
3140 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3141 (struct face): Delete member registry, new member ascii_face.
3142 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3143 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3144 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3145 (struct it): Delete member charset, new member
3146 glyph_not_available_p.
3147
3148 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3149 (struct fontset_info, struct fontset_data): Structs removed.
3150 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3151 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3152 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3153 (fs_free_face_fontset, fontset_font_pattern,
3154 face_suitable_for_char_p, face_for_char,
3155 make_fontset_for_ascii_face): Extern them.
3156 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3157 (FS_LOAD_FACE_FONT): New macro.
3158
3159 * fontset.c: All codes rewritten or adjusted for the change of
3160 fontset implementation. Now fontset is represented by char table.
3161 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3162 removed.
3163 (my_strcasecmp): Function removed.
3164 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3165 variables.
3166 (AREF, ASIZE): New macros.
3167 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3168 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3169 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3170 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3171 fontset_id_valid_p, font_family_registry, fontset_name,
3172 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3173 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3174 New functions.
3175 (fs_load_font): New arg FACE. Caller changed.
3176 (fs_query_fontset): Argument changed. Caller changed.
3177 (Fquery_fontset): call fs_query_fontset.
3178 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3179 Functions removed.
3180 (clear_fontset_elements, check_registry_encoding,
3181 check_fontset_name): New functions.
3182 (syms_of_fontset): Set char-table-extra-slots property of fontset
3183 to 3. Staticpro and initialize Vfontset_table and
3184 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3185
3186 * frame.h (struct frame): Member `fontset_data' removed.
3187 (FRAME_FONTSET_DATA): Macro removed.
3188
3189 * frame.c (make_frame): Don't allocate f->fontset_data.
3190 (Fdelete_frame): Don't free f->fontset_data.
3191
6c4bfdc0
KH
3192 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3193
9111d4b5
KH
3194 * xdisp.c (charset_at_position): Function removed.
3195 (init_iterator): Don't set member charset of struct `it'.
3196 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3197 next_element_from_display_vector, insert_left_trunc_glyphs):
3198 Likewise.
3199 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3200 FACE_FOR_CHARSET.
3201 (get_next_display_element, append_space,
3202 extend_face_to_end_of_line): Likewise.
3203
3204 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3205 Variables removed.
3206 (clear_font_table, frame_update_line_height, load_face_font):
3207 Adjusted for the change of fontset implementation.
3208 (load_face_fontset_font): Function removed.
3209 (pixel_point_size): New function.
3210 (font_list): Argument type changed. Caller changed.
3211 (LFACE_FONT): New macro.
3212 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3213 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3214 Lisp_Object. Determine the font name by actually loading a font
3215 by the specified pattern. Set LFACE_FONT (lface) to the specified
3216 pattern. Even if a font is not found, don't try alternatives.
3217 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3218 (set_font_frame_param): If `font' is specified in lface, use it.
3219 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3220 (lface_same_font_attributes_p): Likewise.
3221 (make_realized_face): Arguent changed. Caller changed. Set
3222 face->ascii_face to face itself.
3223 (free_realized_face): Free face->fontset if face is for ASCII.
3224 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3225 deduce_unibyte_registry, x_charset_registry): Functions removed.
3226 (free_realized_multibyte_face): New function.
3227 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3228 changed. Caller changed.
3229 (try_font_list): Argument type changed.
3230 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3231 (choose_face_font): Argument changed. Handle fontset properly.
3232 (choose_face_fontset_font): Function removed.
3233 (realize_default_face, realize_named_face): Don't remove the
3234 former face here.
3235 (realize_face): Argument changed. Caller changed. Remove face
3236 with the arg former_face_id in advance. Load font for the new
3237 face.
3238 (realize_x_face): Argument changed. Caller changed. For a
3239 multibyte character, share fontset with base_face. For a single
3240 byte character, make a new realized fontset. Don't load a font
3241 here.
3242 (realize_tty_face): Argument changed. Caller changed.
3243 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3244 (face_at_buffer_position): Don't check multibyte_p for returning
3245 DEFAULT_FACE_ID.
3246 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3247 FACE_SUITABLE_FOR_CHARSET_P.
3248 (syms_of_xfaces): Remove code for Qx_charset_registry and
3249 Vface_default_registry.
3250
6c4bfdc0
KH
3251 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3252 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3253 (x_per_char_metric): Don't try FONT->default_char. Even if
3254 pcm->width is zero, glyph bits may exist.
3255 (x_encode_char): Always initialize char2b->byte1.
3256 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3257 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3258 changed.
3259 (x_append_glyph): Set glyph->glyph_not_available_p.
3260 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3261 it->charset. Handle the case that per char metric is not
3262 available. If it->multibyte_p is zero and it->c is a multibyte
3263 character, convert it to a unibyte character.
3264 (struct glyph_string): Delete member `charset'.
3265 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3266 the case that per char metric is not available correctly.
3267 (x_fill_glyph_string): Handle the case that the specific glyph is
3268 not available correctly.
3269 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3270 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3271 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3272 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3273 fontset. Don't call FS_LOAD_FONT.
3274
3275 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3276 (x_create_tip_frame): Likewise.
3277 (Fx_close_connection): Free full_name of font_info.
3278
3279 * fns.c (optimize_sub_char_table): New function.
3280 (Foptimize_char_table): New function.
3281 (syms_of_fns): Defsubr Soptimize_char_table.
3282
b33dd3b0
GM
32832000-03-20 Gerd Moellmann <gerd@gnu.org>
3284
3285 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3286 only if buffer is displayed in some window.
3287
3288 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3289 (try_window_reusing_current_matrix): Don't call scroll run
3290 function if run's current and desired position are the same;
3291 this prevents cursor flickering.
3292
4e8a9132
SM
32932000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3294
3295 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3296
3297 * regex.c (RE_STRING_CHAR): New macro.
3298 (GET_CHAR_AFER_2): Remove.
3299 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3300 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3301 (print_partial_compiled_pattern, re_compile_fastmap)
3302 (re_match_2_internal): Remove on_failure_jump_exclusive.
3303 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3304 optimization only need to work for * (ie. can use of_keep_string_jump).
3305 Remove the special case for .*\n since it is now covered by the general
3306 optimization.
3307 (re_search_2): Don't bother with `room'.
3308 (skip_one_char): New function.
3309 (skip_noops): Simplify since `memory' is not needed any more.
3310 (mutually_exclusive_p): Restructure slightly to use `switch' and
3311 add handling for "all" remaining cases.
3312 (re_match_2_internal): Change on_failure_jump_smart to use
3313 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3314 rather than on_failure_jump_exclusive.
3315
2136fdd4
GM
33162000-03-19 Gerd Moellmann <gerd@gnu.org>
3317
3318 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3319 number of bits per RGB because it's everywhere used as the depth
3320 of the visual.
3321
3322 * term.c (calculate_costs): Remove code dealing with X frames.
3323
18e21ce8 33242000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3325
3326 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3327
d7b511c4
GM
33282000-03-18 Gerd Moellmann <gerd@gnu.org>
3329
3330 * lread.c (read_integer): Unread the last char not consumed.
3331
16b5d424
GM
33322000-03-17 Gerd Moellmann <gerd@gnu.org>
3333
3334 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3335 which are in the process of being deleted.
16b5d424 3336
1fa28578
GM
33372000-03-16 Gerd Moellmann <gerd@gnu.org>
3338
83488cce
GM
3339 * Makefile.in (mostlyclean): Add `*.core'.
3340 (clean): Add `bootstrap-emacs'.
3341
1fa28578
GM
3342 * lread.c (read_integer): New function.
3343 (read1): Support read syntax #o, #x, #b, #r.
3344
99633e97
SM
33452000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3346
1fa28578
GM
3347 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3348 make sure POINTER_TO_OFFSET gives the same value before and after
3349 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3350 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3351 (debug): Now only active if > 0 rather than if != 0.
3352 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3353 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3354 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3355 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3356 (store_op1, store_op2, insert_op1, insert_op2)
3357 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3358 (group_in_compile_stack): Move to after its arg's types are
3359 declared and add a prototype.
99633e97 3360 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3361 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3362 wrapper.
99633e97 3363 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3364 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3365 indentation of the greedy-op and shy-group code.
99633e97
SM
3366 (at_(beg|end)line_loc_p): Fix argument's types.
3367 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3368 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3369 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3370 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3371 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3372 QUIT unconditionally.
99633e97 3373
699238d9
GM
33742000-03-15 Gerd Moellmann <gerd@gnu.org>
3375
3376 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3377 a sole completion.
3378
3379 * process.c (send_process): Add a hint that the function
3380 can call Lisp code to its comment.
3381
3382 * lread.c (load_dangerous_libraries): New variable.
3383 (Vbytecomp_version_regexp): New variable.
3384 (safe_to_load_p): New function.
3385 (Fload): Handle files not compiled with Emacs specially.
3386 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3387
34e23e5a
GM
33882000-03-14 Gerd Moellmann <gerd@gnu.org>
3389
9c763cca
GM
3390 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3391
3392 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3393 support functions only if HAVE_X11R6_XIM is defined.
3394 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3395
3396 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3397
3398 * xfns.c (X_I18N_INHIBITED): Don't define.
3399 (create_frame_xic): Remove conditional compilation on
3400 X_I18N_INHIBITED.
3401 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3402
3403 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3404 (HAVE_X11R6_XIM): Define.
3405
3406 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3407
34e23e5a
GM
3408 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3409 If set, call XSynchronize.
3410
66f0296e
SM
34112000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3412
34e23e5a
GM
3413 * regex.c: Declare a new type `re_char' used throughout the code
3414 for the string char type. It's `const unsigned char' to match the
3415 rest of Emacs. Consistently make sure all pointers to strings use
3416 it and make sure all pointers into the pattern use `unsigned
3417 char'.
66f0296e 3418 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3419 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3420 code duplication.
66f0296e
SM
3421
3422 * charset.h (GET_CHAR_AFTER_2): Remove.
3423 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3424
854a025c
KR
34252000-03-12 Ken Raeburn <raeburn@gnu.org>
3426
3427 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3428 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3429 of them try to use backquotes.
3430
b9d2c7e2
DL
34312000-03-12 Dave Love <fx@gnu.org>
3432
3433 * unexelf.c: Restore changes of 1999-10-19.
3434 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3435 fix its type and alignment; copy it from current process.
3436
5e5dff44
GM
34372000-03-12 Gerd Moellmann <gerd@gnu.org>
3438
9b2f3c38
GM
3439 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3440 has been found. Fix bug not computing timer's predecessor.
3441
427ec082 3442 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3443 file name.
3444
e1cff360
GM
3445 * window.c (Fsave_window_excursion): Doc fix.
3446
5e5dff44
GM
3447 * xfns.c (x_defined_color): Rewritten to use
3448 x_allocate_nearest_color.
3449
e411ce4b
EZ
34502000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3451
3452 * msdos.c (vga_installed): New function, code moved from
3453 dos_set_window_size.
3454 (Qbar, Qcursor_type, outside_cursor): New variables.
3455 (syms_of_msdos): Intern and staticpro them.
3456 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3457 shape used outside Emacs when called for the first time.
3458 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3459 cursor shape used outside Emacs.
3460 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3461 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3462 type has changed.
3463 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3464 parameters specify the cursor. Make qreverse a global
3465 variable (renamed to Qreverse).
3466
80460654
GM
34672000-03-09 Gerd Moellmann <gerd@gnu.org>
3468
3469 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3470
95cd4c40
SM
34712000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3472
3473 This is a big redesign of failure-stack and register handling, prompted
3474 by bugs revealed when trying to add shy-groups. Overall, what happened
3475 is that loops are now structured a little differently, groups can be
3476 shy and the code is a little simpler.
3477
3478 * regex.h: Update the copyright.
3479 (RE_SHY_GROUPS): New value.
3480 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3481 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3482
80460654
GM
3483 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3484 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3485 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3486 for (start|stop)_memory since they now only take one argument (the
3487 second has becomes unnecessary).
3488 (print_partial_compiled_pattern): Adjust for changes in
3489 re_opcode_t.
3490 (print_compiled_pattern): Use %ld to printf long ints and flush to
3491 make debugging a little easier.
95cd4c40
SM
3492 (union fail_stack_elt): Make the integer unsigned.
3493 (struct fail_stack_type): Add a `frame' element.
3494 (INIT_FAIL_STACK): Init `frame' as well.
3495 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3496 (DEBUG_PUSH, DEBUG_POP): Remove.
3497 (NUM_REG_ITEMS): Remove.
3498 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3499 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3500 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3501 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3502 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3503 macros.
3504 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3505 address pushed is not the destination of the jump but the source
3506 of it instead.
95cd4c40
SM
3507 (NUM_FAILURE_ITEMS): Remove.
3508 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3509 registers before the actual failure point). Don't hardcode any
3510 meaning for str==NULL anymore.
95cd4c40 3511 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3512 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3513 Remove.
95cd4c40
SM
3514 (REG_UNSET_VALUE): Use NULL (why not?).
3515 (compile_range): Remove declaration since it doesn't exist.
3516 (struct compile_stack_elt_t): Remove inner_group_offset.
3517 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3518 (regex_grow_registers): Remove dead code.
3519 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3520 (regex_compile): Add shy-groups Change loops to use
3521 on_failure_jump_smart&jump instead of
3522 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3523 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3524 variable to me). Use `jump' instead of `jump_past_alt' and don't
3525 bother with push_dummy_failure in alternatives since it is now
3526 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3527 emacs' for (re)allocating the stack.
3528 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3529 from loop when bufp->can_be_null rather than jumping to `done'.
3530 Avoid jumping backwards so as to ensure termination. Use
3531 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3532 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3533 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3534 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3535 improve mutually_exclusive_p to handle ".+\n".
3536 (lowest_active_reg, highest_active_reg,
3537 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3538 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3539 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3540 variables. Push register (in `start_memory') on the stack rather
3541 than storing it in old_reg(start|end). Remove the cycle detection
3542 from `stop_memory', replaced by the use of on_failure_jump_loop
3543 for greedy loops. Add code for the new on_failure_jump_<foo>.
3544 Remove ad-hoc code in `on_failure_jump' to push more registers in
3545 the case of a loop. Take out code from `maybe_pop_jump' into
3546 separate functions and adapt it to the semantics of
3547 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3548 and push_dummy_failure. Remove dummy_failure handling and
3549 handling of `failures to jump to on_failure_jump' (this last one
3550 was already dead code, it seems).
3551 (group_match_null_string_p, alt_match_null_string_p)
3552 (common_op_match_null_string_p): Remove.
95cd4c40 3553
7397acc4
DL
35542000-03-08 Dave Love <fx@gnu.org>
3555
3556 * config.in: Don't depend on __STDC__ for volatile.
3557 Add POINTER_TYPE, PTR, PROTOTYPES.
3558
3559 * hftctl.c, strftime.c: Use PROTOTYPES.
3560 * eval.c (find_handler_clause): Likewise.
3561
3562 * mem-limits.h: Use POINTER_TYPE.
3563
3564 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3565 (memory_warnings): Declare using POINTER_TYPE.
3566
5e91ff9e
GM
35672000-03-08 Gerd Moellmann <gerd@gnu.org>
3568
feab4fba
GM
3569 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3570
25edb08f
GM
3571 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3572 collection.
3573
5e91ff9e
GM
3574 * xfns.c: Remove obsolete code in #if 0.
3575 (Fx_focus_frame): New function.
3576
a735b7e1
KH
35772000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3578
3579 * coding.c (coding_category_name): Add coding-category-utf-8,
3580 coding-category-utf-16-be, coding-category-utf-16-le.
3581 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3582 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3583 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3584 (detect_coding_utf_8): New function.
3585 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3586 UTF_16_LOW_SURROGATE_P): New macros.
3587 (detect_coding_utf_16): New function
3588 (detect_coding_mask): When priorities are specified, skip any
3589 categories that have `nil' coding-system. Fix bug of returning
3590 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3591 returns a mask not set in PRIORITIES.
3592 (detect_eol_type_in_2_octet_form): New function.
3593 (detect_eol): selects detect_eol_type_XXX to call according to
3594 cooding->category_idx.
3595 (detect_coding_system): Remove `nil' coding-system in the result.
3596 (Fupdate_coding_systems_internal): Update all coding-categories.
3597
3598 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3599 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3600 macros.
3601 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3602 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3603 CODING_CATEGORY_IDX_UTF_16_LE.
3604 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3605 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3606 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3607 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3608
9994cc69
GM
36092000-03-07 Gerd Moellmann <gerd@gnu.org>
3610
e9b4e5ff
GM
3611 * doc.c (Fdocumentation_property): If value is not a string,
3612 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3613
f7daf1e1
GM
3614 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3615 close the display with XtCloseDisplay. This caused a bus error
3616 on OpenWindows.
3617
9994cc69
GM
3618 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3619 complete but not unique.
3620
4336c705
GM
36212000-03-06 Gerd Moellmann <gerd@gnu.org>
3622
18bb0684
GM
3623 * process.c (send_process): Remove local variable `procname' that
3624 might become invalid when a GC happens. Instead, access the
3625 process name slot directly.
3626
4336c705
GM
3627 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3628 orig_height if set.
3629
3630 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3631 orig_height if set.
3632
515d0d0e
EZ
36332000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3634
3635 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3636 glyph matrices have been freed.
3637
100b3cbb
GM
36382000-03-05 Gerd Moellmann <gerd@gnu.org>
3639
50df5e5a 3640 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3641 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3642
3643 * xfns.c (QCdata): Moved to xdisp.c.
3644
3645 * xdisp.c (QCdata): Moved here from xfns.c.
3646 (syms_of_xdisp): Initialize QCdata.
3647
3648 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3649
3650 * window.c (coordinates_in_window): Use
3651 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3652 FRAME_INTERNAL_BORDER_WIDTH.
3653
100b3cbb 3654 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3655 it is obviously invalid.
100b3cbb
GM
3656
3657 * xterm.c (x_term_init): Create a colormap if not using the
3658 default visual.
3659
3660 * xterm.h (select_visual): Change prototype.
3661
3662 * xfns.c (select_visual): Rewritten. Recognize user-specified
3663 visual classes.
3664 (visual_classes): New variable.
3665
64d739c4
GM
36662000-03-04 Gerd Moellmann <gerd@gnu.org>
3667
3668 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3669 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3670 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3671 (x_decode_color): Don't handle allocation of white and black
3672 specially.
3673 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3674 XtNcolormap resources.
3675 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3676 (Fx_create_frame): Initialize color members of x_output structure.
3677 (xpm_load): Pass colormap to XPM lib.
3678
3679 * xfaces.c (x_free_colors): Access colormap of frame using
3680 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3681 when default colormap is used.
3682
3683 * xterm.c (x_term_init): Set Colormap member of x_display_info
3684 structure. Copy colormap if resource `privateColormap' is
3685 specified (PseudoColor only).
3686 (x_setup_relief_color): Access colormap of frame using
3687 FRAME_X_COLORMAP.
3688
3689 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3690 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3691
c3cee013
JR
36922000-03-04 Jason Rumney <jasonr@gnu.org>
3693
3694 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3695 other non-platform-specific equivalents.
64d739c4 3696 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3697 specific functions and macros as their w32 equivalents where
3698 non-platform-specifics are not available.
3699 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3700 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3701 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3702 (frame_update_line_height): Use macros to access f->output_data.
3703 (defined_color): Remove FIXME comments; fixed.
3704 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3705 into #ifdef blocks. Add WINDOWSNT blocks.
3706 (Fx_list_fonts): Use macros for accessing font data.
3707 (set_lface_from_font_name): Different default fonts for X and
3708 WINDOWSNT.
3709 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3710 scalable for backward compatibility.
64d739c4 3711 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3712 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3713
64d739c4 3714 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3715 syms_of_w32faces.
3716
3717 * makefile.nt (w32faces.obj): Remove.
3718 (xfaces.obj): Add.
3719
807cc41c
JR
37202000-03-03 Jason Rumney <jasonr@gnu.org>
3721
3722 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3723 correct parameters.
3724
0007072a
KR
37252000-03-03 Ken Raeburn <raeburn@gnu.org>
3726
3727 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3728 standard ELF definitions here if the system header does not.
3729
71a6ba55
GM
37302000-03-03 Gerd Moellmann <gerd@gnu.org>
3731
3732 * xterm.c (PER_CHAR_METRIC): Removed.
3733 (x_per_char_metric_1, x_default_char): New functions.
3734 (x_per_char_metric): If font's default char is invalid, return
3735 metrics of a suitably chosen usable default char.
3736 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3737 char, replace occurrences of unprintable chars with a suitably
3738 chosen usable default char.
71a6ba55 3739
900fa1f1
GM
37402000-03-02 Gerd Moellmann <gerd@gnu.org>
3741
42f55fe0
GM
3742 * xterm.c (note_mouse_highlight): Return quickly if frame's
3743 glyph matrices have been freed.
3744
3745 * dispnew.c (free_glyphs): Block input while freeing matrices.
3746
900fa1f1
GM
3747 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3748
3749 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3750 x_free_colors.
3751
3752 * dispextern.h (x_free_colors): Add prototype.
3753
3754 * xfaces.c (x_free_colors): New function.
3755 (unload_color, free_face_colors): Use it.
3756
2f950292
EZ
37572000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3758
3759 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3760
3761 * window.c [MSDOS]: Include msdos.h.
3762
54d04320
DL
37632000-03-02 Dave Love <fx@gnu.org>
3764
3765 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3766
3767 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3768 set C_OPTIMIZE_SWITCH for gcc.
3769
0ba93ac4
KH
37702000-03-02 Kenichi Handa <handa@etl.go.jp>
3771
3772 * coding.c (coding_save_composition): Be sure to allocate
3773 composition data area in coding even if there's no composition in
3774 the current run.
3775
a2bc11d4
JR
37762000-03-01 Jason Rumney <jasonr@gnu.org>
3777
3778 * w32term.c: Equivalent changes to those made to xterm.c on
3779 2000-02-25 and 2000-02-24.
3780
3781 * w32fns.c: Equivalent changes to those made to xfns.c on
3782 2000-02-25 and 2000-02-21.
3783
3784 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3785 correct line-end convention is followed.
3786
3787 * w32menu.c [HAVE_BOXES]: Remove #undef.
3788 (single_keymap_panes): Remove code for simulating checkmarks.
3789 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3790 Remove code for drawing simulated checkmarks.
3791 (w32_menu_show): make unibyte help string correctly.
3792 (add_menu_item): draw standard Windows checkmarks. Draw radio
3793 buttons as radio buttons if possible.
3794
72d19d75
GM
37952000-03-01 Gerd Moellmann <gerd@gnu.org>
3796
2df636f4
GM
3797 * sysdep.c (start_of_text): Don't define this function for NetBSD
3798 with ELF.
3799
427ec082 3800 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3801 Don't define.
3802 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3803 (LINKER): Don't undef if __NetBSD__ is defined.
3804
3805 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3806
3807 * fileio.c [__NetBSD__]: Define `unix'.
3808
72d19d75
GM
3809 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3810
ed4d0512
GM
38112000-02-29 Gerd Moellmann <gerd@gnu.org>
3812
50b1039f
GM
3813 * atimer.c (start_atimer): Don't abort when timers are stopped.
3814 (append_atimer_lists): New function.
3815 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3816 arbitrary lists of stopped and running atimers.
3817
ed4d0512
GM
3818 * atimer.c (cancel_atimer): Handle canceling an atimer when
3819 some timers are stopped.
3820
3821 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3822 after canceling it.
3823
3824 * fns.c (maybe_resize_hash_table): Handle case of new size
3825 coming out as being the same as old size.
3826
387023ee
JR
38272000-02-27 Jason Rumney <jasonr@gnu.org>
3828
3829 * makefile.nt: Add atimer.h to dependencies.
3830 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3831 * w32console.c: Only disable window system features for dispextern.h
3832 (initialize_w32_display): Build a display info for the console.
3833 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3834 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3835 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3836 as 2 button mice.
3837 * w32gui.h (struct W32FontStruct): Revert last change after change
3838 to xdisp.c.
3839 * w32menu.c (single_submenu): Set up help string.
3840 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3841 (w32_dialog_show): Set up help string.
3842 * w32term.c (w32_display_info_for_display): Remove unused function.
3843 (w32_draw_bitmap): Use pre-built bitmaps.
3844 (w32_initialize_display_info): New function to initialize parts of
3845 display info that are common to both GUI and console frames.
3846 (w32_term_init): Use w32_initialize_display_info. Do not set
3847 Vw32_num_mouse_buttons here, as it is not called for console
3848 frames. Build bitmaps for indicating truncated lines etc.
3849 (x_delete_display): Destroy pre-built bitmaps.
3850 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3851 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3852
4516715a
DL
38532000-02-27 Dave Love <fx@gnu.org>
3854
3855 * lisp.h: Add a bunch of prototypes.
3856
171ca836
KH
38572000-02-26 Kenichi Handa <handa@etl.go.jp>
3858
3859 * keyboard.c (read_char): Set `usec' correctly.
3860
4013921d
KH
38612000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3862
3863 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3864 `lambda', set reg[RRR] to the map index.
3865 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3866 reg[RRR] to 0. Otherwise, set it to -1.
3867
9244a058
GM
38682000-02-25 Gerd Moellmann <gerd@gnu.org>
3869
2df636f4 3870 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3871
18e21ce8 38722000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 3873
f43d79c1
GM
3874 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3875 and contains a `:', prepend `/:'.
3876
3877 * window.c (select_window_1): If selected_window is nil,
3878 don't "swap out" the buffer's point.
3879 (Fset_window_configuration): Set selected_window to nil
3880 before calling Fselect_window.
3881 (unshow_buffer): Don't set point in buffer from window's point
3882 if another more recently selected window also shows the buffer.
3883
bed0c171
GM
38842000-02-25 Gerd Moellmann <gerd@gnu.org>
3885
449c3c52
GM
3886 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3887
f5b58615
GM
3888 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3889 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3890 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3891 variables.
3892 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3893 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3894 (hide_busy_cursor): New functions.
3895 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3896
3897 * minibuf.c (read_minibuf): Cancel busy-cursor.
3898
3899 * keyboard.c (command_loop_1): Call start_busy_cursor before
3900 Fcommand_execute and cancel_busy_cursor after it.
3901 (timer_check): Remove busy-cursor code.
3902 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3903 cursor timer.
3904
3905 * process.c (wait_reading_process_input): Remove busy-cursor code.
3906
3907 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3908 Fx_hide_busy_cursor.
3909
3910 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3911 Remove prototyoes.
3912 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3913
3914 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3915
3916 * xterm.c (XTread_socket): Remove busy-cursor code.
3917
4eb8436f
GM
3918 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3919 (build_frame_matrix_from_leaf_window): Put code handling
3920 glyph row's not being a slice of a frame row in #if 0.
3921 (sync_window_with_frame_matrix_rows): New function.
3922 (frame_row_to_window): New function.
3923 (mirror_line_dance): Handle copies between windows.
3924
3cb65b0e
GM
3925 * lread.c (Fload): Use `xfree' instead of `free'.
3926 (init_obarray): Use `xmalloc' instead of `malloc'.
3927
bed0c171
GM
3928 * window.c (Fset_window_buffer): Set WINDOW to the window
3929 after decoding.
2add4349
GM
3930 (coordinates_in_window): Take frame's internal border width
3931 into account.
bed0c171 3932
42088c12
GM
39332000-02-24 Gerd Moellmann <gerd@gnu.org>
3934
3935 * xterm.c (x_display_and_set_cursor): Display cursor of
3936 non-selected windows depending on the setting of
3937 cursor_in_non_selected_windows.
3938
3939 * xdisp.c (cursor_in_non_selected_windows): New variable.
3940 (syms_of_xdisp): DEFVAR_BOOL it.
3941
d1e103b2
GM
39422000-02-23 Gerd Moellmann <gerd@gnu.org>
3943
723e779c
GM
3944 * data.c (Fstring_to_number): If number is greater than what
3945 fits into an integer, return a float.
3946
d1e103b2
GM
3947 * eval.c (specbind): Remove references to
3948 keyword_symbols_constant_flag.
3949
3950 * data.c (keyword_symbols_constant_flag): Removed.
3951 (Fmakunbound, set_internal, syms_of_data): Remove references to
3952 keyword_symbols_constant_flag.
3953
3954 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3955
214f877f
KH
39562000-02-23 Kenichi Handa <handa@etl.go.jp>
3957
3958 * syntax.c (multibyte_syntax_as_symbol): New variable.
3959 (syms_of_syntax): Declare it as a Lisp variable.
3960 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3961 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3962 nonzero, treat all multibyte characters as symbol.
42088c12 3963 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3964 characters.
3965
130adcb7
EZ
39662000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3967
3cb65b0e 3968 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 3969 a deleted frame.
130adcb7 3970
17cbbf95
GM
39712000-02-21 Gerd Moellmann <gerd@gnu.org>
3972
3973 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3974
3975 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3976 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3977
beb0bc36
DL
39782000-02-21 Dave Love <fx@gnu.org>
3979
3980 * frame.c (Vmouse_position_function): New variable.
3981 (Fmouse_position): Use it.
3982 (syms_of_frame): Install it.
3983
3984 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3985
1d92afcd
GM
39862000-02-20 Gerd Moellmann <gerd@gnu.org>
3987
3988 * fileio.c (Finsert_file_contents): Unbind the binding of
3989 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3990
3991 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3992 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3993 (specbind, unbind_to): Handle most common case of non-constant
3994 symbol with trivial value specially.
3995
3996 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3997
18e21ce8 39982000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
3999
4000 * data.c (Fmake_variable_buffer_local): Doc fix.
4001 Init found_for_buffer to 0.
4002 (Fmake_variable_frame_local): If the variable has already
4003 been buffer-local, set the check_frame field.
4004
1d4311c3
EZ
40052000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
4006
4007 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
4008 produced for CODING_MODE_LAST_BLOCK requires.
4009
2dc95ddd
DL
40102000-02-18 Dave Love <fx@gnu.org>
4011
4012 * keyboard.c (echo_keystrokes): Remove declaration.
4013 (Vecho_keystrokes) New variable.
4014 (read_char, record_menu_key, read_key_sequence): Use it to allow
4015 use of float value.
4016 (syms_of_keyboard): Change Vecho_keystrokes declaration.
4017
4018 * lread.c: Undef feature selection macros before defining.
4019
f0930f35
GM
40202000-02-18 Gerd Moellmann <gerd@gnu.org>
4021
4022 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
4023 for symbols other than the symbol in question.
4024
e3d4de90
DL
40252000-02-17 Dave Love <fx@gnu.org>
4026
4027 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
4028
0b378936
GM
40292000-02-17 Gerd Moellmann <gerd@gnu.org>
4030
d621caf7
GM
4031 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
4032
0b378936
GM
4033 * alloc.c (enum mem_type): Compile unconditionally.
4034
3b451f74
EZ
40352000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
4036
4037 * xfaces.c (tty_defined_color): Don't return faulire indication
4038 for unspecified-fg and unspecified-bg pseudo-colors.
4039
10689a01
GM
40402000-02-17 Gerd Moellmann <gerd@gnu.org>
4041
1216f5e4
GM
4042 * alloc.c (mark_object): Don't mark symbol names in pure space.
4043 (gc_sweep): Don't unmark symbol names in pure space.
4044
4045 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
4046 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
4047 [GC_MARK_STACK]: New defines.
427ec082 4048 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
4049 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
4050
4051 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
4052
4053 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
4054 allocate_buffer instead of xmalloc.
4055
4056 * alloc.c (toplevel): Include setjmp.h.
4057 (PURE_POINTER_P): New define.
4058 (enum mem_type) [GC_MARK_STACK]: New enumeration.
4059 (Vdead) [GC_MARK_STACK]: New variable.
4060 (lisp_malloc): Add parameter TYPE, call mem_insert if
4061 GC_MARK_STACK is defined.
4062 (allocate_buffer): New function.
427ec082 4063 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
4064 (free_float) [GC_MARK_STACK]: Set type to Vdead.
4065 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
4066 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4067 (MEM_NIL) [GC_MARK_STACK]: New define.
4068 (struct mem_node) [GC_MARK_STACK]: New structure.
4069 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4070 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4071 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4072 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4073 (mark_stack) [GC_MARK_STACK]: New functions.
4074 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4075 (clear_marks): Removed.
4076 (gc_sweep): Set free conses' car, free floats' type, free
4077 symbols' function to Vdead. Use lisp_free to free buffers.
4078 (init_alloc_once): Initialize Vdead.
4079 (survives_gc_p): Return non-zero for pure objects.
4080
4081 * alloc.c: Add comments throughout the file.
4082
2503c8b1
GM
4083 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4084 that unblocks alarms.
4085
8389e1e2
GM
4086 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4087 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4088 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4089
10689a01 4090 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4091
bfc17d18
KH
40922000-02-17 Kenichi Handa <handa@etl.go.jp>
4093
4a09dee0
KH
4094 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4095 avoid infinite error signaling. Allocate sufficient memory for
4096 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4097
2b927d02
SM
40982000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4099
4100 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4101 depends on the previous behavior.
4102
b49cb764
GM
41032000-02-16 Gerd Moellmann <gerd@gnu.org>
4104
4105 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4106
99e95407
GM
41072000-02-15 Gerd Moellmann <gerd@gnu.org>
4108
4109 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4110
4111 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4112 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4113 write(2).
4114
6ffd3cf7
RS
41152000-02-15 Richard M. Stallman <rms@gnu.org>
4116
4117 * data.c (set_internal): Don't make variable buffer-local
4118 if within a let-binding for the same buffer.
4119 (let_shadows_buffer_binding_p): New function.
4120
4121 * eval.c (specbind): For buffer-local value,
4122 record the current buffer also.
4123 (unbind_to): Cope with that change.
4124
cad53475
GM
41252000-02-15 Gerd Moellmann <gerd@gnu.org>
4126
4127 * window.c (Fsave_window_excursion): Doc fix.
4128
1aa963c8
SM
41292000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4130
4131 * syntax.c (back_comment): Make sure we only consider comment-starters
4132 of the relevant style and return -1 in case of a failure to find the
4133 beginning of the comment.
4134 (Fforward_comment): If back_comment fails, go back to the position just
4135 after the comment-end.
4136 (scan_lists): Add comment describing a very minor bug.
4137
b9b84fd3
SM
41382000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4139
4140 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4141 `completion-regexp-list' in the docstring.
4142
3a28db80
DL
41432000-02-14 Dave Love <fx@gnu.org>
4144
4145 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4146
fb4a568d
SM
41472000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4148
4149 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4150 to Emacs' syntax. Also fix the comment about set/not-set meanings
4151 since Emacs syntax is not the value 0 any more.
4152 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4153 since it's now part of RE_SYNTAX_EMACS.
4154
1063ebb5
DL
41552000-02-12 Dave Love <fx@gnu.org>
4156
4157 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4158 Alpha.
4159
fb07a302
GM
41602000-02-12 Gerd Moellmann <gerd@gnu.org>
4161
4162 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4163
aaf2320c
DL
41642000-02-12 Dave Love <fx@gnu.org>
4165
4166 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4167
4168 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4169 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4170 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4171
4172 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4173
4174 * s/nextstep.h: Don't define HAVE_ALLOCA.
4175
4176 * config.in: Add vfork bits.
4177
eedf8bde
GM
41782000-02-12 Gerd Moellmann <gerd@gnu.org>
4179
4180 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4181 unwind function to undo the effect of stopping atimers.
4182
4183 * keyboard.c (bind_polling_period): Stop all timers except
4184 poll_timer.
4185
4186 * atimer.c (stopped_atimers): New variable.
4187 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4188 New functions.
4189
4190 * atimer.h (stop_other_atimers, run_all_atimers)
4191 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4192
eedf8bde
GM
4193 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4194
8476c2f8
KR
41952000-02-11 Ken Raeburn <raeburn@gnu.org>
4196
4197 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4198 library may depend on jpeg.
4199 (atimer.o): Depends on atimer.c.
4200
0e85e4a3
KH
42012000-02-11 Kenichi Handa <handa@etl.go.jp>
4202
4203 * insdel.c (del_range_1): Call update_compositions.
4204 (del_range_both): Call update_compositions just once..
4205
97fa0cc8
DL
42062000-02-10 Dave Love <fx@gnu.org>
4207
4208 * xfns.c (create_frame_xic): Fix initialization of automatic
4209 aggregates for pcc.
4210
25566a3c
KH
42112000-02-09 Kenichi Handa <handa@etl.go.jp>
4212
4213 * ccl.c (CCL_MAKE_CHAR): New macro.
4214 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4215 registers by CCL_MAKE_CHAR before calling translate_char.
4216 <CCL_TranslateCharacterConstTbl> Likewise.
4217
69da54ba
DL
42182000-02-08 Dave Love <fx@gnu.org>
4219
4220 * lread.c (__EXTENSIONS__): Define.
4221
f7136ee8
GM
42222000-02-08 Gerd Moellmann <gerd@gnu.org>
4223
4224 * puresize.h (BASE_PURESIZE): Increase to 650000.
4225
7768790b
EZ
42262000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4227
4228 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4229 the help message.
4230
38fd211b
EZ
42312000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4232
4233 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4234 md, mh, mb, mr, and me to the fake termcap entry.
4235
66e4690f
KR
42362000-02-06 Ken Raeburn <raeburn@gnu.org>
4237
4238 * sound.c (sound_cleanup): Don't call device close routine if the
4239 function pointer is null.
4240
a75dfea0
AI
42412000-02-06 Andrew Innes <andrewi@gnu.org>
4242
4243 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4244 around image definitions and prototypes.
4245 (gamma_correct) [WINDOWSNT]: New prototype.
4246
4247 * w32term.c (x_make_frame_visible): Replace call to
4248 input_poll_signal with poll_for_input.
4249
4250 * window.c [WINDOWSNT]: Include w32term.h.
4251
4252 * xdisp.c [WINDOWSNT]: Include w32term.h.
4253
4254 * makefile.nt: Add dependencies on w32gui.h.
4255 (OBJ1): Include atimer.obj.
4256 ($(BLD)\atimer.obj): New dependency rule.
4257
4258 * w32.c (sigmask): New function (does nothing).
4259 (sigunblock): Ditto.
4260
4261 * frame.c [WINDOWSNT]: Include w32term.h.
4262
4263 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4264
4265 * lread.c (syms_of_lread): Fix literal newlines.
4266
4267 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4268 the string constant limit (2048 bytes) in MSVC.
4269 (main): Ditto.
4270
59ddecde
GM
42712000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4272
4273 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4274 area.
4275 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4276 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4277 dispatch the event.
4278
07590973
DL
42792000-02-04 Dave Love <fx@gnu.org>
4280
4281 * fileio.c: Remove some unused vars.
4282 (_GNU_SOURCE): Define (for euidaccess).
4283
4284 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4285
4286 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4287 gcpro1, gcpro2.
4288 (read_minibuf): Deal with allow_props correctly.
4289
649351f9
EZ
42902000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4291
4292 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4293
66e4690f 42942000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4295
4296 * search.c (compile_pattern): If a cache entry has a nil regexp,
4297 fill in that entry instead of clobbering a previously cached
4298 string regexp.
4299
66e4690f 43002000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4301
4302 * puresize.h (BASE_PURESIZE): Increase to 610000.
4303
d240a249
GM
43042000-02-02 Gerd Moellmann <gerd@gnu.org>
4305
4306 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4307 can GC.
4308
ca91fb26
KH
43092000-02-02 Kenichi Handa <handa@etl.go.jp>
4310
25660570
KH
4311 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4312 instead of incrementing ic directly.
4313 <CCL_WriteExprConst> Likewise.
4314 <ccl_set_expr>: Set ic to jump_address.
4315
ca91fb26
KH
4316 * fileio.c (e_write): Fix the handling of
4317 CODING_FINISH_INSUFFICIENT_SRC.
4318
2ede9689
DL
43192000-02-01 Dave Love <fx@gnu.org>
4320
4321 * editfns.c (Fpropertize): Doc fix.
4322
4323 * process.c (Fstart_process): Doc fix.
4324
4325 * eval.c: Fix various doc strings not to duplicate information
4326 from help-manyarg-func-alist.
4327
4328 * window.c (Fset_window_margins): Don't make interactive. Doc
4329 fix.
4330
4331 * doc.c (Vhelp_manyarg_func_alist): New variable.
4332 (Fdocumentation): Use it.
4333 (syms_of_doc): Define it.
4334
b6680a0e
GM
43352000-01-31 Gerd Moellmann <gerd@gnu.org>
4336
2cb750ba
GM
4337 * xterm.c (xim_open_dpy): Remove unused local variable.
4338
74e9213b
GM
4339 * emacs.c (USAGE): Use term `display options' instead of `X
4340 options'.
4341
4342 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4343 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4344
b6680a0e
GM
4345 * fns.c (sweep_weak_table): New function.
4346 (sweep_weak_hash_tables): Use it. Keep on marking until there
4347 is no more change.
4348
994c5afe
GM
43492000-01-30 Gerd Moellmann <gerd@gnu.org>
4350
4351 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4352 that XTread_socket does not crash by trying to call XNoOp on a
4353 closed display.
427ec082 4354
f00276e3
JR
43552000-01-30 Jason Rumney <jasonr@gnu.org>
4356
4357 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4358 Change selected_frame to SELECTED_FRAME ().
4359 (w32_console_mouse_position): Remove #ifndef MULE from around
4360 `insist' parameter.
4361
4362 * makefile.nt: Remove dosfns.obj.
4363
4364 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4365
4366 * w32fns.c (w32_defined_color): Check for valid frame before
4367 applying gamma correction. Eliminate dependency on frame elsewhere.
4368 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4369 (w32_to_x_font): Use resx and resy not height_in and width_in.
4370 (x_to_w32_font): Doc fix.
4371 (xlfd_strip_height): New function to strip and return font height.
4372 (w32_font_match): Compare height separately from rest of xlfd
4373 spec, using xlfd_strip_height.
4374
4375 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4376 width_in. Use w32_defined_color in place of defined_color.
4377
4378 * w32faces.c: Merge more of DOS and X specifics in preparation for
4379 merge with xfaces.c.
4380 (defined_color): Remove FIXME comment.
4381 (tty_color_name): Provide w32-specific function.
4382 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4383
4384 * w32console.c (turn_on_face, turn_off_face): Removed.
4385 (w32_face_attributes): New function.
4386 (Global_variables): Reduce scope where possible.
4387 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4388 fill attribute.
4389 (hl_mode): Don't modify text attributes.
4390 (write_glyphs): Don't do anything if len <= 0. Use
4391 w32_face_attributes to get attributes for drawing. Write
4392 terminating codes using char_attr_normal.
4393 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4394 (update_begin, update_end): Likewise.
4395 (vga_stdcolor_name): New function.
4396 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4397 (Fset_screen_color): Remove char_attr_reverse.
4398
b08e8bb2
GM
43992000-01-29 Gerd Moellmann <gerd@gnu.org>
4400
4401 * xfns.c (xic_set_preeditarea): Take window parameter and
4402 window-relative pixel-positions.
4403
4404 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4405 is its frame's selected window.
4406 (xim_instantiate_callback): Likewise.
4407
4408 * xfns.c (x_create_im): Removed.
4409 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4410 (supported_xim_styles): Renamed from supported_styles.
4411 (best_xim_style): Renamed from best_style.
4412 (create_frame_xic): Renamed from xic_create_frame.
4413 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4414
b08e8bb2
GM
44152000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4416
4417 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4418 our frames, call XFilterEvent with 2nd parameter `None'.
4419 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4420 returning XBufferOverflow.
4421 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4422 area.
4423 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4424 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4425 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4426 (xim_initialize, xim_close)
4427 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4428 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4429 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4430 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4431
4432 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4433 and `xim_styles'.
4434 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4435 `xic_style' and `xic_xfs'.
4436 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4437 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4438 (FRAME_XIM): Removed.
4439
4440 * xfns.c (supported_styles): New variable.
4441 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4442 (xic_create_xfontset, best_style, xic_create_frame)
4443 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4444 (xic_set_xfontset): New functions.
4445
142e109c
DL
44462000-01-28 Dave Love <fx@gnu.org>
4447
4448 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4449
4450 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4451
b02786f9
GM
44522000-01-28 Gerd Moellmann <gerd@gnu.org>
4453
d060bc9f
GM
4454 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4455 for *scratch* if it already existed.
4456
b02786f9
GM
4457 * emacs.c (USAGE): New macro.
4458 (main): Use it to display usage information.
4459
2c52d7e4
EZ
44602000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4461
4462 Support for the menu-help feature:
4463
4464 * msdos.h: Change prototypes of XMenuAddSelection and
4465 XMenuActivate.
4466
4467 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4468 part of the line to the termscript file.
4469 (IT_clear_to_end): Clear the entire line, not just its beginning.
4470 (menu_help_message, prev_menu_help_message): New variables.
4471 (IT_menu_make_room): Make room for the help_text member.
4472 (IT_menu_display): New argument disp_help; all callers changed.
4473 If disp_help is non-zero, store the help text of the active menu
4474 item in menu_help_message.
4475 (XMenuAddPane): Initialize the help_text member to NULL.
4476 (XMenuAddSelection): New argument help_text. Store it in the
4477 XMenu structure.
4478 (XMenuActivate): New argument help_callback. If the value of
4479 menu_help_message has changed since the last time, display the
4480 menu help message text while waiting for the mouse to move. Clear
4481 the echo area before exiting.
4482 (XMenuDestroy): Free the help_text member.
4483
ffe0bcd1
GM
44842000-01-27 Gerd Moellmann <gerd@gnu.org>
4485
4486 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4487 XMenuAddSelection. Pass help callback to XMenuActivate.
4488 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4489
50dbd23f
EZ
44902000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4491
4492 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4493 and EMACS_SET_USECS.
4494
f5941bf8
GM
44952000-01-26 Dave Love <fx@gnu.org>
4496
6c67ddee
DL
4497 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4498
f5941bf8
GM
4499 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4500 an error may be signalled.
4501
9e49c990
GM
45022000-01-26 Gerd Moellmann <gerd@gnu.org>
4503
fc3cb460
GM
4504 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4505 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4506
9e49c990
GM
4507 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4508
d0c037d8
GM
45092000-01-25 Gerd Moellmann <gerd@gnu.org>
4510
4511 * charset.c (Fstring): If there is a multibyte char among
4512 the args, always return a multibyte string.
4513
e12489f9
GM
45142000-01-25 Gerd Moellmann <gerd@gnu.org>
4515
4516 * sysdep.c (sys_select): Turn atimers off and on instead of
4517 recording and restoring old alarm handler
4518
4519 * process.c (toplevel): Include atimer.h.
4520 (create_process_1): Rewritten.
4521 (create_process): Use atimers instead of alarm.
4522 (wait_reading_process_input) [hpux]: Turn atimers off instead
4523 of turning off SIGALRM.
4524 (wait_reading_process_input): Turn off atimers instead off
4525 calling stop_polling.
4526
4527 * emacs.c (main): Call init_atimer.
4528
4529 * keyboard.c (toplevel): Include systime.h and atimer.h.
4530 (polling_for_input): Removed because unused.
4531 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4532 (poll_timer): New variable.
4533 (poll_for_input, poll_for_input_1): New functions.
4534 (start_polling, stop_polling): Rewritten.
4535
4536 * keyboard.h (polling_for_input): Removed.
427ec082 4537
e12489f9
GM
4538 * atimer.h, atimer.c: New files.
4539
4540 * Makefile.in (obj): Add atimer.o.
4541 (atimer.o): New target.
4542
4543 * blockinput.h (pending_atimers): Add extern declaration.
4544 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4545
4546 * lisp.h (popup_activated_flag): Add extern declaration.
4547
4548 * xmenu.c (popup_activated_flag): Make externally visible.
4549 (popup_activate_callback) [USE_MOTIF]: Increment
4550 popup_activated_flag.
4551 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4552
4553 * xterm.c (toplevel): Include atimer.h.
4554 (toolkit_scroll_bar_interaction): New variable.
4555 (Fxt_process_timeouts): Removed.
4556 (x_process_timeouts): New function.
4557 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4558 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4559 (x_make_frame_visible): Call poll_for_input_1 instead of
4560 input_poll_signal. Don't call alarm.
4561 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4562
1e5279b9
DL
45632000-01-24 Dave Love <fx@gnu.org>
4564
6c67ddee 4565 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4566 Don't use -cckr -- apparently not now necessary.
4567
edf6aeb8
EZ
45682000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4569
4570 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4571 screen boundary.
4572
9badad41
JR
45732000-01-23 Jason Rumney <jasonr@gnu.org>
4574
4575 * w32fns.c (w32_defined_color): Apply gamma correction before
4576 trying to map to the palette.
4577 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4578 to w32_clear_rect.
4579
4580 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4581 here. Callers changed to always pass real device context.
4582 (w32_draw_bitmap): Likewise.
4583 (w32_get_glyph_overhangs): Likewise.
4584 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4585 one.
4586 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4587 pfnSetScrollInfo and SetScrollRange.
4588 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4589 back into MULE characters after decoding them.
4590 (x_get_glyph_face_and_encoding): Likewise.
4591 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4592 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4593 (x_produce_glyphs): Calculate per char metrics for a character
4594 that we know exists in default font when font_not_found_p is true.
4595
63bd786b
JR
45962000-01-22 Jason Rumney <jasonr@gnu.org>
4597
4598 * makefile.nt (intervals.obj, composite.obj): New modules.
4599 (composite.h): Added as dependency where appropriate.
4600
4601 * w32gui.h (XGCValue): New struct for emulating X GCs.
4602
4603 * w32term.h (XCharStruct): New struct for emulating X.
4604
4605 * w32console.c (turn_on_face, turn_off_face): New functions.
4606 (change_line_highlight): New prototype for new redisplay.
4607 (write_glyphs): Support multibyte text. Support faces.
4608
4609 * w32faces.c: Complete rewrite for new redisplay based on new
4610 xfaces.c.
4611
4612 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4613 throughout. struct frame * in place of FRAME_PTR.
4614 Skeleton support for images, toolbars, tooltips from xfns.c.
4615 (Fx_create_frame): Use system default for default scroll bar
4616 width.
4617 (w32_get_arg): Renamed from x_get_arg.
4618 (Fx_file_dialog): New function.
4619 (w32_list_fonts): Check cache before asking system.
4620 (Vw32_enable_synthesized_fonts): New variable.
4621 (Vw32_enable_italics): Obsolete, removed.
4622
4623 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4624 Use SELECTED_FRAME macro.
4625
4626 * w32menu.c: Add skeleton support for help strings on menus.
4627 (add_menu_item): Native checkbox and radio support added, but not
4628 yet enabled due to bugs.
4629 (push_menu_item): Add parameters type, selection and help.
4630 Callers updated.
4631 Formatting changes to reduce unnecessary diffs with xmenu.c.
4632
4633 * w32select.c (Fw32_set_clipboard_data): Update call to
4634 find_charset_in_str.
4635
4636 * w32term.c: Complete rewrite for new redisplay based on new
4637 xterm.c with necessary sections merged back in from old w32term.c.
4638
6ffd3cf7 46392000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4640
4641 * data.c (set_internal): Further fix in same criterion.
4642
6ffd3cf7 46432000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4644
4645 * data.c (set_internal): Fix the criteria for whether
4646 to swap out the old cached binding.
4647
60af03f1
DL
46482000-01-19 Dave Love <fx@gnu.org>
4649
4650 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4651
f9be074f
KH
46522000-01-18 Kenichi Handa <handa@etl.go.jp>
4653
4654 * regex.c (re_compile_fastmap): While checking a range table for
4655 `charset', skip flag bits for a character class correctly.
4656
52b8dbf9
GM
46572000-01-17 Gerd Moellmann <gerd@gnu.org>
4658
d36100c9
GM
4659 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4660
52b8dbf9
GM
4661 * xfns.c (x_window): Call lw_create_widget with new parameter
4662 list.
4663
4664 * widget.c (EmacsFrameSetCharSize): Change size of children first
4665 because of problems with main window geometry management under
4666 Lesstif.
4667
4668 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4669 MENU_ITEMS_ITEM_.*.
4670 (MENU_ITEMS_ITEM_HELP): New enumerator.
4671 (push_menu_item): Add parameter HELP. Record help in menu_items.
4672 (single_menu_item, single_submenu, list_of_items): Call
4673 push_menu_item with new parameter.
4674 (single_submenu): Set help string in widget value.
4675 (menu_highlight_callback): New function.
4676 (set_frame_menubar): Call lw_create_widget with new
4677 parameter list.
4678 (xmenu_show, xdialog_show): Ditto.
4679
3139018f
GM
46802000-01-13 Gerd Moellmann <gerd@gnu.org>
4681
4682 * sound.c (Fplay_sound): Improve doc string.
4683
83c8f461
RS
46842000-01-11 Richard M. Stallman <rms@gnu.org>
4685
4686 * lisp.h (set_internal): Enter the new arg.
4687
4688 * eval.c (specbind): Record buffer-local variables specially,
4689 indicating which buffer's binding was saved.
4690 (unbind_to): Restore buffer-local variables specially
4691 in the proper buffer.
4692
4693 * data.c (set_internal): New arg BUF.
427ec082 4694
83c8f461
RS
4695 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4696 * data.c (Fset): Pass new arg to set_internal.
4697 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4698
1fab1775
GM
46992000-01-11 Gerd Moellmann <gerd@gnu.org>
4700
4701 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4702 xprintsym.
4703
83c8f461 47042000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4705
4706 * minibuf.c (Ftry_completion): Doc fix.
4707
7a85e4df
GM
47082000-01-11 Gerd Moellmann <gerd@gnu.org>
4709
4710 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4711 vector, too.
4712
a970dae4
AS
47132000-01-11 Andreas Schwab <schwab@suse.de>
4714
4715 * coding.c (code_convert_region): Initialize total_skip.
4716
c65d14ee
DL
47172000-01-08 Dave Love <fx@gnu.org>
4718
4719 * eval.c (Fuser_variable_p): Check customizability too.
4720
834938d2
GM
47212000-01-07 Gerd Moellmann <gerd@gnu.org>
4722
4723 * minibuf.c (Fcompleting_read): Doc fix.
4724
e0303cd6
GM
47252000-01-05 Gerd Moellmann <gerd@gnu.org>
4726
8a26744b
GM
4727 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4728 -L /usr/local/lib.
4729
e0303cd6
GM
4730 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4731 Check that input style is supported before trying to create an
4732 IC for it.
4733 (x_window): Call x_create_im.
427ec082 4734
2e471eb5
GM
47352000-01-04 Gerd Moellmann <gerd@gnu.org>
4736
560a7bd2
GM
4737 * xfns.c (current_gif_memory_src): New variable.
4738 (gif_load): Record the address of the current memory source
4739 in current_gif_memory_src.
4740 (gif_read_from_memory): Use current_gif_memory_src.
4741
f9ee84a3
GM
4742 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4743 macros statement form.
4744
d1299cde
GM
4745 * sound.c (struct sound): Renamed from struct sound_file.
4746 (struct sound): Add members `data' and `header_size'.
4747 (enum sound_attr): Add SOUND_DATA.
4748 (current_sound, current_sound_device): Variables renamed from
4749 sound_file and sound_device.
4750 (parse_sound): Parse :data.
4751 (parse_sound): Handle sound data in strings.
4752 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4753 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4754 needed header size.
4755 (wav_play, au_play): Play sounds from string data.
4756
2e471eb5
GM
4757 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4758
4759 * lisp.h: Add prototype for allocate_string_data.
4760
4761 * alloc.c (Fgarbage_collect): Return number of live and free
4762 strings.
4763
4764 * alloc.c (mark_buffer): Remove code in #if 0.
4765 (gc_sweep): Ditto.
4766 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4767 (strings_consed): New variable.
4768 (allocate_string): Set it.
4769 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4770 (Fmemory_use_counts): Return strings_consed. Use Flist.
4771
4772 * alloc.c: General cleanup in comments etc. Remove conditional
4773 compilation for `standalone'.
4774
4775 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4776
4777 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4778 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4779 (DONT_COPY_FLAG): Removed.
4780 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4781 (struct sdata, struct sblock): New
4782 (struct string_block): Rewritten.
4783 (STRINGS_IN_STRING_BLOCK): New macro.
4784 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4785 (large_sblocks, string_blocks, string_free_list): New variables.
4786 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4787 (init_strings): Rewritten.
4788 (allocate_string, allocate_string_data, compact_small_strings)
4789 (free_large_strings, sweep_strings): New functions.
4790 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4791 (struct string_block_head, current_string_block)
4792 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4793 (STRING_PAD): Removed.
4794 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4795 (Fgarbage_collect): Don't set mark bit in large strings.
4796 (mark_object): Mark strings differently. Mark symbol names
4797 differently.
4798 (survives_gc_p): Test marked strings differently.
427ec082 4799 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4800 symbol names.
4801 (compact_strings): Removed.
4802
42608ba8
EZ
48032000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4804
4805 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4806 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4807
e0a09e1a
KH
48082000-01-04 Kenichi Handa <handa@etl.go.jp>
4809
dd9f0750 4810 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4811 in a non-empty buffer.
dd9f0750 4812
3c0f3b15 4813 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4814
44cd3ae5
GM
48152000-01-03 Gerd Moellmann <gerd@gnu.org>
4816
4817 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4818 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4819
4820 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4821
c182a70f
EZ
48222000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4823
4824 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4825 need to test for MSDOS frames.
4826
24480d5b
EZ
48272000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4828
4829 * dosfns.c (unspecified_colors): Remove.
4830 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4831 unspecified_bg.
4832 (msdos_stdcolor_name): Return strings for unspecified fore- and
4833 back-ground colors.
4834
4835 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4836 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4837 (tty_color_name): Return Lisp strings for unspecified fore- and
4838 back-ground colors.
4839 (Finternal_set_lisp_face_attribute): Remove the special treatment
4840 for Qunspecified_{f,b}g.
4841 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4842 string.
4843
047f434a
GM
48442000-01-03 Gerd Moellmann <gerd@gnu.org>
4845
4846 * xdisp.c (reseat_at_next_visible_line_start): Position before
4847 newline only if ending up on a newline.
4848 (next_element_from_ellipsis): Return success. Handle case of
4849 displaying no ellipsis. Fix case of ellipsis defined in display
4850 table.
4851 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4852 returns 0.
4853
d684c676
EZ
48542000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4855
4856 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4857 (Fcolor_supported_p): Renamed from face-color-supported-p.
4858
5fe1d139
EZ
48592000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4860
4861 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4862 list of colors renamed to tty-defined-color-alist.
4863 (tty_color_name): Pass the frame to tty-color-by-index.
4864 (realize_tty_face): tty-color-alist is now a function which
4865 accepts the frame as argument.
4866
4867 * term.c (Ftty_display_color_p): Accept an optional argument
4868 FRAME.
4869
816be8b8
EZ
48702000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4871
4872 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4873 encode_terminal_code.
4874
b635321e
EZ
48752000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4876
4877 * dispnew.c (mode_line_string): Support termcap frames as well.
4878
9b784e96
GM
48792000-01-01 Gerd Moellmann <gerd@gnu.org>
4880
27189709
GM
4881 * syntax.c (Fforward_word): Undo previous change.
4882
4883 * editfns.c (Fconstrain_to_field): Don't constrain if
4884 inhibit-field-text-motion is non-nil.
4885 (Fline_beginning_position): Undo previous change.
4886 (Fline_end_position): Ditto.
4887
4888 * syntax.c (Fforward_word): Notice field boundaries only if
4889 inhibit-field-text-motion is nil.
4890
4891 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4892
4893 * editfns.c (Vinhibit_field_text_motion): New variable.
4894 (inhibit-field-text-motion): New DEFVAR_LISP.
4895 (Fline_beginning_position, Fline_end_position): Notice field
4896 boundaries only if inhibit-field-text-motion is nil.
4897
45158a91
GM
4898 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4899 All calls adjusted.
4900 (x_build_heuristic_mask): Likewise.
4901 (xbm_load_image_from_file): Change error output.
4902 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4903 (gif_load, gs_load, x_kill_gs_process): Ditto.
4904
9b784e96
GM
4905 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4906 color indices when accessing raster pixels.
63cec32f
GM
4907 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4908 one of :file or :data.
4909 (enum pbm_keyword_index): Add PBM_DATA.
4910 (pbm_format): Add :data.
4911 (pbm_image_p): Allow either :file or :data.
4912 (pbm_read_file): New function.
4913 (pbm_scan_number): Rewritten to read from string.
4914 (pbm_load): Support :data.
9b784e96 4915
5ad6a5fb
GM
49161999-12-31 Gerd Moellmann <gerd@gnu.org>
4917
4918 * xfns.c: New image functions adapted to Emacs conventions.
4919 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4920 variable `file'.
4921
63448a4d
WP
49221999-12-31 William M. Perry <wmperry@aventail.com>
4923
4924 * xfns.c (jpeg_format): Added the :data keyword
4925 (jpeg_image_p): JPEG is valid with :file _or_ :data
4926 (jpeg_memory_src): Defined new JPEG image source to read from a
4927 memory buffer.
4928 (jpeg_load): Pay attention to the :data keyword if specified.
4929 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4930 found.
4931 (png_format): Added the :data keyword
4932 (png_image_p): PNG is valid with :file _or_ :data
4933 (png_read_from_memory): New PNG read function to read from a
4934 memory buffer.
4935 (png_load): Pay attention to the :data keyword if specified. Uses
4936 png_set_read_fn() instead of png_init_io() if specified.
4937 (tiff_format): Added the :data keyword for TIFF images.
4938 (tiff_image_p): TIFF is valid with :file _or_ :data
4939 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4940 from a memory buffer.
4941 (tiff_load): Pay attention to the :data keyword if specified.
4942 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4943 (gif_format): Added the :data keyword
4944 (gif_image_p): GIF is valid with :file _or_ :data
4945 (gif_read_from_memory): New GIF input function to read from a
4946 memory buffer.
c65d14ee 4947 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4948 instead of DGifOpenFileName() if specified.
4949
c880678e
GM
49501999-12-31 Gerd Moellmann <gerd@gnu.org>
4951
4952 * xdisp.c (next_element_from_buffer): Change assertion at the end
4953 because it doesn't hold when there's an overlay string at the end
4954 from which we deliver an image.
4955
8ccb9a54
EZ
49561999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4957
4958 * msdos.c (IT_update_begin): Don't dereference members of struct
4959 window for deleted windows.
4960
12ce2351
GM
49611999-12-30 Gerd Moellmann <gerd@gnu.org>
4962
a915c648
GM
4963 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4964 a hook, and the hook has a non-nil `no-self-insert' property, let
4965 the return value of the hook specify whether an expansion took
4966 place. If it returns nil, no expansion has been performed.
4967
12ce2351
GM
4968 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4969 differently.
4970
04ee4f45
EZ
49711999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4972
4973 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4974
7f4bc0c3
EZ
49751999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4976
4977 * dispnew.c (mode_line_string): Support MS-DOS frames.
4978
dac204bc
GM
49791999-12-29 Gerd Moellmann <gerd@gnu.org>
4980
4981 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4982
7b712ad8
KH
49831999-12-29 Kenichi Handa <handa@etl.go.jp>
4984
4985 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4986 to signal_after_change.
4987
adb9900f
EZ
49881999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4989
41ad069b
EZ
4990 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4991 dimensions changed, invalidate the mouse highlight info.
4992 (disable_mouse_highlight, help_echo, previous_help_echo): New
4993 variables.
4994 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4995 (fast_find_position, IT_note_mode_line_highlight)
4996 (IT_note_mouse_highlight): New functions.
4997 (IT_update_begin): If the redisplay affects the window where the
4998 mouse highlight is, clear the highlight. If the frame where the
4999 highlight was displayed was killed, invalidate the highlight
5000 info.
5001 (IT_update_end): Reset the highlight flag. Reset the mouse
5002 highlight-defer flag.
5003 (IT_frame_up_to_date): New function, if mouse highlight was
5004 deferred due to GC, do it now.
5005 (internal_terminal_init): Initialize mouse-highlight related
5006 members of the_only_x_display. Assign IT_frame_up_to_date to
5007 frame_up_to_date_hook.
5008 (dos_rawgetc): If the mouse moved, update mouse highlight. If
5009 help_echo changed value, generate a HELP_EVENT event.
5010 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
5011
adb9900f
EZ
5012 * msdos.h (struct display_info): New.
5013 (struct x_output): Add the display_info member.
5014 (FRAME_X_DISPLAY_INFO): New macro.
5015
481b5054
GM
50161999-12-28 Gerd Moellmann <gerd@gnu.org>
5017
5018 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
5019 if MODIFF > 1.
6448a6b3 5020 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
5021
5022 * buffer.c (modify_overlay): Always compute unchanged info.
5023
a2882b0d
KH
50241999-12-27 Kenichi Handa <handa@etl.go.jp>
5025
5026 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
5027
89ba5b5f
KH
50281999-12-27 Kenichi Handa <handa@etl.go.jp>
5029
5030 The following changes are to use more bits for face IDs.
5031
5032 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
5033 lowest 8 bits are single byte character code, the bits above are
5034 face ID.
481b5054 5035 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 5036 above.
481b5054
GM
5037 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
5038 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
5039
5040 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
5041 of GLYPH_MASK_CHAR.
5042
5043 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
5044 of GLYPH_MASK_CHAR.
5045
5046 * dispextern.h (struct glyph): Make face_id and padding_p the top
5047 level members. Change members in union `u'.
5048 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
5049 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
5050 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
5051 (CHAR_GLYPH_PADDING_P): Likewise.
5052 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
5053 characters.
5054
481b5054 5055 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
5056 for the change of struct glyph.
5057 (line_draw_cost): Adjusted for the change of
5058 GLYPH_FROM_CHAR_GLYPH.
5059 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
5060
5061 * term.c (encode_terminal_code): Adjusted for the change of struct
5062 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 5063 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
5064 change of struct glyph.
5065
5066 * xdisp.c: All codes adjusted for the change of struct glyph.
5067
5068 * xterm.c: All codes adjusted for the change of struct glyph.
5069
5bcd116c
KH
50701999-12-27 Kenichi Handa <handa@etl.go.jp>
5071
5072 * composite.h (struct composition): Change the order of declaring
5073 members to reduce the byte size of the structure.
5074
f21b06b7
GM
50751999-12-25 Gerd Moellmann <gerd@gnu.org>
5076
5077 * search.c (looking_at_1): Reset immediate_quit before modifying
5078 global data.
5079
e36557c9
KH
50801999-12-24 Kenichi Handa <handa@etl.go.jp>
5081
5082 * process.c (read_process_output): Fix the arg FROM to
5083 update_compositions.
5084
83c8f461 50851999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
5086
5087 * search.c (Freplace_match): For nonliteral replacement in buffer,
5088 construct all the new text first, then insert all at once.
5089
0b863bd9
DL
50901999-12-22 Dave Love <fx@gnu.org>
5091
5092 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5093
6d8e8ef3
GM
50941999-12-22 Gerd Moellmann <gerd@gnu.org>
5095
28d7281d
GM
5096 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5097 lead to size changes to after the X window has been created.
5098
e22ef6eb 5099 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
5100 variable in xassert.
5101
8affcced
KH
51021999-12-22 Kenichi Handa <handa@etl.go.jp>
5103
5104 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 5105 only when the frame is not for a window system.
8affcced 5106
f2be1146
GM
51071999-12-22 Gerd Moellmann <gerd@gnu.org>
5108
deca1348
GM
5109 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5110 redisplay after changing the multibyteness of a buffer.
5111
f2be1146
GM
5112 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5113 frame's X window to XFilterEvent instead of None because that's
5114 the X window for which the IC was created. This makes dead
5115 accents work when the pointer is not in Emacs' frame.
5116 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5117
a744a2ec
DL
51181999-12-20 Dave Love <fx@gnu.org>
5119
5120 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5121
9e6985ed
GM
51221999-12-19 Gerd Moellmann <gerd@gnu.org>
5123
5124 * eval.c (debugger_may_continue): New variable.
5125 (syms_of_eval): Add a DEFVAR_BOOL for it.
5126 (call_debugger): Bind it.
5127
3b620731
EZ
51281999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5129
5130 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5131 fp->tty_reverse_p is set, unless the computed colors are identical
5132 to frame colors. Print both original and computed colors to
5133 termscript file.
5134 (IT_write_glyphs): Track the changes in handling of composite
5135 characters.
5136 (IT_set_frame_parameters): Don't set frame colors from
5137 unspecified-fg and unspecified-bg pseudo-colors.
5138
0f9a51c4
DL
51391999-12-17 Dave Love <fx@gnu.org>
5140
5141 * data.c (Fkeywordp): New function.
5142 (syms_of_data): Install it.
5143
363e4e42
EZ
51441999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5145
5146 * xfaces.c (tty_defined_color): Fix last change.
5147
cfad01b4
GM
51481999-12-15 Gerd Moellmann <gerd@gnu.org>
5149
5150 * xdisp.c (redisplay_window) <optional new window start>: Check
5151 that window start is in [BEGV..ZV].
5152
f9d2fdc4
EZ
51531999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5154
5155 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5156 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5157
5158 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5159 (syms_of_xfaces): Initialize and staticpro them.
5160 (tty_defined_color): If the color name is unspecified-fg or
5161 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5162 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5163 (tty_color_name): If the color pixel value is either
5164 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5165 Qunspecified_fg or Qunspecified_bg, respectively.
5166 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5167 and Qunspecified_bg for foreground and background colors.
5168 (realize_default_face): If the foreground and background colors
5169 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5170 (realize_tty_face): By default, set the face colors to
5171 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5172 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5173 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5174 Reverse the colors if the default colors were reversed.
5175
5176 * dispnew.c (init_display): Initialize the frame pixels of the
5177 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5178 FACE_TTY_DEFAULT_BG_COLOR.
5179
5180 * term.c (turn_on_face): If the default fore- and background
5181 colors are reversed, enter inverse video mode. Don't send color
5182 escape sequences for unspecified foreground and background colors.
5183 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5184
5185 * dosfns.c (unspecified_colors): New variable.
5186 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5187 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5188 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5189 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5190 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5191 Qunspecified_bg, respectively.
5192
5193 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5194 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5195
e19539f1
KH
51961999-12-15 Kenichi Handa <handa@etl.go.jp>
5197
5198 * coding.c (code_convert_region): Fix the secoding arg to
5199 update_compositions.
5200
5ec14d3c
KH
52011999-12-15 Kenichi Handa <handa@etl.go.jp>
5202
5203 The following changes are for the new composition mechanism. We
5204 have deleted `composition' charset and composite characters,
5205 instead introduced a special text property `composition'.
5206
5207 * Makefile.in (INTERVAL_SRC): Include composite.h.
5208 (INTERVAL_OBJ): Include composite.o.
5209 (SOME_MACHINE_OBJECTS): Include composite.o.
5210 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5211 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5212 Depend on composite.h.
5213 (doc.o): Depend on charset.h.
5214 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5215 (composite.o): New target.
427ec082 5216
5ec14d3c
KH
5217 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5218
5219 * callproc.c (Fcall_process): Call code_convert_string to encode
5220 arguments. Use CODING_REQUIRE_DECODING to check if the process
5221 output should be decoded.
5222
5223 * casefiddle.c: Include composite.h.
5224 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5225 multibyte character. Adjusted for the change of CHAR_STRING.
5226 (casify_region): Likewise. Call update_compositions.
5227
5228 * category.h (CATEGORY_SET): Delete codes for a composite
5229 character.
5230
5231 * category.c (word_boundary_p): Delete codes for a composite
5232 character.
5233 (Fmake_category_table): New function.
5234 (syms_of_category): Defsubr it.
5235
5236 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5237 (ccl_driver): Delete codes for a composite character.
5238
5239 * charset.h: In this entry, just `Modified' means that codes for a
5240 composite character is deleted.
5241 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5242 (charset_composition) (MIN_CHAR_COMPOSITION)
5243 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5244 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5245 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5246 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5247 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5248 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5249 Modified.
5250 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5251 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5252 non_ascii_char_to_string.
5253 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5254 (STRING_CHAR_AND_LENGTH): Likewise.
5255 (FETCH_CHAR_ADVANCE): New macro.
5256 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5257 (MAX_MULTIBYTE_LENGTH): New macro.
5258 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5259 (find_charset_in_str): Argument adjusted.
5260 (CHAR_LEN): Modified.
427ec082 5261
5ec14d3c
KH
5262 * charset.c: In this entry, just `Modified' means that codes for a
5263 composite character is deleted.
5264 (Qcomposition) (leading_code_composition)
5265 (charset_composition) (min_composite_char) (cmpchar_table)
5266 (cmpchar_table_size) (n_cmpchars): Deleted.
5267 (SPLIT_COMPOSITE_SEQ): Deleted.
5268 (SPLIT_MULTIBYTE_SEQ): Modified.
5269 (char_to_string): Renamed from non_ascii_char_to_string.
5270 Modified.
5271 (string_to_char): Renamed from string_to_non_ascii_char.
5272 (split_string): Renamed from split_non_ascii_string.
5273 (char_printable_p) (Fsplit_char)
5274 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5275 (char_bytes) (Fchar_width) (strwidth): Modified.
5276 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5277 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5278 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5279 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5280 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5281 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5282 (Fcmpchar_cmp_count): Deleted.
5283 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5284 (init_charset_once): Modified.
5285 (syms_of_charset): Modified.
5286
5287 * cmds.c (internal_self_insert): Adjusted for the change of
5288 CHAR_STRING.
5289
5290 * coding.h (emacs_code_class_type): Delete the member
5291 EMACS_leading_code_composition.
5292 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5293 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5294 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5295 (COMPOSING_WITH_RULE_P): Macros deleted.
5296 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5297 macros.
5298 (struct composition_data): New structure.
5299 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5300 (struct coding_system): New members composition_rule_follows,
5301 cmp_data, cmp_data_start, cmp_data_index.
5302 (coding_save_composition) (coding_free_composition_data)
5303 (coding_adjust_composition_offset): Extern them.
5304
5305 * coding.c: Include composite.h.
5306 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5307 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5308 of multibyte code here.
5309 (DECODE_CHARACTER_DIMENSION2): Likewise.
5310 (detect_coding_emacs_mule): Change the case label from
5311 EMACS_leading_code_composition to 0x80.
5312 (detect_coding_iso2022): Handle new composition sequence.
5313 (DECODE_ISO_CHARACTER): Likewise.
5314 (check_composing_code): Deleted.
5315 (coding_allocate_composition_data): New function.
5316 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5317 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5318 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5319 (decode_coding_iso2022): Handle new composition sequence.
5320 (ENCODE_ISO_CHARACTER): Don't check composition here.
5321 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5322 (ENCODE_COMPOSITION_NO_RULE_START)
5323 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5324 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5325 (ENCODE_COMPOSITION_FAKE_START): New macro.
5326 (encode_coding_iso2022): Handle new composition sequence.
5327 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5328 (encode_coding_sjis_big5): Ignore composition.
5329 (setup_coding_system): Initialize new members of struct
5330 coding_system. Enable composition only when the coding system has
5331 `composition' property t.
5332 (coding_free_composition_data) (coding_adjust_composition_offset)
5333 (coding_save_composition) (coding_restore_composition): New
5334 functions.
5335 (code_convert_region): Call coding_save_composition for encoding
5336 and coding_allocate_composition_data for decoding. Don't skip
5337 ASCII characters if we handle composition on encoding. Call
5338 signal_after_change with Check_BORDER.
5339 (code_convert_string): Call coding_save_composition for encoding
5340 and coding_allocate_composition_data for decoding. Don't skip
5341 ASCII characters if we handle composition on encoding.
5342 (code_convert_string1): Set Vlast_coding_system_used after calling
5343 code_convert_string.
5344 (code_convert_string_norecord): Disable composition.
5345 (Fset_terminal_coding_system_internal): Likewise.
5346 (Fset_safe_terminal_coding_system_internal): Likewise.
5347 (Fset_keyboard_coding_system_internal): Likewise.
5348 (init_coding_once): Set emacs_code_class[0x80] to
5349 EMACS_invalid_code.
5350
5351 * composite.h: New file.
5352
5353 * composite.c: New file.
5354
5355 * data.c (Faref): Delete codes for a composite character..
5356 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5357
5358 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5359 (struct glyph): Add new sub-structure cmp to the union `u'.
5360 (enum display_element_type): New member IT_COMPOSITION.
5361 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5362 (struct it): New members cmp_id, cmp_len.
5363
5364 * dispnew.c (direct_output_forward_char): Check point moving into
5365 or out of a composition. If so, give up direct method.
5366
5367 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5368
5369 * editfns.c (Fchar_to_string): Adjusted for the change of
5370 CHAR_STRING.
5371 (general_insert_function): Likewise.
5372 (Finsert_char): Likewise.
5373 (Fsubst_char_in_region): Likewise. Call update_compositions.
5374 (Ftranslate_region): Call update_compositions.
5375 (Ftranspose_regions): Call update_compositions.
5376
5377 * emacs.c (main): Call syms_of_composite.
5378
5379 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5380 CHAR_STRING.
5381 (Finsert_file_contents): Set Vlast_coding_system_used before
5382 calling signal_after_change. Call update_compositions if some
5383 texts are inserted..
5384 (Fwrite_region): Adjusted for the change of a_write and e_write.
5385 (a_write): Argument changed. Work based on character position,
5386 not byte position.
5387 (e_write): Argument changed. Handle new way of composition.
5388
5389 * fns.c (Flength): The length of char-table is MAX_CHAR.
5390 (concat): Adjusted for the change of CHAR_STRING.
5391 (Ffillarray): Adjusted for the change of CHAR_STRING.
5392 (Fset_char_table_default): Delete codes for a composite character.
5393 (hash_put): Return hash index.
5394
5395 * fontset.h (struct font_info): New member vertical_centering.
5396 (Vvertical_centering_font_regexp): Extern it.
5397
5398 * fontset.c (Vvertical_centering_font_regexp): New variable.
5399 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5400 Set Vignore_relative_composition to nil.
5401 (fs_load_font): Initialize `vertical_centering' of struct
5402 font_info.
5403
5404 * indent.c (check_composition): New function.
5405 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5406 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5407 (current_column_1): Handle new way of composition.
5408 (Fmove_to_column): Likewise.
5409 (compute_motion): Likewise.
5410
5411 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5412 (insert_char): Likewise.
5413 (insert): Call update_compositions.
5414 (insert_and_inherit): Likewise.
5415 (insert_before_markers): Likewise.
5416 (insert_before_markers_and_inherit): Likewise.
5417 (insert_from_string): Likewise.
5418 (insert_from_string_before_markers): Likewise.
5419 (insert_from_buffer): Likewise.
5420 (replace_range): Likewise.
5421 (count_combining_composition): Deleted.
5422 (count_combining_before): Delete codes for a composite character.
5423 (count_combining_after): Likewise.
5424 (del_range_1): Call update_compositions.
5425 (del_range_byte): Likewise.
5426 (del_range_both): Likewise.
5427 (Fcombine_after_change_execute): Likewise.
5428
5429 * intervals.h: Include composite.h.
5430 (get_property_and_range): Extern it.
5431 (Vtext_property_default_nonsticky): Extern it.
427ec082 5432
5ec14d3c
KH
5433 * intervals.c (adjust_intervals_for_insertion): To check stickines
5434 of properties, pay attention to text-property-default-nonsticky.
5435 (merge_properties_sticky): Likewise.
5436 (get_property_and_range): New function.
5437
5438 * keyboard.c (Vdisable_point_adjustment): New variable.
5439 (Vglobal_disable_point_adjustment): New variable.
5440 (syms_of_keyboard): Declare them as Lisp variables.
5441 (command_loop_1): Check them and call adjust_point_for_property if
5442 necessary.
5443 (adjust_point_for_property): New function.
5444
5445 * keymap.c (push_key_description): Adjusted for the change of
5446 CHAR_STRING.
5447 (Ftext_char_description): Likewise.
5448
5449 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5450 (hash_put): Adjusted for the change of the definition.
5451 (signal_after_change): Likewise.
5452 (check_point_in_composition): Extern it.
5453
5454 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5455 Delete a code that handles an invalid too-long multibyte sequence
5456 because we are now sure that we never encounter with such a
5457 sequence.
5458 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5459 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5460 (init_obarray): Likewise.
5461 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5462
5463 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5464
5465 * process.c: Include composite.h.
5466 (read_process_output): Call update_compositions.
5467
5468 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5469
5470 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5471
5472 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5473 character.
5474
5475 * term.c (encode_terminal_code): Delete codes for a composite
5476 character. Adjusted for the change of CHAR_STRING.
5477 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5478 Delete codes for a composite character.
5479
5480 * textprop.c (Vtext_property_default_nonsticky): New variable
5481 (syms_of_textprop): Declare it as a Lisp variable.
5482
5483 * window.c (Frecenter): Clear all caches of compositions.
5484
5485 * xdisp.c (it_props): Add an entry for composition.
5486 (face_before_or_after_it_pos): For composition, check face of a
5487 character after the composition.
5488 (handle_composition_prop): New function.
5489 (get_next_display_element): Adjusted for the change of
5490 CHAR_STRING.
5491 (set_iterator_to_next): Handle the case that it->method ==
5492 next_element_from_composition.
5493 (next_element_from_composition): New function.
5494 (message_dolog): Adjusted for the change of CHAR_STRING.
5495 (set_message_1): Likewise.
5496 (check_point_in_composition): New function.
5497 (reconsider_clip_changes): If point moved into or out of
5498 composition, set b->clip_changed to 1 to force updating of the
5499 screen.
5500 (disp_char_vector): Delete codes for a composite character.
5501 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5502
5503 * xfaces.c (choose_face_fontset_font): Delete codes for a
5504 composite character.
5505 (realize_x_face): Likewise. Change a place to set local variable
5506 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5507
5508 * xfns.c: Include intervals.h.
5509 (syms_of_xfns): Make `display' property nonsticky by default.
5510
5511 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5512 for find_charset_in_str.
5513
5514 * xterm.h (struct x_output): Change member font_baseline to
5515 baseline_offset.
5516
5517 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5518 for composition.
5519 (x_append_composite_glyph): New function.
5520 (VCENTER_BASELINE_OFFSET): New macro.
5521 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5522 of struct it for the composition. Cache pixel offsets in the
5523 struct composition. Delete codes for a composite character.
5524 Handle Vignore_relative_composition in composition code.
5525 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5526 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5527 (x_compute_glyph_string_overhangs): Likewise.
5528 (x_get_glyph_overhangs): Delete codes for a composite character.
5529 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5530 (x_draw_glyph_string_background): Likewise. Delete codes for
5531 checking s->gidx for a composition.
5532 (x_draw_glyph_string_foreground): Delete code for a composite
5533 character.
5534 (x_draw_composite_glyph_string_foreground): New function.
5535 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5536 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5537 (struct work): Deleted.
5538 (x_fill_composite_glyph_string): Argument changed. Mostly
5539 rewritten for that.
5540 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5541 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5542 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5543 (BUILD_GLYPH_STRINGS): For composition, call
5544 BUILD_COMPOSITE_GLYPH_STRING.
5545 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5546 f->output_data.x->font_baseline.
5547
c3c60f13
GM
55481999-12-14 Gerd Moellmann <gerd@gnu.org>
5549
5550 * xterm.c (show_mouse_face): Don't use updated_area, use
5551 TEXT_AREA.
5552
83c8f461 55531999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5554
5555 * minibuf.c (Fall_completions): Doc fix.
5556
83c8f461 55571999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5558
5559 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5560 has been changed by the Lisp code.
5561
d8eccf12
GM
55621999-12-12 Gerd Moellmann <gerd@gnu.org>
5563
5564 * xfns.c: Indentation fixes.
5565
ae56feae
SM
55661999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5567
5568 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5569
dfa1c6ae
GM
55701999-12-10 Gerd Moellmann <gerd@gnu.org>
5571
5572 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5573 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5574
5575 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5576 to frame.h.
5577
ec18280f
SM
55781999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5579
5580 * keyboard.c (Qratio): New symbol.
5581 (scroll_bar_parts): Add `Qratio' to it.
5582 (syms_of_keyboard): Init `Qratio'.
5583 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5584 * xterm.c (#includes): Allow compilation with only Xaw.
5585 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5586 (xt_action_hook): Replace XAW3D by XAW.
5587 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5588 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5589 Determine epsilon dynamically and don't try to be too clever.
5590 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5591 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5592 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5593 scrollbar (using `ratio').
5594 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5595 scrollbar we have so as to set it up more optimally and to fix
5596 xaw3d_arrow_scroll and xaw3d_pick_top.
5597 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5598 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5599 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5600 is not ignored, using a major gross hack.
5601 (x_initialize): Init default values for xaw3d_arrow_scroll and
5602 xaw3d_pick_top.
5603
83b6d970
DL
56041999-12-09 Dave Love <fx@gnu.org>
5605
5606 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5607
3648c842
GM
56081999-12-08 Gerd Moellmann <gerd@gnu.org>
5609
5610 * eval.c: Remove conditional compilation on `standalone'.
5611 (call_debugger): When entering the debugger while redisplaying,
5612 reset redisplaying_p, and go back to the top-level if the debugger
5613 returns.
5614
05e71564
GM
56151999-12-07 Gerd Moellmann <gerd@gnu.org>
5616
5617 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5618 basic faces are realized before trying to use face `menu'.
5619
5620 * window.c (delete_window): Block input for the time window
5621 matrices are being changed.
5622
b46cd536
DL
56231999-12-07 Dave Love <fx@gnu.org>
5624
5625 * lread.c (Fintern_soft): Fix newlines in doc string.
5626
96acb1f7
GM
56271999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5628
5629 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5630 duplicate definition of ElfW.
5631 (find_section): Copied from unexsgi.c.
5632 (unexec): Use find_section. Adjust whitespace. Initialize
5633 new_data2_offset based on old_data, not sbss (this fixes a bug on
5634 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5635 Adjust test for presence of .mdebug section to the new return
5636 value of find_section.
427ec082 5637
96acb1f7
GM
56381999-12-07 Gerd Moellmann <gerd@gnu.org>
5639
5640 * unexelf.c: Merge changes from 20.5.
5641 (unexec): Handle .lit4 and .lit8 unconditionally.
5642
5643 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5644 unexsgi.o again.
427ec082 5645
96acb1f7
GM
5646 * m/iris5d.h (UNEXEC): Likewise.
5647
7dae4502
SM
56481999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5649
5650 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5651 (syms_of_editfns): Register it.
5652 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5653 (del_range_1, del_range_2): Add a ret_string argument to
5654 request that the deleted text be returned.
5655 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5656 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5657 * casefiddle.c (casify_region): Update del_range_1 call.
5658 * coding.c (code_convert_region): Update del_range_2 call.
5659 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5660
397e4fae
GM
56611999-12-06 Gerd Moellmann <gerd@gnu.org>
5662
5663 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5664
3d973f71
GM
56651999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5666
5667 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5668
740e985f
EZ
56691999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5670
5671 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5672
5673 * insdel.c (adjust_markers_for_delete): Fix last change.
5674
2d764c78
EZ
56751999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5676
5677 Changes for automatic remapping of X colors on terminal frames:
5678
5679 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5680 frames.
5681 (Vface_tty_color_alist): Remove.
5682 (tty_defined_color): New function.
5683 (defined_color): Rewrite to support any type of frame.
5684 (tty_color_name): New function.
5685 (face_color_supported_p, Fface_color_gray_p,
5686 Fface_color_supported_p): Support non-X frames.
5687 (load_color): Enclose the color name in quotes, in the log
5688 messages. Remove DOS-specific version of load_color.
5689 (realize_tty_face): Take the supported colors from
5690 tty-color-alist. Support translation of X colors to the closest
5691 tty color, for both MSDOS and tty frames.
5692 [MSDOS]: Don't invert face colors if they were taken from the
5693 frame colors.
5694 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5695
5696 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5697 Define a mostly empty surrogate.
5698 (tty_display): Declare.
5699
5700 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5701 tty_display.
5702 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5703 frames when the frame's param_alist includes 'reverse.
5704 (tty_display): Define.
5705 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5706 output_data.x member.
5707 (Fframe_parameters): Return foreground and background color names
5708 on tty frames as well, in addition to MSDOS frames.
5709
5710 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5711 selected_frame.
5712 (struct x_output): Remove unused members; document who uses each
5713 member.
5714 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5715 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5716 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5717 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5718 unused macro definintions.
5719
5720 * msdos.c (IT_set_frame_parameters): Don't call
5721 recompute_basic_faces, the next redisplay will, anyway.
5722 (x_current_display): Remove unused variable.
5723 Many functions: changes for Lisp_object selected_frame.
5724 (IT_set_face): If the tty_reverse_p flag is set for the face,
5725 reverse the foreground and background colors.
5726 (Fmsdos_remember_default_colors): New function.
5727 (syms_of_msdos): Defsubr it.
5728 (IT_set_frame_parameters): Use initial_screen_colors[] when
5729 creating a new frame. If the frame parameters include 'reverse,
5730 swap the foreground and background colors.
5731 (internal_terminal_init): Initialize initial_screen_colors to -1.
5732 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5733 cus-start.el.
5734
5735 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5736
5737 * xfns.c (x_defined_color): Rename from defined_color. All
5738 callers changed.
5739 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5740 all callers changed.
5741 (Fxw_color_values): Renamed from Fx_color_values; all callers
5742 changed.
5743 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5744 callers changed.
5745 (x_window_to_frame, x_any_window_to_frame,
5746 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5747 x_top_window_to_frame): Use !FRAME_X_P instead of
5748 f->output_data.nothing.
5749 * xterm.h (x_defined_color): Rename from defined_color.
5750
5751 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5752 f->output_data.nothing.
5753 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5754 all callers changed.
5755 (Fxw_color_values): Renamed from Fx_color_values; all callers
5756 changed.
5757 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5758 callers changed.
5759
5760 * dispextern.h (tty_color_name): Add prototype.
5761
5762 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5763 f->output_data.nothing.
5764 * w32menu.c (menubar_id_to_frame): Likewise.
5765 * w32term.h (w32_output): Declare.
5766
5767 * dosfns.c (Qmsdos_color_translate): Remove.
5768 (msdos_stdcolor_name): Now returns a Lisp_Object.
5769 * dosfns.h (Qmsdos_color_translate): Remove.
5770
5771 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5772
b3e5232e
KH
57731999-12-06 Kenichi Handa <handa@etl.go.jp>
5774
5775 * fileio.c (decide_coding_unwind): Renamed from
5776 set_auto_coding_unwind.
5777 (Finsert_file_contents): Make single unwind protect to call both
5778 Vset_auto_coding_function and Ffind_operation_coding_system.
5779
5780 * insdel.c (adjust_markers_for_delete): Make it non-static.
5781
db0e466c
SM
57821999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5783
5784 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5785 operators and handle them properly.
5786 * regex.h (RE_ALL_GREEDY): New option.
5787 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5788 sorting would put it.
5789 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5790 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5791
22afa6e8
DL
57921999-12-04 Dave Love <d.love@dl.ac.uk>
5793
5794 * m/arm.h: New file.
5795
40afb967
DL
57961999-12-03 Dave Love <fx@gnu.org>
5797
5798 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5799
ddf8eff5
GM
58001999-12-02 Gerd Moellmann <gerd@gnu.org>
5801
5802 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5803 for building with Motif.
5804
5805 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5806 unexelf.o.
427ec082 5807
ddf8eff5
GM
5808 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5809
fa09a82d
DL
58101999-12-01 Dave Love <fx@gnu.org>
5811
5812 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5813
ddf8eff5
GM
58141999-11-28 Gerd Moellmann <gerd@gnu.org>
5815
5816 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5817 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5818 macros.
5819
5820 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5821
fa09a82d
DL
58221999-11-28 eliz <eliz@dlpx1>
5823
5824 * emacs.c (synchronize_locale): Avoid compiler warnings about
5825 pointer type mismatch.
5826
f9632fc8
GM
58271999-11-28 Gerd Moellmann <gerd@gnu.org>
5828
717d0121
GM
5829 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5830 out of range position.
5831
427ec082 5832 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5833 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5834
59c65f1e
EZ
58351999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5836
613a8346
EZ
5837 * charset.c (Fmake_char_internal): Print the charset ID when
5838 signalling an error.
5839
59c65f1e
EZ
5840 * emacs.c (synchronize_locale): Avoid compiler warnings about
5841 pointer type mismatch.
5842
83c8f461 58431999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5844
5845 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5846
18df9369
GM
58471999-11-26 Gerd Moellmann <gerd@gnu.org>
5848
65a3ccf7
GM
5849 * puresize.h (BASE_PURESIZE): Increase to 550000.
5850
b3b98592
GM
5851 * textprop.c (set_text_properties): New function. Like
5852 Fset_text_properties, but with additional parameter
5853 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5854 changes.
5855 (Fset_text_properties): Use it.
5856
5857 * insdel.c (insert_1_both): Call set_text_properties with last
5858 parameter nil so that no after changes will be signaled.
5859
5860 * lisp.h: Add prototype for set_text_properties.
5861
18df9369
GM
5862 * xfaces.c (set_lface_from_font_name): Fix previous change.
5863 (recompute_basic_faces): Change assert to abort.
5864
71a8e74b
DL
58651999-11-25 Dave Love <fx@gnu.org>
5866
5867 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5868 (Fmember, Fdelq, Fdelete): Inline car.
5869 (Fy_or_n_p): Doc fix.
5870
bc6a5782
GM
58711999-11-25 Gerd Moellmann <gerd@gnu.org>
5872
3221576b 5873 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5874 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5875 is not set, try to use a reasonable default.
5876
bc6a5782
GM
5877 * dispnew.c (direct_output_for_insert): Set glyph row's
5878 displays_text_p flag. Correct window's window_end_vpos if
5879 necessary.
5880
0c8559bb
PE
58811999-11-25 Paul Eggert <eggert@twinsun.com>
5882
5883 * emacs.c (fixup_locale): Don't bother to record initial locale.
5884 (synchronize_locale): If the desired locale is nil,
5885 treat it as if it were the empty string,
5886 so that we set the locale from the environment.
5887
35737351
KH
58881999-11-25 Kenichi Handa <handa@etl.go.jp>
5889
5890 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5891 of the current buffer via Fset.
5892
5562b47f
DL
58931999-11-24 Dave Love <fx@gnu.org>
5894
5562b47f
DL
5895 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5896
5897 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5898
00da0e4a
GM
58991999-11-24 Gerd Moellmann <gerd@gnu.org>
5900
5901 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5902
5903 * emacs.c (PVEC_FLAG): New variable.
5904
b1775dc1
GM
59051999-11-23 Gerd Moellmann <gerd@gnu.org>
5906
5907 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5908 that fails on IBM PowerPC, AIX 4.2.
427ec082 5909
08de6200
EZ
59101999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5911
5912 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5913 string of mode-line-format. Remove the obsolete %t.
5914
02fda8ff
GM
59151999-11-22 Gerd Moellmann <gerd@gnu.org>
5916
f2fa858f
GM
5917 * dispnew.c (direct_output_for_insert): Increment glyph positions
5918 for glyphs from buffer text only.
5919
02fda8ff
GM
5920 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5921 (gdb_data_seg_bits): New variables.
427ec082 5922
02fda8ff
GM
5923 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5924 work on systems not allowing enumerators > INT_MAX, and it
5925 won't work if EMACS_INT is long long.
5926
1b0d24e7
PE
59271999-11-22 Paul Eggert <eggert@twinsun.com>
5928
5929 Port to SunOS 4.1.x again. Help out with Alpha port.
5930 Rename messages-locale to system-messages-locale,
5931 and likewise for time-locale.
427ec082 5932
1b0d24e7
PE
5933 * callproc.c (strerror): Remove decl.
5934 * fileio.c (strerror): Likewise.
5935 * process.c (strerror): Likewise.
5936 * emacs.c (strerror): Likewise.
5937 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5938 All uses changed.
5939 (Vprevious_system_messages_locale): Likewise, from
5940 Vprevious_messages_locale.
5941 (Vsystem_time_locale): Likewise, from Vtime_locale.
5942 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5943 (ABORT_RETURN_TYPE): New macro.
5944 (abort): Return type is now ABORT_RETURN_TYPE.
5945 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5946 defined.
5947 (syms_of_emacs): messages-locale -> system-messages-locale,
5948 previous-messages-locale -> previous-system-messages-locale,
5949 time-locale -> system-time-locale,
5950 previous-time-locale -> previous-system-time-locale.
5951
5952 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5953 (const): Do not define; that's config.h's job.
5954 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5955 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5956 (<stddef.h>): Include if STDC_HEADERS is defined.
5957 (FREE_RETURN_TYPE): New macro.
5958 (free): Return type is now FREE_RETURN_TYPE.
5959
5960 * lisp.h (synchronize_system_time_locale): Renamed from
5961 synchronize_time_locale. All uses changed.
5962 (synchronize_system_messages_locale): Likewise, from
5963 synchronize_messages_locale.
5964
5965 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5966 stdlib.h now does this.
5967
5968 * process.c (sys_siglist): Remove.
5969
5970 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5971 New macros.
5972
5973 * syntax.c (scan_sexps_forward): Use abort, not assert.
5974
5975 * sysdep.c (my_sys_siglist): New var.
5976 (sys_siglist): New macro. Remove old initialized vars of same name.
5977 (init_signals): Initialize sys_siglist.
5978
5979 * xfns.c (abort): Remove decl; stdlib.h now does this.
5980
0dcd5b54
DL
59811999-11-18 Dave Love <fx@gnu.org>
5982
946173ad
DL
5983 * filelock.c: Add forward declaration for get_boot_time_1.
5984
0dcd5b54
DL
5985 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5986
71447e8f
GM
59871999-11-18 Gerd Moellmann <gerd@gnu.org>
5988
5989 * buffer.h (struct buffer_text): Add comment about moving
5990 buffer text if REL_ALLOC is defined.
5991
eeedff63
KH
59921999-11-18 Kenichi Handa <handa@etl.go.jp>
5993
5994 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5995
5996 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5997 memory for push_key_description.
5998
5999 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
6000 allocate memory for push_key_description.
6001 (describe_buffer_bindings): Likewise.
6002
5d7e4a2c
GM
60031999-11-17 Gerd Moellmann <gerd@gnu.org>
6004
6005 * xfns.c (Fx_show_busy_cursor): Doc-fix.
6006 (Fx_hide_busy_cursor): Ditto.
6007
60081999-11-17 Marco Walther <walther@siemens-pyramid.com>
6009
6010 * unexsni.c (unexec): Handle .rel.dyn section.
6011
b5b41e02
DL
60121999-11-16 Dave Love <fx@gnu.org>
6013
6014 * doc.c (Fdocumentation): Remove gcpro here too.
6015
e35b6123
GM
60161999-11-16 Gerd Moellmann <gerd@gnu.org>
6017
6018 * keyboard.c (command_loop_1): Remove no_redisplay.
6019
83c8f461 60201999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
6021
6022 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
6023 in noninteractive.
6024
b05d3bee
GM
60251999-11-14 Gerd Moellmann <gerd@gnu.org>
6026
5bcfeb49
GM
6027 * xdisp.c (ensure_echo_area_buffers): New.
6028 (with_echo_area_buffer): Use it.
6029 (setup_echo_area_for_printing): Ditto.
6030
b05d3bee
GM
6031 * buffer.c (indicate-empty-lines): Doc-fix.
6032
9b2e6e4c
GM
60331999-11-12 Gerd Moellmann <gerd@gnu.org>
6034
e7f90eab
GM
6035 * term.c (term_init): If "op" isn't available, don't support color
6036 because we can't switch back to the default foreground and
6037 background.
6038
9b2e6e4c
GM
6039 * doc.c (Fdocumentation_property): Remove GCPRO because
6040 Fsubstitute_command_keys gcpro's the string.
6041
1bf21027
KH
60421999-11-12 Kenichi Handa <handa@etl.go.jp>
6043
6044 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
6045
3bc6df53
GM
60461999-11-11 Gerd Moellmann <gerd@gnu.org>
6047
6048 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
6049 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
6050 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
6051
35a5514b
GM
60521999-11-10 Gerd Moellmann <gerd@gnu.org>
6053
6054 * xfns.c (QCuser_data): Removed.
6055 (syms_of_xfns): Initialization of QCuser_data removed.
6056 (parse_image_spec): Don't handle :user-data specially. Allow
6057 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
6058 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
6059 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
6060 parse_image_spec accordingly.
6061
83c8f461 60621999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6063
6064 * cmds.c (Fbeginning_of_line): Doc fix.
6065 (Fend_of_line): Doc fix.
6066
6067 * editfns.c (Fline_beginning_position): If N is not 1,
6068 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
6069
6070 * syntax.c (Fforward_word): Handle fields even if would have hit
6071 an edge of the buffer. Return nil if affected by fields.
6072
83c8f461 60731999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6074
6075 * editfns.c (preceding_pos): Function deleted.
6076 (text_property_stickiness): Decrement POS directly.
6077 Fix a confusion that used PT instead of POS.
6078
6079 * editfns.c (find_field): Properly handle the case
6080 of a field boundary where `field' inherits from neither side.
6081
6082 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6083 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6084
fa9aabf6
GM
60851999-11-08 Gerd Moellmann <gerd@gnu.org>
6086
6087 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6088 BEFORE_POTENTIAL_GC before DISCARD.
6089
4015b3c0
GM
60901999-11-07 Gerd Moellmann <gerd@gnu.org>
6091
033a5fa3
GM
6092 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6093
6094 * lisp.h: Add prototype for unmark_byte_stack.
6095
6096 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6097 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6098 XUNMARK.
6099
55b064bd
GM
6100 * xdisp.c (resize_mini_window): Fix computation of needed
6101 mini-window height.
6102
6103 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6104 compilation on USE_TEXT_PROPERTIES.
01e9b9df 6105
4015b3c0 6106 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 6107 locally there. Rearrange case statements so that those most
4015b3c0
GM
6108 frequently executed come first. Avoid goto's in frequently
6109 executed cases.
6110
fe512f27
GM
61111999-11-05 Gerd Moellmann <gerd@gnu.org>
6112
dd59e217
GM
6113 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6114 AFTER_POTENTIAL_GC around internal_catch.
6115
bcf28080
GM
6116 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6117 relocate_byte_pcs.
6118 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6119
6120 * eval.c (struct catchtag): Add member byte_stack.
6121 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 6122 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
6123 catchtag.
6124 (unwind_to_catch): Restore byte_stack_list from catchtag.
6125
6126 * lisp.h: Add prototypes for new functions in bytecode.c.
6127 Add extern declaration for byte_stack_list.
6128
6129 * bytecode.c (struct byte_stack): New.
6130 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6131 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6132 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6133 (HANDLE_RELOCATION): Removed.
6134 (Fbyte_code): Use byte_stack structures.
6135
4d59c34c
GM
6136 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6137
fe512f27
GM
6138 * buffer.c (syms_of_buffer): Extend documentation of
6139 mode-line-format.
6140
60b64cd6
GM
61411999-11-04 Gerd Moellmann <gerd@gnu.org>
6142
6143 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6144
6145 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6146 Ferase_field instead of Fdelete_field.
6147
b51b619b
GM
61481999-11-03 Gerd Moellmann <gerd@gnu.org>
6149
6150 * dispnew.c (Finternal_show_cursor): Change it to set the
6151 cursor on/off, not toggle its state.
6152 (Finternal_show_cursor_p): New.
6153 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6154
5865af0d
DL
61551999-11-03 Dave Love <fx@gnu.org>
6156
6157 * charset.c (split_non_ascii_string): Define return value.
6158
82a700f3
GM
61591999-11-03 Gerd Moellmann <gerd@gnu.org>
6160
edfef199
GM
6161 * minibuf.c (string_to_object): New.
6162 (read_minibuf_noninteractive): New.
6163 (read_minibuf): Call read_minibuf_noninteractive if
6164 noninteractive. Use string_to_object.
6165
82a700f3
GM
6166 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6167
b5540f0d
DL
61681999-11-02 Dave Love <fx@gnu.org>
6169
e69dcd60
DL
6170 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6171
827a1788
DL
6172 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6173 declared with glibc2.
b5540f0d 6174
a69a6e61
GM
61751999-11-02 Gerd Moellmann <gerd@gnu.org>
6176
6177 * lisp.h (QUIT): Give it statement form.
6178
87e21fbd
DL
61791999-11-02 Dave Love <fx@gnu.org>
6180
6181 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6182
1b335865
GM
61831999-11-02 Gerd Moellmann <gerd@gnu.org>
6184
9fb5e03d
GM
6185 * xfns.c (QCuser_data): New.
6186 (syms_of_xfns): Initialize QCuser_data.
6187 (parse_image_spec): Ignore :user-data DATA properties.
6188
1b335865
GM
6189 * xdisp.c (display_line): Set charpos of first glyph in blank
6190 lines not corresponding to any text to -1, even if no glyphs are
6191 filled in in that line.
6192
e76f1c44
GM
61931999-11-01 Gerd Moellmann <gerd@gnu.org>
6194
427ec082 6195 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
6196 png_get_sRGB in #ifdef.
6197
111259b4
GM
6198 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6199 (syms_of_display): Use the new name.
6200
dd5c96e8
GM
6201 * textprop.c (verify_interval_modification): Signal text-read-only
6202 instead of calling error.
6203
db8878fb
GM
6204 * data.c (Qtext_read_only): New built-in error.
6205 (syms_of_data): Initialize it.
6206
6207 * lisp.h: Add extern declaration for Qtext_read_only.
6208
e76f1c44
GM
6209 * syntax.c: Remove whitespace after open or in front of closing
6210 parentheses.
6211
83c8f461 62121999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6213
6214 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6215
7843e09c
GM
62161999-10-31 Gerd Moellmann <gerd@gnu.org>
6217
575ed805
GM
6218 * xdisp.c (resize_mini_window): Compute needed height differently.
6219
7843e09c
GM
6220 * fns.c (Flength): Unroll loop over lists.
6221
6222 * xdisp.c (append_space): Return non-zero if space was appended.
6223 (display_line): Set charpos of first glyph to -1 only if that
6224 glyph is the space added by append_glyph.
6225
83c8f461 62261999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6227
6228 * print.c (strout): Consider `noninteractive' and use stdout
6229 only when PRINTCHARFUN is t.
6230
6231 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6232 (gcpro_level): Declare it extern.
6233 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6234 Alternate definitions that set `level' and increment `gcpro_level'.
6235 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6236
6237 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6238 (init_eval) [DEBUG_GCPRO]: Initialize it.
6239 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6240 from remaining gcprolist.
6241
3636f7a3
KH
62421999-10-29 Kenichi Handa <handa@etl.go.jp>
6243
6244 * coding.c (code_convert_region): Update `dst' correctly.
6245
a2ad7096
GM
62461999-10-28 Gerd Moellmann <gerd@gnu.org>
6247
6248 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6249 (Frassoc): Rewritten.
6250
1e3196e8
GM
62511999-10-27 Noah Friedman <friedman@splode.com>
6252
6253 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6254 Define PTY_NAME_SPRINTF.
6255 Redefine PTY_TTY_NAME_SPRINTF.
6256 * config.in: Add undef for HAVE_DEV_PTMX.
6257
83c8f461 62581999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6259
6260 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6261 as arg to DEBUG_POP and DEBUG_PRINT.
6262
83c8f461 62631999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6264
6265 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6266 (Ffset): Call Qad_activate_internal.
6267 (syms_of_data): Initialize Qad_activate_internal.
6268
26922151
GM
62691999-10-27 Gerd Moellmann <gerd@gnu.org>
6270
6271 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6272 Vterminal_frame is selected and Vwindow_system is non-nil.
6273
67a5596f
GM
62741999-10-26 Gerd Moellmann <gerd@gnu.org>
6275
2bea706b
GM
6276 * xdisp.c (echo_area_display): Put previous change in #if 0.
6277
67a5596f
GM
6278 * emacs.c (standard_args): Add `file' as synonym for `visit',
6279 `execute' as synonym for `eval'.
6280 (main): Add new options to usage message.
6281
81dc5de5
GM
62821999-10-25 Gerd Moellmann <gerd@gnu.org>
6283
6284 * data.c (Qhash_table): New.
6285 (Ftype_of): Return it for hash tables.
6286 (syms_of_data): Initialize Qhash_table.
6287
83c8f461 62881999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6289
6290 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6291
66e4690f 62921999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6293
7539e11f
KR
6294 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6295 lisp.h.
6296
6297 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6298 Fbuffer_local_variables, Fother_buffer, record_buffer,
6299 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6300 swap_out_buffer_local_variables, overlays_at, overlays_in,
6301 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6302 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6303 Foverlay_put, report_overlay_modification, evaporate_overlays):
6304 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6305 references.
6306 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6307 swap_in_symval_forwarding, set_internal, default_value,
6308 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6309 Fmake_variable_frame_local, Flocal_variable_p,
6310 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6311 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6312 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6313 * emacs.c (main): Likewise.
6314 * fontset.c (fs_load_font, fs_register_fontset,
6315 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6316 Fnew_fontset, Fset_fontset_font): Likewise.
6317 * frame.c (do_switch_frame, next_frame, prev_frame,
6318 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6319 Likewise.
6320 * keyboard.c (read_char, help_char_p, event_to_kboard,
6321 kbd_buffer_get_event, timer_start_idle, timer_check,
6322 make_lispy_event, apply_modifiers, reorder_modifiers,
6323 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6324 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6325 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6326 Fcommand_execute, Fexecute_extended_command): Likewise.
6327 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6328 Fall_completions): Likewise.
6329 * window.c (Fset_window_margins): Likewise.
6330
6331 * callint.c (quotify_args): Don't explicitly use struct
6332 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6333
3a7093d8
KR
6334 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6335 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6336 if __ELF__ is defined.
6337
2a3d7146
GM
63381999-10-24 Gerd Moellmann <gerd@gnu.org>
6339
6340 * window.c (Fnext_window): Add a QUIT in the loop.
6341
8ac52782
GM
63421999-10-23 Gerd Moellmann <gerd@gnu.org>
6343
427ec082 6344 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6345 New targets.
6346
05f0d15a
DL
63471999-10-22 Dave Love <fx@gnu.org>
6348
6349 * emacs.c (main): Enable profiling conditional on __linux also.
6350
882fb0e6
GM
63511999-10-20 Gerd Moellmann <gerd@gnu.org>
6352
6353 * xrdb.c (x_load_resources): Set default resources for resource
6354 classes instead of for the specific Emacs.
6355
b5f5bc31
GM
63561999-10-19 Gerd Moellmann <gerd@gnu.org>
6357
66f4dd69
GM
6358 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6359 defines it that way.
427ec082 6360
b5f5bc31
GM
6361 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6362 if selected_frame is equal to Vterminal_frame.
6363
68c45bf0 63641999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6365
68c45bf0 6366 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6367
68c45bf0
PE
6368 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6369 when dumping, so that the dumped Emacs doesn't have stray locale info.
6370 (dired.o): Depend on systime.h.
6371 (editfns.o): Depend on coding.h.
6372
6373 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6374 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6375 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6376 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6377 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6378 Include <config.h> before any system include files.
6379
6380 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6381 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6382 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6383 xmenu.c, xterm.c:
6384 Do not include <stdlib.h>, as <config.h> does this now.
6385
6386 * callproc.c (Fcall_process):
6387 Synchronize messages locale before invoking strerror.
6388 Decode resulting string with locale-coding-system.
6389
6390 * coding.c (Vlocale_coding_system): New var.
6391 (syms_of_coding): Adjust to above change.
6392 (emacs_strerror): New function.
6393
6394 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6395
68c45bf0
PE
6396 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6397 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6398 HAVE_STRSIGNAL): New macros.
6399 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6400 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6401
6402 * dired.c: Include "systime.h".
6403 (Ffile_attributes): Do not cast s.st_size to int; this loses
6404 information if int is 32 bits but st_size and EMACS_INT are larger.
6405 Treat large device numbers like large inode numbers.
6406
6407 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6408
6409 * editfns.c: Include coding.h.
6410 (emacs_strftime): Remove decl.
6411 (emacs_strftimeu): New decl.
6412 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6413 Use emacs_strftimeu instead of emacs_strftime.
6414 (Fformat_time_string): Convert format string using
6415 Vlocale_coding_system, and convert result back. Synchronize time
6416 locale before invoking lower level function. Invoke
6417 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6418
68c45bf0
PE
6419 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6420 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6421 Vprevious_time_locale): New variables.
6422 (main): Invoke setlocale early, so that initial error messages are
6423 localized properly. But skip locale-setting if LC_ALL is "C".
6424 Fix up locale when it's safe to do so.
6425 (fixup_locale): Moved here from xterm.c.
6426 (synchronize_locale, synchronize_time_locale,
6427 synchronize_messages_locale): New functions.
6428 (syms_of_emacs): Accommodate above changes.
6429
6430 * fileio.c (report_file_error): Convert strerror output according
6431 to Vlocale_coding_system.
6432 (Finsert_file_contents): Check for arithmetic overflow in
6433 computations that depend on file size. Report IO errors
6434 with emacs_strerror, not strerror.
6435
6436 * fns.c (Fgethash): Declare dflt parameter.
6437
6438 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6439 is defined; that's config.h's job.
6440
6441 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6442 default these values to long, BITS_PER_LONG, and unsigned long.
6443 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6444 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6445 (code_convert_string_norecord, fixup_locale,
6446 synchronize_messages_locale, synchronize_time_locale,
6447 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6448 All Emacs callers of open, close, read, write changed to use
6449 emacs_open, emacs_close, emacs_read, emacs_write.
6450
6451 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6452 changed to file_tell.
6453 (saved_doc_string_position, prev_saved_doc_string_position): Now
6454 of type file_offset.
6455 (init_lread): Do not fix locale here; fixup_locale now does this.
6456
6457 * m/amdahl.h, s/usg5-4.h:
6458 (NSIG): Remove.
6459 (NSIG_MINIMUM): New macro.
6460
6461 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6462 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6463 s/umips.h, s/usg5-4.h:
6464 (SIGIO): Do not undef.
6465 (BROKEN_SIGIO): New macro.
6466
6467 * m/ustation.h:
6468 (SIGTSTP): Do not undef.
6469 (BROKEN_SIGTSTP): New macro.
6470
6471 * s/gnu-linux.h:
6472 (SIGPOLL, SIGURG): Do not undef.
6473 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6474
6475 * s/ptx4.h:
6476 (SIGINFO): Do not undef.
6477 (BROKEN_SIGINFO): New macros.
427ec082 6478
68c45bf0
PE
6479 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6480
6481 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6482 some Emacs-related changes merged.
6483
6484 * print.c (float_to_string): Prepend "-" to representation of a
6485 NaN if the NaN is negative.
6486
6487 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6488 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6489
68c45bf0
PE
6490 * process.c (status_message, sigchld_handler): Synchronize locale,
6491 then use strsignal istead of sys_siglist.
6492 * w32proc.c (sys_wait): Likewise.
427ec082 6493
68c45bf0
PE
6494 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6495 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6496 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6497 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6498 (open, close, read, write, INTERRUPTIBLE_OPEN,
6499 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6500
6501 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6502
6503 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6504 sys_open, open): Remove.
6505 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6506 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6507 macros are no longer used.
6508 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6509 (emacs_close): Renamed from sys_close.
6510 (emacs_read): Renamed from sys_read.
6511 (emacs_write): Renamed from sys_write.
6512 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6513 (dup2): Do not print error on failure; the real dup2 doesn't.
6514 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6515
6516 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6517 is defined.
6518 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6519 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6520 (strsignal): Declare if !HAVE_STRSIGNAL.
6521
6522 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6523 (ElfW): Define in terms of ElfExpandBitsW.
6524
6525 * w32proc.c (sys_siglist): Remove decl.
6526
6527 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6528 with ANSI C.
6529 (display_string): Declare face_string_pos arg.
6530
6531 * xfns.c (Fx_show_tip): Declare timeout param.
6532
6533 * xterm.c: No need to include locale.h.
6534 (x_alloc_lighter_color, x_setup_relief_color):
6535 Pass arg as double, not float, for compatibility with ANSI C.
6536 (fixup_locale): Move to emacs.c.
6537 (x_term_init): Do not setlocale or fixup locale; the main program
6538 does this now.
6539
2f0b74ea
DL
65401999-10-18 Dave Love <fx@gnu.org>
6541
6542 * doc.c (Fdocumentation_property): Gcpro `tem'.
6543
471aa4a0
KH
65441999-10-18 Kenichi Handa <handa@etl.go.jp>
6545
6546 * lread.c (Fload): Calculate bytes of filename correctly.
6547 (openp): Likewise.
6548
aca2020b
KH
65491999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6550
6551 * print.c (print_preprocess): In case print-circle is nil,
6552 add OBJ to Vprint_number_table only when OBJ is a symbol.
6553
1f5fe392 65541999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6555
6556 * coding.c (code_convert_string): Add record_unwind_protect to
6557 assure setting inhibit_pre_post_conversion back to zero. Take
6558 care of the multibyteness of the working buffer.
6559
6560 * coding.c (inhibit_pre_post_conversion): New variable.
6561 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6562 ignore post-read-conversion and pre-write-conversion property of
6563 the coding system.
6564 (code_convert_region_unwind): New function.
6565 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6566 running pre-write-conversion and post-read-conversion.
6567 (code_convert_string): Likewise.
6568
cd876a91
GM
65691999-10-17 Miles Bader <miles@gnu.org>
6570
6571 * editfns.c: Doc fix.
6572
65731999-10-17 Miles Bader <miles@gnu.org>
6574
6575 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6576 argument preconditions of find_before_next_newline in the case
6577 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6578 was indeed at the edge.
6579
65801999-10-17 Miles Bader <miles@gnu.org>
6581
6582 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6583 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6584
6585 * editfns.c (text_property_eq, text_property_stickiness): Don't
6586 use initializers for auto variables of type Lisp_Object.
6587 (find_field): Likewise. Use braces around nested ifs.
6588 (Fline_end_position): Store the raw eol in a variable, so that the
6589 final expression doesn't look so ugly.
6590 (Fconstrain_to_field): Doc fix.
6591 (preceding_pos): Renamed from `preceeding_pos'.
6592 (text_property_stickiness, find_field): Call preceding_pos,
6593 not preceeding_pos.
6594
65951999-10-17 Miles Bader <miles@gnu.org>
6596
6597 * editfns.c (Ffield_string_no_properties): New function.
6598 (text_property_stickiness, preceeding_pos): New functions.
6599 (Ffield_string): Remove PROPS parameter.
6600 (find_field): Add MERGE_AT_BOUNDARY parameter.
6601 Rewrite to use stickiness of `field' property to resolve
6602 ambiguous cases.
6603 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6604 (Fconstrain_to_field): Likewise.
6605 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6606 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6607 Supply new MERGE_AT_BOUNDARY argument to find_field.
6608 (Fline_beginning_position, Fline_end_position): Supply new
6609 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6610 Pass a value of Qt for the ONLY_IN_LINE argument to
6611 Fconstrain_to_field (only matters if N != 1).
6612 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6613 to Fconstrain_to_field.
6614
6615 * minibuf.c (Fminibuffer_complete_word): Use
6616 Ffield_beginning to find the prompt end.
6617
66181999-10-17 Miles Bader <miles@gnu.org>
6619
6620 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6621 behavior when NEW_POS is nil.
6622 (find_field): Use XSETFASTINT instead of make_number.
6623 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6624 input string by seeing where the field begins, instead of
6625 looking at text-properties.
6626
66271999-10-17 Miles Bader <miles@gnu.org>
6628
6629 * editfns.c (Qfield): New variable.
6630 (find_field, Ferase_field, Ffield_string,
6631 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6632 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6633 (make_buffer_string_both): Remove minibuffer-prompt hack.
6634 (syms_of_editfns): Initialize Qfield, and subr entries for
6635 field functions above.
6636 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6637 minibuf_save_list.
6638 Don't initialize minibuffer prompt length.
6639 Wrap prompt text-properties around the entire prompt.
6640 Add 'prompt text-property to prompt.
6641 Get final value with Ffield_string instead of make_buffer_string.
6642 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6643 minibuf_save_list.
6644 (do_completion): Get minibuffer input with Ffield_string
6645 instead of Fbuffer_string.
6646 Erase minibuffer input with Ferase_field instead of erase_buffer.
6647 (Fminibuffer_complete_and_exit): Likewise.
6648 Test whether buffer is empty by looking for the 'prompt text
6649 property at the end.
6650 Set prompt length by looking for the end of the prompt text property,
6651 and save prompt length for later use (since there is no longer a
6652 buffer variable to get it from).
6653 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6654 (syms_of_minibuf): Remove initializations of
6655 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6656 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6657 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6658 Don't initialize prompt_end_charpos field.
6659 * syntax.c (Fforward_word): Likewise.
6660 Constrain to any field.
6661
3f6f7508
GM
66621999-10-16 Gerd Moellmann <gerd@gnu.org>
6663
6664 * window.c (enum save_restore_action): New.
6665 (save_restore_orig_size): Change parameter list. Add
6666 functionality to check for valid orig_top and orig_height members
6667 in a window tree.
6668 (grow_mini_window): Call save_restore_orig_size with new parameter
6669 list.
6670 (shrink_mini_window): Restore old window sizes only if old
6671 size information is valid in all windows in a window tree.
427ec082 6672
06482119
GM
66731999-10-15 Gerd Moellmann <gerd@gnu.org>
6674
2710454d
GM
6675 * xmenu.c (set_frame_menubar): Don't call
6676 x_set_menu_resources_from_menu_face here.
6677 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6678
06482119
GM
6679 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6680
17fa2837
DL
66811999-10-14 Dave Love <fx@gnu.org>
6682
6683 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6684
45f93416
GM
66851999-10-14 Gerd Moellmann <gerd@gnu.org>
6686
6687 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6688 fails and h_errno is TRY_AGAIN.
6689
c765b723
DL
66901999-10-13 Dave Love <fx@gnu.org>
6691
6692 * filelock.c (lock_file): Move gcpro of `fn'.
6693
dace7f4e
GM
66941999-10-10 Gerd Moellmann <gerd@gnu.org>
6695
6696 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6697
83c8f461 66981999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6699
6700 * print.c (print): When removing objects from Vprint_number_table,
6701 only scan the newly added objects.
6702 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6703 unconditionally force it to stay in the table.
6704
85177c86
GM
67051999-10-09 Gerd Moellmann <gerd@gnu.org>
6706
6707 * xfns.c (prepare_image_for_display): Don't try to load image if
6708 loading it failed before.
6709 (lookup_image, prepare_image_for_display): Remember if loading the
6710 image failed.
6711 (xpm_load): Add missing UNBLOCK_INPUT.
6712
6713 * dispextern.h (struct image): New member load_failed_p.
6714
11e4de5d
SM
67151999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6716
f28eba7b 6717 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6718 in the docstring.
6719
f1da8f06
GM
67201999-10-08 Gerd Moellmann <gerd@gnu.org>
6721
6722 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6723 Don't call XSetInputFocus because that can generate additional
6724 FocusIn events.
427ec082 6725
c37bbd4f
GM
67261999-10-07 Jeffrey C Honig <jch@bsdi.com>
6727
6728 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6729
83c8f461 67301999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6731
6732 * process.c (wait_reading_process_input): When trying to suck
6733 input from one process, for accept-process-output,
6734 exit that loop if we get EAGAIN or EWOULDBLOCK.
6735
577d9e2f
GM
67361999-10-07 Gerd Moellmann <gerd@gnu.org>
6737
6738 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6739 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6740 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6741 Fpixmap_spec_p and Qpixmap_spec_p.
6742 (load_face_colors, check_lface_attrs,
6743 merge_face_vector_with_property,
6744 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6745 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6746 Fbitmap_spec_p.
6747
f5737ad2
GM
67481999-10-07 Gerd Moellmann <gerd@gnu.org>
6749
6750 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6751 MODE_LINE_FACE_ID.
6752
6753 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6754 (struct x_resources) [USE_X_TOOLKIT]: New.
6755 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6756 [USE_MOTIF]: New.
6757 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6758 [USE_LUCID]: New.
6759 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6760 (Qmenu): New.
6761 (syms_of_xfaces): Initialize Qmenu.
6762 (realize_basic_faces): Realize face `menu'.
6763 (resolve_face_name): New.
6764 (lface_from_face_name): Use it.
6765 (Finternal_set_lisp_face_attribute): Ditto.
6766 (Fpixmap_spec_p): Rewritten. Extend doc string.
6767
6768 * xmenu.c (set_frame_menubar, xmenu_show): Call
6769 x_set_menu_resources_from_menu_face.
6770
6771 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6772 (toplevel): Include X11/Intrinsic.h.
6773
6a1aa823
DL
67741999-10-03 Ken'ichi Handa <handa@gnu.org>
6775
6776 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6777 correctly.
6778
26901792
DL
67791999-09-30 Kenichi Handa <handa@etl.go.jp>
6780
6781 * category.c (modify_lower_category_set): Set default value of
6782 TABLE correctly.
6783
6784 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6785 size correctly.
6786
67871999-09-29 Gerd Moellmann <gerd@gnu.org>
6788
6789 * editfns.c (Fpropertize): Renamed from Fproperties.
6790
67911999-09-29 Gerd Moellmann <gerd@gnu.org>
6792
6793 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6794 frame that hasn't been initialized yet.
6795
83c8f461 67961999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6797
6798 * keymap.c (Fsingle_key_description): Make tem big enough.
6799 (describe_buffer_bindings): Make buf big enough.
6800
83c8f461 68011999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6802
6803 * intervals.c (get_local_map): Use indirect_function,
6804 not Findirect_function.
6805
26901792
DL
68061999-09-27 Dave Love <fx@gnu.org>
6807
6808 * cm.h: Remove unneeded declaration of ospeed.
6809
68101999-09-26 Gerd Moellmann <gerd@gnu.org>
6811
6812 * lisp.h (toplevel): Add prototype for
6813 next_single_char_property_change.
6814
6815 * textprop.c (next_single_char_property_change): New.
6816
6817 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6818 next_single_char_property_change.
6819
68201999-09-25 Gerd Moellmann <gerd@gnu.org>
6821
6822 * editfns.c (Fproperties): New.
6823 (syms_of_editfns): Defsubr it.
6824
6825 * xfns.c (lookup_image): Set image's timestamp because it's
6826 used when we look it up.
6827
68281999-09-23 Gerd Moellmann <gerd@gnu.org>
6829
6830 * window.c (enlarge_window): Add window parameter instead of using
6831 selected_window.
6832 (Fdisplay_buffer): Call it with window parameter instead of
6833 setting selected_window.
6834 (Fenlarge_window, Fshrink_window): Ditto.
6835 (shrink_mini_window): If there is no recorded height and position
6836 info, resize mini-window to height 1.
6837
6838 * xfns.c (image_error): Use add_to_log.
6839
6840 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6841 (load_face_font_or_fontset, load_color,
6842 merge_face_vector_with_property): Ditto.
6843
6844 * dispextern.h: Add prototype for add_to_log.
6845
6846 * xfaces.c (add_to_log): Move to xdisp.c.
6847
6848 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6849 parameter.
6850
68511999-09-23 Gerd Moellmann <gerd@gnu.org>
6852
6853 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6854 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6855
6856 * xdisp.c (resize_mini_window): Use grow_mini_window and
6857 shrink_mini_window.
6858
6859 * window.c (window_min_size): Add parameter ignore_fixed_p.
6860 (change_window_height): Call window_min_size with new parameter.
6861 (shrink_window_lowest_first, save_restore_orig_size,
6862 grow_mini_window, shrink_mini_window): New.
6863 (make_window, replace_window): Initialize orig_top and
6864 orig_height.
6865 (enlarge_window): Renamed from change_window_height. Make it
6866 static.
6867 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6868 enlarge_window instead of change_window_height.
6869
6870 * window.h (struct window): New members orig_top, orig_height.
6871 (toplevel): Add prototypes for grow_mini_window and
6872 shrink_mini_window. Remove prototype for change_window_height.
6873
68741999-09-21 Eli Zaretskii <eliz@gnu.org>
6875
6876 * frame.c (frame_name_fnn_p): Fix previous change.
6877
68781999-09-20 Gerd Moellmann <gerd@gnu.org>
6879
6880 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6881
6882 * dispnew.c (direct_output_for_insert): Cast arguments to
6883 safe_bcopy to char *.
6884
6885 * lread.c (readchar): Remove unused variables.
6886 (read_filtered_event, read1, Fmapatoms): Ditto.
6887 (toplevel): Include intervals.h.
6888
6889 * eval.c (Fsignal): Remove unused variables.
6890 (Fcommandp, do_autoload): Ditto.
6891
6892 * lisp.h: Add prototype for safe_bcopy, fatal.
6893
6894 * editfns.c (init_editfns): Remove unused variables.
6895 (Fgoto_char, Fchar_after, Fformat): Ditto.
6896 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6897
6898 * data.c (find_symbol_value): Remove unused variables.
6899 (Faref, Fstring_to_number): Ditto.
6900 (toplevel): Include stdio.h.
6901 (Fnumber_to_string): Cast XINT to long for %ld.
6902
6903 * casefiddle.c (casify_object): Remove unused variables.
6904 (casify_region): Ditto.
6905
427ec082 6906 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6907 conditinally compiled section in #ifdef.
6908 (toplevel): Include stdio.h.
6909
6910 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6911 keys_of_keymap, syms_of_keymap): Remove unused variables.
6912
69131999-09-20 Gerd Moellmann <gerd@gnu.org>
6914
6915 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6916 whose corresponding window rows have been disabled in
6917 try_window_id.
6918
69191999-09-20 Gerd Moellmann <gerd@gnu.org>
6920
6921 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6922 that window start is out of range.
6923 (handle_display_prop, handle_single_display_prop): Replace
6924 marginal area specifications like `left-margin' with `(margin
6925 left-margin)'.
6926 (Qmargin): New.
6927 (syms_of_xdisp): Initialize Qmargin.
6928
69291999-09-19 Gerd Moellmann <gerd@gnu.org>
6930
6931 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6932 describe_syntax, skip_chars): Remove unused variables.
6933 (back_comment, forw_comment): Add braces to if-statement with
6934 if-else as dependent statement.
6935
6936 * process.c (list_processes_1): Remove unused variables.
6937 (Fopen_network_stream, create_process): Add parentheses to
6938 conditional expressions.
6939 (create_process): Put declaration of sigchld in #if 0.
6940 (Fopen_network_stream): Removed unused variables.
6941 (Fopen_network_stream, wait_reading_process_input,
6942 wait_reading_process_input, send_process, send_process): Ditto.
6943 (toplevel): Add prototypes for set_waiting_for_input and
6944 keyboard_bit_set.
6945
6946 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6947
6948 * textprop.c (Fset_text_properties): Remove unused variables.
6949 (text_property_list, verify_interval_modification,
6950 interval_has_all_properties): Ditto.
6951
6952 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6953 (Fcall_process): Remove unused variable.
6954
6955 * keyboard.c (Frecursive_edit): Remove unused variable.
6956 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6957 timer_check, make_lispy_event, menu_bar_items,
6958 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6959 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6960 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6961 read_key_sequence): Ditto. Fread_key_sequence,
6962 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6963 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6964 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6965 (Fexecute_extended_command): Cast XINT to long for %ld.
6966 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6967 (toplevel): Include sys/types.h.
6968
6969 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6970 (toplevel): Add prototypes for stuff_char, and
6971 code_convert_string_norecord.
6972
69731999-09-19 Gerd Moellmann <gerd@gnu.org>
6974
6975 * buffer.h: Add prototype for r_re_alloc.
6976
6977 * insdel.c (copy_text): Removed unused variables.
6978 (count_combining_after, count_combining_after, insert_1_both,
6979 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6980 (adjust_after_replace, replace_range): Add parentheses to logical
6981 expressions. Remove unused variables.
6982 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6983 expression.
6984
6985 * alloc.c (Fgarbage_collect): Remove unused variable.
6986 (compact_strings): Add parentheses around assignments in
6987 conditional context.
6988 (toplevel): Put declaration of unused function clear_marks
6989 in #if 0 like its definition.
6990
6991 * lisp.h: Add prototype for shrink_regexp_cache,
6992 sweep_weak_hash_tables.
6993
69941999-09-19 Dave Love <fx@gnu.org>
6995
6996 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6997
6998 * doc.c (read_bytecode_char): Declare arg.
6999
7000 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
7001 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
7002
70031999-09-18 Richard Stallman <rms@gnu.org>
7004
7005 * xdisp.c (echo_area_display): Turn off code that returned
7006 without doing anything when using a terminal frame.
7007
83c8f461 70081999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
7009
7010 * unexelf.c (unexec): Don't get confused by a short section
7011 just before the bss section.
7012
26901792
DL
70131999-09-16 Gerd Moellmann <gerd@gnu.org>
7014
7015 * emacs.c (main): Remove unused variables.
7016 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
7017
7018 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
7019 init_fileio_once, syms_of_sound, init_xfns, init_fns
7020 init_sound, check_message_stack.
7021
7022 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
7023
7024 * intervals.c (rotate_right, rotate_left): Add braces to avoid
7025 ambiguous else warning.
7026 (split_interval_left): Remove unused variables.
7027 (previous_interval, adjust_intervals_for_deletion,
7028 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
7029 (icount, idepth, zero_length): Move into #if 0 section below
7030 original position where these are used.
7031
7032 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
7033
7034 * buffer.c (Fkill_buffer): Remove unused variables.
7035 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
7036 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
7037 init_buffer_once, (syms_of_buffer): Ditto.
7038
7039 * xrdb.c (get_fallback): Remove unused variable.
7040 (x_load_resources): Ditto. Put local variable used for Motif only
7041 in #ifdef USE_MOTIF.
7042
70431999-09-16 Gerd Moellmann <gerd@gnu.org>
7044
7045 * minibuf.c (read_minibuf): Remove unused variables.
7046 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
7047 (do_completion): Move assignment out of conditional context.
7048 (Fdisplay_completion_list): Add parentheses to conditional expression.
7049
7050 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
7051
7052 * lisp.h: Add prototype for no_switch_window.
7053
7054 * window.c (Fset_window_buffer): Remove unused variables.
7055 (Fset_window_margins): Ditto.
7056
7057 * xdisp.c (resize_mini_window): Temporarily set the selected
7058 window's or Vminibuf_scroll_window's height to "fixed" around
7059 the call the change_window_height.
7060
7061 * window.c (window_fixed_size_p): Check window's height_fixed_p
7062 flag.
7063
7064 * window.h (struct window): New member height_fixed_p.
7065
7066 * dispnew.c (direct_output_forward_char): Don't use this method
7067 if showing a message or a message was just cleared because we
7068 might need to resize the mini-window.
7069
70701999-09-16 Gerd Moellmann <gerd@gnu.org>
7071
7072 * frame.c (Fdelete_frame): Correct local variable pointing to
7073 selected frame after selecting new frame.
7074
70751999-09-15 Richard Stallman <rms@gnu.org>
7076
7077 * puresize.h (BASE_PURESIZE): Increase to 525000.
7078
7079 * filelock.c (Vtemporary_file_directory): New variable.
7080 (syms_of_filelock): Set up Lisp variable.
7081
70821999-09-15 Gerd Moellmann <gerd@gnu.org>
7083
7084 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7085 (encode_terminal_code): Remove unused variables.
7086 (turn_off_face): Ditto.
7087 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7088
7089 * dispnew.c (update_frame_line): If writing whole desired line,
7090 don't clear to end of line if already at the end.
7091
70921999-09-15 Gerd Moellmann <gerd@gnu.org>
7093
7094 * xdisp.c (resize_mini_window): Don't report changed window
7095 height if it actually hasn't changed.
7096
427ec082 7097 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
7098 unused variables.
7099 (mark_shell_size_user_specified): Put in #if 0 because not used.
7100 (create_frame_gcs): Put in #if 0 because currently unused.
7101 (first_frame_p): Ditto.
7102
7103 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7104 single_submenu, update_frame_menubar, set_frame_menubar,
7105 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7106 variables.
7107
7108 * print.c (PRINTFULLP): Removed because it is no longer used and
7109 is misleading.
7110 (Ferror_message_string): Remove unused variables.
7111 (print_object): Cast argument of sprintf to long for `%ld'
7112 specifier. Remove unused variable.
7113
71141999-09-14 Gerd Moellmann <gerd@gnu.org>
7115
7116 * sound.c (Fplay_sound): Remove usused variables.
7117 (be2hs): Put in #if 0 because it's currently not used.
7118
71191999-09-14 Ken Raeburn <raeburn@gnu.org>
7120
7121 * print.c (Ferror_message_string, print_error_message,
7122 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7123 member access.
7124
71251999-09-14 Gerd Moellmann <gerd@gnu.org>
7126
7127 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7128
7129 * frame.c (Fnext_frame): Remove unused variable(s).
7130 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7131 (store_frame_param): Add parentheses to conditional expression.
7132 (Fmodify_frame_parameters): Remove unused variables.
7133 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7134 Ditto.
7135
7136 * xfns.c (x_set_background_color): Remove unused variable(s).
7137 (x_set_border_pixel): Ditto.
7138 (x_set_menu_bar_lines): Put local variable used only for
7139 non-toolkit case in #ifdef/#endif.
7140 (x_figure_window_size): Remove unused variable(s).
427ec082 7141 (x_figure_window_size, x_window, lookup_image,
26901792
DL
7142 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7143 png_load, jpeg_load, gif_load, x_create_tip_frame,
7144 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7145
7146 * xterm.c (x_scroll_bar_handle_click): Compile only if
7147 not USE_TOOLKIT_SCROLL_BARS.
7148 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7149
7150 * dispextern.h: Add prototypes for gamma_correct and
7151 x_kill_gs_process.
7152
7153 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7154 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7155 x_set_toolkit_scroll_bar_thumb): Ditto.
7156 (x_scroll_bar_create): Move local variable to the
7157 conditionally compiled section of code where it is used.
7158 (x_scroll_bar_create): Remove unused variable(s).
7159 (x_scroll_bar_remove, XTread_socket): Ditto.
7160 (XTread_socket) <ConfigureNotify>: Move variables used for
7161 non-toolkit case into conditionally compiled section of code.
7162
7163 * window.h (freeze_window_starts): Fix typo in prototype.
7164
7165 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7166 variable(s).
7167
7168 * lisp.h: Add prototype for debug_print.
7169
7170 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7171 to use do-while.
7172
7173 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7174 (Fchar_table_range, Fset_char_table_default, mapcar1,
7175 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7176
7177 * lisp.h: Add prototype for getloadavg.
7178
71791999-09-14 Andreas Schwab <schwab@gnu.org>
7180
7181 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7182
7183 * lisp.h: Declare close_file_unwind.
7184
71851999-09-14 Richard Stallman <rms@gnu.org>
7186
7187 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7188
71891999-09-13 Gerd Moellmann <gerd@gnu.org>
7190
7191 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7192 is always set correctly.
7193
71941999-09-13 Dave Love <fx@gnu.org>
7195
7196 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7197 declaration.
7198
71991999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7200
7201 * xdisp.c (QCfile): Move here from xfns.c.
7202 (syms_of_xdisp): Initialize it.
7203 (message2_nolog): Change for Lisp_Object selected_frame.
7204 (message3_nolog, message_with_string, message,
7205 setup_echo_area_for_printing, truncate_echo_area,
7206 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7207
72081999-09-13 Dave Love <fx@gnu.org>
7209
7210 * xterm.c: Don't continue #define args for benefit of old cc.
7211 (xt_action_hook): Indent #error for benefit of K&R cc.
7212
72131999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7214
7215 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7216 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7217 (XRINGBELL): Removed.
7218
72191999-09-13 Dave Love <fx@gnu.org>
7220
7221 * xfns.c (x_put_x_image): Make type consistent with declaration.
7222
7223 * fns.c (Fmake_hash_table): Fix string continuation.
7224
72251999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7226
7227 * xfns.c (QCfile): Moved to xdisp.c.
7228 (syms_of_xfns): Don't initialize QCfile.
7229 (check_x_frame): Change for Lisp_Object selected_frame.
7230 (check_x_display_info, x_get_resource_string): Ditto.
7231
72321999-09-13 Gerd Moellmann <gerd@gnu.org>
7233
7234 * minibuf.c (choose_minibuf_frame): Don't try to set the
7235 mini-buffer window's buffer, if the buffer is invalid.
7236
7237 * xfns.c (QCfile): Moved to xdisp.c.
7238 (syms_of_xfns): Don't initialize QCfile.
7239
7240 * xdisp.c (QCfile): Move here from xfns.c.
7241 (syms_of_xdisp): Initialize it.
7242
7243 * lisp.h (selected_frame): Add external declaration.
7244
7245 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7246 (Fx_store_cut_buffer_internal): Ditto.
7247 (Fx_rotate_cut_buffers_internal): Ditto.
7248
7249 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7250 selected_frame.
7251 (Finternal_set_lisp_face_attribute): Ditto.
7252 (Finternal_get_lisp_face_attribute): Ditto.
7253 (Finternal_lisp_face_empty_p): Ditto.
7254 (Fdump_face): Ditto.
7255
7256 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7257 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7258 set_terminal_window, set_scroll_region, reassert_line_highlight,
7259 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7260 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7261 encode_terminal_code, write_glyphs, term_init): Ditto.
7262
7263 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7264 (kbd_input_ast, read_input_waiting): Ditto.
7265
7266 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7267 selected_frame.
7268 (read_minibuf): Ditto.
7269
7270 * keyboard.c (command_loop_1): Change for Lisp_Object
7271 selected_frame.
7272 (cmd_error_internal, command_loop_1, read_char,
7273 kbd_buffer_get_event, read_avail_input,
7274 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7275 interrupt_signal, quit_throw_to_read_char): Ditto.
7276
7277 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7278 (Ffontset_info): DItto.
7279
7280 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7281
7282 * dispnew.c (selected_frame): Make it a Lisp_Object.
7283 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7284 (direct_output_for_insert, direct_output_forward_char,
7285 init_display): Ditto.
7286
7287 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7288 selected_frame.
7289 (set_internal): Ditto.
7290
7291 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7292 (record_buffer): Ditto.
7293
7294 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7295 (do_switch_frame): Change for Lisp_Object selected_frame.
7296 (Fselected_frame): Ditto.
7297 (Fframe_first_window): Use SELECTED_FRAME.
7298 (Fframe_root_window): Change for Lisp_Object selected_frame.
7299 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7300 Fprevious_frame, other_visible_frames, Fdelete_frame,
7301 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7302 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7303 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7304 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7305 Fset_frame_height, Fset_frame_width): Ditto.
7306
73071999-09-13 Gerd Moellmann <gerd@gnu.org>
7308
7309 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7310 (message3_nolog, message_with_string, message,
7311 setup_echo_area_for_printing, truncate_echo_area,
7312 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7313
7314 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7315 (Fx_popup_dialog): Ditto.
7316
7317 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7318 (check_x_display_info, x_get_resource_string): Ditto.
7319
7320 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7321 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7322 (XRINGBELL): Removed.
7323
7324 * window.c (Fminibuffer_window): Change for Lisp_Object
7325 selected_frame.
7326 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7327 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7328 Fcurrent_window_configuration, init_window_once): Ditto.
7329
7330 * frame.h (SELECTED_FRAME): New.
7331
73321999-09-12 Ken Raeburn <raeburn@gnu.org>
7333
7334 * category.c (word_boundary_p): Use XCAR and XCDR.
7335 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7336 Fregister_code_conversion_map): Likewise.
7337 * coding.c (setup_coding_system, detect_coding_system,
7338 Ffind_operation_coding_system, Fset_coding_priority_internal):
7339 Likewise.
7340 * doc.c (get_doc_string, Fdocumentation,
7341 store_function_docstring): Likewise.
7342 * editfns.c (save_restriction_restore): Likewise.
7343 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7344 skip_debugger, find_handler_clause, Fautoload, Fapply,
7345 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7346 Likewise.
7347 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7348 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7349 Fread_file_name): Likewise.
7350 * filelock.c (unlock_all_files): Likewise.
7351 * insdel.c (Fcombine_after_change_execute): Likewise.
7352 * intervals.c (adjust_intervals_for_insertion): Likewise.
7353 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7354 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7355 store_in_keymap, Fcopy_keymap, define_as_prefix,
7356 current_minor_maps, Faccessible_keymaps,
7357 accessible_keymaps_char_table, Fkey_description,
7358 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7359 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7360 describe_map): Likewise.
7361 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7362 read_list, init_lread): Likewise.
7363 * search.c (Fmatch_data): Likewise.
7364 * sunfns.c (Fsun_menu_internal): Likewise.
7365 * syntax.c (describe_syntax): Likewise.
7366 * undo.c (record_insert, record_delete, Fundo_boundary,
7367 truncate_undo_list): Likewise.
7368 * vmsproc.c (child_sig): Likewise.
7369
7370 * editfns.c (Fformat): Use XFLOAT_DATA.
7371
73721999-09-12 Gerd Moellmann <gerd@gnu.org>
7373
7374 * keyboard.c (command_loop_1): Resize mini-window to the
7375 exact size of a message displayed, if any.
7376
7377 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7378 to exact size if exact_p is non-zero.
7379 (display_echo_area_1): Call resize_mini_window with
7380 new parameter.
7381 (redisplay_internal): Ditto.
7382 (resize_echo_area_axactly): New.
7383
7384 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7385 new parameter.
7386
7387 * dispextern.h: Change prototype of resize_mini_window.
7388 Add prototype for resize_echo_area_axactly.
7389
7390 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7391 (syms_of_xfaces): Defsubr accordingly.
7392
7393 * xdisp.c (hscroll_window_tree): Choose cursor row from
7394 desired or current matrix.
7395 (redisplay_internal): Hscroll before updating.
7396
73971999-09-12 Gerd Moellmann <gerd@gnu.org>
7398
7399 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7400 of minibuffer_prompt_length.
7401
7402 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7403 of minibuffer_prompt_length.
7404 (read_minibuf_unwind): Ditto.
7405 (Fminibuffer_complete_and_exit): Ditto.
7406 (Fminibuffer_complete_word): Ditto.
7407 (Fminibuffer_prompt_end): Ditto.
7408
7409 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7410 of minibuffer_prompt_length.
7411 (Fline_beginning_position): Ditto.
7412
7413 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7414 of minibuffer_prompt_length.
7415 (Fmake_indirect_buffer): Ditto.
7416 (Fkill_buffer): Ditto.
7417 (Ferase_buffer): Ditto.
7418
7419 * buffer.h (prompt_end_charpos): Replaces
7420 minibuffer_prompt_length.
7421
427ec082 7422 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7423 without the prompt.
7424
7425 * editfns.c (make_buffer_string_both): Take out the code
7426 to handle mini-buffer prompts.
7427 (Fbuffer_string): Handle the prompt here, instead.
7428
7429 * xfaces.c (lface_from_face_name): Resolve face aliases.
7430 (Qmode_line): Replaces Qmodeline.
7431 (realize_basic_faces): Use Qmode_line.
7432 (syms_of_xfaces): Initialize Qmode_line.
7433
74341999-09-12 Gerd Moellmann <gerd@gnu.org>
7435
7436 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7437 current column after inserting prompt.
7438 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7439
7440 * xfaces.c (Qframe_update_face_colors): New.
7441 (syms_of_xfaces): Initialize call.
7442 (update_face_from_frame_parameter): Call that function when
7443 the frame's background changes.
7444
74451999-09-12 Richard Stallman <rms@gnu.org>
7446
7447 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7448
74491999-09-12 Ken Raeburn <raeburn@gnu.org>
7450
7451 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7452 mark_object, mark_buffer): Use XCAR and XCDR.
7453 * bytecode.c (Fbyte_code): Likewise.
7454 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7455 Likewise.
7456 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7457 getenv_internal): Likewise.
7458 * dired.c (file_name_completion): Likewise.
7459 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7460 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7461 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7462 * indent.c (Fcompute_motion): Likewise.
7463 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7464 list_processes_1, Fstart_process, Fopen_network_stream,
7465 wait_reading_process_input, read_process_output_call,
7466 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7467 status_notify, wait_reading_process_input): Likewise.
7468 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7469 extend_property_ranges): Likewise.
7470 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7471 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7472 x_report_frame_params, x_set_cursor_type, x_icon_type,
7473 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7474 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7475 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7476 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7477 x_display_info_for_name, Fx_display_list): Likewise.
7478 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7479 Fx_popup_menu, Fx_popup_dialog): Likewise.
7480 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7481 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7482 w32_term_init, x_delete_display): Likewise.
7483 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7484 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7485 x_top_window_to_frame, x_set_frame_parameters,
7486 x_report_frame_params, x_set_cursor_type, x_icon_type,
7487 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7488 Fx_display_list, x_create_tip_frame): Likewise.
7489 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7490 Fx_popup_menu, Fx_popup_dialog): Likewise.
7491 * xselect.c (x_own_selection, x_get_local_selection,
7492 x_handle_selection_request, x_handle_selection_clear,
7493 x_clear_frame_selections, wait_for_property_change_unwind,
7494 wait_for_property_change, x_handle_property_notify,
7495 copy_multiple_data, x_get_foreign_selection,
7496 lisp_data_to_selection_data, clean_local_selection_data,
7497 x_handle_selection_notify, Fx_get_selection_internal,
7498 x_disown_buffer_selections): Likewise.
7499 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7500 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7501 Likewise.
7502
7503 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7504 XFLOAT_DATA.
7505 * bytecode.c (Fbyte_code): Likewise.
7506 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7507 fmod_float): Likewise.
7508
75091999-09-11 Richard Stallman <rms@gnu.org>
7510
7511 * xdisp.c (run_window_scroll_functions): If hook functions switch
7512 buffers, switch back after.
7513
75141999-09-11 Ken Raeburn <raeburn@gnu.org>
7515
7516 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7517 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7518 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7519 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7520 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7521 XCDR.
7522 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7523 XCDR.
7524
75251999-09-10 Richard Stallman <rms@gnu.org>
7526
7527 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7528 not RevertToPointerRoot.
7529 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7530 Fix the code to clear around the scroll bar.
7531
75321999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7533
7534 * print.c: Support print-circle and related features.
7535 (Vprint_gensym_alist): Removed.
7536 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7537 Vprint_number_table): New variables.
7538 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7539 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7540 (print, print_preprocess, print_preprocess_string, print_object):
7541 New/modified functions with print-circle feature. Use
7542 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7543 (syms_of_print): Defined new Lisp variables `print-circle',
7544 `print-continuous-numbering', `print-number-table'.
7545
75461999-09-10 Gerd Moellmann <gerd@gnu.org>
7547
7548 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7549 as background color specification instead of an integer.
7550 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7551 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7552 (clear_image_cache, syms_of_xfns): Use it.
7553 (Qpostscript): Replaces Qghostscript.
7554 (gs_type): Use it.
7555 (gs_image_p): Ditto.
7556 (syms_of_xfns): Initialize Qpostscript.
7557
75581999-09-10 Richard Stallman <rms@gnu.org>
7559
7560 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7561
75621999-09-09 Richard Stallman <rms@gnu.org>
7563
7564 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7565
7566 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7567
75681999-09-09 Gerd Moellmann <gerd@gnu.org>
7569
7570 * fns.c (Fmakehash): Accept just one optional argument TEST.
7571
7572 * xfns.c (QCindex): New.
7573 (syms_of_xfns): Initialize QCindex.
7574 (gif_load): Use it instead of `:image'.
7575
75761999-09-09 Richard Stallman <rms@gnu.org>
7577
7578 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7579 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7580
75811999-09-08 Gerd Moellmann <gerd@gnu.org>
7582
7583 * xdisp.c (Qwhen): Replaces QCwhen.
7584 (syms_of_xdisp): Initialized it instead of QCwhen.
7585 (handle_single_display_prop): Use it instead of QCwhen.
7586
75871999-09-08 Ken'ichi Handa <handa@gnu.org>
7588
7589 * charset.c (translate_char): Reset MSBs of arguments of
7590 MAKE_CHAR.
7591 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7592
75931999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7594
7595 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7596
7597 * fns.c (Fbase64_decode_region): Don't place point outside of the
7598 current accessible portion.
7599
76001999-09-07 Richard Stallman <rms@gnu.org>
7601
7602 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7603 parent is an ancestor of SUBMAP; otherwise, add it as the
7604 ultimate ancestor.
7605
76061999-09-07 Gerd Moellmann <gerd@gnu.org>
7607
7608 * xdisp.c (handle_single_display_prop): Change conditional
7609 display property to `:when FORM . VALUE'.
7610
76111999-09-07 Richard Stallman <rms@gnu.org>
7612
7613 * fileio.c (Fwrite_region): Doc fix.
7614
76151999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7616
7617 * fileio.c (Qexcl): New variable.
7618 (report_file_error): Handle EEXIST specially.
7619 (Fwrite_region): Special handling for CONFIRM = `excl'.
7620 (syms_of_fileio): Initialize Qexcl.
7621
76221999-09-07 Gerd Moellmann <gerd@gnu.org>
7623
7624 * xfns.c (x_set_foreground_color): Call
7625 update_face_from_frame_parameter.
7626 (x_set_background_color): Ditto.
7627 (x_set_mouse_color): Ditto.
7628 (x_set_cursor_color): Ditto.
7629 (x_set_border_color): Ditto.
7630 (x_set_scroll_bar_foreground): Ditto.
7631 (x_set_scroll_bar_background): Ditto.
7632
7633 * xfaces.c (recompute_basic_faces): Clear face cache.
7634 (Finternal_set_lisp_face_attribute): Modify frame parameters
7635 if attributes of certain faces are changed.
7636 (update_face_from_frame_parameter): New.
7637
7638 * xfaces.c (realize_basic_faces): Realize new basic faces.
7639
7640 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7641 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7642
7643 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7644 (syms_of_xfaces): Intialize new symbols.
7645
7646 * fns.c (Fmakehash): Take one argument, test, make all the
7647 rest keyword arguments.
7648
7649 * window.c (Fset_window_margins): Make window the first argument.
7650 (set_window_buffer): Call Fset_window_margins with window as first
7651 argument.
7652
76531999-09-07 Gerd Moellmann <gerd@gnu.org>
7654
7655 * xfaces.c (Qfringe): Replaces Qmargin.
7656
76571999-09-07 Kenichi Handa <handa@etl.go.jp>
7658
7659 * charset.h: Lots of comments fixed.
7660 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7661 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7662
7663 * charset.c : Lots of comments fixed.
7664 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7665 (CHAR_COMPONENTS_VALID_P): Name changed from
7666 CHAR_COMPONENT_VALID_P. Caller changed.
7667
76681999-09-06 Richard Stallman <rms@gnu.org>
7669
7670 * insdel.c (syms_of_insdel): Define Lisp variable
7671 inhibit-modification-hooks.
7672
76731999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7674
7675 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7676 unexaix.c.
7677
7678 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7679
76801999-09-06 Dave Love <fx@gnu.org>
7681
7682 * unexaix.c: New version incorporating Michael Sperber's changes
7683 from XEmacs. Should solve problems on AIX 4.3.
7684
7685 * lread.c (Vbyte_boolean_vars): New variable.
7686 (defvar_bool, syms_of_lread): Use it.
7687
76881999-09-05 Richard Stallman <rms@gnu.org>
7689
7690 * minibuf.c (read_minibuf): Put all three properties on the
7691 same range, the whole prompt.
7692
76931999-09-05 Gerd Moellmann <gerd@gnu.org>
7694
7695 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7696 (Fplay_sound, syms_of_sound): Use it.
7697 (parse_sound): Allow float volume values in the range [0, 1].
7698 (Fplay_sound): Ditto.
7699
7700 * window.c (Fset_window_vscroll): Make window the first argument,
7701 amount to scroll the second. Take non-negative vscroll as
7702 argument.
7703 (Fwindow_vscroll): Return non-negative vscroll.
7704
7705 * xfns.c (Fx_show_tip): Improve documentation.
7706
77071999-09-05 Gerd Moellmann <gerd@gnu.org>
7708
7709 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7710 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7711 `top-line' and `top_line' to `header-line' and `header_line'.
7712 Likewise for similar spellings.
7713
77141999-09-05 Gerd Moellmann <gerd@gnu.org>
7715
7716 * xdisp.c (row_containing_pos): New.
7717 (try_window_id): Use it.
7718
7719 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7720 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7721 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7722 Likewise for upper-case etc.
7723
77241999-09-05 Gerd Moellmann <gerd@gnu.org>
7725
7726 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7727 Fix reference to renamed variable.
7728
77291999-09-04 Gerd Moellmann <gerd@gnu.org>
7730
7731 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7732 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7733 Qfixed_window_size.
7734 (syms_of_window): Ditto.
7735
7736 * fns.c (Fmakehash): Exchange optional test and size arguments.
7737
77381999-09-03 Gerd Moellmann <gerd@gnu.org>
7739
7740 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7741 under newly created scroll bar.
7742 (expose_window): If window is not yet fully initialized, do
7743 nothing. This can happen when toolkit scroll bars are used and a
7744 window is split. Reconfiguring the scroll bars will generate an
7745 expose for a newly created window.
7746
7747 * frame.h (struct frame): New member `gamma'.
7748
7749 * xfns.c: Include math.h. Add extern declaration for atof in case
7750 we don't see one.
7751 (Qscreen_gamma): New.
7752 (struct x_frame_parm_table): Add prototypes, add
7753 x_set_screen_gamma.
7754 (gamma_correct): New function.
7755 (defined_color): Call it.
7756 (x_set_screen_gamma): New.
7757 (x_set_title): Add parameter old_value.
7758 (RES_TYPE_FLOAT): New.
7759 (x_get_arg): Handle RES_TYPE_FLOAT.
7760 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7761 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7762 new prototype.
7763 (lookup_rgb_color): Ditto.
7764 (syms_of_xfns): Initialize Qscreen_gamma.
7765
7766 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7767 New. Allocate color for lwlib widgets.
7768 (x_alloc_nearest_color): Change parameter list include the
7769 frame on which to allocate colors. Gamma-correct colors.
7770 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7771 parameter list.
7772
7773 * xterm.h: Change protorype of x_alloc_nearest_color.
7774
77751999-09-03 Richard Stallman <rms@gnu.org>
7776
7777 * callproc.c: Delete the system-independent include of stdlib.h
7778 (leaving only the one in the WINDOWSNT conditional).
7779
77801999-09-03 Andrew Choi <choi@cs.hku.hk>
7781
7782 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7783 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7784
26901792
DL
7785 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7786 Window types and macros.
7787
7788 * frame.h: Do nothing if included a second time.
7789 (enum output_method): Add mac_output frame type.
7790 (union output_data): Add new alternative `mac'.
7791 (FRAME_MAC_P): New macro.
427ec082 7792
26901792
DL
7793 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7794 (syms_of_frame_1): Initialize Qmac.
7795 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7796 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7797 (Fmodify_frame_parameters) [macintosh]: Call
7798 mac_set_frame_parameter in macterm.c.
427ec082 7799
26901792
DL
7800 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7801 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7802
26901792
DL
7803 * make-docfiles.c: Correctly handle input files with Mac-style
7804 eol's.
427ec082 7805
26901792 7806 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7807
26901792
DL
7808 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7809 file of an X Window environment.
427ec082 7810
26901792
DL
7811 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7812 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7813
26901792
DL
7814 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7815 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7816 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7817 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7818 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7819 New functions, replacing POSIX features.
427ec082 7820
26901792
DL
7821 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7822 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7823 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7824
7825 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7826 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7827 (myPasswdDir, TempDirName, sys_siglist): New variables.
7828
7829 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7830 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7831 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7832 Define empty stubs so Emacs will link.
7833
78341999-09-03 Gerd Moellmann <gerd@gnu.org>
7835
7836 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7837
7838 * window.h: New member frozen_window_start_p.
7839
7840 * window.c (foreach_window, foreach_window_1): New.
7841 (freeze_window_start, freeze_window_starts): New.
7842 (make_window): Initialize frozen_window_start_p.
7843 (replace_window): Ditto.
7844 (Fset_window_point): Remove references to deleted variables.
7845 (Fset_window_start): Ditto.
7846
7847 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7848 resize_mini_initial_height): Removed.
7849 (syms_of_xdisp): Remove references to these variables.
7850 (resize_mini_window): Don't save window configuration, freeze
7851 window starts instead. Enlarge window until displaying an empty
7852 buffer, then shrink it. Make the function externally visible.
7853 (redisplay_window): Treat frozen window start like forced start,
7854 but accept point outside of the window.
7855
7856 * dispextern.h: Add function prototype for resize_mini_window.
7857
7858 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7859 reaching minibuf_level 0.
7860
7861 * lisp.h: Remove extern declarations for variables deleted from
7862 xdisp.c.
7863
7864 * dispnew.c (adjust_frame_glyphs): Remove reference to
7865 Vresize_mini_config.
7866
78671999-09-03 Gerd Moellmann <gerd@gnu.org>
7868
7869 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7870 to USE_TOOLKIT_SCROLL_BARS.
7871
7872 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7873 here.
7874 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7875 under newly created scroll bar. Put toolkit scroll bars in the
7876 middle of the area reserved for the scroll bar.
7877
78781999-09-03 Kenichi Handa <handa@etl.go.jp>
7879
7880 The following changes are for the new handling of mulitbyte
7881 sequence. Now, except for a composite character, no multibyte
7882 character in string/buffer has trailing garbage bytes. For
7883 instance, the length of string "\201\300\300" is now 2, the first
7884 character is Latin-1 A-grave, the second is raw \300.
7885
7886 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7887 are negative.
7888 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7889 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7890 (PARSE_COMPOSITE_SEQ): New macro.
7891 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7892 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7893 (CHAR_PRINTABLE_P): New macro.
7894 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7895 (STRING_CHAR_AND_LENGTH): Likewise.
7896 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7897 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7898 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7899
7900 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7901 (SPLIT_CHARACTER_SEQ): New macro.
7902 (SPLIT_MULTIBYTE_SEQ): New macro.
7903 (CHAR_COMPONENT_VALID_P): New macro.
7904 (non_ascii_char_to_string): Generate a multibyte sequence as far
7905 as possible.
7906 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7907 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7908 (split_non_ascii_string): Likewise.
7909 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7910 (char_printable_p): New function.
7911 (translate_char): Check character by NATNUMP instead of INTEGERP.
7912 (unibyte_char_to_multibyte): Call char_valid_p instead of
7913 VALID_MULTIBYTE_CHAR_P.
7914 (Fmake_char_internal): Check the arguments more rigidly.
7915 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7916 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7917 (Fmultibyte_char_to_unibyte): Check the validity of character by
7918 CHAR_VALID_P.
7919 (chars_in_text): Call multibyte_chars_in_text.
7920 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7921 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7922 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7923
7924 * data.c (Faset): Adjust the way to check byte-combining
7925 possibility for the new handling of multibyte sequence.
7926
7927 * editfns.c (Fsubst_char_in_region): Likewise.
7928
7929 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7930 (string_char_to_byte): Likewise.
7931 (string_byte_to_char): Likewise.
7932
7933 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7934 macro STRING_CHAR_AND_LENGTH. Caller changed.
7935
7936 * insdel.c (count_combining_composition): New function.
7937 (count_combining_before): Adjust the way to check byte-combining
7938 possibility for the new handling of multibyte sequence. Call
7939 count_combining_composition for a composite character.
7940 (count_combining_after): Likewise.
7941
7942 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7943 (print): Likewise.
7944
7945 * dispextern.h (struct it): Change the size of the member
7946 `ctl_chars'.
7947
7948 * xdisp.c (get_next_display_element): Display incomplete multibyte
7949 sequence (e.g. \222\300) by octal form.
7950
79511999-09-02 Gerd Moellmann <gerd@gnu.org>
7952
7953 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7954
7955 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7956 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7957
79581999-09-02 Gerd Moellmann <gerd@gnu.org>
7959
7960 * buffer.c (set_buffer_internal): Never set
7961 windows_or_buffers_changed.
7962
7963 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7964 if we have displayed to the bottom of the window.
7965
7966 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7967 in both directions. Extend documentation.
7968
79691999-09-01 Gerd Moellmann <gerd@gnu.org>
7970
7971 * minibuf.c (read_minibuf): Flush display after setting cursor to
7972 column 0.
7973
79741999-08-31 Gerd Moellmann <gerd@gnu.org>
7975
7976 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7977 already defined. This avoids a warning from buffer.c.
7978
79791999-08-30 Gerd Moellmann <gerd@gnu.org>
7980
7981 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7982 of both margins.
7983 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7984 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7985 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7986
7987 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7988 once instead of twice.
7989 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7990
7991 * xterm.c: Remove unused bitmaps.
7992 (continued_bits, continuation_bits, overlay_bits): Change images.
7993 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7994 instead of FRAME_X_FLAGS_AREA_WIDTH.
7995 (x_after_update_window_line): Ditto.
7996 (x_draw_bitmap): Likewise.
7997 (x_draw_row_bitmaps): Likewise.
7998 (x_draw_glyph_string_box): Likewise.
7999 (x_draw_glyphs): Likewise.
8000 (x_scroll_run): Likewise.
8001 (expose_window_tree): Likewise.
8002 (note_mode_line_highlight): Likewise.
8003 (XTset_vertical_scroll_bar): Likewise.
8004 (x_clip_to_row): Likewise.
8005 (x_set_window_size): Likewise.
8006
8007 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
8008 of 2 * that value.
8009
8010 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
8011 2 * that value.
8012 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
8013 FRAME_FLAGS_AREA_WIDTH.
8014
8015 * window.c (coordinates_in_window): Use
8016 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8017 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
8018 instead of twice.
8019
427ec082 8020 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
8021 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
8022 (EmacsFrameSetCharSize): Ditto.
8023
8024 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
8025 instead of FRAME_FLAGS_AREA_WIDTH.
8026
8027 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
8028 FRAME_FLAGS_AREA_COLS once.
8029 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
8030 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
8031
80321999-08-30 Gerd Moellmann <gerd@gnu.org>
8033
8034 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
8035 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
8036
80371999-08-30 Gerd Moellmann <gerd@gnu.org>
8038
8039 * fns.c (QCweakness): Replaces QCweak.
8040 (Fmake_hash_table): Ditto.
8041 (Fmakehash): Ditto.
8042 (syms_of_fns): Ditto.
8043
80441999-08-29 Richard Stallman <rms@gnu.org>
8045
8046 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
8047
8048 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
8049
8050 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
8051 Add support for nested comments.
8052
d7d0dac0
SM
8053 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
8054 Consolidate the forward comment code into the new `forw_comment'.
8055 (forw_comment): New subroutine. Added support for nested comments.
8056 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
8057 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
8058
80591999-08-28 Ken Raeburn <raeburn@gnu.org>
8060
8061 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
8062 names of structure elements if HIDE_LISP_IMPLEMENTATION is
8063 defined, to help detect code that uses knowledge of the Lisp
8064 internals that it shouldn't have.
8065 (XFLOAT_DATA): New macro.
8066
80671999-08-25 Gerd Moellmann <gerd@gnu.org>
8068
8069 * syntax.c (Fforward_word): If in a mini-buffer and moving
8070 backwards, stop in front of the prompt to prevent accidentially
8071 moving into the read-only prompt.
8072
8073 * window.c (Frecenter): Clear frame if called with nil or no arg.
8074
8075 * xdisp.c (resize_mini_window): Don't resize if
8076 Vmax_mini_window_height is nil. Otherwise, use a default if
8077 Vmax_mini_window_height is not ot a number.
8078 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8079
80801999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8081
8082 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8083 * m/iris4d.h: Use unexelf for IRIX 5.*.
8084 * m/iris5d.h: Use unexelf for IRIX 6.*.
8085 * unexsgi.c: Deleted.
8086
8087 * unexelf.c: Auto-detect .sbss section.
8088 (round_up): Make it static.
8089 (unexec): Declare alignment as Elf Word. Skip ``Program
8090 segment above .bss'' test on MIPS without .sbss.
8091 Copy sections .got and .sdata1 sections. Adjust offsets in
8092 sections .sdata, .lit4, .lit8, .got and .sdata1.
8093
80941999-08-25 Gerd Moellmann <gerd@gnu.org>
8095
8096 * xdisp.c (try_window_id): Remove typo.
8097
80981999-08-24 Gerd Moellmann <gerd@gnu.org>
8099
8100 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8101 unchanged text at the bottom when computing the cursor position.
8102 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8103 set.
8104
8105 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8106
81071999-08-24 Gerd Moellmann <gerd@gnu.org>
8108
8109 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8110 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8111 (syms_of_xfaces): Ditto.
8112
8113 * window.c (Fset_window_point): Reset Vresize_mini_config.
8114 (Fset_window_start): Ditto.
8115 (set_window_buffer): Ditto.
8116
8117 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8118
8119 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8120 before calling try_window.
8121 (echo_area_display): If height has changed, update other windows.
8122 (resize_mini_frame, resize_mini_initial_height): New.
8123 (resize_mini_window): Save/restore window configuration
8124 differently.
8125
427ec082 8126 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
8127 resize_mini_initial_height): Add extern declarations.
8128
8129 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8130 CANON_X_UNIT.
8131
8132 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8133 being redefined in jconfig.h.
8134
81351999-08-23 Ken'ichi Handa <handa@gnu.org>
8136
8137 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8138
81391999-08-22 Gerd Moellmann <gerd@gnu.org>
8140
8141 * alloc.c (mark_glyph_matrix): Mark strings only.
8142
8143 * xdisp.c (redisplay_internal): Clear garbaged frames after
8144 resizing mini-window.
8145
81461999-08-22 Gerd Moellmann <gerd@gnu.org>
8147
8148 * xdisp.c (unwind_with_echo_area_buffer): Use
8149 set_buffer_internal_1 instead of set_buffer_internal.
8150 (with_echo_area_buffer): Ditto.
8151
8152 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8153 only if buffer is displayed somewhere.
8154
8155 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8156
8157 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8158 (gap_right): Ditto.
8159 (modify_region): Ditto.
8160
8161 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8162
8163 * xdisp.c (Vresize_mini_config): New.
8164 (resize_mini_window): Use it to save restore original window
8165 configuration
8166 (syms_of_xdisp): Initialize it.
8167
8168 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8169
8170 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8171
8172 * xdisp.c (reconsider_clip_changes): New.
8173 (redisplay_internal, redisplay_window): Call it.
8174 (mark_window_display_accurate, redisplay_internal): Set current
8175 matrix' buffer, begv, zv.
8176
8177 * window.c (Fset_window_hscroll): Set
8178 prevent_redisplay_optimizations_p instead of clip_changed.
8179 (Fset_window_hscroll): Ditto.
8180 (temp_output_buffer_show): Ditto.
8181 (Fset_window_vscroll): Ditto.
8182
8183 * buffer.c (reset_buffer): Set clip_changed to 0 and
8184 prevent_redisplay_optimizations_p to 1.
8185 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8186
8187 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8188 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8189 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8190 END_UNCHANGED): New.
8191 (struct buffer_text): Add beg_unchanged, end_unchanged,
8192 unchanged_modified, overlay_unchanged_modified.
8193
8194 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8195 overlay_unchanged_modified): Removed.
8196 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8197 (unwind_with_echo_area_buffer): Don't restore them.
8198 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8199 (text_outside_line_unchanged_p, redisplay_internal,
8200 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8201 (redisplay_window): Let try_window_id be called if more than one
8202 window is displayed. Use/set buffer-specific beg/end_unchanged.
8203 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8204 try_window_id):
8205 Use buffer-specific beg/end_unchanged.
8206
8207 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8208 overlay_unchanged_modified): Remove extern declarations.
8209
8210 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8211 buffer.
8212
8213 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8214 (gap_right): Ditto.
8215 (adjust_after_replace): Likewise.
8216 (replace_range, del_range_2, modify_region): Likewise.
8217
8218 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8219 and unchanged_modified per buffer.
8220
8221 * coding.c (code_convert_region): Compute beg/end_unchanged per
8222 buffer.
8223
8224 * buffer.c (modify_overlay): Compute beg/end_unchanged
8225 per buffer.
427ec082 8226 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
8227 structure.
8228
82291999-08-22 Gerd Moellmann <gerd@gnu.org>
8230
8231 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8232
8233 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8234 (Qkey_value_weak): Removed.
8235 (make_hash_table): Use nil, `key', `value', t for weakness.
8236 (Fmake_hash_table): Ditto.
8237 (copy_hash_table): New.
8238 (Fcopy_hash_table): New.
8239
82401999-08-22 Gerd Moellmann <gerd@gnu.org>
8241
8242 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8243 new parameter.
26901792
DL
8244
82451999-08-21 Gerd Moellmann <gerd@gnu.org>
8246
8247 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8248 well.
427ec082 8249 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8250 have changed.
8251 (display_echo_area): Reset displayed echo_area_buffer to nil
8252 at the end if we're displaying a nil message.
8253
82541999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8255
26901792
DL
8256 * fns.c (hash_lookup): Test with EQ before calling key comparion
8257 function.
8258 (hash_remove): Ditto.
8259 (cmpfn_eq): Removed.
8260 (cmpfn_eql): Don't test with EQ.
8261 (cmpfn_equal): Ditto.
8262 (make_hash_table): Set comparison function for `eq' to null.
8263
8264 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8265 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8266
8267 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8268
8269 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8270 xterm.c: Call change_frame_size and do_pending_window_change with
8271 new parameter.
8272
8273 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8274 (change_frame_size): Ditto.
8275 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8276 and not called from a safe place.
8277 (window_change_signal): Call change_frame_size with new parameter.
8278
8279 * dispextern.h: Change prototypes for do_pending_window_change
8280 and change_frame_size.
8281
8282 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8283 window's buffers equals current_buffer; this is not the
26901792
DL
8284 case during echo area display.
8285
82861999-08-21 Gerd Moellmann <gerd@gnu.org>
8287
8288 * xdisp.c, minibuf.c: Remove conditional compilation on
8289 NO_PROMPT_IN_BUFFER.
8290
8291 * minibuf.c (Fminibuffer_prompt_end): New.
8292 (syms_of_minibuf): Defsubr it. Remove
8293 minibuffer-prompt-in-buffer.
8294 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8295 Extend documentation.
8296
8297 * xdisp.c (get_next_display_element): Display \r as ^M.
8298
8299 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8300 under scroll bar widget.
8301
83021999-08-21 Gerd Moellmann <gerd@gnu.org>
8303
8304 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8305 anywhere.
8306 (unwind_redisplay): Return nil.
8307 (clear_garbaged_frames): New.
8308 (redisplay_internal): Use it.
8309 (echo_area_display): Ditto.
8310 (resize_mini_window): Mew.
8311 (display_echo_area_1): Use it to resize echo area window.
8312 (redisplay_internal): Use it to resize active mini-window.
8313
8314 * dispextern.h, lisp.h: Add function prototypes.
8315
427ec082 8316 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8317 cursor_in_echo_area case only for a mini-window showing
8318 a message. Don't let cursor end up after the end of a row.
8319
8320 * xdisp.c (echo_area_glyphs, echo_area_message,
8321 echo_area_glyphs_length, previous_echo_glyphs,
8322 previous_echo_area_message, previous_echo_area_glyphs_length):
8323 Removed.
8324 (Vmessage_stack, echo_area_buffer, echo_buffer,
8325 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8326 (message2_nolog): Use set_message and clear_message.
8327 (message3): Rename parameter len to nbytes to make clear what
8328 it is.
8329 (message3_nolog): Ditto. Use set_message and clear_message.
8330 (update_echo_area): Rewritten.
8331 (with_echo_area_buffer): New.
8332 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8333 (setup_echo_area_for_printing): New.
8334 (display_echo_area, display_echo_area_1): New.
8335
8336 (current_message, current_message_1): New.
427ec082 8337 (push_message, restore_message, pop_message,
26901792
DL
8338 check_message_stack): New.
8339 (truncate_echo_area): Rewritten.
8340 (truncate_message_1): New.
8341 (set_message, set_message_1, clear_message): New.
8342 (echo_area_display): Rewritten.
8343 (redisplay_internal): Check for needed echo area update
8344 differently.
8345 (redisplay_preserve_echo_area): Rewritten.
427ec082 8346 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8347 message differently.
8348 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8349 Remove initialzation of removed variables.
8350 (init_xdisp): Remove references to removed variables.
8351
8352 * dispnew.c (adjust_frame_message_buffer): Removed references
8353 to echo_area_glyphs and previous_echo_glyphs.
8354 (direct_output_for_insert): Check for mini-window displaying
8355 echo area message differently.
8356 (update_frame): Likewise.
8357 (set_window_cursor_after_update): Likewise. In echo area,
8358 don't try to set cursor on rows that aren't enabled.
8359
8360 * print.c: Remove conditional compilation on `standalone'.
8361 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8362 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8363 longer used in that way.
8364 (PRINTDECLARE): Add multibyte.
8365 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8366 (printbufidx): Removed.
8367 (printchar, strout): Rewritten.
8368
8369 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8370 a struct kboard.
8371 (echo_kboard): New.
8372 (echo_now): Set echo_kboard to the current kboard.
8373 (cancel_echoing): Set echo_kboard to null.
8374 (cmd_error_internal): Use clear_message, remove references
8375 to echo_area_glyphs and echo_area_message.
8376 (command_loop_1): Check for echo area messages differently.
8377 (read_char): Likewise.
8378 (record_menu_key): Use clear_message.
8379 (Fexecute_extended_command): Check for echo area messages
8380 differently. Use push_message, restore_message, pop_message.
8381
8382 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8383 pop_message.
8384
8385 * emacs.c (shut_down_emacs): Call check_message_stack.
8386
8387 * lisp.h: Add function prototypes and extern declarations for
8388 new functions and variables.
8389
8390 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8391 pop_message.
8392
427ec082 8393 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8394 setting echo_area_glyphs.
8395 (Fminibuffer_completion_help): Ditto.
8396
8397 * editfns.c (Fcurrent_message): Rewritten.
8398
8399 * frame.c, window.h: Remove references to echo_area_glyphs
8400 and previous_echo_glyphs.
8401
84021999-08-21 Dave Love <fx@gnu.org>
8403
8404 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8405 * aix4-1.h: Likewise.
8406
8407 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8408
84091999-08-20 Gerd Moellmann <gerd@gnu.org>
8410
8411 * xfns.c: Remove tiff34 prefix from include.
8412
84131999-08-20 Dave Love <fx@gnu.org>
8414
8415 * cm.c: Revert previous change.
8416
84171999-08-19 Gerd Moellmann <gerd@gnu.org>
8418
8419 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8420 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8421
84221999-08-18 Dave Love <fx@gnu.org>
8423
8424 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8425 stdlib.h.
8426
8427 * doprnt.c: Use stdlib.h, unistd.h.
8428
8429 * config.in: Add HAVE_TERMCAP_H.
8430
8431 * cm.c: Use termcap.h.
8432
84331999-08-18 Gerd Moellmann <gerd@gnu.org>
8434
8435 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8436 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8437 cannot be created we will already have crashed earlier. Call
8438 lw_set_main_areas with a null menu-bar widget, so that we have
8439 a reasonable default.
8440 (Fx_create_frame): Rearranged so that Lisp errors during frame
8441 initialization cause less damage. Initialize menu bar widget
8442 here.
8443
84441999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8445
26901792
DL
8446 * dispnew.c (update_frame_line): Fix previous change. If writing
8447 whole line clear to end of frame.
8448
84491999-08-17 Gerd Moellmann <gerd@gnu.org>
8450
8451 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8452 and `right-bitmap-area' if position is in the bitmap areas. This
8453 avoids an error when clicking on the bitmap areas. Instead, they
8454 are currently treated like clicks inside the window.
8455 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8456 (Qleft_bitmap_area, Qright_bitmap_area): New.
8457 (syms_of_window): Initialize new symbols.
8458
8459 * dispnew.c (update_frame_line): If writing whole line,
8460 don't write trailing spaces unless we must.
8461
8462 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8463 (redisplay_internal): Register unwind_redisplay with
8464 register_unwind_protect.
8465 (try_window_reusing_current_matrix): If new start > old start,
8466 give up if start pos of first reusable row is not equal to new
8467 start.
8468
8469 * eval.c (Fsignal): Don't reset redisplaying_p here.
8470
8471 * xterm.c (expose_area): If row extends face to end of line,
8472 write the whole line.
8473
84741999-08-16 Gerd Moellmann <gerd@gnu.org>
8475
8476 * dispextern.h (struct it): Remove member
8477 show_trailing_whitespace_p.
8478
8479 * dispnew.c (direct_output_for_insert): Use
8480 Vshow_trailing_whitespace instead of former iterator member
8481 show_trailing_whitespace_p.
8482 (direct_output_forward_char): Don't do it if hightlighting
8483 trailing whitespace.
8484
8485 * xdisp.c (Qshow_trailing_whitespace): Removed.
8486 (Vshow_trailing_whitespace): Added.
8487 (init_iterator): Remove initialization code for
8488 show_trailing_whitespace_p.
8489 (redisplay_internal): Don't try cursor movement in this_line
8490 if showing trailing whitespace.
8491 (redisplay_window): Likewise for cursor movement in current
8492 matrix and try_window_id.
8493 (try_window_reusing_current_matrix): Likewise.
8494 (trailing_whitespace_p): Return 0 if trailing whitespace is
8495 in front of point.
8496 (display_line): Use Vshow_trailing_whitespace instead of
8497 former iterator member show_trailing_whitespace_p.
8498 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8499
85001999-08-16 Gerd Moellmann <gerd@gnu.org>
8501
8502 * window.c (Fpos_visible_in_window_p): Rewritten.
8503
8504 * xfaces.c (add_to_log): Renamed from display_message.
8505 Don't display messages in echo area.
8506
8507 * xterm.c (x_draw_glyph_string_box): Use the background width
8508 of the glyph string for the width of the box.
8509
85101999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8511
8512 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8513
85141999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8515
8516 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8517 background first, and then set other parameters that might
8518 depend upon their new values.
8519
85201999-08-15 Gerd Moellmann <gerd@gnu.org>
8521
8522 * xfaces.c (Vfont_list_limit): New.
8523 (syms_of_xfaces): Make it a user-variable.
8524 (DEFAULT_FONT_LIST_LIMIT): New.
8525 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8526 maximally that number of fonts, otherwise use
8527 DEFAULT_FONT_LIST_LIMIT.
427ec082 8528 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8529 until we have all fonts.
8530 (Fxfont_list): Additionally return the full names of fonts and
8531 their registry and encoding.
8532
427ec082 8533 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8534 Simplify clearing "under" scroll bar.
8535
8536 * window.c (Qfixed_window_size): New.
8537 (syms_of_window): Initialiaze it.
8538 (check_all_windows): Add return type void.
8539 (window_fixed_size_p): New. Return non-zero if window
8540 is fixed-size.
8541 (window_min_size_1): New.
8542 (window_min_size): Handle fixed-size windows.
8543 (size_window): New. Rewritten combination of set_window_height and
8544 set_window_width that handles fixed-size windows.
8545 (set_window_height): Call it.
8546 (set_window_width): Call it.
8547 (Fsplit_window): Give an error on attempt to split a fixed-size
8548 window.
8549 (change_window_height): Partly rewritten to handle fixed-size
8550 windows.
8551
85521999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8553
8554 * process.c (Fopen_network_stream): Fix previous change.
8555
85561999-08-13 Karl Heuer <kwzh@gnu.org>
8557
8558 * xdisp.c (line_number_display_limit_width): New var.
8559 (decode_mode_spec): Use it instead of hardcoded value.
8560 (syms_of_xdisp): Defvar it.
8561
85621999-08-13 Richard M. Stallman <rms@gnu.org>
8563
8564 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8565 (run_hook_with_args): Likewise.
8566
8567 * window.h (struct window): New field too_small_ok.
8568
427ec082 8569 * window.c (set_window_height, set_window_width):
26901792
DL
8570 If window starts out "too small", set its too_small_ok flag.
8571 If window's too_small_ok flag is set, don't delete it
8572 unless it is so small it would cause a crash.
8573
85741999-08-13 Gerd Moellmann <gerd@gnu.org>
8575
8576 * window.c (MINSIZE): Removed.
8577 (window_min_size): New.
8578 (set_window_height): Use window_min_size.
8579 (change_window_height): Ditto.
8580
85811999-08-12 Gerd Moellmann <gerd@gnu.org>
8582
8583 * indent.c (vmotion): Don't add in mini-buffer prompt width
8584 if prompts are inserted into mini-buffer.
8585
85861999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8587
8588 * config.in: Add HAVE_GETADDRINFO.
8589 * process.c (Fopen_network_stream): Use getaddrinfo.
8590
85911999-08-11 Gerd Moellmann <gerd@gnu.org>
8592
8593 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8594 glyphs to -1.
8595
8596 * xdisp.c (face_before_or_after_it_pos): If position after
8597 or before iterator's current position in the buffer is out
8598 of bounds, return the iterator's original face id.
8599
8600 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8601 just swap glyphs pointers between current and desired row.
8602 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8603 desired matrix method string to current matrix.
8604
86051999-08-11 Kenichi Handa <handa@etl.go.jp>
8606
8607 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8608
8609 * lread.c (read_escape): For Control modifier, pay attention to
8610 multibyte character.
8611 (read1): Likewise. Singal error or a multibyte character which
8612 has a modifer bit. Check validity of Shift modifer.
8613
8614 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8615 the same as Lisp reader.
8616
86171999-08-10 Richard M. Stallman <rms@gnu.org>
8618
8619 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8620
86211999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8622
8623 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8624
86251999-08-10 Eli Zaretskii <eliz@gnu.org>
8626
8627 * msdos.c (IT_set_face): Abort if the default face is not realized
8628 and cached.
8629 (IT_write_glyphs): Reset the screen face to the default face
8630 before writing glyphs.
8631
8632 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8633 colors from the frame here.
8634 (realize_tty_face) [MSDOS]: Do it here. Update the face
8635 attributes with the actual name of the color taken from the
8636 frame.
8637
8638 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8639 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8640
8641 * frame.c (Fframe_parameters): Swap foreground and background
8642 colors returned in frame parameters if the frame has reverse in
8643 its parameter alist.
8644 (Fmake_terminal_frame): Make a unique copy of face_alist for
8645 each frame.
8646
86471999-08-07 Richard Stallman <rms@gnu.org>
8648
8649 * buffer.c (Fprevious_overlay_change): Just return
8650 the answer obtained from overlays_at.
8651
8652 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8653 Use XpmCloseness and attrs.closeness instead.
8654
86551999-08-06 Richard Stallman <rms@gnu.org>
8656
8657 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8658
86591999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8660
427ec082 8661 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8662 Ffile_attributes_lessp): New functions.
8663 (Fdirectory_files): Use directory_files_internal.
8664 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8665 Ffile_attributes_lessp.
8666
8667 * w32.c (stat): Check for directory ending in separator when
8668 doing readdir fast path.
8669
8670 * w32fns.c (x_set_icon_type): Support setting frame icons.
8671 * w32term.c (x_bitmap_icon): New function.
8672 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8673
26901792
DL
86741999-08-06 Gerd Moellmann <gerd@gnu.org>
8675
8676 * xdisp.c (set_iterator_to_next): After delivering a character
8677 from a display vector, restore face and charset to what they were
8678 before the display vector was processed.
8679
86801999-08-06 Gerd Moellmann <gerd@gnu.org>
8681
8682 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8683 on_newline_p.
8684 (set_iterator_to_next): After delivering last char
427ec082 8685 from display vector, reseat on next visible line start if
26901792
DL
8686 dpvec_char_len < 0.
8687 (next_element_from_buffer): Set dpvec_char_len to -1 for
8688 selective display.
8689
86901999-08-06 Gerd Moellmann <gerd@gnu.org>
8691
8692 * xdisp.c (compute_line_metrics): If first line's physical ascent
8693 is larger than its logical ascent, use the physical ascent, and
8694 make the row taller. Set row's overlapping_p flag.
8695
8696 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8697 (direct_output_for_insert): Ditto.
8698
8699 * dispextern.h (struct glyph_row): Add overlapping_p.
8700
8701 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8702
8703 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8704 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8705
8706 * dispnew.c (direct_output_for_insert): Don't use this method if
8707 row is overlapped by others.
8708 (update_text_area): Write full line if current line is overlapped.
8709 (redraw_overlapped_rows): New.
8710 (update_window): Call it.
8711 (redraw_overlapping_rows): New.
8712 (update_window): Call it.
8713 (scrolling_window): Make sure overlapped_p flag in current rows is
8714 unchanged.
8715 (row_equal_p): Take rows overlapped_p flag into account.
8716
8717 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8718
8719 * xterm.c (x_fix_overlapping_area): New.
8720 (x_redisplay_interface): Add x_fix_overlapping_area.
8721
8722 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8723
87241999-08-06 Gerd Moellmann <gerd@gnu.org>
8725
8726 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8727 (struct glyph_string): Add member for_overlaps_p.
8728 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8729 of overlapping rows, clip to window bottom.
8730 (x_fill_glyph_string): Add parameter overlaps_p.
8731 (x_fill_composite_glyph_string): Ditto.
8732 (BUILD_GLYPH_STRINGS): Ditto.
8733 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8734 (x_draw_glyph_string): Don't draw anything but the foreground
8735 if glyph string draws row overlaps.
8736
8737 * dispnew.c (direct_output_for_insert): Don't use this
8738 optimization for rows that overlap others.
8739 (update_window_line): Return non-zero if display has changed.
8740 (update_text_area): Ditto.
8741 (update_window): Record if display has been changed.
8742
8743 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8744
8745 * dispextern.h (struct redisplay_interface): Add
8746 fix_overlapping_area.
8747
8748 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8749
8750 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8751
8752 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8753 ascent and descent.
8754 (x_produce_stretch_glyph): Ditto.
8755 (x_produce_glyphs): Ditto.
8756
8757 * xdisp.c (init_iterator): Reset physical line height info
8758 after producing special glyphs.
8759 (display_toolbar_line): Set physical line height info.
8760 (compute_line_metrics): Ditto.
8761 (display_line): Ditto.
8762 (display_string): Ditto.
8763
8764 * term.c (produce_glyphs): Set iterator's physical height
8765 information.
8766
8767 * dispnew.c (blank_row): Compute glyph row's physical height.
8768 (row_equal_p): Take physical row heights into account.
8769 (direct_output_for_insert): Ditto.
8770 (update_text_area): Ditto.
8771
8772 * dispextern.h (struct glyph_row): Add phys_ascent and
8773 phys_height.
8774 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8775 max_phys_descent.
8776
87771999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8778
8779 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8780 Fswitch_to_buffer.
8781 (no_switch_buffer): New function.
8782 (Fswitch_to_buffer): Call them. Don't get confused
8783 by "same-window" buffers in a dedicated frame.
8784
8785 * window.c (display-buffer): Don't get confused
8786 by "same-window" buffers in a dedicated frame.
8787
87881999-08-04 Andreas Schwab <schwab@gnu.org>
8789
8790 * insdel.c (insert_from_string_1): Check gap size against number
8791 of outgoing bytes, not incoming bytes.
8792
87931999-08-03 Tom Breton <tob@world.std.com>
8794
8795 * lread.c (read1): Added circular reading code to #N=.
8796 (SUBSTITUTE): New macro.
8797 (seen_list): New variable.
8798 (substitute_object_in_subtree): New function.
8799 (substitute_object_recurse): New function.
8800 (substitute_in_interval): New function.
8801
88021999-08-02 Eli Zaretskii <eliz@gnu.org>
8803
8804 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8805
8806 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8807 noninteractive, for termcap frames as well.
8808
8809 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8810 frames.
8811
88121999-08-01 Richard Stallman <rms@gnu.org>
8813
8814 * fns.c (internal_equal): Correct overlay comparison.
8815
83c8f461 88161999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8817
427ec082 8818 * xfns.c (x_set_internal_border_width):
26901792
DL
8819 Call do_pending_window_change. Don't block input, don't call XFlush.
8820 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8821 (x_set_scroll_bar_width, x_set_font): Likewise.
8822
8823 * frame.c (Fset_frame_height): Call do_pending_window_change.
8824 (Fset_frame_width, Fset_frame_size): Likewise.
8825
8826 * xterm.c (x_set_window_size): When calling change_frame_size,
8827 specify 1 for DELAY.
8828
8829 * widget.c (EmacsFrameSetCharSize): Don't call
8830 do_pending_window_change here.
8831
88321999-07-30 Dave Love <fx@gnu.org>
8833
8834 * config.in: Add HAVE_STDLIB_H.
8835
88361999-07-30 Richard M. Stallman <rms@gnu.org>
8837
8838 * process.c (create_process): Detect failure of `pipe'.
8839
88401999-07-30 Keisuke Nishida <kei@psn.net>
8841
8842 * alloc.c (allocate_vectorlike): Add missing increment.
8843
8844 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8845
8846 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8847 before calling indirect_function.
8848
88491999-07-30 Eli Zaretskii <eliz@gnu.org>
8850
8851 * dispextern.h (load_color, lookup_derived_face): Declare
8852 prototypes.
8853
8854 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8855 it will be done later.
8856
8857 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8858 init_frame_faces if non-interactive.
8859 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8860 array with a call to msdos_stdcolor_name. The font name is now
8861 "ms-dos", consistent with realize_tty_face.
8862
8863 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8864 MSDOS frame.
8865
8866 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8867 x_set_toolbar_lines.
8868
8869 * xfaces.c (load_color): Remove static from definition and remove
8870 prototype.
8871 [MSDOS]: Add a DOS-specific version of load_color.
8872 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8873 (lookup_derived_face): New function.
8874 (realize_default_face): Support MSDOS frames.
8875 [MSDOS]: If fore/background colors are unspecified, inherit them
8876 from the frame.
8877 (realize_face): Support MSDOS frames.
8878 (realize_tty_face): Support MSDOS frames.
8879 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8880 load_color to try to find a suitable approximation. If the face
8881 is inverse-video, swap the foreground and background colors.
8882
8883 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8884 functions.
8885
8886 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8887
8888 * msdos.h: Remove redundant declarations (most of them are now in
8889 dispextern.h).
8890
8891 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8892 Use default frame colors if the face doesn't specify them; invert
8893 the colors if highlight is ON.
8894 (IT_write_glyphs): Rewritten for the new redisplay engine.
8895 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8896 how the hook is called by term.c.
8897 (IT_copy_glyphs): New function, copies an area of the display in
8898 video RAM.
8899 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8900 redisplay now calls it even if char_ins_del_ok is zero.
8901 (IT_set_frame_parameters): Prototype changed. Calls the new
8902 load_color. Puts the new fore/background colors into the default
8903 face on current frame.
8904 (IT_menu_display): Rewritten to handle the new struct glyph
8905 instead of a char array.
8906 (XMenuActivate): Call lookup_derived_face to create and use
8907 special faces for the pop-up and drop-down menus.
8908
89091999-07-29 Gerd Moellmann <gerd@gnu.org>
8910
8911 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8912 XawScrollbarSetThumb if thumb parameters haven't changed because
8913 that function apparently isn't optimized for this case.
8914
89151999-07-29 Eli Zaretskii <eliz@gnu.org>
8916
8917 * msdos.c (getdefdir): Don't return failure indication when
8918 _fixpath sets errno to ENOSYS.
8919
89201999-07-28 Gerd Moellmann <gerd@gnu.org>
8921
8922 * xdisp.c (string_char_and_length): New. Use it everywhere
8923 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8924
89251999-07-28 Kenichi Handa <handa@etl.go.jp>
8926
8927 * fns.c (count_combining): New function.
8928 (struct textprop_rec): New structure.
8929 (concat): Copy text properties correctly when byte combining
8930 occurs.
8931
89321999-07-28 Gerd Moellmann <gerd@gnu.org>
8933
8934 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8935 if display is mono.
8936 (x_draw_row_bitmaps): If face has stipple, don't switch
8937 to foreground color for clearing areas, and set the fill style.
8938
8939 * xfaces.c (load_face_colors): Load background color if setting
8940 stipple, too.
427ec082 8941 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8942 FillStippled.
8943
89441999-07-26 Ken'ichi Handa <handa@gnu.org>
8945
8946 * xterm.c (x_find_ccl_program): Add casting.
8947
8948 * w32fns.c (w32_find_ccl_program): Add casting.
8949
89501999-07-27 Gerd Moellmann <gerd@gnu.org>
8951
8952 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8953
8954 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8955 because this will try to access a nonexisting widget.
8956
89571999-07-26 Markus Rost <rost@gnu.org>
8958
427ec082 8959 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8960 (Fputhash): Ditto.
8961 (Fremhash): Ditto.
8962
89631999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8964
26901792
DL
8965 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8966 value to frame width and height.
8967
8968 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8969 into account for full-width windows. Don't add scroll bar width
8970 to width of clip rect.
8971 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8972 (x_set_glyph_string_background_width): Add 1 to background width.
8973 (x_draw_glyphs): Take internal border into account for full-width
8974 lines.
8975
89761999-07-26 Richard M. Stallman <rms@gnu.org>
8977
8978 * xfns.c (x_set_mouse_color): Always unload the old color.
8979 Don't allow nil as color value.
427ec082 8980 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8981 Always unload the old color.
8982
8983 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8984
89851999-07-26 Karl Heuer <kwzh@gnu.org>
8986
8987 * fns.c (Fy_or_n_p): Doc fix.
8988
89891999-07-26 Kenichi Handa <handa@etl.go.jp>
8990
8991 * ccl.h (setup_ccl_program): The type is changed to `int'.
8992
8993 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8994 stored in the following CCL code. Adjusted for the change of
8995 Vccl_program_table.
8996 (resolve_symbol_ccl_program): Adjusted for the new style of
8997 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8998 is resolving failed.
8999 (ccl_get_compiled_code): New function.
9000 (setup_ccl_program): Function type changed from `void' to `int'.
9001 Resolve symbols in CCL_PROG.
9002 (Fccl_program_p): New function.
9003 (Fccl_execute): Get compiled CCL code by just calling
9004 setup_ccl_program.
9005 (Fccl_execute_on_string): Likewise.
9006 (Fregister_ccl_program): Adjusted for the change of
9007 Vccl_program_table.
9008
9009 * coding.c (setup_coding_system): Get compiled CCL code by just
9010 calling setup_ccl_program.
9011
9012 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
9013 calling setup_ccl_program.
9014
9015 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
9016 calling setup_ccl_program.
9017
90181999-07-23 Gerd Moellmann <gerd@gnu.org>
9019
9020 * xfaces.c (frame_update_line_height): Just use the height of the
9021 frame's fontset or font, instead of taking face fonts into
9022 account.
9023
9024 * xdisp.c (get_next_display_element): Display DEL as `^?'.
9025
90261999-07-23 Richard M. Stallman <rms@gnu.org>
9027
9028 * window.c (Fsplit_window): For default size, round up for left window.
9029
90301999-07-21 Joe Ramey <ramey@ti.com>
9031
d7d0dac0 9032 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
9033 has returned -1 (lockfile exists but is not a symlink?).
9034
90351999-07-20 Gerd Moellmann <gerd@gnu.org>
9036
9037 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
9038 because of a change in cursor_gc made in 20.4.
9039
90401999-07-19 Gerd Moellmann <gerd@gnu.org>
9041
9042 * xterm.c (x_calc_absolute_position): Subtract menu bar height
9043 for YNegative, if using X toolkit.
9044
427ec082 9045 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
9046 from positions returned.
9047
90481999-07-17 Gerd Moellmann <gerd@gnu.org>
9049
9050 * xrdb.c (x_load_resources): Set double-click time defaults
9051 for Motif list boxes from double-click-time.
9052
9053 * fns.c (Vhash_table_tests): Remvoed.
9054 (Qhash_table_test): New.
9055 (syms_of_fns): Initialize Qhash_table_test.
9056 (Fmake_hash_table): Look up user-defined tests in symbol prop
9057 `hash-table-test'.
9058 (Fdefine_hash_table_test): Store test and hash function as
9059 symbol prop `hash-table-test'.
9060 (make_hash_table): Add parameters user_test and user_hash.
9061
9062 * window.c (set_window_buffer): Set window margins for tty
9063 frames, too.
9064 (Fset_window_margins): Ditto.
9065
9066 * term.c (append_glyph): Use glyph area of iterator instead of
9067 always TEXT_AREA.
9068
9069 * dispnew.c (update_frame_1): Add left margin width to cursor
9070 hpos.
9071 (direct_output_for_insert): Ditto.
9072 (direct_output_forward_char): Ditto.
9073
9074 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
9075
9076 * dispextern.h (struct glyph_matrix): Add top_line_p.
9077
90781999-07-16 Gerd Moellmann <gerd@gnu.org>
9079
9080 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9081 instead.
9082
9083 * fns.c (cmpfn_eq): Add hash code parameters.
9084 (cmpfn_eql): Ditto.
9085 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9086 (cmpfn_user_defined): Likewise.
9087
90881999-07-15 Gerd Moellmann <gerd@gnu.org>
9089
9090 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9091
9092 * fns.c (maybe_resize_hash_table): Correct computation of
9093 index vector size.
9094 (make_hash_table): Ditto.
9095 (Fmakehash): New.
9096
9097 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9098
9099 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9100 (survives_gc_p): Make it externally visible.
9101 (mark_object): Ditto.
9102
9103 * fns.c (remove_hash_entry): Removed.
9104 (sweep_weak_hash_tables): New.
9105
9106 * print.c (print): Print more information about hash tables.
9107
9108 * xfns.c (image_spec_hash): Removed.
9109 (lookup_image): Use sxhash instead of image_spec_hash.
9110 (image_spec_equal_p): Removed.
9111 (lookup_image): Use Fequal instead of image_spec_equal_p.
9112
91131999-07-14 Gerd Moellmann <gerd@gnu.org>
9114
9115 * lisp.h (P_): Moved to top of file.
9116
9117 * fns.c (make_hash_table): Set new members.
9118
9119 * alloc.c (mark_object): Mark hash table's user_hash_function.
9120 Mark index vector for weak hash tables.
9121
9122 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9123 user_hash_function, cmpfn, and hashfn.
9124
9125 * fns.c (build_hash): Removed.
9126 (hash_test): Removed.
9127 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9128 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9129
91301999-07-13 Gerd Moellmann <gerd@gnu.org>
9131
9132 * alloc.c (survives_gc_p): New.
9133
9134 * print.c (print): Add hash table handling.
9135
9136 * alloc.c (mark_object): Add code to mark hash tables.
9137
9138 * lisp.h (GC_HASH_TABLE_P): New.
9139
9140 * emacs.c (main): Call init_fns.
9141
9142 * fns.c (init_fns): New.
9143
9144 * fns.c: Add hash table implementation.
9145
9146 * lisp.h (PVEC_HASH_TABLE): New.
9147 (struct Lisp_Hash_Table): New.
9148 (XHASH_TABLE): New.
9149 (XSET_HASH_TABLE): New.
9150 (HASH_TABLE_P): New.
9151 (CHECK_HASH_TABLE): New.
9152 (DEFAULT_HASH_SIZE): New.
9153 (DEFAULT_REHASH_THRESHOLD): New.
9154 (DEFAULT_REHASH_SIZE): New.
9155
9156 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9157 (x_write_glyphs): Compute overwritten cursor using real start
9158 and end positions of display.
9159 (x_insert_glyphs): Ditto.
9160
91611999-07-10 Gerd Moellmann <gerd@gnu.org>
9162
9163 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9164
9165 * dispnew.c (blank_row): Add y-position as parameter. Compute
9166 visible height.
9167
9168 * xdisp.c (next_element_from_string): Give padding spaces
9169 a position of -1.
9170
427ec082 9171 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
9172 marginals areas on tty frames in a future version.
9173 (allocate_matrices_for_frame_redisplay): Ditto.
9174
9175 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9176 to zero if number of glyphs in the row is <= 1.
9177
91781999-07-09 Gerd Moellmann <gerd@gnu.org>
9179
9180 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9181 into account.
9182
9183 * xdisp.c (handle_display_prop): Don't reset area if handing
9184 a property from a string that came from a `display' property.
9185 (handle_single_display_prop): Don't handle recursive `display'
9186 properties.
9187 (handle_single_display_prop): Handle some display property
9188 forms for terminal frames.
9189 (Qimage): Moved here from xfns.c.
9190
9191 * dispextern.h (struct it): New field string_from_display_prop_p.
9192
9193 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9194 line.
9195
91961999-07-08 Gerd Moellmann <gerd@gnu.org>
9197
9198 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9199
9200 * window.c (set_window_buffer): Set window's vscroll to zero.
9201
9202 * xdisp.c (QCwhen): New.
9203 (display_prop_end): New.
9204 (handle_single_display_prop): Use it.
9205 (debug_method_add): Print buffer name if tracing.
9206 (try_window_reusing_current_matrix): Compute visible height
9207 of reused rows. Fix cursor position calculation in case of
9208 top-line.
9209
9210 * dispextern.h (struct redisplay_interface): Add parameter
9211 cursor_on_p to update_window_end_hook.
9212
9213 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9214
92151999-07-07 Gerd Moellmann <gerd@gnu.org>
9216
427ec082 9217 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
9218 doesn't become negative when decrementing it.
9219
9220 * eval.c (Fsignal): Reset redisplaying_p to zero.
9221
9222 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9223 for window update.
9224 (try_window_id): Ditto.
9225
9226 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9227 (x_scroll_run): Ditto.
9228 (any_help_event_p): New.
9229 (x_initialize): Set it to zero.
9230 (XTread_socket): Clear help echo only if any_help_event_p.
9231
9232 * xdisp.c (init_iterator): Set top_line_p.
9233 (start_display): Use correct initial y if top-line is present.
9234 (make_cursor_line_fully_visible): Bug fixes for top-line.
9235 (try_scrolling): Ditto.
9236 (try_window_reusing_current_matrix): Ditto.
9237
9238 * dispextern.h (struct it): Add top_line_p.
9239
9240 * dispnew.c (shift_glyph_matrix): Move some computations out
9241 of the loop.
9242
427ec082 9243 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9244 XFLOATINT.
9245
92461999-07-06 Gerd Moellmann <gerd@gnu.org>
9247
9248 * dispnew.c (update_frame_1): When setting cursor in echo area,
9249 skip only over padding spaces at the end.
9250
9251 * xfaces.c (realize_tty_face): Set face's font_name field to
9252 "tty".
9253
9254 * term.c (update_end): Turn cursor on only if selected window's
9255 cursor_off_p flag is not set.
9256
92571999-07-05 Gerd Moellmann <gerd@gnu.org>
9258
9259 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9260 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9261 (TS_cursor_invisible): New.
9262 (term_init): Initialize TS_cursor_invisible.
9263 (tty_hide_cursor): New.
9264 (tty_show_cursor): New.
9265 (update_end): Show tty cursor.
9266 (update_begin): Hide tty cursor to prevent cursor flickering
9267 during redisplays triggered by timers (stealth fontification).
9268
9269 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9270
9271 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9272 in scroll bars.
9273 (x_handle_toolbar_click): Set modifier bits.
9274
92751999-07-04 Gerd Moellmann <gerd@gnu.org>
9276
9277 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9278 instead of a pointer to a volatile input_event.
427ec082 9279 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9280 declaration of local variable `sp'.
9281 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9282 to kbd_fetch_ptr.
9283
92841999-07-03 Gerd Moellmann <gerd@gnu.org>
9285
9286 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9287 only if buffer is modified. Return quickly if changes are
9288 above window start.
9289
92901999-07-02 Gerd Moellmann <gerd@gnu.org>
9291
9292 * dispextern.h (HSCROLL_WINDOWS): Removed.
9293
9294 * xdisp.c (mark_window_display_accurate): Don't set
9295 w->region_showing.
9296 (redisplay_internal): Don't call redraw_garbaged_frames.
9297
92981999-07-01 Gerd Moellmann <gerd@gnu.org>
9299
9300 * xdisp.c (echo_area_display): Don't display truncation marks
9301 for messages because 20.4 doesn't do it either.
9302 (redisplay_window): Case same window start. Instead of giving
9303 up when cursor is partially visible, make it fully visible.
9304 (mark_window_display_accurate): Some cleanup. Record window's
9305 last cursor information.
9306 (debug_method_add): Improved.
9307 (redisplay_internal): Record last cursor info only if not
9308 consider_all_windows_p.
9309
9310 * dispnew.c (update_window): Update top line after scrolling.
9311 (blank_row): Renamed from make_empty_enabled_row.
9312 (increment_glyph_row_buffer_positions): Increment positions
9313 in buffers, only.
9314
9315 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9316 string.
9317
93181999-06-30 Gerd Moellmann <gerd@gnu.org>
9319
9320 * dispnew.c (update_window): Check that updated row is visible.
9321
9322 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9323 top of window differently.
9324
9325 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9326 if region is showing.
9327
9328 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9329 avoiding matrix reallocation. Set window_vscroll in matrix.
9330
9331 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9332
26901792
DL
9333 * xdisp.c (debug_method_add): New.
9334 (debug_redisplay_method): Removed.
9335 (try_window_reusing_current_matrix): Handle case where old
9336 window start is the same as new window start.
9337
9338 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9339 an array instead of a pointer.
9340
26901792
DL
9341 * xfns.c (Fx_show_tip): Undo previous change.
9342
9343 * xterm.c (x_append_glyph): Clear glyph->u.val.
9344
9345 * dispextern.h (struct glyph): Increase size of face_id bit-field
9346 for CHAR_GLYPH to 12.
9347
93481999-06-29 Gerd Moellmann <gerd@gnu.org>
9349
9350 * xfaces.c (x_charset_registry): Make it externally visible.
9351
93521999-06-28 Gerd Moellmann <gerd@gnu.org>
9353
427ec082 9354 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9355 instead of WINDOW_WANTS_MODELINE_P.
9356
9357 * xterm.c (clear_mouse_face): Make externally visible.
9358
9359 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9360
9361 * xterm.c (expose_line): Handle exposure of top-lines.
9362
9363 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9364 if mouse_face_mouse_frame is null.
9365
9366 * xdisp.c (redisplay_window): If window is echo_area_window,
9367 and update_mode_line is set, update menubar and toolbar.
9368
9369 * dispnew.c (space_glyph): Set its charpos to -1.
9370 (update_frame_1): Ignore trailing padding spaces.
9371
9372 * xdisp.c (next_element_from_c_string): Set position of padding
9373 glyphs to -1.
9374
93751999-06-27 Gerd Moellmann <gerd@gnu.org>
9376
9377 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9378 XQueryColor.
9379
9380 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9381 (set_cursor_from_row): Skip over glyphs having a null object at
9382 the start of rows.
9383 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9384 glyphs.
9385 (handle_invisible_prop): Compute next change only when needed.
9386 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9387 line.
9388
93891999-06-26 Gerd Moellmann <gerd@gnu.org>
9390
9391 * xrdb.c (x_load_resources): Don't set resource for double-click
9392 time.
9393
9394 * xdisp.c (try_window_id): Return quickly if all changes are
9395 below the window's current matrix end.
9396
9397 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9398 parameter.
9399
9400 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9401 in desired not in current matrix.
9402 (try_window_reusing_current_matrix): Rotate matrices starting
9403 at start_vpos instead of 0.
9404
9405 * xterm.c (expose_window): Use window_text_bottom_y.
9406 (fast_find_position): Ditto.
9407
9408 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9409 (try_window_reusing_current_matrix): Ditto.
9410 (get_last_unchanged_at_beg_row): Ditto.
9411 (init_iterator): Ditto.
9412
9413 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9414 more row.
9415 (check_matrix_invariants): Use window_text_bottom_y.
9416 (update_window): Ditto.
9417 (scrolling_window): Ditto.
9418
9419 * xdisp.c (window_text_bottom_y): New.
9420
94211999-06-25 Gerd Moellmann <gerd@gnu.org>
9422
9423 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9424 clearing mouse face.
9425 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9426 event.xcrossing.focus is not set, and focus is in the menu bar,
9427 set focus frame as if event.xcrossing.focus were set.
9428
94291999-06-24 Gerd Moellmann <gerd@gnu.org>
9430
9431 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9432 * keyboard.c (make_lispy_movement): Ditto.
9433
9434 * window.c (coordinates_in_window): Return 4 if on top line.
9435 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9436
9437 * xdisp.c (window_box_height): Subtract top line height.
9438 (window_box): Add top line height to top y position if top line
9439 exists.
9440 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9441 the top line row of the window. Set initial y-position to
9442 window's top line height plus delta.
9443 (start_display): Choose start glyph row depending on whether
9444 window has a top line.
9445 (try_scrolling): Take top line height into account for aggressive
9446 scrolling.
9447 (compute_window_start_on_continuation_line): Take top line into
9448 account.
427ec082 9449 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9450 trigger a new redisplay.
9451 (try_window_reusing_current_matrix): Take top line into account.
9452 (find_last_row_displaying_text): Ditto.
9453 (get_last_unchanged_at_beg_row): DItto.
9454 (try_window_id): Ditto.
9455 (compute_line_metrics): Ditto.
9456
9457 * dispnew.c (shift_glyph_matrix): Compute visible row height
9458 taking top line of window into account.
9459 (update_window): Update top line. If scrolling_window detects
9460 that all rows are equal, only set cursor.
9461 (update_window_line): Call after_update_window_line_hook if
9462 mode_line_p flag of rows has changed.
9463 (scrolling_window): Add parameter top_line_p. Return -1 if
9464 all rows are equal.
9465 (mode_line_string): Add parameter mode_line_p. Handle strings
9466 in top lines.
9467
9468 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9469 (MATRIX_FIRST_TEXT_ROW): New.
9470 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9471 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9472 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9473 (MATRIX_TOP_LINE_HEIGHT): New.
9474 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9475 (CURRENT_TOP_LINE_HEIGHT): New.
9476 (DESIRED_TOP_LINE_HEIGHT): New.
9477 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9478 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9479 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9480 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9481
9482 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9483 lines.
9484 (x_draw_row_bitmaps): Take top line into account when clearing
9485 bitmap area.
9486 (x_estimate_mode_line_height): Replacement for
9487 x_frame_mode_line_height.
9488 (x_get_glyph_string_clip_rect): Take top line into account.
9489 (x_clear_end_of_line): Ditto.
9490 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9491 top lines.
9492 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9493 (x_erase_phys_cursor): Take top line into account.
9494
9495 * xdisp.c (window_box_height): Subtract top line height if
9496 window wants a top line.
9497 (display_mode_lines): New.
9498 (redisplay_window): Call it.
9499 (display_mode_line): Add parameters face_id and format.
9500
9501 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9502 (MATRIX_TOP_LINE_HEIGHT): New.
9503
9504 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9505
9506 * term.c (estimate_mode_line_height): Renamed from
9507 frame_mode_line_height. Add parameter face_id.
9508 (estimate_mode_line_height_hook): Renamed from
9509 frame_mode_line_height_hook.
9510 (produce_special_glyphs_hook): Removed.
9511 (produce_glyphs_hook): Removed.
9512
95131999-06-23 Gerd Moellmann <gerd@gnu.org>
9514
9515 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9516 (struct glyph_row): Add mode_line_p.
9517
9518 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9519 (Qtop_line): New.
9520 (syms_of_xfaces): Initialize Qtop_line.
9521
9522 * dispextern.h (TOP_LINE_FACE_ID): New.
9523
9524 * buffer.c (init_buffer_once): Set default for
9525 top_line_format to nil.
9526 (init_buffer_once): Init top_line_format.
9527 (default-top-line-format): New.
9528 (top-line-format): New buffer-local variable.
9529
9530 * buffer.h: Add top_line_format.
9531
9532 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9533
95341999-06-17 Dave Love <fx@gnu.org>
9535
9536 * xfns.c: Move the PNG section before the JPEG one to avoid
9537 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9538
26901792
DL
95391999-06-17 Gerd Moellmann <gerd@gnu.org>
9540
9541 * xfns.c (x_kill_gs_process): Don't free colors.
9542
95431999-06-17 Dave Love <fx@gnu.org>
9544
9545 * s/gnu-linux.h: Zap spurious ~.
9546
95471999-06-16 Gerd Moellmann <gerd@gnu.org>
9548
9549 * xfns.c (gif_load): Improve multi-image support.
9550
95511999-06-15 Gerd Moellmann <gerd@gnu.org>
9552
9553 * xfns.c (gif_load): Support multi-image files.
9554
9555 * Makefile.in (LIBGIF): Use libungif.
9556
9557 * configure.in (HAVE_GIF): Use libungif instead of libgif
9558 because the former doesn't contain patented compression code.
9559
9560 * xdisp.c (compute_window_start_on_continuation_line): Don't
9561 do it if line start is too far away from window start.
9562
95631999-06-14 Gerd Moellmann <gerd@gnu.org>
9564
9565 * buffer.c (init_buffer_once): Set buffer_local_flags for
9566 scroll_*_aggressively.
9567 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9568 (init_buffer_once): Set defaults for these variables.
9569 (syms_of_buffer): Add default-scroll-*-aggressively.
9570
9571 * buffer.h (scroll_up_aggressively): New.
9572 (scroll_down_aggressively): New.
9573
9574 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9575 a static PNG library.
9576
9577 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9578 in case it's a static library.
9579
9580 * Makefile.in (ctagsfiles): Split so that files starting
9581 with an `x' are found before files starting with `w32'.
9582 (ctagsfiles1): New.
9583 (ctagsfiles2): New.
9584 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9585
9586 * xdisp.c (compute_window_start_on_continuation_line): New.
9587 (redisplay_window): Use it.
9588 (INFINITY): New.
9589 (reseat_to_string): Use it.
9590 (hscroll_window_tree): Ditto.
9591 (compute_window_start_on_continuation_line): Ditto.
9592 (redisplay_window): Don't force display with a new window start.
9593
95941999-06-06 Gerd Moellmann <gerd@gnu.org>
9595
9596 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9597 if widget not present.
9598
9599 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9600
96011999-06-04 Gerd Moellmann <gerd@gnu.org>
9602
9603 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9604 value of realize_basic_faces.
9605 (load_face_font_or_fontset): Store full font name in face.
9606 (realize_default_face): Use full font name.
9607
26901792
DL
9608 * xterm.c (x_produce_glyphs): Set member char_to_display.
9609 (x_append_glyph): Store char_to_display in glyphs.
9610
9611 * dispextern.h (struct it): Add char_to_display.
9612
9613 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9614 if faces haven't been initialized.
9615 (Fx_create_frame): Call face-set-after-frame-default after
9616 faces have been initialized, and widget has been created.
9617
9618 * puresize.h (BASE_PURESIZE): Increased.
9619
96201999-06-01 Gerd Moellmann <gerd@gnu.org>
9621
9622 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9623 (Finternal_set_lisp_face_attribute): If frame is t when
9624 :font attribute is set, use the selected frame.
9625 (clear_face_cache): Add parameter clear_fonts_p.
9626 (Fclear_face_cache): Add optional parameter thorougly.
9627
9628 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9629 in table.
9630 (Fclear_face_cache): New.
9631 (choose_face_fontset_font): If fontset doesn't contain font
9632 pattern for the given charset, use CHARSET_ASCII.
9633 (Finternal_set_lisp_face_attribute): Fix handling of nil
9634 stipple attribute.
9635 (Finternal_set_lisp_face_attribute): Fix handling of changing
9636 font-related face attributes of the default face.
9637 (set_lface_from_font_name): Set only attributes that aren't
9638 specified.
9639
96401999-05-31 Gerd Moellmann <gerd@gnu.org>
9641
9642 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9643 font support.
9644 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9645 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9646 scalable fonts depending on the setting of SCALABLE_FONTS.
9647 (first_font_matching): List more than one font to find the
9648 first non-scalable matching font.
9649 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9650 depending on SCALABLE_FONTS.
9651 (better_font_p): New parameter compare_pt_p. If zero, don't
9652 compare point sizes of fonts.
9653 (exact_face_match_p) [SCALABLE_FONTS]: New.
9654 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9655 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9656 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9657 (syms_of_xfaces): Add scalable-fonts-allowed.
9658
96591999-05-26 Gerd Moellmann <gerd@gnu.org>
9660
9661 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9662 mask only if image contains simple transparency information.
9663 Otherwise, combine image with frame background color.
9664
9665 * configure.in (--with-png, HAVE_PNG): New.
9666
9667 * config.in (HAVE_PNG): New.
9668
9669 * Makefile.in: Add PNG library.
9670
9671 * xfns.c: Add PNG support.
9672
96731999-05-25 Gerd Moellmann <gerd@gnu.org>
9674
9675 * xdisp.c (init_xdisp): Initialize echo_area_message and
9676 previous_echo_area_message to nil.
9677
9678 * keyboard.c (read_char): Rename local variable echo_area_message
9679 because it shadows the global one.
9680
96811999-05-05 Gerd Moellmann <gerd@gnu.org>
9682
9683 * xterm.c (note_mode_line_highlight): Restructured.
9684
9685 * window.c (coordinates_in_window): Handle windows that don't have
9686 a mode line because their buffer's mode-line-format is nil.
9687 Recognize the mode line under x positions that correspond to
9688 flags areas and left scroll bar.
9689
96901999-05-02 Dave Love <fx@gnu.org>
9691
9692 * xterm.c (note_mouse_highlight): Separate help-echo processing
9693 from check on mouse-face so that it works generally.
9694
96951999-04-21 Gerd Moellmann <gerd@gnu.org>
9696
9697 * sound.c (Fplay_sound): Run hook play-sound-hook.
9698 (Qplay_sound_hook): New.
9699
97001999-04-20 Gerd Moellmann <gerd@gnu.org>
9701
9702 * xdisp.c (update_echo_area): Handle echo_area_message.
9703
97041999-04-19 Gerd Moellmann <gerd@gnu.org>
9705
9706 * editfns.c (Fmessage): Use message3.
9707
9708 * print.c (printchar): Set echo_area_message to nil.
9709 (strout): Ditto.
9710
9711 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9712 (Fminibuffer_completion_help): Ditto.
9713
9714 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9715 (command_loop_1): Test echo_areA_message.
9716 (read_char): Ditto.
9717 (record_menu_key): Set echo_area_message to nil.
9718 (Fexecute_extended_command): Test echo_area_message.
9719 (Fexecute_extended_command): Handle echo_area_message.
9720
9721 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9722 is set.
9723
9724 * editfns.c (Fcurrent_message): If echo_area_message is set,
9725 return a substring of that string.
9726
9727 * dispnew.c (direct_output_for_insert): Test echo_area_message
9728 in addition to echo_area_glyphs.
9729 (set_window_cursor_after_update): Ditto.
9730 (update_frame_1): Ditto.
9731
9732 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9733 old Lisp message string.
9734
9735 * xdisp.c (echo_area_message): New.
9736 (previous_echo_area_message): New.
9737 (syms_of_xdisp): Initialize and staticpro new variables.
9738 (echo_area_display): Display echo_area_message if set.
9739 (message2_nolog): Set echo_area_message and
9740 previous_echo_area_message.
9741 (echo_area_display): Set previous_echo_area_message.
9742 (redisplay_internal): Display echo area if echo_area_message
9743 or previous_echo_area_message are set.
9744 (redisplay_preserve_echo_area): Test/set echo_area_message and
9745 previous_echo_area_message.
9746 (redisplay_window): Test echo_area_message.
9747 (message3_nolog): New.
9748 (message3): New.
9749
9750 * editfns.c (Fformat): Add text properties to the result string
9751 from properties of the format string and properties of string
9752 arguments.
9753
9754 * textprop.c (text_property_list): New.
9755 (add_text_properties_from_list): New.
9756 (extend_property_ranges): New.
9757
97581999-03-29 Gerd Moellmann <gerd@gnu.org>
9759
9760 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9761 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9762 Use these symbols for the box face attribute instead of the
9763 removed ones.
9764
97651999-03-12 Gerd Moellmann <gerd@gnu.org>
9766
9767 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9768 Correct wrong test for slant.
9769
97701999-03-10 Gerd Moellmann <gerd@gnu.org>
9771
9772 * xfaces.c: Use `unspecified' for unspecified face attributes,
9773 use t and nil for on/off.
9774
97751999-03-06 Gerd Moellmann <gerd@gnu.org>
9776
9777 * buffer.c (syms_of_buffer): Extend doc string of
9778 mode-line-format.
9779
9780 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9781 (first_font_matching): New.
9782 (set_lface_from_font_name): Use it if font name is a pattern.
9783 (font_field_wildcard_p): Removed.
9784
9785 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9786 Recompute visible height of rows.
9787
9788 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9789 Don't accept non-strings for help-echo from overlays.
9790
97911999-03-04 Dave Love <fx@gnu.org>
9792
9793 * xterm.c (note_mouse_highlight): Check overlays for help-text
9794 property.
9795 (XTread_socket): Fix compiler warning.
427ec082 9796
26901792
DL
97971999-03-05 Gerd Moellmann <gerd@gnu.org>
9798
427ec082 9799 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9800 overlay to 10. Call overlays_at so that it doesn't try to
9801 extend the vector.
9802
9803 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9804 height.
9805
9806 * dispnew.c (row_equal_p): Compare visible row height, only.
9807 (update_text_area): Draw whole line if visible heights of
9808 rows differ.
9809 (update_window_line): Call after_update_window_line_hook
9810 if visible row height has changed.
9811
9812 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9813 (struct glyph_row): New member visible_height.
9814
9815 * xfaces.c (font_field_wildcard_p): New.
9816 (set_lface_from_font_name): Remove parameter force_p. Accept
9817 font names containing wildcards.
9818
98191999-03-04 Gerd Moellmann <gerd@gnu.org>
9820
9821 * xterm.c (x_after_update_window_line): Clear internal border
9822 when windows_or_buffers_changed.
9823
9824 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9825 buffer has a nil mode_line_format.
9826
98271999-03-03 Gerd Moellmann <gerd@gnu.org>
9828
9829 * xterm.c (x_setup_relief_colors): Use either background color
9830 or specified color.
9831
9832 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9833
9834 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9835
9836 * xterm.c (x_draw_box_rect): New.
9837 (x_draw_glyph_string_box): Renamed from
9838 x_draw_glyph_string_relief. Call x_draw_box_rect.
9839
9840 * xfns.c (QCrelief): New.
9841 (syms_of_xfns): Initialize it.
9842
9843 * dispextern.h (struct glyph): Rename left_shadow_p to
9844 left_box_line_p, right_shadow_p to right_box_line_p.
9845 (MAX_RELIEF_THICKNESS): Removed.
9846 (struct it): Rename members having `relief' in their names
9847 to contain `box' instead.
9848
9849 * xfaces.c (realize_x_face): Handle new box attribute values.
9850 (QCrelief, Qbox): Removed.
9851 (QCshadow, QCcolor, Qraised, Qsunken): New.
9852 (syms_of_xfaces): Initialize new symbols.
9853
98541999-03-02 Gerd Moellmann <gerd@gnu.org>
9855
9856 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9857
9858 * xfaces.c (LFACE_RELIEF): Removed.
9859 (merge_face_vector_with_property): Remove handling of `:relief'.
9860 (Finternal_set_lisp_face_attribute): Ditto.
9861 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9862 (Finternal_get_lisp_face_attribute): Ditto.
9863 (realize_default_face): Ditto.
9864 (lface_hash): Don't compute hash from relief.
9865
9866 * dispextern.h (struct face): Replace member `relief' by
9867 `box_line_width'. Add member `box'.
9868 (face_box_type): New.
9869
9870 * xterm.c (x_produce_glyphs): If face has overline, add overline
9871 thickness + 1 to ascent.
9872
98731999-03-01 Gerd Moellmann <gerd@gnu.org>
9874
9875 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9876 strike-through, and boxes.
9877 (x_draw_glyph_string_underline): Removed.
9878
9879 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9880 (Qoverline, Qstrike_through, Qbox): New.
9881 (syms_of_xfaces): Define these symbols.
9882 (check_lface_attrs): Add checks for overline, strike-through,
9883 and box.
9884 (Finternal_set_lisp_face_attribute): Set new attributes.
9885 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9886 (load_color): Handle new attributes.
9887 (realize_x_face): Ditto.
9888 (merge_face_vector_with_property): Ditto.
9889 (free_face_colors): Ditto.
9890 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9891 (Finternal_get_lisp_face_attribute): Ditto.
9892 (Finternal_lisp_face_attribute_values): Ditto.
9893
9894 * dispextern.h (lface_attribute_index): Add enumerators for
9895 overstrike, strike-through, and box.
9896 (struct face): Add members for overline, strike-through, and
9897 box.
9898
98991999-02-17 Dave Love <fx@gnu.org>
9900
9901 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9902 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9903 files.
9904
99051999-02-16 Gerd Moellmann <gerd@gnu.org>
9906
9907 * keyboard.c (toolbar_items): Call access_keymap with third
9908 parameter 1, so that we don't get inherited toolbar item
9909 definitions.
9910
9911 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9912 the window end vpos when in empty first line of window.
9913
99141999-02-15 Gerd Moellmann <gerd@gnu.org>
9915
9916 * xfaces.c (set_font_frame_param): New.
9917 (Finternal_set_lisp_face_attribute): Call it.
9918
9919Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9920
9921 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9922 Accept specifications of color for underline.
9923
99241999-02-13 Gerd Moellmann <gerd@gnu.org>
9925
9926 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9927 `frame' is t, operate on face defaults for new frames. If it
9928 is nil, operate on the selected frame.
9929
99301999-02-12 Gerd Moellmann <gerd@gnu.org>
9931
9932 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9933 (update_window): Put the call to check_matrix_invariants in #if 0.
9934
9935Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9936
9937 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9938 Remove definition of UNDERLINE_COLOR.
9939
9940Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9941
9942 * xfaces.c (free_face_colors): Free the color for underline.
9943
9944 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9945 to the GC.
9946
9947Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9948
9949 * dispextern.h (UNDERLINE_COLOR): Defined.
9950 (struct face): Added two new members.
9951 underline_color, underline_defaulted_p.
9952
427ec082 9953 * xfaces.c (merge_face_vector_with_property):
26901792 9954 (check_lface_attrs): Accept the string value for underline.
427ec082 9955 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9956
9957 * xfaces.c (load_color): Change the last argument type to enum
9958 lface_attribute_index from int. And addec code for underling coloring.
9959 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9960
26901792
DL
99611999-02-12 Gerd Moellmann <gerd@gnu.org>
9962
9963 * xfns.c (Fx_image_header): Removed.
9964
99651999-02-07 Gerd Moellmann <gerd@gnu.org>
9966
9967 * xterm.c: Don't include <bitmaps/gray>.
9968 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9969
9970 * xfns.c (Fx_image_header): Add missing `\n\'.
9971 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9972
99731999-02-01 Gerd Moellmann <gerd@gnu.org>
9974
9975 * xterm.c (x_scroll_bar_create): Set background pixel from
9976 specified scroll bar color.
9977 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9978
9979 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9980 (x_set_scroll_bar_background): Ditto.
9981
9982 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9983
9984 * xfns.c (x_default_scroll_bar_color_parameter): New.
9985 (Fx_create_frame): Call it.
9986
99871999-01-31 Gerd Moellmann <gerd@gnu.org>
9988
9989 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9990 values in x_output structure.
26901792
DL
9991 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9992 (syms_of_xfns): Initialize these symbols.
9993
9994 * xterm.h (struct x_output): Add scroll bar pixel colors.
9995
9996 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9997 (x_set_scroll_bar_foreground): New.
9998 (x_set_scroll_bar_background): New.
9999
26901792
DL
100001999-01-12 Gerd Moellmann <gerd@gnu.org>
10001
10002 * xdisp.c (handle_single_display_prop): New.
10003 (handle_display_prop): Call it.
10004 (handle_raise_prop): Removed.
10005 (handle_height_prop): Removed.
10006 (handle_space_width_prop): Removed.
10007 (handle_face_prop): Remove handling of raised text.
10008 (handle_display_prop): Do it here.
10009
10010 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
10011 (RAISE_PROP_IDX): Removed.
10012 (HEIGHT_PROP_IDX): Removed.
10013 (SPACE_WIDTH_PROP_IDX): Removed.
10014
10015 * xdisp.c (Qdisplay): Replaces Qglyph.
10016 (handle_display_prop): Formerly handle_glyph_prop.
10017
100181999-01-11 Gerd Moellmann <gerd@gnu.org>
10019
10020 * xdisp.c (reseat_to_string): Set position in display vector to -1.
10021 (handle_stop): Set position in display vector to -1. Don't
10022 check overlay strings when set up to deliver characters from a
10023 display vector.
10024 (set_iterator_to_next): At the end of a run of characters from a
10025 display vector, check whether the display vector display replaces
10026 the display of a character.
10027
100281999-01-05 Gerd Moellmann <gerd@gnu.org>
10029
10030 * xfaces.c (init_frame_faces): Don't realize faces if frame's
10031 X window hasn't been created yet.
10032
100331998-12-06 Gerd Moellmann <gerd@gnu.org>
10034
10035 * sound.c: New.
10036
100371998-12-04 Gerd Moellmann <gerd@gnu.org>
10038
10039 * config.in (HAVE_SOUND): New.
10040
10041 * emacs.c (main): Call syms_of_sound and init_sound.
10042
10043 * Makefile.in (obj): Add sound.o.
10044
10045 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
10046
10047 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
10048 (HAVE_SYS_SOUNDCARD_H): New.
10049
100501998-12-03 Gerd Moellmann <gerd@gnu.org>
10051
10052 * buffer.h (struct buffer): indicate_empty_lines renamed from
10053 indicate_zv_lines.
10054
10055 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
10056 (default-indicate-zv-lines): Likewise.
10057
10058 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
10059 to indicate_empty_line_p.
10060
10061 * xdisp.c (reseat_at_next_visible_line_start): Reset method
10062 to next_element_from_buffer.
10063
10064 * frame.c (make_frame): Set n_current_toolbar_items to 0.
10065
10066 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
10067 and `N-'.
10068
10069 * xfns.c (xbm_scan): New.
10070 (xbm_read_hexint): Removed.
10071 (xbm_read_bitmap_file_data): Use xbm_scan.
10072
10073 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
10074
100751998-12-02 Gerd Moellmann <gerd@gnu.org>
10076
10077 * xfns.c (xbm_read_hexint): New.
10078 (xbm_read_bitmap_file_data): New.
10079 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10080 instead of XReadBitmapFileData.
10081
10082 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10083
10084 * xfaces.c (face_with_height): New.
10085
10086 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10087 (eval_form): Renamed from eval_mode_element.
10088 (handle_face_prop): Use it.
10089 (Qheight): Replaces Qsmaller.
10090 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 10091 (handle_face_prop): If iterator's font_height is not an
26901792
DL
10092 integer, evaluate it to get the font height to use.
10093
10094 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10095 (struct it): Use `font_height' instead of `smaller'.
10096
100971998-12-01 Gerd Moellmann <gerd@gnu.org>
10098
10099 * xdisp.c (reseat_1): New.
10100 (reseat): Call it.
10101 (move_it_vertically_backward): Ditto.
10102 (redisplay_window): Don't abort when cursor not found in recenter.
10103
101041998-11-30 Gerd Moellmann <gerd@gnu.org>
10105
10106 * xdisp.c (reseat_at_next_visible_line_start): When not
10107 currently delivering display elements from the current buffer,
10108 restore buffer position first.
10109 (init_from_display_pos): Don't set IT's position from the
10110 position passed to this function.
10111
101121998-11-28 Gerd Moellmann <gerd@gnu.org>
10113
10114 * config.in (PROTO): Removed.
10115
10116 * xterm.h: Change PROTO to P_.
10117
101181998-11-26 Gerd Moellmann <gerd@gnu.org>
10119
10120 * xterm.c (take_vertical_position_into_account): New.
10121 (x_produce_image_glyph): Call it.
10122 (x_produce_stretch_glyph): Ditto.
10123 (x_produce_glyphs): Ditto.
10124 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10125 (x_fill_composite_glyph_string): Ditto.
10126 (x_fill_image_glyph_string): Ditto.
10127 (x_fill_stretch_glyph_string): Ditto.
10128
10129 * xdisp.c (display_line): Always compute row height from
10130 max_ascent and max_descent.
10131
10132 * dispextern.h (struct glyph): Add voffset.
10133 (struct it): Replace height by descent, max_height by max_descent.
10134
10135 * xterm.c (x_append_glyph): Set voffset
10136 (x_append_stretch_glyph): Ditto.
10137 (x_produce_image_glyph): Ditto.
10138 (x_produce_glyphs): Take voffset into account.
10139 (x_produce_image_glyph): Ditto.
10140 (x_produce_stretch_glyph): Ditto.
10141
10142 * dispextern.h (struct it): Add voffset.
10143 * xdisp.c (push_it): Save voffset.
10144 (pop_it): Restore it.
10145
10146 * xdisp.c (it_props): Add entry for `raise'.
10147 (handle_raise_prop): New.
10148
10149 * dispextern.h (RAISE_PROP_IDX): New.
10150
10151 * xdisp.c (Qraise): New.
10152 (syms_of_xdisp): Define Qraised.
10153
10154 * xterm.c (x_scroll_bar_move): Clear to the left and right
10155 of toolkit scroll bars differently.
10156 (x_scroll_bar_move): Removed.
10157 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10158
10159 * dispextern.h: Make it compilable --with-x=no.
10160 * alloc.c: Ditto.
10161 * emacs.c: Ditto.
10162 * dispnew.c: Ditto.
10163 * keyboard.c: Ditto.
10164 * term.c: Ditto.
10165 * xdisp.c: Ditto.
10166 * xfaces.c: Ditto.
10167 * xfns.c: Ditto.
10168 * xmenu.c: Ditto.
10169
101701998-11-25 Gerd Moellmann <gerd@gnu.org>
10171
10172 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10173
101741998-11-24 Gerd Moellmann <gerd@gnu.org>
10175
10176 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10177 update slider size, only.
10178 (xm_scroll_callback): Set dragging member of the scroll bar.
10179 (xt_action_hook): Reset last_scroll_bar_part.
10180 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10181
26901792
DL
10182 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10183 window on newly created frames that don't have one.
10184
101851998-11-23 Gerd Moellmann <gerd@gnu.org>
10186
10187 * xdisp.c (restore_overlay_strings): Removed.
10188 (restore_dpvec): Removed.
10189 (init_from_display_pos): Inline both functions above.
10190
10191 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10192 (parse_image_spec): Handle it.
10193 (xbm_format): Use it.
10194 (xpm_format): Ditto.
10195 (pbm_format): Ditto.
10196 (jpeg_format): Ditto.
10197 (tiff_format): Ditto.
10198 (gif_format): Ditto.
10199 (gs_format): Ditto.
10200
10201 * xdisp.c (set_window_cursor): Removed.
10202 (redisplay_internal): Case cursor motion in cursor line of
10203 selected window; use set_cursor_from_row.
10204
102051998-11-22 Gerd Moellmann <gerd@gnu.org>
10206
10207 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10208 into account.
10209
102101998-11-21 Gerd Moellmann <gerd@gnu.org>
10211
10212 * xterm.c (expose_frame): Redraw menu bar window.
10213
10214 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10215 in menu item.
10216
10217 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10218 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10219
10220 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10221 to determine vertical_scroll_bar_extra.
10222 (EmacsFrameSetCharSize): Ditto.
10223 * xfns.c (x_figure_window_size): Ditto.
10224
10225 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10226 (x_draw_bitmap): Ditto.
10227
10228 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10229 * xfaces.c (realize_basic_faces): Realize it.
10230
102311998-11-20 Gerd Moellmann <gerd@gnu.org>
10232
10233 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10234 under LessTif Use the widget of the frame as parent for the
26901792
DL
10235 menu, again.
10236
102371998-11-19 Gerd Moellmann <gerd@gnu.org>
10238
10239 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10240 When EnterNotify, don't generate a mouse movement event if
10241 notification is from a busy-cursor child window.
10242
10243 * xterm.h (struct x_output): Add busy_window, remove cursor.
10244
10245 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10246 Use a transparent window to display the busy-cursor.
10247 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10248
102491998-11-17 Gerd Moellmann <gerd@gnu.org>
10250
10251 * xdisp.c (check_window_end): New, for debugging.
10252 (CHECK_WINDOW_END): New.
10253 (try_window_id): Use it.
10254
10255 * xterm.c (process_expose_from_menu): Return int.
10256
10257 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10258 TOOLBAR_EVENT events in last_nonmenu_event.
10259
102601998-11-16 Gerd Moellmann <gerd@gnu.org>
10261
10262 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10263 window end isn't reliable, so set window_end_valid to nil.
10264 (redisplay_internal): If overlay arrow has changed, set
10265 windows_or_buffers_changed to redisplay thoroughly.
10266
10267 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10268 necessary.
10269
10270 * xfns.c (file_dialog_cb): New.
10271 (Fx_file_dialog): New.
10272 * fileio.c (Fread_file_name): Call it.
10273
427ec082 10274 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10275 selection dialog.
10276
102771998-11-14 Gerd Moellmann <gerd@gnu.org>
10278
10279 * xterm.c (note_mouse_highlight): Don't highlight when popup
10280 is active.
10281
26901792
DL
10282 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10283 timer-event-handler. This busy cursor tends to be anoying if
10284 fontifying stealthily.
10285
10286 * dispnew.c (direct_output_for_insert): Give up if current row
10287 contains trailing whitespace.
10288
102891998-11-13 Gerd Moellmann <gerd@gnu.org>
10290
10291 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10292
10293 * xdisp.c (handle_fontified_prop): New.
10294 (Vfontification_functions): New.
10295 (Qfontification_functions): New.
10296 (it_props): Add handle_fontified_prop.
10297
102981998-11-12 Gerd Moellmann <gerd@gnu.org>
10299
10300 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10301 Otherwise, under LessTif, after the popup has gone, all button
10302 press events come in for the frame's widget, and release events
10303 come in for the edit_widget.
10304 * xterm.c (XTread_socket): Remove workaround for that problem.
10305 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10306 XmScrollBarSetValues.
10307 (SET_SAVED_MENU_EVENT): Give it statement form.
10308
26901792
DL
10309 * xfaces.c (display_message): If waiting_for_input, don't display
10310 the message.
10311
10312 * window.c (scroll_command): If not acting on current_buffer,
10313 make redisplay consider all windows.
10314
10315 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10316
10317 * xdisp.c (handle_glyph_prop): Set it->object for images to
10318 the object having the glyph property.
10319
10320 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10321 invisible.
10322
103231998-11-11 Gerd Moellmann <gerd@gnu.org>
10324
10325 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10326 (x_term_init): Create the gray pixmap.
10327 (x_setup_relief_color): Use it.
10328 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10329 internal border at the top of a frame.
10330 (x_init_glyph_string): Likewise.
427ec082 10331 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10332 full-width lines.
10333 (XTflash): Don't flash the toolbar window.
10334
10335 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10336 in case of ButtonPress events.
10337
103381998-11-10 Gerd Moellmann <gerd@gnu.org>
10339
10340 * xrdb.c (x_load_resources): Add grey background colors as
10341 defaults for menus, scroll bars, and dialogs.
10342
10343 * insdel.c (prepare_to_modify_buffer): Move setting
10344 windows_or_buffers_changed from modify_region here.
10345
10346 * xfns.c (Fx_show_tip): Inhibit redisplay.
10347 (Fx_hide_tip): Ditto.
10348 (Fx_image_header): New.
10349
103501998-11-09 Gerd Moellmann <gerd@gnu.org>
10351
10352 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10353 when clearing current window matrices.
10354
103551998-11-08 Gerd Moellmann <gerd@gnu.org>
10356
10357 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10358 position from a string position. Use the right end position
10359 if the property spans a whole overlay string.
10360
103611998-11-07 Gerd Moellmann <gerd@gnu.org>
10362
10363 * xmenu.c (menubar_selection_callback): Remove workaround for
10364 Lesstif not calling XmNpopdownCallback because it doesn't
10365 handle the case where users don't select any menu item.
10366
26901792
DL
10367 * insdel.c (modify_region): Set windows_or_buffers_changed.
10368
10369 * buffer.c (set_buffer_internal): Don't set
10370 windows_or_buffers_changed.
10371
26901792
DL
10372 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10373
26901792
DL
10374 * xmenu.c (menubar_selection_callback): Add workaround for
10375 Lesstif not calling XmNpopdownCallback.
10376
10377 * xdisp.c (eval_mode_element): New.
10378 (eval_mode_handler): New.
10379 (display_mode_element): Use eval_mode_element.
10380
10381 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10382 Remove code looking at text props of default value.
10383
10384 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10385
26901792
DL
103861998-11-06 Gerd Moellmann <gerd@gnu.org>
10387
427ec082 10388 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10389 BUTTON_TYPE_NONE.
10390 (single_submenu): Likewise for panes and menu items.
10391 (set_frame_menubar): Set button_type of menu bar to none.
10392 (xmenu_show): Likewise.
10393 (single_submenu): Set widget values selected slot.
10394 (xmenu_show): Likewise.
10395
26901792
DL
10396 * xmenu.c (push_menu_item): Add parameters `type' and
10397 `selected'. Store it in menu_items.
10398 (MENU_ITEMS_ITEM_TYPE): New.
10399 (MENU_ITEMS_ITEM_SELECTED): New.
10400 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10401
10402 * xfns.c (clear_image_cache): Get the current time, before
10403 doing anything.
10404 (cache_image): Set prev pointer of next image.
10405 (clear_image_cache): Clear current matrices if any image was
10406 freed.
10407
10408 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10409
10410 * xfns.c (x_set_cursor): New.
10411 (Fx_display_busy_cursor): New.
10412 (Fx_undisplay_busy_cursor): New.
10413
10414 * xterm.h (struct x_output): Add busy_cursor.
10415
10416 * xfns.c (Vx_busy_pointer_shape): New.
10417 (x_set_mouse_color): Create busy cursor.
10418
10419 * process.c (wait_reading_process_input): Show and hide busy
10420 cursor.
10421
10422 * keyboard.c (command_loop_1): Display busy cursor.
10423
10424 * eval.c (Fsignal): Hide busy cursor.
10425
10426 * buffer.c (set_buffer_internal): Don't set
10427 windows_or_buffers_changed.
10428
10429 * xterm.c (redo_mouse_highlight): New.
10430
104311998-11-04 Gerd Moellmann <gerd@gnu.org>
10432
26901792
DL
10433 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10434 (x_build_heuritic_mask): New.
10435 (lookup_image): Call it.
10436
10437 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10438 (previous_help_echo): New.
10439 (XTread_socket): Generate help event with nil message when
10440 leaving a region with help-echo.
10441 (note_mouse_highlight): Handle `help-echo' over text.
10442 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10443 CirculateRequest.
10444 (clear_mouse_face): Don't clear if tooltip is shown.
10445 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10446 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10447
10448 * keyboard.c (Vshow_help_function): New.
10449 (read_char): Use it.
10450
104511998-11-03 Gerd Moellmann <gerd@gnu.org>
10452
10453 * xfns.c (x_create_tip_frame): New.
10454 (Fx_show_tip): New.
10455 (Fx_hide_tip): New.
10456
427ec082 10457 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10458 a widget.
10459
10460 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10461 to full_width_p. Add internal_border_p.
10462
104631998-11-02 Gerd Moellmann <gerd@gnu.org>
10464
10465 * xterm.c (note_mode_line_highlight): Check the charpos of
10466 the glyph under the mouse pointer before accessing text
10467 properties at that position.
10468
104691998-11-01 Gerd Moellmann <gerd@gnu.org>
10470
10471 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10472
10473 * xdisp.c (auto-raise-toolbar-buttons): New.
10474 (build_desired_toolbar_string): Handle the flag.
10475 (toolbar-button-margin): New.
10476 (toolbar-button-relief): New.
10477 (build_desired_toolbar_string): Use margin and relief.
10478
10479 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10480 for FreeBSD.
10481 (note_mode_line_highlight): New.
10482 (note_mouse_highlight): Call it.
10483
104841998-10-31 Gerd Moellmann <gerd@gnu.org>
10485
10486 * s/freebsd.h (NARROWPROTO): New.
10487
10488 * xdisp.c (display_string): New parameter face_string.
10489 (display_mode_element): When displaying a symbol with a string
10490 value, use text properties from the symbol's default value, maybe.
10491
10492 * xrdb.c (x_load_resources): Add font defaults for menus and
10493 dialogs.
10494
104951998-10-30 Gerd Moellmann <gerd@gnu.org>
10496
10497 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10498
104991998-10-29 Gerd Moellmann <gerd@gnu.org>
10500
10501 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10502 produced for characters with codes < 32 under certain
10503 circumstances.
10504
10505 * xdisp.c (redisplay_window): Handle values of PT in front
10506 of invisible, intangible text.
427ec082 10507 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10508 displaying lines.
10509 (display_mode_element): Assign to glyphs written for a mode
10510 line spec `%x' as object the Lisp format string, as position
10511 the position of the `%' in that string.
10512 (display_string): If displaying a C string, optionally get
10513 the face to use from a Lisp string.
10514
10515 * xterm.c (expose_window_tree): Include mode line height.
10516
10517 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10518
105191998-10-27 Gerd Moellmann <gerd@gnu.org>
10520
10521 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10522 over mode line.
10523
105241998-10-26 Gerd Moellmann <gerd@gnu.org>
10525
10526 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10527
10528 * xdisp.c (redisplay_window): If mode line height has changed,
10529 arrange for a thorough immediate redisplay using the correct mode
10530 line height.
10531 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10532
10533 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10534 (CURRENT_MODE_LINE_HEIGHT): New.
10535 (DESIRED_MODE_LINE_HEIGHT): New.
10536
10537 * keyboard.c (make_lispy_event): Add string and string position
10538 info to mouse-click events.
10539 (read_key_sequence): Handle `local-map' property of mode line
10540 strings.
10541
10542 * keyboard.h (POSN_STRING): New.
10543
105441998-10-25 Gerd Moellmann <gerd@gnu.org>
10545
10546 * dispnew.c (mode_line_string): Mew.
10547
10548 * xterm.c (xt_action_hook): New.
10549 (x_create_toolkit_scroll_bar): Add action hook.
10550 (xm_scroll_callback): Implement dragging.
10551
10552 * keyboard.c (Qend_scroll): New.
10553 (scroll_bar_parts): Add it.
10554
10555 * termhooks.h (scroll_bar_end_scroll): New.
10556
10557 * xterm.c (XTread_socket): Bug fix.
10558
105591998-10-24 Gerd Moellmann <gerd@gnu.org>
10560
10561 * xdisp.c (redisplay_window): Finish scroll bars after
10562 redisplaying toolbar.
10563
10564 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10565 (syms_of_keyboard): Add Qbottom.
10566
10567 * termhooks.h (scroll_bar_to_top): New.
10568 (scroll_bar_to_bottom): New.
10569
10570 * xdisp.c (redisplay_window): Always resize toolbar window if
10571 auto_resize_toolbar_p is non-zero.
10572 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10573 (window_box): New.
10574 (window_box_height): New.
10575 (window_box_width): New.
10576 (window_box_left): New.
10577 (window_box_right): New.
10578 (window_box_edges): New.
10579
105801998-10-23 Gerd Moellmann <gerd@gnu.org>
10581
10582 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10583 XawScrollbarSetThumb in FreeBSD.
10584 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10585 to true.
10586
10587 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10588 is out of range.
10589
10590 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10591 (x_term_init): Initialize it.
10592
10593 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10594
10595 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10596 cursor.
10597
105981998-10-22 Gerd Moellmann <gerd@gnu.org>
10599
10600 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10601 differently when using toolkit scroll bars.
10602
10603 * xterm.c (x_send_scroll_bar_event): New.
10604 (x_scroll_bar_to_input_event): New.
10605 (xaw3d_scroll_callback): New.
10606 (xaw3d_jump_callback): New.
10607 (xm_scroll_callback): New.
10608 (x_toolkit_scroll_p): New.
10609 (XTread_socket): Handle scroll bar client message.
10610 (x_term_init): Initialize Xatom_Scrollbar.
10611 (x_scroll_bar_create): Set cursor.
10612 (xm_scroll_callback):
10613 (x_create_toolkit_scroll_bar): New.
10614 (x_set_toolkit_scroll_bar_thumb): New.
10615 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10616 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10617
10618 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10619
106201998-10-21 Gerd Moellmann <gerd@gnu.org>
10621
10622 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10623 (XTread_socket): Don't handle mouse button events for scroll bars
10624 if using toolkit scroll bars.
10625 (XTset_vertical_scroll_bar): Set thumb size and position for
10626 Athena scroll bar.
10627
10628 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10629
10630 * xterm.c (XTread_socket): Dispatch expose event to widget
10631 if using toolkit scroll bars.
10632 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10633 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10634 if using toolkit scroll bars.
10635 (x_scroll_bar_move): Handle tookit scroll bars.
10636
10637 * Makefile.in (LIBW): Use Xaw3d if present.
10638
10639 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10640 (HAVE_XAW3D): New.
427ec082 10641
26901792
DL
10642 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10643 (HAVE_XAW3D): New.
10644
427ec082 10645 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10646 right vertical scroll bar.
10647
106481998-10-20 Gerd Moellmann <gerd@gnu.org>
10649
10650 * xfns.c (xpm_load): Support reading XPM images from string
10651 buffers containing data in the same format as an XPM file.
10652 Support `:color-symbols'.
10653 (xpm_format): Add `:data'.
10654 (xpm_keyword_index): Add XPM_DATA.
10655 (syms_of_xfns): Add `:color-symbols'.
10656 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10657 (xpm_valid_color_symbols_p): New.
10658 (xpm_image_p): Call it.
10659
10660 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10661 attribute to the image if item is not enabled.
10662
10663 * xfns.c (x_laplace): New.
10664 (x_laplace_read_row): New.
10665 (x_laplace_write_row): New.
10666 (lookup_image): Handle common image attributes here. New
10667 attribute `:algorithm'.
10668
10669 * xfaces.c (clear_face_cache): Call clear_image_cache.
10670
10671 * xterm.c (x_inverted_image_mask): Removed.
10672 (x_draw_image_foreground_1): New.
10673 (x_draw_image_glyph_string): Draw images with mask to a temporary
10674 pixmap to reduce flickering.
10675
10676 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10677 (display_toolbar_line): Remove parameter `margin'.
10678
106791998-10-19 Gerd Moellmann <gerd@gnu.org>
10680
10681 * xdisp.c (toolbar_lines_needed): New.
10682 (auto-resize-toolbars): New.
10683
10684 * xfns.c (cache_image): Correct call to xrealloc.
10685
10686 * dispnew.c (Fset_toolbar_height): Removed.
10687
10688 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10689 FRAME_MENU_BAR_LINES.
10690
10691 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10692 instead of FRAME_MENU_BAR_LINES.
10693 (check_frame_size): Ditto.
10694
10695 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10696 instead of FRAME_MENU_BAR_LINES.
10697 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10698 (build_frame_matrix): Ditto.
10699 (change_frame_size_1): Ditto.
10700
10701 * frame.h (FRAME_TOOLBAR_LINES): New.
10702 (FRAME_TOP_MARGIN): New.
10703
10704 * window.c (struct save_window_data): Add frame_toolbar_lines.
10705 (Fset_window_configuration): Handle toolbar lines.
10706 (Fcurrent_window_configuration): Save toolbar lines.
10707
10708 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10709
10710 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10711
10712 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10713
10714 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10715 (x_set_toolbar_lines): New.
10716
10717 * keyboard.c (cmd_error_internal): Bug fix.
10718
10719 * xterm.c: Remove double include of syssignal.h.
10720
107211998-10-18 Gerd Moellmann <gerd@gnu.org>
10722
10723 * xterm.c (x_toolbar_item): New.
10724 (x_handle_toolbar_click): Use it.
10725 (note_toolbar_highlight): Use it.
10726
10727 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10728 and toolbar_items_vectors.
10729
10730 * xterm.c (help_echo): New.
10731 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10732 (x_set_glyph_string_gc): Handle them.
10733 (x_after_update_window_line): Don't do anything in pseudo-windows.
10734 (x_produce_image_glyph): Take image margin and face relief into
10735 account.
10736 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10737 (x_draw_glyph_string_background): Optimize case when face has
10738 relief.
10739 (x_setup_relief_color): Take frame instead of glyph string
10740 parameter.
10741 (x_draw_relief_rect): New.
10742 (x_draw_glyph_string_relief): Call it.
10743 (x_draw_image_glyph_string_foreground): Handle margin and image
10744 relief.
10745 (x_draw_image_glyph_string_background): Ditto.
10746 (expose_frame): Redraw toolbar window.
10747 (expose_window): Don't draw cursor for pseudo-windows.
10748 (x_y_to_hpos_vpos): Handle pseudo-windows.
10749 (frame_to_window_pixel_xy): New.
10750 (note_mouse_highlight): Call note_toolbar_highlight.
10751 (x_handle_toolbar_click): New.
10752 (note_toolbar_highlight): New.
10753 (show_mouse_face): Change int parameter `hl' to parameter of
10754 type enum draw_glyphs_face. Handle image highlighting.
10755 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10756 non-nil. Use x_handle_toolbar_click.
10757
10758 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10759
10760 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10761 IMAGE_BOOL_VALUE.
10762 (parse_image_spec): Handle them.
10763 (image_spec_value): Additional parameter found.
427ec082 10764 (free_image): Remove image from the vector `images' of the
26901792
DL
10765 image cache.
10766 (clear_image_cache): Additional parameter force_p.
10767 (Fclear_image_cache): New.
10768 (x_find_image_file): New.
10769 (xbm_load): Handle `:margin' and `:relief'. Use
10770 x_find_image_file.
10771 (xpm_load): Likewise.
10772 (pbm_load): Likewise.
10773 (jpeg_load): Likewise.
10774 (tiff_load): Likewise.
10775 (gif_load): Likewise.
10776
10777 * keyboard.c (Qhelp_echo): New symbol.
10778 (read_char): Handle `toolbar' and `help_echo' events.
10779 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10780 (make_lispy_event): Handle TOOLBAR_EVENT.
10781 (toolbar_items): New.
10782 (process_toolbar_item): New.
10783 (PROP): New.
10784 (init_toolbar_items): New.
10785 (append_toolbar_item): New.
10786 (read_char_x_menu_prompt): Handle `toolbar' event.
10787 (read_key_sequence): Ditto.
10788
10789 * xfaces.c (Qtoolbar): New.
10790 (realize_basic_faces): Realize `toolbar' face.
10791 (face_at_string_position): Remove parameter modeline_p, add
10792 base_face_id.
10793
10794 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10795 to read data.
10796
107971998-10-17 Gerd Moellmann <gerd@gnu.org>
10798
10799 * xdisp.c (init_iterator): Replace parameter modeline_p with
10800 base_face_id.
10801 (next_element_from_string): Call get_next_display_element
10802 recursively after handling text properties.
10803 (prepare_menu_bars): Call update_toolbar.
10804 (update_toolbar): New.
10805 (build_desired_toolbar_string): New.
10806 (display_toolbar_line): New.
10807 (redisplay_toolbar): New.
10808 (toolbar_item_info): New.
10809 (redisplay_window): Call redisplay_toolbar.
10810 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10811
10812 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10813 window.
10814 (clear_desired_matrices): Ditto.
10815 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10816 (free_glyphs): Free matrices of toolbar window.
10817 (update_frame): Update toolbar window.
10818 (change_frame_size_1): Take toolbar into account.
10819 (Fset_toolbar_height): New.
10820
10821 * dispextern.h (struct it): Remove member modeline_p, add
10822 base_face_id.
10823 (struct image): Add members relief and margin.
10824 (IMAGE_ASCENT): Include margin in height.
10825
108261998-10-14 Gerd Moellmann <gerd@gnu.org>
10827
10828 * xfns.c (Fclear_image_cache): New.
10829
10830 * xfaces.c (realize_basic_faces): Realize toolbar face.
10831 (face_at_string_position): Remove parameter modeline_p, add
10832 base_face_id.
10833
10834 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10835
108361998-10-13 Gerd Moellmann <gerd@gnu.org>
10837
10838 * keyboard.c (syms_of_keyboard): Intern `:help'.
10839
108401998-10-12 Gerd Moellmann <gerd@gnu.org>
10841
10842 * xterm.c (note_toolbar_highlight): New.
10843 (note_mouse_highlight): Call it.
10844
10845 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10846 (coordinates_in_window): Handle toolbar window.
10847
10848 * keyboard.c (toolbar_items): New.
10849 (process_toolbar_item): New.
10850 (parse_toolbar_item): New.
10851 (init_toolbar_items): New.
10852 (append_toolbar_item): New.
10853
10854 * dispextern.h (enum toolbar_item_idx): New.
10855 (enum toolbar_item_image): New.
10856
10857 * frame.h (struct frame): Add toolbar-related members.
10858
10859 * xfaces.c (face_at_string_position): Remove assertion that
10860 current_buffer == window's buffer. This is not the case when
10861 called for the toolbar window.
10862
10863 * frame.c (make_frame): Initialize toolbar members.
10864
10865 * alloc.c (mark_object): Mark toolbar data of frames.
10866
10867 * frame.h (struct frame): Add toolbar-related members
10868 toolbar_window, desired_toolbar_items, current_toolbar_items,
10869 desired_toolbar_string, current_toolbar_string,
10870 n_desired_toolbar_items, n_current_toolbar_items. Add
10871 window_height.
10872
10873 * xterm.c (x_after_update_window_line): Don't draw bitmap
10874 areas for pseudo-windows.
10875 (expose_frame): Handle toolbar window.
10876 (expose_window): Don't do cursor stuff for pseudo-windows.
10877
10878 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10879
108801998-10-11 Gerd Moellmann <gerd@gnu.org>
10881
10882 * frame.c (make_frame): Initialize toolbar_window.
10883
10884 * alloc.c (mark_object): Make the toolbar window.
10885
10886 * dispnew.c (update_frame): Update frame's toolbar_window.
10887 (clear_current_matrices): Likewise.
10888 (clear_desired_matrices): Likewise.
10889 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10890 (free_glyphs): Free the toolbar window and its matrices.
10891
10892 * frame.h (struct frame): Add toolbar_window.
10893
10894 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10895 with relief.
10896
108971998-10-10 Gerd Moellmann <gerd@gnu.org>
10898
427ec082 10899 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10900 window start is not in the range BEGV..ZV.
10901
109021998-10-09 Gerd Moellmann <gerd@gnu.org>
10903
10904 * xdisp.c (try_scrolling): Experimentally handle the case
10905 that scroll-preserve-screen-position is set to `always'.
10906
10907 * window.c (Vscroll_preserve_screen_position): Replacement for
10908 scroll_preserve_screen_position.
10909
109101998-10-08 Gerd Moellmann <gerd@gnu.org>
10911
10912 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10913 doesn't like it.
10914 * xdisp.c: Ditto.
10915
10916 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10917
109181998-10-06 Gerd Moellmann <gerd@gnu.org>
10919
427ec082 10920 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10921 i_byte when prompts are inserted into minibuffers.
10922
10923 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10924 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10925 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10926
109271998-10-04 Gerd Moellmann <gerd@gnu.org>
10928
10929 * xdisp.c (make_cursor_line_fully_visible): New.
10930 (try_scrolling): New.
10931 (redisplay_window): Move scrolling code to try_scrolling.
10932 (make_cursor_line_fully_visible): Handle case of window too small
10933 to show a single line.
10934 (redisplay_window): Case forced window start---use
10935 make_cursor_line_fully_visible.
10936 (redisplay_window): Case cursor movement via current matrix.
10937 If ending up on a partially visible line, make it fully visible
10938 instead of recentering.
10939 (try_scrolling): Additional parameter scroll_smoothly.
10940
10941 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10942
109431998-09-28 Gerd Moellmann <gerd@gnu.org>
10944
10945 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10946 instead of y-position for scroll-preserved-screen-position.
10947
109481998-09-07 Gerd Moellmann <gerd@gnu.org>
10949
10950 * dispnew.c (update_frame_line): If current row is not enabled,
10951 write the whole line.
10952
109531998-09-06 Gerd Moellmann <gerd@gnu.org>
10954
10955 * lisp.h (HAVE_FACES): Removed.
10956
10957 * dispextern.h (HAVE_FACES): Removed.
10958
10959 * config.in (HAVE_FACES): Removed.
10960
10961 * dispnew.c (HAVE_FACES): Removed.
10962
10963 * xdisp.c (HAVE_FACES): Removed.
10964
10965 * xfaces.c (HAVE_FACES): Removed.
10966
109671998-09-05 Gerd Moellmann <gerd@gnu.org>
10968
10969 * xdisp.c (init_iterator): If face_change_count is non-zero,
10970 free realized faces.
10971
10972 * xfaces.c (free_all_realized_faces): Make it externally visible.
10973 (Finternal_set_lisp_face_attribute): Increment
10974 windows_or_buffers_changed.
10975
10976 * dispnew.c (direct_output_for_insert): Give up if
10977 face_change_count is non-zero.
10978 (direct_output_forward_char): Ditto.
10979
10980 * xfaces.c (face_change_count): New.
10981
109821998-09-04 Gerd Moellmann <gerd@gnu.org>
10983
10984 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10985 of range.
10986
109871998-09-03 Gerd Moellmann <gerd@gnu.org>
10988
10989 * term.c (Ftty_display_color_p): New.
10990
109911998-09-02 Gerd Moellmann <gerd@gnu.org>
10992
10993 * xfaces.c (Ftty_defined_colors): New.
10994
10995 * xterm.c (x_produce_glyphs): Fix computation of
10996 contains_overlapping_glyphs_p for ASCII.
10997
10998 * dispnew.c (Fshow_cursor): Don't change cursor state while
10999 redisplaying.
11000 (direct_output_for_insert): If a glyph with lbearing or rbearing
11001 is among the new glyphs, set row flag contains_overlapping_glyph_p.
11002
110031998-09-01 Gerd Moellmann <gerd@gnu.org>
11004
11005 * term.c (OUTPUT_IF): Make replacement text have statement form.
11006 (OUTPUT1_IF): Ditto.
11007 (TS_italic_mode, TS_end_italic_mode): Removed.
11008 (TS_bold_mode): Removed.
11009 (TS_underscore_mode, TS_end_underscore_mode): Removed.
11010 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
11011 (TS_enter_reverse_mode): New.
11012 (TS_enter_underline_mode, TS_exit_underline_mode): New.
11013 (TN_magic_cookie_glitch_ul): New.
11014 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
11015 (TS_exit_attribute_mode): New.
11016 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
11017 (TS_set_foreground, TS_set_background): New.
11018 (reset_terminal_modes): Switch colors back to default.
11019 (write_glyphs): Turn face on before writing text, turn it off
11020 afterwards.
11021 (insert_glyphs): Ditto.
11022 (term_init): Initialize new terminal capability variables.
11023 (turn_on_face): Turn a face on.
11024 (turn_off_face): Turn a face off.
11025
11026 * lisp.h (MAKE_GLYPH): Remove test for frame type.
11027 (GLYPH_CHAR): Ditto.
11028 (GLYPH_FACE): Ditto.
11029
11030 * xfaces.c (Vface_tty_color_alist): New.
11031 (face-register-tty-color): New.
11032 (face-clear-tty-colors): New.
11033
11034 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
11035 (struct it): Remove member faces_p since we now always have faces.
11036
110371998-08-31 Gerd Moellmann <gerd@gnu.org>
11038
11039 * dispextern.h (struct face): Add tty appearance flags.
11040
11041 * xdisp.c (init_iterator): Always handle faces.
11042 (extend_face_to_end_of_line): Handle tty frames.
11043
11044 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
11045 passed in.
11046
110471998-08-30 Gerd Moellmann <gerd@gnu.org>
11048
11049 * xfaces.c (realize_default_face): Use empty strings to indicate
11050 that the face should use the default foreground/background
427ec082 11051 color of the terminal. Fill font-related attributes with
26901792
DL
11052 appropriate values for tty frames.
11053
11054 * emacs.c (main): Call syms_of_xfaces before init_window_once.
11055
11056 * xfaces.c (realize_default_face): If face `default' is not
11057 yet known, create it.
11058
11059 * frame.c (make_terminal_frame): Call init_frame_faces
11060 unconditionally.
11061
11062 * xfaces.c (init_frame_faces): Make it work for tty frames.
11063 (free_frame_faces): Ditto.
11064 (clear_face_cache): Ditto.
11065 (recompute_basic_faces): Ditto.
11066 (Fframe_face_alist): Ditto.
11067 (free_realized_face): Ditto.
11068 (prepare_face_for_display): Ditto.
11069 (clear_face_gcs): Ditto.
11070 (lookup_face): Ditto.
11071 (smaller_face): Ditto.
11072 (realize_default_face): Ditto.
11073 (realize_face): Ditto.
11074 (realize_face): Dispatch to functions depending on the frame type.
11075 (realize_x_face): X way of realizing faces.
11076 (realize_tty_face): TTY way of realizing faces.
11077
110781998-08-29 Gerd Moellmann <gerd@gnu.org>
11079
11080 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11081 compute it instead.
11082 (lookup_face): Remove local variable unibyte_registry.
11083
110841998-08-22 Gerd Moellmann <gerd@gnu.org>
11085
11086 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11087 1 pixel longer.
11088
427ec082 11089 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
11090 of face in buffer.
11091
11092 * editfns.c (make_buffer_string_both): If prompt in buffer,
11093 prevent start > end.
11094
11095 * indent.c (Fvertical_motion): Set current_buffer to window's
11096 buffer if it isn't already.
11097
110981998-08-21 Gerd Moellmann <gerd@gnu.org>
11099
11100 * dispextern.h (GLYPH_DEBUG): Use default 0.
11101
11102 * xdisp.c (it_props): New member `smaller'.
11103 (init_iterator): Initialize it.
11104 (Qsmaller): New.
11105 (push_it): Save value of `smaller' value on the stack.
11106 (pop_it): Restore `smaller' from the stack.
11107 (handle_smaller_prop): New.
11108 (handle_face_prop): Use `smaller' text property to select a
11109 suitable face.
11110
11111 * dispextern.h (SMALLER_PROP_IDX): New.
11112 (struct it): Add member `smaller'.
11113
11114 * xfaces.c (smaller_face): New.
11115
11116 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11117
11118 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11119 total pixel width of window differently.
11120
11121 * xdisp.c (init_iterator): Compute width of mode line differently.
11122
11123 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11124 of bitmap areas.
11125
11126 * window.c (Fsplit_window): Include width of bitmap areas in
11127 window width.
11128 (window_internal_width): Subtract width of bitmap areas from
11129 total width.
11130
111311998-08-18 Gerd Moellmann <gerd@gnu.org>
11132
11133 * xdisp.c: Functions reordered for better readability.
11134
11135 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11136 lbearing.
11137 (update_window_tree): Parameter no_scrolling_p removed.
11138 (update_single_window): Ditto.
11139
11140 * xterm.c (x_get_char_font_and_encoding): Renamed to
11141 x_get_char_face_and_encoding.
11142
11143 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11144 if end of current row reached.
11145
11146 * xterm.c (x_get_glyph_face_and_encoding): New.
11147 (x_get_glyph_overhangs): Call it.
11148
11149 * xdisp.c (Qshow_trailing_whitespace): New.
11150 (Qtrailing_whitespace): New.
11151 (enum prop_handled): New.
11152 (struct props, it_props): New.
11153 (next_overlay_change): New. Works like Fnext_overlay_change
11154 but doesn't use xmalloc.
11155 (handle_stop): Restructured.
11156 (face_before_or_after_it_pos): Case iteration over a string: fix
11157 handling of face before current position.
11158
111591998-08-16 Gerd Moellmann <gerd@gnu.org>
11160
11161 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11162 reallocation matrix if fonts_changed_p.
11163 (update_text_area): Handle glyphs with lbearing.
11164
111651998-08-14 Gerd Moellmann <gerd@gnu.org>
11166
11167 * xdisp.c (struct props): New.
11168 (it_props): New.
11169 (compute_prop_info): New.
11170 (handle_stop): New.
11171
11172 * textprop.c (validate_interval_range): Make it externally
11173 visible.
11174
11175 * dispnew.c (direct_output_for_insert): Remove calls
11176 to compute_stop_pos.
11177
11178 * dispextern.h (struct it): Remove check_charpos,
11179 next_overlay_pos. Add what_changes.
11180
111811998-08-10 Gerd Moellmann <gerd@gnu.org>
11182
11183 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11184
11185 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11186 face_default_registry instead.
11187
11188 * syntax.c (scan_sexps_forward): Set up syntax table before
11189 jumping to initial state label.
11190
111911998-08-09 Gerd Moellmann <gerd@gnu.org>
11192
11193 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11194 >= ZV specially.
11195
111961998-08-08 Gerd Moellmann <gerd@gnu.org>
11197
11198 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11199 ends up in partially visible row, try to scroll. Case forced
11200 window start---handle windows not tall enough to show a single
11201 line.
11202
11203 * window.h (struct window): Member dy renamed vscroll.
11204
11205 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11206 fonts.
11207 (x_draw_stretch_glyph_string): Set clipping if using GC that
11208 hasn't set it yet.
11209
11210 * xdisp.c (redisplay_window): Case forced window start -
11211 don't let cursor end on partially visible row. Use desired
11212 matrix to find a suitable PT if it doesn't appear.
11213 (decode_mode_spec): Merged with 20.2.97.
11214 (try_window_reusing_current_matrix): Give up if old or
11215 new display is vscrolled.
11216 (redisplay_window): Reset vscrolling if forced window start,
11217 or if recentering.
11218
112191998-08-06 Gerd Moellmann <gerd@gnu.org>
11220
11221 * xfaces.c (realize_default_face): Use the fontset name instead of
11222 the alias for the family attribute of the default face because we
11223 can't easily determine a good alias from fontset-alias-alist.
11224 (face_fontset): Use Fquery_fontset to find the fontset.
11225 (font_list): Additional pattern parameter.
11226 (try_font_list): Ditto.
11227 (set_lface_from_font_name): Set face family from font foundry
11228 and family.
11229 (font_list): If family contains a hyphen, build pattern differently.
11230
112311998-08-05 Gerd Moellmann <gerd@gnu.org>
11232
11233 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11234 changed instead of setting the frame garbaged.
11235
11236 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11237 all attribute values. This is wrong if values are unspecified,
11238 i.e. nil.
11239
11240 * xdisp.c (try_window_id): Give up if window start changed.
11241
11242 * xfaces.c (make_realized_face): Store registry as Lisp object.
11243 (load_face_font_or_fontset): Compute registry of a face
11244 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11245 possible.
11246
11247 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11248 differently.
11249
11250 * alloc.c (mark_face_cache): Mark the registry member of faces.
11251
11252 * dispextern.h (struct face): Make registry a Lisp string.
11253
112541998-08-04 Gerd Moellmann <gerd@gnu.org>
11255
11256 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11257 multibyte_p. Handle unibyte text.
11258 (x_append_glyph): Set the multibyte_p flag of glyphs.
11259 (x_produce_image_glyph): Ditto.
11260 (x_append_stretch_glyph): Ditto.
11261 (x_produce_glyphs): Handle unibyte text like ASCII.
11262
11263 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11264 stack.
11265 (pop_it): Restore it.
11266 (face_before_or_after_it_pos): Handle the case that the string or
11267 buffer is unibyte.
11268 (get_overlay_strings): Set the multibyte flag of the iterator if
11269 the new overlay string is multibyte.
11270 (get_glyph_property): Likewise.
11271 (get_next_display_element): Don't check for charset changes in
11272 unibyte text.
11273 (append_space): Compute face differently for unibyte text.
11274 (extend_face_to_end_of_line): Don't return quickly if face has
11275 stipple.
11276
11277 * xfaces.c (load_face_font_or_fontset): Store registry and
11278 encoding of the font in the registry member of the face.
11279 (make_realized_face): Additional parameter `registry'.
11280 (free_realized_face): Free the registry of a realized face.
11281 (face_suitable_for_charset_p): Function form of the macro
11282 with the same name in uppercase.
11283 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11284 (choose_face_font): New parameter unibyte_registry.
11285 (choose_face_fontset_font): Ditto.
11286 (realize_default_face): Remember the registry and encoding of
11287 the specified frame font in Vx_unibyte_registry_and_encoding.
11288 (face_at_buffer_position): Handle unibyte.
11289 (face_at_string_position): Likewise.
427ec082 11290 (realize_face): New parameter unibyte_registry.
26901792
DL
11291 (compute_char_face): Handle the unibyte case.
11292
11293 * dispextern.h (struct glyph): Add bit multibyte_p.
11294 (struct face): New member registry holding the registry and
11295 encoding of the X font of the face.
11296 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11297 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11298 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11299 text.
11300 (struct iterator_stack_entry): Add multibyte_p.
11301
11302 * xdisp.c (string_pos): Use string_char_to_byte.
11303 (char_charset): Removed.
11304
113051998-08-03 Gerd Moellmann <gerd@gnu.org>
11306
11307 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11308 rectangle for a block cursor over an image without a mask.
11309 (x_stretch_block_cursor): Added. Non-zero means don't draw
11310 a block cursor over a stretch as wide as that stretch.
11311 (x_draw_stretch_glyph_string): Use it.
11312 (x_draw_hollow_cursor): Ditto.
11313
11314 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11315 (read_minibuf): Add front-sticky text property for prompt.
11316
11317 * xdisp.c (char_charset): Return charset of a character,
11318 depending on whether or not multi-byte characters are enabled.
11319
11320 * xfaces.c (Fset_face_charset_registry): Removed.
11321 (x_charset_registry): Determine registry from charset plist.
11322
113231998-08-02 Gerd Moellmann <gerd@gnu.org>
11324
11325 * xdisp.c (get_next_display_element): Don't check for charset
11326 changes if multi-byte characters are not enabled.
427ec082 11327
26901792 11328 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11329 redisplay interface.
26901792
DL
11330 * keyboard.c (detect_input_pending_run_timers): Likewise.
11331
11332 * dispextern.h (produce_*glyphs_hook): Removed.
11333 * term.c (produce_*glyphs): Ditto.
11334 (cursor_to): Remove pixel position parameters.
11335
11336 * dispnew.c: Remove hooks for window-based redisplay, introduce
11337 a redisplay interface structure.
11338
11339 * xterm.c (x_per_char_metric): Return default char metrics if per
11340 char metric exists but contains a zero width. Adobe Courier seems
11341 to contain such characters.
11342
11343 * xdisp.c (compute_line_metrics): Compute the width of rows
11344 without stopping at glyphs with zero width.
11345
113461998-08-01 Gerd Moellmann <gerd@gnu.org>
11347
11348 * xdisp.c (display_mode_line): If nothing was displayed at all,
11349 display a space.
11350 (hscroll_window_tree): Don't subtract 1 from target point if equal
11351 to ZV and window is not the selected window.
11352
11353 * dispnew.c (check_matrix_invariants): Remove check for window
11354 start at BEGV or after newline. This happens in rare cases
11355 intentionally.
11356
113571998-07-31 Gerd Moellmann <gerd@gnu.org>
11358
11359 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11360 (syms_of_xfaces): Add Vface_default_registry.
11361 (x_charset_registry): Use it.
11362
11363 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11364 (redisplay_window): Use it.
11365
11366 * dispnew.c (update_text_area): Handle lbearing of deleted text
11367 by backing up one character.
11368
113691998-07-30 Gerd Moellmann <gerd@gnu.org>
11370
427ec082 11371 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11372 decide to do nothing.
11373
11374 * xfaces.c (face_at_string_position): Additional parameter
11375 mode_line_p. If non-zero, merge with the mode line face
11376 instead of the default face.
11377 * dispextern.h (struct it): Add mode_line_p.
11378 * xdisp.c (init_iterator): Set it.
11379 (compute_face_in_string): Use it.
11380 (face_before_or_after_it_pos): Handle strings.
11381 (get_next_display_element): Don't look for relief end in C strings.
11382 (next_element_from_string): Deliver string position instead of
11383 buffer position.
11384
11385 * xterm.c (x_flush): Flush X output buffer.
11386 (XTflash): Use it.
11387
11388 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11389 Allow strings as face names.
11390
11391 * xfns.c (forall_images_in_image_cache): Check that frame is
11392 alive.
11393
11394 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11395 it's also called from x_destroy_window. Since this function is
11396 called from X, freeing stuff allocated with xmalloc is dangerous
11397 here, anyway.
11398
11399 * xfaces.c (free_realized_faces): Don't clear current matrices
11400 of a frame being destroyed.
11401
427ec082 11402 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11403 Fset_window_buffer.
11404
11405 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11406 with an additional argument specifying whether or not hooks may
11407 be called.
11408 (Fset_window_buffer): Call it.
11409
11410 * dispnew.c (clear_desired_matrices): Check that frame has
11411 a valid root window before clearing matrices in the window tree.
11412 (clear_current_matrices): Ditto.
11413 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11414 vchild are valid windows if not nil.
11415
11416 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11417 for :inverse-video.
11418 (Finternal_set_lisp_face_attribute): Ditto.
11419 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11420 (Finternal_get_lisp_face_attribute): Ditto.
11421 (Finternal_lisp_face_attribute_values): Ditto.
11422 (syms_of_xfaces): Define the symbol `:reverse-video'.
11423
11424 * xdisp.c (get_glyph_property): Renamed from
11425 fill_iterator_from_glyph_property.
11426 (next_element_from_buffer): Handle case that no `glyph' property
11427 was found correctly.
11428 (display_line): Extend face to end of line only if we have faces.
11429
114301998-07-29 Gerd Moellmann <gerd@gnu.org>
11431
11432 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11433 additional window argument.
11434
11435 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11436 set_iterator_to_previous_visible_line_start.
11437 (reseat_at_next_visible_line_start): Likewise.
11438 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11439 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11440 (compute_face_in_buffer): Renamed from
11441 compute_face_at_iterator_position.
11442 (compute_face_in_string): Renamed from
11443 compute_face_at_iterator_string_position.
11444 (get_space_width): Renamed from get_iterator_space_width.
11445 (next_overlay_string): Renamed from
11446 set_iterator_to_next_overlay_string.
11447 (get_overlay_strings): Renamed from
11448 get_overlay_strings_at_iterator_position.
11449 (restore_overlay_strings): Renamed from
11450 setup_overlay_strings_from_glyph_pos.
11451 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11452 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11453 (init_to_row_start): Renamed from init_iterator_to_row_start.
11454 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11455
11456 * xterm.c: Merge with 20.2.97.
11457 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11458
11459 * dispextern.h (struct glyph): Replace text_pos position with
11460 simple charpos.
11461
11462 * xdisp.c (this_line_start_pos): Use struct text_pos.
11463 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11464 (enum move_it_result): Renamed from move_iterator_result.
11465 (string_pos_nchars_ahead): Compute text_pos in a string from a
11466 known text_pos plus a character delta.
11467 (string_pos): Compute text_pos in string from charpos.
11468 (c_string_pos): Likewise for a C string.
11469 (number_of_chars): Return number of characters in a possibly
11470 multi-byte C string.
11471 (check_it): Renamed from check_iterator. Check that charpos and
11472 bytepos are in sync.
11473 (push_it): Renamed from save_iterator_settings.
11474 (pop_it): Renamed from restore_iterator_settings.
11475 (move_it_.*): Renamed from move_iterator_.*.
11476 (charset_at_position): Take charpos/bytepos into account.
11477 (back_to_previous_line_start): Set iterator to previous line start.
11478 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11479 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11480 move_iterator_previous_visible_line_start.
11481 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11482 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11483 Handle charpos/bytepos.
11484 (compute_face_at_iterator_position): Handle charpos/bytepos.
11485 (compute_face_at_iterator_string_position): Likewise.
11486 (get_iterator_space_width): Likewise.
11487 (load_overlay_strings): Likewise.
11488 (get_overlay_strings_at_iterator_position): Likewise.
11489 (reseat_iterator): Take a text_pos position argument.
11490 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11491 bytepos.
11492 (init_iterator): Take additional bytepos parameter.
11493 (reseat_iterator_to_string): Handle charpos/bytepos.
11494 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11495 (next_element_from_string): Handle charpos/bytepos.
11496 (next_element_from_c_string): Likewise.
11497 (fill_iterator_from_glyph_property): Likewise.
11498 (next_element_from_buffer): Likewise.
11499 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11500 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11501 (move_it_to): Likewise.
11502 (move_it_vertically_backward): Likewise.
11503 (move_it_vertically): Likewise.
11504 (move_it_by_lines): Likewise.
11505 (hscroll_window_tree): Likewise.
11506 (redisplay_internal): Likewise.
11507 (set_cursor_from_row): Likewise.
11508 (redisplay_window): Likewise.
11509 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11510 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11511 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11512 (try_window_id): Handle charpos/bytepos.
11513 (Ftrace_redisplay_toggle): Return Qnil.
11514 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11515 (insert_left_trunc_glyphs): Likewise.
11516
11517 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11518 do a real merge).
11519 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11520 (increment_glyph_row_buffer_positions): Ditto.
11521 (copy_glyph_row_contents): Ditto.
11522 (check_matrix_invariants): Add additional checks for charpos/
11523 bytepos consistency.
11524 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11525 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11526 `direction-reversed' in #if 0.
11527
11528 * xterm.h: Merge with 20.2.97.
427ec082 11529
26901792
DL
11530 * frame.h: Merge with 20.2.97.
11531
11532 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11533
11534 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11535 start.
11536 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11537 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11538 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11539 (struct it): Various members renamed from .*pos to .*charpos.
11540 (IT_CHARPOS): Access current buffer character position of an
11541 iterator.
11542 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11543 (IT_STRING_CHARPOS): Access current string character position of
11544 an iterator.
11545 (IT_STRING_BYTEPOS): Access current string byte position of
11546 an iterator.
11547 (globally): Add function prototypes from 20.2.97.
11548
11549 * everywhere: Use P_ instead of PROTO for function prototypes
11550 because everyone else seems to use P_.
11551
11552 * dispextern.h (struct text_pos): Structure describing a charpos/
11553 bytepos position in text.
11554 (BYTEPOS): Access the byte position part of a text_pos.
11555 (CHARPOS): Likewise for the character position.
11556 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11557 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11558 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11559 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11560 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11561 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11562 for buffer and string positions.
11563 (struct glyph): Use text_pos.
11564 (struct it): Renamed from display_iterator. Use text_pos.
11565
115661998-07-23 Gerd Moellmann <gerd@gnu.org>
11567
11568 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11569 pixmap.
11570
115711998-07-21 Gerd Moellmann <gerd@gnu.org>
11572
11573 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11574 * xterm.c (x_draw_row_bitmaps): Use it.
11575 * dispnew.c (row_equal_p): Ditto.
11576 (update_window_line): Ditto.
11577
11578 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11579 flag of images.
11580
11581 * dispextern.h (struct image): Removed member loading_failed_p.
11582 It's probably better to have the chance to try to load an image
11583 again.
11584
115851998-07-20 Gerd Moellmann <gerd@gnu.org>
11586
11587 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11588 at ZV if `indicate-zv-lines' is non-nil.
11589 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11590
11591 * dispnew.c (row_equal_p): Compare displays_text_p and
11592 ends_at_zv_p flags of rows.
11593 (update_window_line): Ditto.
11594
11595 * buffer.h (struct buffer): New member indicate_zv_lines.
11596
11597 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11598 (init_buffer_once): New variable `default-indicate-zv-lines'.
11599 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11600
11601 * xdisp.c (redisplay_window): Don't try moving the cursor
11602 if current glyph row w->last_cursor.vpos isn't enabled.
11603
11604 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11605
11606 * window.c (Fset_window_vscroll): Allow only negative scroll
11607 values. Others don't seem to make sense, and this way it's easy
11608 to restore a vscroll of zero.
11609
11610 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11611 allocated.
11612 (x_draw_image_glyph_string_background): Don't clip if pixmap
11613 could not be created.
11614
11615 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11616 be created.
11617 (xbm_load): Ditto.
11618 (gs_load): Ditto.
11619
11620 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11621 glyphs into account.
11622
11623 * xfaces.c (realize_default_face): Don't set font family of
11624 the default face from the fontset alias name for `fontset-startup'.
11625
11626 * xfns.c (gs_load): Pass frame's pixel foreground and background
11627 color to the Lisp loader.
11628
116291998-07-19 Gerd Moellmann <gerd@gnu.org>
11630
11631 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11632 libtiff34.
11633
11634 * configure.in (--with-tiff, HAVE_TIFF): Added.
11635
11636 * config.in (HAVE_TIFF): Added.
11637
11638 * Makefile.in (LIBTIFF): Added.
11639
11640 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11641
11642 * Makefile.in (LIBJPEG): Added.
11643
11644 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11645 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11646 jpeglib.h.
11647
427ec082 11648 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11649 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11650 configure must be run with `--x-includes=/usr/X11R6/include:
11651 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11652
116531998-07-18 Gerd Moellmann <gerd@gnu.org>
11654
11655 * config.in (HAVE_JPEG): Added.
11656
11657 * xfns.c (ct_init): Initialize color table used to map RGB colors
11658 from images to X pixel colors.
11659 (ct_free): Free color table.
11660 (ct_lookup): Look an RGB color up.
11661 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11662 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11663 image specification.
11664 (pbm_scan_number): Scan a decimal ASCII number from a file.
11665 (pbm_load): Load a PPM image.
11666
11667 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11668 necessary. Take canonical character units as parameter.
11669 (Fwindow_vscroll): Return canonical character units.
11670
11671 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11672 w->dy to display height for which glyph rows must be allocated.
11673
116741998-07-17 Gerd Moellmann <gerd@gnu.org>
11675
11676 * xfaces.c (face_at_string_position): Merge in region face
11677 so that it won't overwrite the font in the region.
11678 (face_at_buffer_position): Ditto.
11679 (realize_basic_faces): Don't realize region face.
11680
11681 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11682
11683 * xterm.c (x_set_glyph_string_background_width): Don't let
11684 cursor face extend to end of line.
11685
11686 * xdisp.c (append_space): If adding space of default face,
11687 make sure glyph ist produced with right face.
11688
11689 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11690 background color of a glyph string.
11691 (x_draw_glyph_string_background): Call it.
11692 (x_draw_glyph_string_bg_rect): Ditto.
11693 (x_draw_stretch_glyph_string): Ditto.
11694
116951998-07-15 Gerd Moellmann <gerd@gnu.org>
11696
11697 * xdisp.c (init_iterator): Initialize it->current_y to the
11698 window's vscroll w->dy.
11699
11700 * window.c (Fwindow_vscroll): Return number of pixels window
11701 is vscrolled smoothly.
11702 (Fset_window_vscroll): Set the number.
11703
11704 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11705 to_pos in truncated part of a line.
11706
117071998-07-14 Gerd Moellmann <gerd@gnu.org>
11708
11709 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11710 doesn't fit on the line, truncate it, despite truncate_lines nil.
11711 (display_line): Ditto.
11712
11713 * xfns.c: Experimental support for Ghostscript images.
11714
11715 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11716 (XTread_socket): React on events from Ghostscript.
11717 (expose_frame): If width or height are zero, redraw entire frame.
11718 (XTread_socket): Call expose_frame after receiving event from
11719 Ghostscript.
11720
11721 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11722 for Ghostscript support.
11723
11724 * xdisp.c (redisplay_internal): Return quickly if called
11725 recursively.
11726
11727 * alloc.c (NSTATICS): Increased to 1024.
11728
117291998-07-08 Gerd Moellmann <gerd@gnu.org>
11730
11731 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11732 iterator's glyph row.
11733 (x_produce_stretch_glyph): Call it.
11734 (x_produce_glyphs): Handle `space-width' property; call
11735 x_append_stretch_glyph.
11736
11737 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11738 property.
11739 (get_iterator_space_width): Determine value of `space-width'
11740 property at iterator's position.
11741 (reseat_iterator): Call it.
11742 (next_element_from_string): Ditto.
11743 (next_element_from_buffer): Ditto.
11744 (init_iterator): Initialize space_width of iterator.
11745 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11746 moved, but cursor blinks.
11747 (redisplay_internal): Set w->last_cursor_off_p after update.
11748
11749 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11750 (struct display_iterator): Add new member space_width.
11751
11752 * window.h (struct window): Add last_cursor_off_p.
11753
117541998-07-07 Gerd Moellmann <gerd@gnu.org>
11755
11756 * Saved.
11757
11758 * window.c (Fpos_visible_in_window_p): Case window not up to
11759 date---return nil if iterator hasn't reached position.
11760
117611998-07-06 Gerd Moellmann <gerd@gnu.org>
11762
11763 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11764 overlays have changed.
11765 (redisplay_window): Case cursor movement. Don't try it if
11766 last_cursor.vpos is out of range.
11767
11768 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11769 way, the display optimization for the line containing the cursor
11770 is used more frequently, esp. when we have a blinking cursor.
11771 (display_line): Don't set this_line_.* variables.
11772
11773 * xterm.c (x_redraw_cursor): Removed.
11774 (x_display_and_set_cursor): Set cursor type depending on
11775 cursor_off_p flag of window.
11776
11777 * dispnew.c (redraw_cursor_hook): Removed.
11778 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11779 member of the selected window.
11780
11781 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11782
11783 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11784 Return glyph area under x/y.
11785 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11786
11787 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11788 after redisplaying.
11789
117901998-07-05 Gerd Moellmann <gerd@gnu.org>
11791
11792 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11793 are all outside of a line of text.
11794 (redisplay_internal): Use it.
11795
117961998-06-30 Gerd Moellmann <gerd@gnu.org>
11797
11798 * xdisp.c (next_element_from_buffer): After skipping over
11799 invisible text, look for the `glyph' property.
11800 (set_iterator_stop_pos): Ignore check positions in front
11801 of an iterator's current position.
11802
11803 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11804 anymore or which are marked as not having valid contents.
11805
11806 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11807 realized faces if new attribute value is equal to old value.
11808
118091998-06-29 Gerd Moellmann <gerd@gnu.org>
11810
11811 * xfaces.c (Finternal_make_lisp_face): Increment
11812 lface_id_to_name_size when lface_id_to_name is reallocated.
11813
118141998-06-27 Gerd Moellmann <gerd@gnu.org>
11815
11816 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11817 as minimum of endpos and overlay_pos.
11818 (load_overlay_strings): Set next_overlay_pos of iterator to
11819 -1 if we don't have to check for more overlay strings.
11820
118211998-05-09 Gerd Moellmann <gerd@gnu.org>
11822
11823 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11824 do anything if iterator is at ZV because scan_buffer doesn't
11825 work otherwise.
11826
11827 * xterm.c (x_encode_char): Inline it.
11828 (x_get_char_font_and_encoding): Simplified.
11829 (x_per_char_metric): Inline it.
11830
11831 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11832
11833 * xdisp.c (get_next_display_element): Check for end of relief
11834 face moved here from next_element_from_buffer.
11835
11836 * xterm.c (x_produce_image_glyph): Add relief thickness.
11837 (x_produce_stretch_glyph): Ditto.
11838
118391998-05-08 Gerd Moellmann <gerd@gnu.org>
11840
11841 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11842 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11843
11844 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11845 from a glyph property.
11846 (x_produce_glyphs): Use it.
11847
11848 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11849
427ec082 11850 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11851 in text area.
11852 (x_produce_glyphs): Ditto.
11853
427ec082 11854 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11855 marginal areas.
11856
427ec082 11857 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11858 background of an image glyph string.
427ec082 11859 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11860 the background of a glyph string.
11861 (x_draw_image_glyph_string_foreground): Draw the foreground of
11862 an image glyph string.
11863 (x_inverted_image_mask): Return the inverted mask of an image.
11864
11865 * xfns.c (x_draw_image): Removed.
11866
11867 * dispextern.h (struct image_type): Remove drawing function.
11868
11869 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11870
11871 * xdisp.c (get_next_display_element): In marginal areas, translate
11872 newlines, tabs, etc. like normal control characters.
11873
11874 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11875 and color.
11876 (free_realized_faces): Set frame garbaged.
11877
11878 * xfaces.c (syms_of_xfaces): Add defsubr for
11879 internal-lisp-face-attribute-values.
11880
118811998-05-07 Gerd Moellmann <gerd@gnu.org>
11882
11883 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11884 full.
11885 (x_produce_image_glyph): Set IT->nglyphs to 1.
11886 (x_draw_image_glyph_string): Use inverted mask to draw background.
11887
11888 * dispextern.h (struct image_type): Additional clipping rect
11889 parameters for drawing functions.
11890
427ec082 11891 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11892 a glyph string.
11893 (x_draw_image_glyph_string): Use it and pass the rect to the
11894 image drawing function.
11895
11896 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11897 first character with `glyph' property as image position. Set
11898 iterator back to that position as long as the image hasn't been
11899 consumed with set_iterator_to_next.
11900 (set_cursor_from_row): Accept when glyph with given position is
11901 not found in the row. Set cursor x to end of line in that case,
11902 so that we can hscroll.
11903 (redisplay_internal): Correct computation of delta by which
11904 positions have changed in redisplay optimization for cursor
11905 row of selected window.
11906
11907 * xdisp.c (display_line): Remove start_pos.
427ec082 11908 (display_line): Fix bug preventing display optimization for
26901792
DL
11909 cursor line of selected window.
11910 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11911 instead.
11912
11913 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11914 (update_text_area): Take glyph pixel width into account
11915 when trying to find a resync point.
11916 (row_equal_p): Compare glyphs in all areas.
11917
119181998-05-06 Gerd Moellmann <gerd@gnu.org>
11919
11920 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11921
11922 * dispextern.h (struct glyph_row): Use unsigned hash value.
11923
11924 * xdisp.c (display_line): Simplified and made faster by setting
11925 the cursor with set_cursor_from_row.
11926 (set_cursor_from_row): Handle rows of desired matrix.
11927
119281998-05-05 Gerd Moellmann <gerd@gnu.org>
11929
11930 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11931 with type != CHAR_GLYPH.
11932 (fill_iterator_from_glyph_property): Return void. Set
11933 method to next_element_from_image.
11934 (next_element_from_image): Dummy function for delivering a
11935 single image id.
11936 (set_iterator_to_next): Add method next_element_from_image.
11937 (redisplay_window): When recentering, and cursor vpos is -1
11938 after display, assume middle of window is in first line displayed
11939 in window, and display again.
427ec082 11940 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11941 the position of the first character having the glyph property.
11942
11943 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11944 * xfns.c (x_draw_image): Use it.
11945 * xterm.c (x_produce_image_glyph): Use it.
11946
11947 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11948
11949 * Makefile.in: Extraneous #define of LIBXPM removed.
11950
11951 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11952 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11953 stretch glyph.
11954 (x_compute_glyph_string_overhangs): Compute overhangs only
11955 for text glyph strings.
11956 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11957 (x_draw_glyph_string): Call it.
11958
11959 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11960 (struct glyph): Add sub-structure for stretchable glyphs.
11961 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11962
11963 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11964 #ifdef HAVE_FACES.
11965
11966 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11967
11968 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11969 setup_iterator_from_glyph_property. Don't do it for terminal
11970 frames.
11971
11972 * xterm.c (x_produce_image_glyph): Produce glyph for image
11973 that can't be loaded.
11974
11975 * xfns.c (lookup_image): If image can't be loaded, set its
11976 width and height so that we can draw a rectangle.
11977 (x_draw_image): Draw a rectangle for images that don't have
11978 a pixmap.
11979 (make_image): Set hash value.
11980 (image_spec_equal_p): Use image_spec_value.
11981
11982 * xterm.c (expose_frame): Don't try to redraw if basic faces
11983 haven't benn realized yet.
427ec082 11984 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11985 is not as tall as row.
11986
119871998-05-04 Gerd Moellmann <gerd@gnu.org>
11988
11989 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11990 (LIBX)[HAVE_X11]: Add LIBXPM.
11991
11992 * xfns.c (xpm_image_p): Implementation of image type functions
11993 for XPM.
11994 (xpm_load): Ditto.
11995
11996 * dispextern.h (struct image): Add mask pixmap for XPM.
11997
11998 * xfns.c (x_draw_image): Handle images with masks.
11999
12000 * configure.in: --with-xpm added. Code detecting -lXpm added.
12001
12002 * config.in: Add HAVE_XPM.
12003
12004 * xfns.c (xbm_draw): Removed.
12005 (x_draw_image): Default implementation for drawing images.
12006 (xbm_keyword_index): Remove XBM_DEPTH.
12007 (xbm_format): Remove `:depth'.
12008 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 12009 (xbm_load_image_from_file): Added for the same reason.
26901792 12010
427ec082 12011 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
12012 glyph string.
12013 (x_draw_image_glyph_string): Pass ybase to image draw function.
12014
12015 * xfns.c (make_image): Set default baseline.
12016
12017 * xterm.c (x_produce_image_glyph): Compute ascent of image
12018 from its height and baseline percentage.
12019
12020 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
12021 (xbm_format): Add description for `:baseline'.
12022 (xbm_image_spec_from_file): Add keywords from original spec to
12023 result.
12024 (xbm_load): Set baseline of image.
12025 (xbm_image_p): Check range for baseline.
12026
12027 * dispextern.h (struct image): Add member baseline.
12028
12029 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
12030
12031 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
12032
12033 * xdisp.c (get_next_display_element): Do character translations
12034 only if delivering characters.
12035
120361998-05-03 Gerd Moellmann <gerd@gnu.org>
12037
427ec082 12038 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
12039 DISP_CHARACTER.
12040
12041 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
12042 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
12043
120441998-05-02 Gerd Moellmann <gerd@gnu.org>
12045
12046 * xfns.c (prepare_image_for_display): Set image timestamp.
12047 (clear_image_cache): Clear images if image's timestamp +
12048 Vimage_eviction_seconds is > now.
12049 (syms_of_xfns): New variables image-eviction-seconds, and
12050 image-types.
12051 (add_image_format): Add to image-types.
12052 (xbm_load): Support new image spec format.
12053 (x_alloc_image_color): Allocate a color for an image.
12054
12055 * dispextern.h (struct image): Add timestamp.
12056
12057 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
12058 vectors of bool-vectors.
12059 (xbm_lisp_object_from_file): Build new format image spec.
12060
120611998-05-01 Gerd Moellmann <gerd@gnu.org>
12062
12063 * xfaces.c (init_frame_faces): Initialize image cache.
12064 (free_frame_faces): Free it.
12065
12066 * xterm.c (x_delete_display): Don't free image cache.
12067
12068 * emacs.c (main): Call init_xfns.
12069
120701998-04-30 Gerd Moellmann <gerd@gnu.org>
12071
12072 * alloc.c (mark_object): Mark objects in image cache.
12073
427ec082 12074 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
12075 widget_store_internal_border_width.
12076
12077 * widget.c (widget_store_internal_border): Return void.
12078
12079 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12080 void.
12081 (init_x_parm_symbols): Return void.
12082 (x_report_frame_params): Ditto.
12083 (x_set_border_pixel): Ditto.
12084 (syms_of_xfns): Ditto.
12085 (x_destroy_all_bitmaps): Use xfree instead of free.
12086
12087 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12088
12089 * xterm.c (x_term_init): Initialize image_cache of display info.
12090 (x_delete_display): Free image cache.
12091
12092 * xterm.h (struct x_display_info): Add image_cache.
12093
12094 * xfns.c (make_image_cache): Allocate a new image cache.
12095 (free_image_cache): Free an image cache.
12096 (make_image): Allocate an image.
12097 (free_image): Free an image.
12098
12099 * dispextern.h (struct image): Structure describing an image.
12100 (struct image_cache): Structure describing an image cache.
12101
121021998-04-29 Gerd Moellmann <gerd@gnu.org>
12103
12104 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12105 non-zero if iterator is filled with something to return.
12106 (next_element_from_buffer): Immediately return if
12107 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12108 (next_element_from_string): Likewise.
12109
12110 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12111
12112 * dispextern.h (struct glyph): Add pixmap_id.
12113 (display_element_type): Add DISP_PIXMAP.
12114
12115 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12116 malloc/free.
12117
12118 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12119 (clear_face_cache): Call it.
12120
12121 * xterm.c (x_query_font): Don't look at empty font table slots.
12122 (x_compute_min_glyph_bounds): Likewise.
12123 (x_term_init): Initialize font_table to null.
12124 (x_load_font): Change allocation of font_info structures so
12125 that it is possible to free fonts.
12126
427ec082 12127 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
12128 Only free fonts from filled font table entries.
12129
12130 * xfaces.c (best_matching_font): Support use of scalable fonts.
12131 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12132
12133 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12134 and resy.
12135 * xterm.c (x_term_init): Compute resx and resy.
12136
12137 * xfaces.c (split_font_name): Don't reject scalable fonts.
12138
427ec082 12139 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
12140 in #if 0.
12141
12142 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12143 point size cannot be determined.
12144
12145 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12146 width over all fonts on a frame.
12147 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12148 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12149 macros.
12150
12151 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12152 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12153 (x_load_font): Use x_compute_min_char_bounds.
12154
12155 * xterm.h (struct x_display_info): New members smallest_char_width
12156 and smallest_font_height.
12157
121581998-04-28 Gerd Moellmann <gerd@gnu.org>
12159
12160 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12161 the same name if GC of face is zero.
12162
12163 * dispextern.h (struct face): Member non_ascii_gc removed.
12164
12165 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 12166 for characters < 0177 in default face. Prepare face for
26901792
DL
12167 display before returning it.
12168 (x_produce_glyphs): Use it->charset.
12169 (x_get_char_font_and_encoding): Simplified.
12170 (x_encode_char): Remove parameter `font'.
12171
12172 * xfaces.c (choose_face_font): If registry from charset symbol
12173 doesn't contain a `-', make it a pattern by appending "*-*".
12174
12175 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12176 glyph_check_pos computation to character boundary.
12177
121781998-04-27 Gerd Moellmann <gerd@gnu.org>
12179
12180 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12181
12182 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12183 ASCII face for a given Lisp face id.
12184
12185 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12186 account.
427ec082 12187 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
12188 new position is < original position.
12189 (check_iterator_glyph_property): Handle glyph property in strings.
12190 (next_element_from_string): Call above function.
12191 (next_element_from_display_vector): Handle faces in glyphs.
12192 (get_next_display_element): Set face_id of glyphs for
12193 control chars to zero.
12194
12195 * Makefile.in (term.o): Add dependency on dispextern.h.
12196
12197 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12198 (display_line): Handle marginal areas.
12199 (move_iterator_in_display_line_to): Likewise.
12200
12201 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12202
12203 * xfaces.c (face_at_buffer_position): Don't merge with nil
12204 text property.
12205 (face_at_string_position): Ditto.
12206
12207 * dispextern.h (struct display_iterator): Use a stack of saved
12208 values instead of saving check positions etc. individually.
12209
12210 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12211 maybe pop the iterator's stack.
12212 (save_iterator_settings): Push a value on iterator's stack.
12213 (get_overlay_strings_at_iterator_position): Use it.
12214 (restore_iterator_settings): Pop the stack.
12215 (set_iterator_to_next_overlay_string): Use it.
12216
12217 * xfaces.c (try_font_list): Use alternative font families.
12218
122191998-04-26 Gerd Moellmann <gerd@gnu.org>
12220
12221 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12222 font selection matches fonts.
12223 (Fface_font_sort_order): Return the font sort order.
12224 (best_matching_font): Find best matching font based on sort order.
12225 (cmp_font_names): Sort by given sort order.
12226
12227 * dispextern.h (struct display_iterator): New member faces_p.
12228 * xdisp.c (init_iterator): Initialize it->faces_p.
12229 (compute_face_at_iterator_string_position): Use it.
12230 (compute_face_at_iterator_position): Use it.
12231 (init_iterator): Use it.
12232 (display_mode_line): Ditto.
12233
12234 * xdisp.c (get_next_display_element): Put code choosing a face
12235 when the charset changes in #ifdef HAVE_FACES.
12236
427ec082 12237 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12238 lookup_face_for_charset.
12239
12240 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12241 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12242
122431998-04-25 Gerd Moellmann <gerd@gnu.org>
12244
12245 * xfaces.c (best_matching_font): Return the name of the best
12246 matching font in an array of font_name structures.
12247 (choose_face_font): Use it.
12248 (choose_face_fontset_font): Use it.
12249 (find_best_weight_font): If final font found has same weight as
12250 the font we started with, return the original font because it is a
12251 better match for the resolution of the display.
12252 (find_best_slant_font): Likewise.
12253 (merge_face_vector_with_property): Check more invalid attribute
12254 values.
12255 (lface_suitable_for_charset_p): Replaced by a macro with the same
12256 name in upper-case.
12257
122581998-04-24 Gerd Moellmann <gerd@gnu.org>
12259
12260 * dispextern.h (struct face): Member
12261 fontset_chosen_for_realization_p removed.
12262
12263 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12264 end of the collision list, so that we find more specific faces
12265 first.
12266 (lookup_face_for_charset): Look up a new face if face->fontset >=
12267 0, and charset != CHARSET_COMPOSITION.
12268
12269 * xfaces.c (split_font_name): Return zero if point size of font
12270 couldn't be computed.
12271 (realize_default_face): Use ASCII font of a fontset to determine
12272 font-related attributes of the default face.
12273 (face_fontset): Return fontset id for face family.
12274 (font_list): Additional parameter font_pattern. If non-nil,
12275 return fonts matching that pattern.
12276
122771998-04-23 Gerd Moellmann <gerd@gnu.org>
12278
12279 * xfaces.c (choose_face_fontset): If new fontset cannot be
12280 constructed, or fontset name cannot be split, return the id of the
12281 standard fontset.
12282
12283 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12284 When Emacs starts, it may be called for the initial frame which
12285 isn't an X frame.
12286
12287 * dispextern.h (struct face): New members foreground_defaulted_p,
12288 background_defaulted_p.
12289 (struct face): Members `mask' and `cache' removed.
12290
12291 * xfaces.c (load_color): Set them.
12292 (free_face_colors): Check them.
427ec082 12293 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12294 font unknown.
12295
12296 * xfaces.c (free_font): Removed.
12297 (load_face_font_or_fontset): Renamed from load_font.
12298 (load_face_font_or_fontset): Use message2 instead of signalling.
12299 (load_color): Likewise.
12300 (load_pixmap): Likewise.
12301
12302 * xterm.h (struct x_display_info): Add screen_dpi.
12303 * xterm.c (x_term_init): Initialize it.
12304 * xfaces.c (xlfd_point_size): Use it.
12305 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12306 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12307 similar to that of the frame appear first in the result.
12308
12309 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12310 is set for the face to cache, add it to the end of the collision
12311 list.
12312 (try_font_list): If fonts for given family and registry cannot
12313 be found, first try to keep the registry, and choose a different
12314 family.
12315 (choose_face_font): Allow nfonts == 0.
12316 (try_font_list): Give up if no font matches given registry.
12317
123181998-04-22 Gerd Moellmann <gerd@gnu.org>
12319
12320 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12321 font info id of the face.
12322
12323 * xfaces.c (load_font): Set font_info_id.
12324 (realize_face): Ditto.
12325
12326 * dispextern.h (struct face): Change member font_info to
12327 font_info_id.
12328
12329 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12330 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12331
12332 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12333 isn't ASCII, get the ASCII face before adding a space.
12334 (append_space): Likewise.
12335 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12336 to -1 so that it will compute the right face for the truncation
12337 glyphs.
12338
12339 * xfaces.c (realize_face): Set
12340 face->fontset_chosen_for_realization_p.
12341 (lookup_face_for_charset): If fontset wasn't specified originally
12342 and new charset != CHARSET_COMPOSITION, get a new face for that
12343 charset.
12344
12345 * dispextern.h (struct face): New member
12346 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12347 realize_face has chosen a fontset to display composite characters
12348 for a Lisp face not specifying a fontset.
12349
12350 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12351 face and line already filled here. Don't do anything if current
12352 face hasn't a relief or has a background equal to the frame
12353 background.
12354
12355 * xfaces.c (split_font_name): Additional parameter numeric_p.
12356 Don't compute numeric values if it is non-zero.
12357 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12358 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12359 font whose name cannot be split into fields.
12360
123611998-04-21 Gerd Moellmann <gerd@gnu.org>
12362
427ec082 12363 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12364 possibly using less restrictive patterns.
12365 (choose_face_font): Use it.
12366
12367 * xterm.c (x_get_char_font_and_encoding): For charset !=
12368 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12369
12370 * dispextern.h (struct face): New member font_info.
12371
12372 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12373 specifying a fontset as well as those not having a fontset.
12374 (free_font): Make it empty.
12375 (realize_face): Use changed load_font.
12376
12377 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12378 fit for charset, get the right one.
12379
12380 * xfaces.c (load_font): Take frame and name parameter, return
12381 font.
12382 (free_font): Likewise.
12383 (split_font_name): Compute numeric values for height, swidth etc.
12384 (cmp_font_names): Use them.
12385 (find_best_width_font): Ditto.
12386 (find_best_height_font): Ditto.
12387 (find_best_weight_font): Ditto.
12388 (find_best_slant_font): Ditto.
12389 (lface_hash): Add weight, slant, swidth and relief to hash value.
12390 (lface_equal_p): Make it faster.
12391 (lface_from_symbol): Use assq_no_quit.
12392 (Fnote_default_face_changed): Removed.
12393 (cmp_font_names): Use strcmp instead of xstricmp.
12394 (face_charset_registries): Removed.
12395
123961998-04-20 Gerd Moellmann <gerd@gnu.org>
12397
12398 * frame.h (CHECK_FRAME): Give this macro a statement form.
12399 (CHECK_LIVE_FRAME): Ditto.
12400
12401 * xfaces.c (find_best_width_font): Find the best matching font
12402 for a given width.
12403 (find_best_height_font): Likewise for height.
12404 (find_best_weight_font): Likewise for weight.
12405 (find_best_slant_font): Likewise for slant.
12406 (choose_face_font): Use them.
12407 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12408 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12409 global face attributes.
12410
12411 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12412 Lisp face attributes.
12413
124141998-04-19 Gerd Moellmann <gerd@gnu.org>
12415
12416 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12417 and :italic for compatibility.
12418 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12419 :bold and :italic. Handle boolean resource values for
26901792
DL
12420 :underline and :italic.
12421
12422 * xfns.c (display_x_get_resource): Make it externally visible.
12423
12424 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12425 If that frame is non-null, return the frame-local face.
12426 (Finternal_make_lisp_face): Additional frame argument.
12427 (lface_attributes): Get face attributes from global and frame-local
12428 definitions.
12429 (Finternal_lisp_face_equal_p): Additional frame argument.
12430 (merge_lisp_face_vector_with_property): Ditto.
12431 (Frealize_basic_faces): Removed.
12432 (Finternal_get_lisp_face_attribute): Additional frame argument.
12433 (Finternal_lisp_face_p): Ditto.
12434 (load_color) [MSDOS]: Removed because it isn't clear how
12435 to do this for MS-DOS.
12436
12437 * xfaces.c (lface_from_symbol): Get global face definition
12438 from face-global-alist.
12439
12440 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12441 as values for :underline and :inverse-video.
12442 (Finternal_set_lisp_face_attribute): Allow nil values.
12443
124441998-04-17 Gerd Moellmann <gerd@gnu.org>
12445
12446 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12447
12448 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12449 (Finternal_make_lisp_face): Add new face to Vall_faces.
12450
12451 * xdisp.c (echo_area_display): Remove code recomputing faces.
12452 (redisplay_internal): Ditto.
12453 (init_iterator): Do it here.
12454
12455 * xfaces.c (choose_face_font): Check that swidth doesn't change
12456 for subusequent attributes.
12457 (xlfd_point_size): Return int.
12458
12459 * xdisp.c (redisplay_internal, echo_area-display): If realized
12460 faces have been cleared, call recompute_basic_faces.
12461
12462 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12463 face_attributes_changed_p.
427ec082 12464 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12465 all frames.
12466 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12467
12468 * xdisp.c (redisplay_internal): If face attributes have been
12469 changed since the last redisplay, recompute basic faces.
12470 (echo_area_display): Ditto.
12471
12472 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12473
12474 * xfaces.c (min_char_bounds): If face cache not yet present,
12475 don't try to get font dimensions from faces.
12476
12477 * xterm.c (x_frame_mode_line_height): If face cache not present
12478 set, return default height.
12479
12480 * alloc.c (mark_face_cache): Check for null faces. Correct
12481 index bug.
12482
12483 * dispextern.h (struct face): Renamed from struct rface. Member
12484 underline renamed underline_p. Make it a bit-field.
12485
12486 * xfaces.c (init_frame_faces): Allocate face cache.
12487 (free_frame_faces): Free face cache.
12488 (recompute_basic_faces): Realize basic faces only if face cache is
12489 allocated, i.e. after init_frame_faces has been called.
12490
12491 * frame.c (make_frame): Initialze face cache with null.
12492
12493 * xfaces.c (same_size_fonts): Removed.
12494
427ec082 12495 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12496 s->gc != 0.
12497 (x_set_mouse_face_gc): Ditto.
12498 (x_set_mode_line_face_gc): Ditto.
12499
427ec082
SS
12500 * xfaces.c (realize_default_face): Return int. Value is
12501 zero if frame params don't contain enough information to
26901792
DL
12502 realize the default face.
12503 (realize_basic_faces): Ditto.
12504 (init_frame_faces): Realize basic faces.
12505
12506 * xfns.c (x_set_font): First store real font name in frame
12507 parameters, then call recompute_basic_faces.
12508
12509 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12510
125111998-04-16 Gerd Moellmann <gerd@gnu.org>
12512
12513 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12514
12515 * xfns.c (Fx_face_fixed_p): Removed.
12516 (Fx_list_fonts): Moved to xfaces.c.
12517
12518 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12519 face_at_buffer_position. Parameter charset removed; always
12520 compute face for CHARSET_ASCII.
12521 (face_at_string_position): Renamed from
12522 compute_face_at_string_pos. Parameter charset removed; always
12523 compute for CHARSET_ASCII.
427ec082 12524 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12525 face_cache.
12526 (lookup_face): Ditto.
12527 (compute_char_face): Renamed from compute_glyph_face.
12528
12529 * xdisp.c (init_iterator): Initialize charset member.
12530 (reseat_iterator_to_string): Ditto.
12531 (get_charset_at_buffer_position): Determine charset at
12532 buffer position in current_buffer.
12533 (reseat_iterator): Call above function.
12534 (compute_face_at_iterator_position): Call
12535 compute_face_at_buffer_pos.
12536 (compute_face_at_iterator_string_position): Call
12537 compute_face_at_string_pos.
12538 (get_face_from_id): Removed.
12539 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12540 Call get_charset_at_buffer_position.
12541 (reseat_iterator): Determine face if charset at pos differs
12542 from iterator's charset.
12543 (reseat_iterator_to_glyph_pos): Removed.
12544
12545 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12546 Determine charset from buffer position.
12547 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12548 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12549
12550 * dispextern.h (struct display_iterator): Add member charset.
12551
125521998-04-15 Gerd Moellmann <gerd@gnu.org>
12553
12554 * xfaces.c (compute_char_face): Removed.
12555
12556 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12557 with new parameter list.
12558
12559 * xfaces.c (region_face): Removed.
12560 (allocate_face): Removed.
12561 (copy_face): Ditto.
12562 (face_eql): Removed.
12563 (intern_face): Removed.
12564 (clear_face_cache): Removed.
12565 (load_font): Ditto.
12566 (unload_font): Ditto.
12567 (load_color): Ditto.
12568 (unload_color): Ditto.
12569 (new_computed_face): Ditto.
12570 (intern_computed_face): Ditto.
12571 (ensure_face_ready): Ditto.
12572 (merge_faces): Ditto.
12573 (compute_base_face): Ditto.
12574 (merge_face_list): Ditto.
12575 (Fmake_face_internal): Removed.
12576 (Fset_face_attribute_internal): Ditto.
12577 (face_name_id_number): Removed.
12578 (Fframe_face_alist): Ditto.
12579 (Fset_frame_face_alist): Ditto.
12580 (Finternal_next_face_id): Ditto.
12581
12582 * xterm.h (struct x_output): Remove computed_faces, and
12583 param_faces. Remove macros accessing them.
12584
12585 * xfaces.c: Entirely new face implementation added.
12586
125871998-04-11 Gerd Moellmann <gerd@gnu.org>
12588
12589 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12590 `charpos'.
12591
125921998-04-10 Gerd Moellmann <gerd@gnu.org>
12593
12594 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12595 scroll bar window to reduce flickering. Clear entire height.
12596
12597 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12598 current_x and hpos to zero after moving to previous line
12599 start.
12600
126011998-04-03 Gerd Moellmann <gerd@gnu.org>
12602
12603 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12604
12605 * xfaces.c (xlfd_point_size): Compute relative point size of
12606 fonts from font and frame resolution.
12607 (sort_fonts): New function to sort fonts, temporarily setting
12608 font_frame to the frame in effect.
12609 (xlfd_point_size): Take additional frame parameter to be able
12610 to get at the display's resolution.
12611
12612 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12613 BLACK_PIX_DEFAULT.
12614 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12615 screen of display.
12616
126171998-03-31 Gerd Moellmann <gerd@gnu.org>
12618
12619 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12620
12621 * fontset.h: Add external declarations for Vfontset_alias_alist
12622 and Vglobal_fontset_alist.
12623
12624 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12625 (realize_default_face): If frame parameters contain an artificial
12626 font name naming a fontset, set the family of the default face to
12627 the fontset name given by the registry.
12628
12629 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12630
126311998-03-22 Gerd Moellmann <gerd@gnu.org>
12632
12633 * alloc.c (mark_object): Add function prototype. Add cast to
12634 Lisp_Object pointer in call to mark_object for symbol names
12635 because this otherwise gives a warning from gcc 2.8.1.
12636 (mark_face_cache): Mark Lisp objects in realized faces.
12637
126381998-03-19 Gerd Moellmann <gerd@gnu.org>
12639
12640 * frame.h (struct frame): Add member face_cache.
12641
12642 * alloc.c (mark_object): Mark face cache.
12643 (mark_face_cache): Mark Lisp faces in face cache of frame.
12644
12645 * frame.c (make_frame): Initialize face_cache.
12646 (Fdelete_frame): Free it.
12647
126481998-03-18 Gerd Moellmann <gerd@gnu.org>
12649
12650 * xfaces.c: Very first skeleton of functions for face realization,
12651 face merging, face cache etc.
12652
12653 * dispextern.h (struct rface): Realized faces. Will replace
12654 struct face when tested.
12655 (struct face_cache): Realized face caches.
12656
12657 * xdisp.c (init_iterator): Initialize area member of display
12658 iterator.
12659
126601998-03-17 Gerd Moellmann <gerd@gnu.org>
12661
12662 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12663
12664 * dispextern.h (struct display_iterator): New member area.
12665
12666 * xterm.c (note_overwritten_text_cursor): Note when the text
12667 cursor of a window is overwritten.
12668
12669 * xdisp.c (set_cursor_from_row): If PT is not found in the
12670 row, display the cursor at the start of the row.
12671
12672 * dispnew.c (direct_output_forward_char): Call
12673 set_cursor_from_row.
12674
12675 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12676 position is not in an overlay string, set iterator's position and
12677 method explicitly so.
427ec082 12678 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12679 Make it externally visible.
12680 (redisplay_window): Call set_cursor_from_row so that there is only
12681 one place where the cursor position is calculated from a current
12682 row.
12683
12684 * dispextern.h (struct display_iterator): New member
12685 overlay_strings_at_end_processed_p.
12686
12687 * xdisp.c (check_iterator): Perform sanity checks on
12688 display_iterators.
12689 (next_element_from_buffer): Check for overlay strings at ZV.
12690
126911998-03-16 Gerd Moellmann <gerd@gnu.org>
12692
12693 * buffer.c (init_buffer_once): Add left_margin_width and
12694 right_margin_width to buffer_local_flags.
12695
12696 * dispnew.c (margin_glyphs_to_reserve): Function computing
12697 number of glyphs to reserve for a marginal area.
12698 (adjust_glyph_matrix): Call it.
12699 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12700 is not alive.
12701
12702 * window.c (Fset_window_margins): Allow floats.
12703
12704 * buffer.c (syms_of_buffer): Add buffer-local variables
12705 left-margin-width and right-margin-width. Add defaults
12706 default-left-margin-width and default-right-margin-width.
12707
12708 * buffer.h (struct buffer): New members left_margin_width
12709 and right_margin_width.
12710
12711 * window.c (Fset_window_margins): Make window the last and
12712 optional argument.
12713
12714 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12715 flag no_marginal_areas_p differently.
12716 (x_clear_end_of_line): Ditto.
12717 (x_draw_glyph_string_relief): Compute width of relief differently
12718 for rows with flag no_marginal_areas_p.
12719
12720 * dispnew.c (update_window_line): Update marginal areas only
12721 for rows that don't have no_marginal_areas_p set.
12722
12723 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12724 (display_menu_bar): Ditto.
12725
12726 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12727
12728 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12729 marginal areas in window-based redisplay.
12730
12731 * dispextern.h (struct glyph_matrix): New members
12732 left_margin_glyphs and right_margin_glyphs.
12733
127341998-03-15 Gerd Moellmann <gerd@gnu.org>
12735
12736 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12737
12738 * charset.c (non_ascii_char_to_string): Use char type parameters
12739 because the function is used that way from outside. Use unsigned
12740 char internally.
12741
12742 * window.c (change_window_height): Return void.
12743 (make_dummy_parent): Return void.
12744 (init_window_once): Return void.
12745 (syms_of_window): Ditto.
12746 (keys_of_window): Ditto.
12747 (delete_window): Correct return with and without value.
12748
12749 * buffer.c (record_buffer): Return void.
12750
12751 * marker.c (unchain_marker): Return void.
12752
12753 * window.c (unshow_buffer): Return void.
12754 (replace_window): Ditto.
12755 (delete_window): Ditto.
12756
12757 * term.c (delete_glyphs_hook): Void return type.
12758 (ring_bell_hook): Ditto.
12759 (set_terminal_window_hook): Ditto.
12760
12761 * sysdep.c (init_sigio): Return void.
12762
12763 * xterm.c (x_set_window_size): Return void.
12764 (x_calc_absolute_position): Ditto.
12765 (x_set_offset): Ditto.
12766 (x_focus_on_frame): Ditto.
12767 (x_unfocus_frame): Ditto.
12768 (x_make_frame_visible): Ditto.
12769 (x_make_frame_invisible): Ditto.
12770 (x_iconify_frame): Ditto.
12771 (x_destroy_window): Ditto.
12772 (x_wm_set_window_state): Ditto.
12773 (x_wm_set_icon_pixmap): Ditto.
12774 (x_wm_set_icon_position): Ditto.
12775 (x_initialize): Ditto.
12776 (x_error_quitter): Ditto.
12777 (x_destroy_window): Use xfree instead of free.
12778
12779 * keyboard.c (clear_waiting_for_input): Return void.
12780
12781 * xterm.c (x_wm_set_size_hint): Return void.
12782 (x_raise_frame): Ditto.
12783 (refreshicon): Ditto.
12784 (x_error_catcher): Ditto.
12785 (x_clear_errors): Ditto.
12786
12787 * keyboard.c (record_asynch_buffer_change): Return void.
12788
bb6677a8
GM
12789 The first line of the following paragraph was garbled for an
12790 unknown reason. It couldn't be fully reconstructed.
178c5d9c 12791
bb6677a8 12792 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12793 (x_lower_frame): Ditto.
12794 (x_scroll_bar_clear): Ditto.
12795 (XTflash): Add default case in switch for -Wall.
12796 (construct_mouse_click): Return Qnil.
12797 (cancel_mouse_face): Return void.
12798 (x_queue_event): Use xmalloc instead of malloc.
12799 (x_unqueue_events): Use xfree instead of free.
12800
12801 * ccl.c (ccl_driver): Return int.
12802
12803 * keyboard.c (stop_polling): Return void.
12804 (start_polling): Ditto.
12805
12806 * term.c (keys): Add braces in initializer list for -Wall.
12807
12808 * sysdep.c (tabs_safe_p): Return int.
12809 (init_baud_rate): Return void.
12810
12811 * xterm.c (x_draw_bitmap): Add default case.
12812 (x_setup_relief_colors): Use DefaultScreen instead of
12813 DefaultScreenOfDisplay.
12814 (x_delete_glyphs): Return void.
12815 (construct_menu_click): Put in #if 0 because it isn't called.
12816
12817 * xdisp.c (load_overlay_strings): Remove extraneous argument
12818 in call to qsort.
12819 (get_overlay_arrow_glyph_row): Add missing return value.
12820
12821 * window.c (set_window_height): Return void.
12822 (set_window_width): Ditto.
12823
12824 * sysdep.c (request_sigio): Return void.
12825 (unrequest_sigio): Ditto.
12826 (get_frame_size): Ditto.
12827
12828 * scroll.c (scroll_cost): Return int.
12829 (do_line_insertion_deletion_costs): Return void.
12830
12831 * frame.c (Fdelete_frame): Use xfree instead of free.
12832
12833 * fileio.c (report_file_error): Return void.
12834
12835 * dispnew.c: Make compilable with -Wall.
12836 * term.c: Ditto.
12837
12838 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12839
128401998-03-14 Gerd Moellmann <gerd@gnu.org>
12841
12842 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12843 increased.
12844 (x_setup_relief_color): Free color only for appropriate visual
12845 classes.
12846
12847 * xterm.c (expose_window): Fix calculation of intersection of mode
12848 line rectangle with exposed rectangle.
12849
12850 * xdisp.c (redisplay_window): Don't do cursor movement based
12851 on current matrix if w->last_point is not valid.
12852
128531998-03-09 Gerd Moellmann <gerd@gnu.org>
12854
12855 * xterm.c (expose_line): Redraw mode line and menu lines
12856 differently because they reach into the scroll bar area.
12857
12858 * xdisp.c (redisplay_window): If redisplaying with same window
12859 start, don't accept cursor on partially visible line.
12860
128611998-03-08 Gerd Moellmann <gerd@gnu.org>
12862
12863 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12864 for wider mode lines.
12865 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12866
12867 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12868 scroll bar width for mode lines.
12869
12870 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12871 vertical scroll bar width in width calculation so that we can
12872 display mode lines wider.
12873
12874 * xdisp.c (redisplay_window): Restore buffers before returning
12875 when fonts have changed.
12876
12877 * dispnew.c (update_window): Mark invisible rows in the current
12878 matrix invalid.
12879
12880 * xdisp.c (try_window_id): Force update of first row displayed
12881 at window end.
12882 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12883
128841998-03-05 Gerd Moellmann <gerd@gnu.org>
12885
12886 * dispextern.h (struct glyph_row): Member max_ascent renamed
12887 ascent. Member max_descent replaced by height.
12888 (struct display_iterator): Member max_descent replaced by height.
12889 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12890
12891 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12892 class makes it unnecessary or dangerous.
12893
12894 * xdisp.c (redisplay_window): Case only point has changed, and
12895 point has moved forward. Move forward over overlay strings.
12896 (display_line): Don't set cursor if first glyph from PT is part of
12897 a continuation line.
12898
128991998-02-21 Gerd Moellmann <gerd@gnu.org>
12900
12901 * xdisp.c (start_display): When computing continuation lines
12902 width, add current_x to the continuation lines width because
12903 move_iterator_to will stop in front of the buffer position moved
12904 to.
12905
129061998-02-20 Gerd Moellmann <gerd@gnu.org>
12907
12908 * xdisp.c (redisplay_window): Don't try try_window_id if
12909 windows_or_buffers_changed.
12910
12911 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12912 determine a color.
12913 (x_setup_relief_color): Allocate/ change one relief.
12914 (x_setup_relief_colors): Call above function.
12915
12916 * xterm.h (struct relief): New structure type holding relief info:
12917 GCs, colors, and whether colors are allocated.
12918
427ec082 12919 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12920 produces the same color, try adding a delta to RGB values.
12921 (x_setup_relief_colors): Free color cells.
12922
427ec082 12923 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12924 black_relief_pixel holding the foreground colors allocated for
12925 relief GCs. New members white_allocated_p, black_allocated_p.
12926
12927 * xterm.c (x_scroll_run): Don't set updated_window to null.
12928 This resets updated_window when called from scrolling_window.
12929
12930 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12931
26901792
DL
12932 * xterm.c (x_scroll_run): Additional window parameter. Set
12933 and reset updated_window.
12934
12935 * dispnew.c (line_dance_hook): Additional window parameter.
12936
12937 * xdisp.c (try_window_reusing_current_matrix): Don't call
12938 update_window_begin/end here. The end function would display the
12939 cursor on a wrong position and the additional functionality of
12940 update_window_begin is not needed anyway. Just set
12941 updated_window.
12942 (try_window_id): Ditto.
12943
12944 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12945 Don't redraw cursor during redisplay.
12946
12947 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12948
12949 * xdisp.c (redisplay_window): For window-based redisplay, alway
12950 try try_window_id.
12951
12952 * xterm.c (struct glyph_string): New member two_byte_p that is
12953 non-zero if 16-bit drawing functions must be used.
12954 (x_fill_composite_glyph_string): Set it.
12955 (x_fill_glyph_string): Set it.
12956 (x_draw_glyph_string_foreground): Use it.
12957 (x_draw_vertical_border): Make line 1 pixel less tall.
12958 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12959 side by 1 pixel if window is not right-most hasn't vertical scroll
12960 bars.
12961 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12962 out of bounds.
12963 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12964 hl == DRAW_CURSOR.
12965
12966 * xdisp.c (start_display): Check that window start is at line
12967 start if GLYPH_DEBUG != 0.
12968
12969 * window.c (window_scroll_pixel_based): Move assertion to
12970 start_display.
12971
129721998-02-19 Gerd Moellmann <gerd@gnu.org>
12973
427ec082 12974 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12975 frame hasn't the focus.
12976
12977 * window.c (make_window): Initialize dy.
12978 (replace_window): Ditto.
12979
12980 * window.h (window): New member dy specifying the amount by which
12981 a window is scrolled "smoothly".
12982
12983 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12984 y-position because it can be negative.
26901792
DL
12985 (x_draw_row_bitmaps): Don't clear with negative y-position like
12986 above.
12987 (x_clear_end_of_line): Same theme as above.
12988
12989 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12990 exact match exists, the nearest existing color. Patterned after
12991 defined_color.
12992 (x_alloc_lighter_color): Allocate a color that is lighter or
12993 darker than a given color by a specified factor.
427ec082 12994 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12995 the background color of a glyph string face.
12996 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12997
12998 * xfns.c (x_make_gc): Don't allocate relief GCs.
12999 * widget.c (create_frame_gcs): Don't allocate relief GCs.
13000 (setup_frame_gcs): Don't change relief GCs.
13001
13002 * xterm.h (struct x_output): New member relief_background giving
13003 the background pixel color for which relief GCs can be used.
13004 Set by x_setup_relief_colors.
13005
13006 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
13007 for mode and menu lines.
13008
13009 * xdisp.c (set_next_iterator_stop_pos): No longer static.
13010
13011 * dispnew.c (direct_output_for_insert): Call
13012 set_next_iterator_stop_pos after having changed it2.endpos.
13013
130141998-02-17 Gerd Moellmann <gerd@gnu.org>
13015
13016 * dispnew.c (update_window): Work on selected_window, only.
13017
13018 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
13019 hpos is >= number of glyphs in the cursor row.
13020
13021 * xdisp.c (try_window_id): Bug fix; update_window_end was not
13022 called.
13023
130241998-02-16 Gerd Moellmann <gerd@gnu.org>
13025
13026 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
13027 and menu lines.
13028
13029 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
13030 enough glyphs to display a mode line or menu line which draws over
13031 flags areas.
13032
13033 * xterm.c (XTset_vertical_scroll_bar): Use
13034 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
13035 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 13036 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
13037 or menu.
13038 (x_set_glyph_string_clipping): Set clipping differently if drawing
13039 a mode line or menu line.
13040
13041 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
13042
13043 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
13044 menu lines.
13045 (x_scroll_bar_create): Don't clear flags areas.
13046 (x_draw_row_bitmaps): Clear visible row height, only.
13047
13048 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
13049
130501998-02-15 Gerd Moellmann <gerd@gnu.org>
13051
13052 * dispnew.c (direct_output_for_insert): When checking for tabs in
13053 the line, set it2.endpos to ZV.
427ec082 13054
26901792
DL
13055 * window.h (struct window): New member cursor_off_p.
13056 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
13057 for X.
13058 * dispnew.c (redraw_cursor_hook): If non-null, function that can
13059 be called to display or erase the cursor.
13060 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
13061 or selected_window.
13062
13063 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
13064
13065 * dispnew.c (update_window_line): Special handling of inverse
13066 lines in #if 0 removed.
13067
13068 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
13069 (x_insert_glyphs): Renamed from XTinsert_glyphs.
13070 (x_clear_frame): Renamed from XTclear_frame.
13071 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
13072 (x_ins_del_lines): Renamed from XTins_del_lines.
13073 (x_change_line_height): Renamed from XTchange_line_height.
13074 (x_delete_glyphs): Renamed from XTdelete_glyphs.
13075 (x_clear_cursor): Renamed from clear_cursor.
13076 (x_update_begin): Renamed from XTupdate_begin.
13077 (x_update_end): Renamed from XTupdate_end.
13078 (x_update_window_begin): Renamed from XTupdate_window_begin.
13079 (x_update_window_end): Renamed from XTupdate_window_end.
13080 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13081 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13082 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13083 (x_produce_special_glyphs): Implementation in #if 0 removed.
13084
13085 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13086 flag in the dump.
13087
13088 * dispnew.c (update_text_area): Handling of glyphs with pixel
13089 width zero removed. Decrement desired stop pos if desired row
13090 fills its line.
13091
13092 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13093 width zero removed.
13094 (BUILD_GLYPH_STRINGS): Set glyph string flag
13095 extends_to_end_of_line_p based on row's flag fill_line_p and face
13096 background and stipple. Make sure it works for composite characters.
13097
13098 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13099 fill_line_p. For window-based redisplay, add a space only if
13100 the row is empty so that we know the face to draw.
13101
13102 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13103 means draw the face of the last glyph in the text area to the
13104 right end of the text area.
13105
13106 * xdisp.c (init_iterator): Show region in window mini-buffer
13107 window refers to.
13108
427ec082 13109 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
13110 region_showing_p removed. Test for region_beg > 0 instead.
13111
13112 * dispnew.c (update_text_area): Clear to end of line if cursor is
13113 beyond the end of the desired line. Necessary because we don't
13114 have a phys_cursor_glyph with which to erase the cursor. We don't
13115 have one because this method of drawing a cursor doesn't work with
13116 lbearing/rbearing.
13117
13118 * xterm.c (XTinsert_glyphs): Block input.
13119
131201998-02-14 Gerd Moellmann <gerd@gnu.org>
13121
13122 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13123 glyph strings.
13124 (x_draw_glyph_string_background): Fill background with background
13125 pixel for the first glyph of a composite character.
13126
13127 * xdisp.c (try_window): Change return type to int. Value is zero
13128 if fonts were loaded during redisplay.
13129 (redisplay_window): Return if fonts have been loaded during
13130 redisplay.
13131 (append_space): New parameter default_face_p.
13132
131331998-02-13 Gerd Moellmann <gerd@gnu.org>
13134
13135 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13136 don't let a partially visible line in a current matrix stay
13137 enabled.
13138
131391998-02-09 Gerd Moellmann <gerd@gnu.org>
13140
13141 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13142 in #if PROMPT_IN_BUFFER.
13143
13144 * xdisp.c (display_line): If row ends in ZV, make the space
13145 that is added to place the cursor on it appear in default face.
13146
427ec082 13147 * xterm.c (expose_area): New function redrawing a single
26901792
DL
13148 glyph row area.
13149 (expose_line): Use it to redraw all areas of a row.
13150
13151 * dispextern.h (move_operation_enum): New enum
13152 move_operation_enum.
13153
13154 * window.c (window_scroll_pixel_based): Remove now unnecessary
13155 code that made sure that it->current_y doesn't become negative.
13156
13157 * xdisp.c (move_iterator_in_display_line_to): New parameter
13158 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13159 (move_iterator_to): Ditto.
13160
13161 * dispextern.h (struct glyph_matrix): New member window_width.
13162
13163 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13164 case of changing window height.
13165
13166 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 13167 border to the left.
26901792
DL
13168
13169 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13170 says this aspect of Emacs is currently redesigned.
13171
13172 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13173 have to draw a vertical border.
13174
13175 * window.c (window_scroll_pixel_based): When scrolling down by
13176 screen-fulls, make sure it.current_y doesn't get negative because
13177 this would confuse move_iterator_vertically.
13178
13179 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13180 the case continuation lines are involved.
13181 (try_window_id): Don't set the cursor into scroll margins.
13182
131831998-02-08 Gerd Moellmann <gerd@gnu.org>
13184
13185 * xterm.c (x_append_glyph): Don't compute left_overhang and
13186 right_overhang.
13187 (XTproduce_glyphs): left_overhang and right_overhang removed.
13188 Set it->glyph_row->contains_overlapping_glyphs_p.
13189
13190 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13191 and right_overhang removed.
13192
13193 * dispextern.h (struct glyph_row): New member
13194 contains_overlapping_glyphs_p used to optimize glyph drawing.
13195 (struct display_iterator): left_overhang and right_overhang
13196 removed.
13197 (struct glyph): Ditto.
13198
13199 * xterm.c (x_draw_relief): Removed.
13200 (x_draw_bitmap): Renamed from draw_bitmap.
13201 (x_draw_glyphs): Completely new implementation of draw_glyphs
13202 capable of handling arbitrary lbearing and rbearing values.
13203 Several sub-functions not mentioned here.
13204
132051998-01-30 Gerd Moellmann <gerd@gnu.org>
13206
13207 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 13208 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
13209 other cases.
13210 (draw_glyphs): Move start to the left and end to the right if they
427ec082 13211 overlap with previous or following characters.
26901792 13212 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 13213 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
13214 character under the cursor would be invisible.
13215 (x_draw_bar_cursor): Don't draw over previous character if it
13216 has right_overhang.
13217
13218 * window.c (get_phys_cursor_glyph): Return the glyph under a
13219 window's physical cursor.
427ec082 13220
26901792
DL
13221 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13222 (x_draw_bar_cursor): Ditto.
13223 (x_erase_phys_cursor): Ditto.
13224 (x_phys_cursor_in_rect_p): Ditto.
13225 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13226
13227 * window.c (make_window): Remove reference to phys_cursor_glyph.
13228 (replace_window): Ditto.
13229
13230 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13231 now always a glyph present for placing the cursor on it in
26901792
DL
13232 each glyph row, even at the end of a line.
13233
13234 * xdisp.c (append_space): Function to add a space to an iterators
13235 glyph row.
13236 (display_line): Add spaces at the end of lines that are used to
13237 place the cursor on them.
13238 (compute_line_metrics): If row consists of a space only that was
427ec082 13239 added to place the cursor on it, use that space's height as the
26901792
DL
13240 line height.
13241
132421998-01-29 Gerd Moellmann <gerd@gnu.org>
13243
13244 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13245 glyphs.
13246
132471998-01-28 Gerd Moellmann <gerd@gnu.org>
13248
13249 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13250 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13251
13252 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13253 right_overhang.
26901792
DL
13254 (struct display_iterator): Ditto.
13255
13256 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13257 glyphs have different ascent or descent than original row.
13258
13259 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13260 row->max_descent only if unknown.
13261 (display_line): Compute row->max_ascent and row->max_descent.
13262 (display_string): Ditto.
13263
13264 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13265 phys_cursor_descent.
26901792
DL
13266
13267 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13268 (x_draw_hollow_cursor): Ditto.
13269 (x_erase_phys_cursor): Ditto.
13270 (x_display_and_set_cursor): Set them.
13271 (x_append_glyph): Don't set glyph members that were removed.
13272
13273 * dispextern.h (struct glyph): Members ascent, descent,
13274 contributes_to_line_height_p removed.
13275
132761998-01-25 Gerd Moellmann <gerd@gnu.org>
13277
13278 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13279 names for face ids of frame default face and mode line face.
13280
13281 * xdisp.c (compute_face_at_iterator_string_position): If
13282 displaying a mode line use MODE_LINE_FACE_ID instead of
13283 DEFAULT_FACE_ID.
13284
13285 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13286 (display_string): Ditto, additional parameter lisp_string.
13287 (display_line): Call display_string with Lisp mini-buffer prompt
13288 string.
13289 (display_menu_bar): Call display_string with Lisp string.
13290 (display_mode_element): Ditto.
13291 (next_element_from_string): Make it work for non-overlay Lisp
13292 strings with field width and precision.
13293
13294 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13295 PROMPT_IN_BUFFER.
13296
13297 * xfaces.c (compute_string_char_face): Fix face computation
13298 for overlay strings.
13299
13300 * xdisp.c (struct overlay_entry): Add member after_string_p.
13301 (load_overlay_strings): Simplify.
13302
13303 * window.c (delete_window): Defer glyph matrix adjustment.
13304 (Fsplit_window): Ditto.
13305 (change_window_height): Ditto.
13306 (Fset_window_configuration): Ditto.
13307 (Fset_window_margins): Ditto.
13308 * frame.c (set_menu_bar_lines): Ditto.
13309 (Fmake_terminal_frame): Ditto.
13310 * dispnew.c (change_frame_size_1): Ditto.
13311
133121998-01-24 Gerd Moellmann <gerd@gnu.org>
13313
13314 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13315
427ec082 13316 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13317 position has overlay strings.
13318
13319 * xdisp.c (display_line): Don't set cursor if row ends in middle
13320 of overlay string.
13321 (Fdump_redisplay_state): Print complete row start and end
13322 position.
13323 (redisplay_window): Cursor movement when matrix hasn't changed---
13324 if PT < last_point, maybe move forward if row ends at PT and
13325 in middle of char.
13326
13327 * minibuf.c (read_minibuf): Save the value of
13328 minibuffer_prompt_length in minibuf_save_list.
13329 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13330
13331 * xdisp.c (redisplay_window): Add assertion for cursor movement
13332 case, PT < last_point.
13333 (move_iterator_in_display_line_to): If to_pos specified, move
13334 over before-strings.
13335
13336 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13337 start.string_index > 0.
13338
13339 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13340 is set. Retry redisplay if fonts_changed_p is set before update.
13341
13342 * xterm.c (x_load_font): Set fonts_changed_p.
13343
13344 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13345
13346 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13347
13348 * xdisp.c (try_window): Check fonts_changed_p.
13349 (try_window_reusing_current_matrix): Ditto.
13350 (try_window_id): Ditto.
13351
13352 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13353 (fonts_changed_p): Flag indicating a font change since the last
13354 glyph matrix adjustment.
13355
13356 * xterm.c (x_per_char_metric): Use font->max_bounds as
13357 char metric of the font's default char if the default char
13358 hasn't per char metric itself.
13359
13360 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13361 for font change.
13362 (min_char_bounds): Check face->font != NULL.
427ec082 13363 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13364 case of invalid min_bounds contents.
13365 (min_char_bounds): Call font_min_bounds.
13366
133671998-01-22 Gerd Moellmann <gerd@gnu.org>
13368
13369 * xdisp.c (start_display): Don't set it->prompt_width if
13370 PROMPT_IN_BUFFER.
13371 (move_iterator_in_display_line_to): Ditto.
13372 (display_line): Don't display prompt via display_string if
13373 PROMPT_IN_BUFFER.
13374
13375 * minibuf.c (Fminibuffer_prompt_width): Return value from
13376 current_buffer if PROMPT_IN_BUFFER.
427ec082 13377 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13378 mini-buffer and make it read-only.
13379 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13380 minibuffer_prompt_length instead of BEGV.
13381 (Fminibuffer_complete_word): Ditto.
13382 (Fminibuffer_complete_word): Ditto.
13383
13384 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13385 is less than mini-buffer prompt width, use prompt width as start.
13386
13387 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13388 position is less than mini-buffer prompt width, use the prompt
13389 width as start.
13390
13391 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13392 end of prompt if applied to a mini-buffer and BEG reached.
13393
133941998-01-21 Gerd Moellmann <gerd@gnu.org>
13395
13396 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13397 length to start position.
13398
13399 * buffer.c (Fget_buffer_create): Initialize
13400 minibuffer_prompt_length.
13401 (Fmake_indirect_buffer): Ditto.
13402 (Fkill_buffer): Ditto.
13403
13404 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13405 if PROMPT_IN_BUFFER.
13406
134071998-01-19 Gerd Moellmann <gerd@gnu.org>
13408
13409 * xdisp.c (next_element_from_string): Make it work for arbitrary
13410 Lisp strings.
13411 (set_iterator_to_next): Advance to next overlay string only
13412 if it->string is an overlay string.
13413
13414 * dispextern.h (struct display_iterator):
13415 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13416
427ec082 13417 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13418 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13419
13420 * xdisp.c (next_element_from_string): Renamed from
13421 next_element_from_overlay_string.
427ec082 13422 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13423 compute_face_at_iterator_overlay_string_position.
13424
13425 * dispextern.h (struct display_iterator): Member overlay_string
13426 renamed string.
13427
13428 * xdisp.c (next_element_from_c_string): Renamed from
13429 next_element_from_string.
13430
13431 * dispextern.h (struct glyph_pos): Reversed meaning of
13432 overlay_string_index and string_index.
13433
13434 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13435 this function always return the first character of an overlay
13436 string.
13437
134381998-01-18 Gerd Moellmann <gerd@gnu.org>
13439
13440 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13441 forced or new pos > next_invisible_check_pos.
13442 (redisplay_window): Don't try same window start if PT < window
13443 start.
13444 (move_iterator_vertically): Bug fix satisfying post-condition
13445 when ZV is reached and no newline in front.
13446 (move_iterator_vertically_backward): New implementation.
13447 (move_iterator_vertically_backward): Bug fixes.
13448
13449 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13450 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13451 (adjust_glyphs_for_font_change): Always adjust.
13452
13453 * dispnew.c (struct dim): Use int.
13454
13455 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13456 (allocate_face): Initialize it.
13457 (load_font): Use XLoadQueryFont again instead of x_load_font.
13458 (unload_font): Use XFreeFont again.
13459 (min_char_bounds): Iterate over fonts of faces. Use frame's
13460 font sizes as default. Remove parameter except_last_font_p.
13461
13462 * dispextern.h (struct face): Add font_name.
13463
134641998-01-17 Gerd Moellmann <gerd@gnu.org>
13465
13466 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13467 to start of line if ending at ZV and no newline in front.
13468 (move_iterator_to): If to_y specified, always first move to x = 0,
13469 so that move stops at line start instead of line end. This is
13470 probably what callers would expect to happen.
13471
13472 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13473 can handle different line heights.
13474 (window_scroll_line_based): Formerly window_scroll.
13475 (window_scroll): Call both.
13476
13477 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13478 (move_iterator_in_display_line_to): Ditto.
13479 (display_line): Ditto.
13480
13481 * minibuf.c (read_minibuf): Conditionally insert prompt into
13482 buffer instead of handling prompts specially. Change other
13483 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13484
13485 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13486 upper window. Optimize calls to xrealloc if same width.
13487
13488 * xdisp.c (redisplay_window): Don't use
13489 try_window_reusing_current_matrix if window scroll functions
13490 exist.
13491
13492 * dispextern.h (struct display_iterator): Member
13493 redisplay_end_trigger_p removed.
13494
13495 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13496 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13497
134981998-01-16 Gerd Moellmann <gerd@gnu.org>
13499
13500 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13501 nil. Optimize truncate-lines t and moving backward.
13502 (move_iterator_to_previous_visible_line_start): Contains the heart
13503 of the previous set_iterator_to_previous_visible_line_end. Don't
13504 reseat the iterator. Used by move_iterator_by_lines.
13505 (set_iterator_to_previous_visible_line_start): Call function
13506 above.
13507 (move_iterator_in_display_line_to): Check TO_POS before doing
13508 anything else. Otherwise to_pos == PT would move to x of PT+1.
13509
13510 * indent.c (Fvertical_motion): Use display_iterator.
13511
13512 * xdisp.c (move_iterator_by_lines): New function moving by screen
13513 lines.
13514 (redisplay_window): Use it.
13515 (move_iterator_to): Correct branch of to_vpos specified.
13516 (move_iterator_vertically_backward): Increment nlines after having
13517 backed up over some lines because the last line was not backed up
13518 over.
13519 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13520 calculate it->vpos and it->current_y relative to this row.
427ec082 13521 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13522 have a big effect and it is complex.
13523 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13524
135251998-01-15 Gerd Moellmann <gerd@gnu.org>
13526
13527 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13528 join nicely. Lines with widths > 2 don't join nicely under X.
13529 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13530 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13531 width 1; remove references to relief_gc_line_width.
13532 * xfns.c (x_make_gc): Ditto.
13533
13534 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13535 if relief changes.
13536 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13537 to get a relief because they can be negative.
13538
13539 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13540 positions are for the middle of lines under X.
13541
13542 * xdisp.c (try_window_id): Always search for the cursor by setting
13543 w->cursor.vpos = -1. Search in unchanged rows at the top and
13544 bottom if cursor not found in displayed lines.
427ec082 13545 (display_mode_line): First extend face, then set right shadow
26901792
DL
13546 flag. Otherwise the wrong glyph gets the right shadow.
13547
13548 * dispnew.c (direct_output_for_insert): Give up if line contains
13549 a tab. The number of spaces inserted for a tab changes if we
13550 insert glyphs in front of it.
13551
13552 * xterm.c (x_list_fonts): Changes undone because the Lisp
13553 implementation for make-face-smaller, make-face-larger, and
13554 make-face-fixed can do without them.
13555
13556 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13557 inserted.
13558
13559 * xdisp.c (try_window_id): First compute beg_unchanged, then
13560 compare with window start pos.
13561
13562 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13563 fixed-width font.
13564 (syms_of_xfns): defsubr for x-face-fixed-p.
13565
13566 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13567 enabled, don't do anything because this row will be newly drawn
13568 anyway and because we can additionally no longer determine the row
13569 height.
13570
13571 * xdisp.c (display_line): Bug fix cursor positioning.
13572
13573 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13574 removed. x-list-fonts.c is now obsolete.
13575 (Qfixed, Qvariable): Moved here from xfaces.c.
13576
135771998-01-14 Gerd Moellmann <gerd@gnu.org>
13578
13579 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13580 FETCH_BYTE for truncated lines.
13581 (display_line): Set cursor differently.
13582 (display_line): Fixed bug setting last_pos_on_this_line wrong
13583 for truncated lines.
13584
13585 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13586 redisplay.
13587
13588 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13589
13590 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13591 assertion that character dimensions are not zero.
13592
13593 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13594 input is blocked.
13595
13596 * xdisp.c (decode_mode_spec): Faster implementation of line number
13597 display.
13598
13599 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13600 bitmaps if bitmaps don't fill the entire area.
13601 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13602
427ec082 13603 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13604 pixel height of flags bitmaps.
13605
13606 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13607 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13608
13609 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13610 in pixels of a flags area of a frame.
13611 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13612 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13613 occupied by a flags area.
13614
136151998-01-13 Gerd Moellmann <gerd@gnu.org>
13616
13617 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13618 window_end_valid.
13619
13620 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13621 GLYPH_DEBUG != 0.
13622
13623 * xdisp.c (display_line): Correct wrong calculation of row->x for
13624 the case of nglyphs == 1.
13625 (hscroll_window_tree): Renamed from hscroll_windows.
13626 (hscroll_windows): New function calling hscroll_window_tree that
13627 clears desired matrices on a frame when hscroll has been changed.
13628 (redisplay_p): Global flag set during redisplay.
13629 (redisplay_internal): Set and clear redisplay_p.
13630
13631 * xfaces.c (min_char_bounds): Add assertion that width and height
13632 are not zero at the end. Initialize *height and *width to -1,
13633 instead of using BITS_PER_SHORT. If font has min_bounds.width
13634 zero, use its max_bounds.width.
13635
13636 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13637 width and height.
13638
136391998-01-12 Gerd Moellmann <gerd@acm.org>
13640
13641 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13642 changed. Don't clear desired matrices.
13643
13644 * xdisp.c (hscroll_windows): Compute pt after setting
13645 current_buffer.
13646 (redisplay_window): Don't do cursor movement based on current
13647 matrix if just_this_one_p is zero.
13648
13649 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13650 specifying that fixed-width, variable-width fonts or both
26901792
DL
13651 should be returned.
13652
13653 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13654 (syms_of_xfaces): Initialize them.
13655
13656 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13657 cached information.
13658
136591998-01-11 Gerd Moellmann <gerd@acm.org>
13660
13661 * xdisp.c (display_mode_line): Extend face to end of line.
13662
13663 * xdisp.c (echo_area_display): Don't call display_string with
13664 echo_area_glyphs_length == 0 which would mean infinite precision.
13665 (redisplay_internal): Adjust window_end_vpos if necessary.
13666
136671998-01-07 Gerd Moellmann <gerd@acm.org>
13668
13669 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13670
136711998-01-05 Gerd Moellmann <gerd@acm.org>
13672
13673 * xdisp.c (get_row_start_continuation_line_width): Removed.
13674 (init_iterator_to_row_start): Set it.current_x from row.
13675 (try_window_id): Set it.continuation_lines_width directly from
13676 row.
13677
13678 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13679 selected_window.
13680 (hscroll_windows): Center cursor in window.
13681 (hscroll_windows): Call move_iterator_in_display_line_to.
13682
136831998-01-04 Gerd Moellmann <gerd@acm.org>
13684
13685 * xdisp.c (hscroll_windows): Check hscroll < 0.
13686 (redisplay_window): Allow quick cursor movement if overlay arrow
13687 but frame uses window-based redisplay.
13688 (display_line): Take special case for nglyphs == 1 out of #if 0.
13689 (display_line): Set row->ends_at_zv_p after the loop displaying
13690 glyphs because ZV can be in truncated text.
13691 (hscroll_windows): Use init_iterator_to_row_start.
13692
13693 * dispnew.c (scrolling_window): Calculation of overlapping
13694 runs fixed.
13695 (row_equal_p): Compare continued_p and continuation_line_p.
13696
136971998-01-02 Gerd Moellmann <gerd@acm.org>
13698
13699 * xterm.c (x_get_mode_line_face_gc): Renamed from
13700 x_get_modeline_face_gc.
13701
13702 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13703 buffer position to look for text properties.
13704 (get_face_from_cursor_pos): Use it.
13705 (compute_face_at_iterator_position): Use it.
13706 (next_element_from_buffer): Use it.
13707
13708 * dispnew.c (scrolling_window): Decrement run's y-position
13709 when extending it backwards.
13710
13711 * xterm.c (do_line_dance): Don't ever copy more than window height.
13712
137131998-01-01 Gerd Moellmann <gerd@acm.org>
13714
13715 * xdisp.c (redisplay_window): Cursor motion in unchanged
13716 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13717 (init_iterator_to_next_row_start): Special handling of lines
13718 ending in middle of char removed.
13719 (hscroll_windows): Hscroll windows only if window_end_valid is not
13720 nil.
13721 (try_window_reusing_current_matrix): Call hscroll_windows.
13722 (init_iterator_to_row_start): Initialize iterator for display
13723 starting at a position given by a glyph_row->start.
13724 (redisplay_window): Don't use vmotion because it gives wrong
13725 results if lines are continued and variable width fonts are used.
13726
427ec082 13727 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13728 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13729 the middle of a character.
427ec082 13730 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13731 the middle of a character.
13732
13733 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13734 it.
13735 (next_element_from_display_vector): Use it->dpvec_index.
13736 (reseat_iterator): Reset it.
13737 (init_iterator): Reset it.
13738 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13739 it->pos.dpvec_index from a glyph_pos structure.
13740 (init_iterator_from_glyph_pos): Call the function above.
13741 (reseat_iterator_to_glyph_pos): Ditto.
13742
13743 * dispnew.c (direct_output_forward_char): Don't use this method at
13744 overlay boundaries or near invisible text.
13745 (direct_output_forward_char): Step through glyph row to find
13746 cursor position.
13747
427ec082 13748 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13749 frame font if line height differs from font height.
13750
13751 * xdisp.c (set_iterator_to_next): Renamed from
13752 move_iterator_forward to avoid confusion with other move_.*
13753 functions.
13754
13755 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13756
137571997-12-31 Gerd Moellmann <gerd@acm.org>
13758
13759 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13760 same naming convention as for other GC functions.
13761 (draw_glyphs): Don't fill background when drawing a cursor and
13762 font height is less than line height.
13763
137641997-12-30 Gerd Moellmann <gerd@acm.org>
13765
13766 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13767 init_iterator_.*.
13768
13769 * xdisp.c (move_iterator_forward): Restore it->len from
13770 it->dpvec_char_len if dpend reached.
13771 (get_next_display_element): Don't consume translated char
13772 prematurely.
13773 (display_line): Don't set this_.* variables if row is continued.
13774 (start_display): Move to start of continuation line if ending
13775 up at end of continued line.
13776
13777 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13778
13779 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13780 checking TO_X and continuation lines.
13781 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13782 of a continued line, don't consider this line as unchanged because
13783 it may no longer be continued.
13784
137851997-12-29 Gerd Moellmann <gerd@acm.org>
13786
13787 * xdisp.c (try_window_id): Catch the case that moving over
13788 continuation lines moves first_unchanged_at_end_row to a row not
13789 displaying text.
13790
13791 * dispextern.h (struct glyph_row): New member
13792 continuation_lines_width. Member continuation_line_p removed.
427ec082 13793 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13794 continuation line.
13795 * xdisp.c (display_line): Set row->continuation_lines_width.
13796 (get_row_start_continuation_line_width): Set continuation lines
13797 width of iterator from continuation lines width of glyph row.
13798 (get_row_start_continuation_line_width): Make it inline.
13799 (set_window_cursor): Make it inline.
13800 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13801 (Fdump_redisplay_state): Ditto.
427ec082 13802
26901792
DL
13803 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13804 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13805
13806 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13807 after determining the continuation lines width for
13808 last_unchanged_at_beg_row.
13809
13810 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13811
13812 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13813 which support faces.
13814 (init_display_iterator): Ditto.
13815 (move_iterator_via_matrix): Skip over truncation glyph at the row
13816 start on terminal frames.
13817 (hscroll_windows): Choose hscroll margin differently for window
13818 system and terminal frames.
13819
138201997-12-28 Gerd Moellmann <gerd@acm.org>
13821
13822 * xdisp.c (hscroll_windows): Change hscroll of windows.
13823 (redisplay_internal): Call it.
13824
427ec082 13825 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13826 doesn't fit completely on the line.
13827 (direct_output_forward_char): Give up for non-ASCII chars.
13828 (direct_output_forward_char): Set redisplay_performed_directly_p.
13829
13830 * dispextern.h (struct display_iterator): Make first_visible_x
13831 and last_visible_x ints; this is for very long truncated lines.
13832
13833 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13834 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13835 positioning problems with the mouse.
13836 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13837 >= it->last_visible_x instead of >.
13838 (display_line): Ditto.
13839
13840 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13841 loaded.
13842 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13843 non-ASCII chars differently. Always produce 1 glyph for composite
13844 chars. If font not found, use CHARSET_WIDTH to calculate width of
13845 non-ASCII chars.
13846 (x_get_char_font_and_encoding): Return null if font could not be
13847 loaded. Reset font to null if fontset could not be loaded.
13848 (draw_glyphs): Fill background if font not found.
13849 (draw_glyphs): Unused parameter just_foreground_p removed. New
13850 parameter composite_glyph.
13851 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13852 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13853 draw_glyphs when calling it recursively for composite chars.
13854
138551997-12-27 Gerd Moellmann <gerd@acm.org>
13856
13857 * xterm.c: Patches from handa.etl.go.jp integrated.
13858 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13859 find a font_info.
13860
13861 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13862 for nglyphs == 1.
13863
13864 * xterm.c (x_draw_relief): Draw relief lines.
13865 (draw_glyphs): Call x_draw_relief.
13866
138671997-12-26 Gerd Moellmann <gerd@acm.org>
13868
13869 * xfns.c (x_make_gc): Create relief GC's.
13870
13871 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13872 (setup_frame_gcs): Initialize them.
13873 (EmacsFrameDestroy): Free them.
13874
427ec082 13875 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13876 last_unchanged_at_beg_row is continued or a continuation line.
13877 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13878 (redisplay_window): Case point has changed, and it has not
26901792
DL
13879 moved off the frame. Don't increment row if PT equals the row
13880 end if the row ends in ZV.
13881
13882 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13883 (expose_line): Call it.
13884 (x_after_update_window_line): Call it.
13885
13886 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13887 reached.
13888
13889 * xterm.c (x_after_update_window_line): Draw continuation line
13890 bitmap.
13891
13892 * dispnew.c (update_window_line): Call
13893 after_update_window_line_hook when row's continuation_line_p
13894 changes.
13895
13896 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13897
13898 * xdisp.c (display_line): Handle continued lines on window system
13899 frames differently since continuation glyphs are not displayed.
13900 (move_iterator_in_display_line_to): Ditto.
13901 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13902 into account.
13903 (move_iterator_vertically_backward): Handle dy == 0 specially.
13904 (redisplay_window): Catch the case of small windows when
13905 recentering where moving back window_height/2 moves us beyond the
13906 top of the display area of the window.
13907
139081997-12-18 Gerd Moellmann <gerd@acm.org>
13909
13910 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13911 dvpos removed.
13912
139131997-12-17 Gerd Moellmann <gerd@acm.org>
13914
13915 * dispnew.c (direct_output_forward_char): Correct new cursor
13916 x-position.
13917
139181997-12-16 Gerd Moellmann <gerd@acm.org>
13919
13920 * xterm.c (x_after_update_window_line): Remove unused parameters.
13921 (XTclear_end_of_line): Clear to display_height instead of
13922 display_height - 1.
13923
13924 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13925 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13926 rows have different y-positions, or different height.
13927
139281997-12-14 Gerd Moellmann <gerd@acm.org>
13929
13930 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13931
13932 * window.c (coordinates_in_window): Call frame_mode_line_height.
13933
13934 * xterm.c (x_draw_3d_border): Removed.
13935 (x_draw_row_borders): Removed.
13936
13937 * dispnew.c (update_window): References to
13938 FRAME_MODE_LINE_BORDER_WIDTH removed.
13939
13940 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13941 (FRAME_MODE_LINE_HEIGHT): Removed.
13942
13943 * xterm.c (draw_3d_borders_p): Removed.
13944 (draw_glyphs): Ditto.
13945 (XTwrite_glyphs): Ditto.
13946 (expose_line): Ditto.
13947 (x_initialize): Ditto.
13948
13949 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13950 frame_mode_line_height.
13951
13952 * term.c (frame_mode_line_height): Get the pixel height of a
13953 frame's mode line.
13954 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13955 versions.
13956
26901792
DL
13957 * xterm.c (x_initialize): Set the hook.
13958 (XTframe_mode_line_height): X version of frame_mode_line_height.
13959
13960 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13961 output buffer.
13962 (display_string): Don't add right truncation mark if line ends in
13963 padding space.
13964 (init_display_iterator): If called with modeline_p non-zero, set
13965 face_id to 1, which is the id of the mode line face.
13966
13967 * keyboard.c (cmd_error_internal): Write to stderr if selected
13968 frame is Vterminal_frame under X. This is the case when a font
13969 cannot be loaded when Emacs starts. Replace test for
13970 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13971
13972 * xfaces.c (compute_overlay_string_char_face): Compute the
13973 face of a character in an overlay string.
13974 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13975 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13976 Use it.
13977
13978 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13979 set_iterator_to_next_overlay.
13980 (struct overlay_entry): Structure used to sort overlay strings.
13981 (compare_overlay_entries): Compare overlay strings.
13982 (load_iterator_with_overlay_strings): Load a chunk of overlay
13983 strings.
13984 (get_overlay_strings_at_iterator_position): Call it.
13985 (next_element_from_overlay_string): Set it->object to the overlay
13986 string. Prepare for setting it->position to a string position.
13987 (get_overlay_strings_at_iterator_position): Renamed from
13988 get_overlays_at_iterator_position.
13989 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13990 chunks of overlay strings.
13991 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13992
13993 * dispextern.h (struct display_iterator): New vector
13994 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13995 overlays and n_overlays.
13996 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13997 renamed to string_index.
13998
139991997-12-13 Gerd Moellmann <gerd@acm.org>
14000
14001 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
14002 when allocating a vector.
14003 (release_iterator): Removed.
14004 (restore_iterator): Removed.
14005 (copy_iterator): Removed.
14006
140071997-12-08 Gerd Moellmann <gerd@acm.org>
14008
14009 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
14010 clearing a mini-buffer window that is not active.
14011 (redisplay_window): Do not scroll one line too early when last
14012 window line is completely visible.
14013 (init_display_iterator): Leave some room to display the cursor
14014 after the last glyph on a continued line.
14015
14016 * xterm.h (struct x_output): trunc_area_extra renamed
14017 flags_areas_extra.
14018 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
14019
14020 * dispnew.c (update_window_line): Call
14021 after_update_window_line_hook when current row is not enabled
14022 which is the case after a frame has been cleared.
14023
14024 * xdisp.c (display_mode_line): Reset row flags for truncation
14025 on right side for the mode line.
14026
14027 * xterm.c (bitmap_type): Type of bitmap to display in flags
14028 area of frame.
14029 (x_after_update_window_line): Use the enum.
14030 (draw_bitmap): Ditto.
14031
140321997-12-07 Gerd Moellmann <gerd@acm.org>
14033
14034 * xterm.c (x_clip_to_row): Include width of both flag areas.
14035 (do_line_dance): Ditto.
14036 (expose_window_tree): Ditto.
14037 * dispnew.c (update_window_line): Call
14038 after_update_window_line_hook for right truncation and continuation.
14039 * xdisp.c (init_display_iterator): Don't subtract width of
14040 continuation glyphs for window-based redisplay.
14041 * xterm.c (draw_bitmap): Draw continuation bitmap.
14042 * widget.c (set_frame_size): Double trunc_area_extra.
14043 (EmacsFrameSetCharSize): Ditto.
14044 * xfns.c (x_figure_window_size): Ditto.
14045 * xterm.c (x_set_window_size): Ditto.
14046 (x_after_update_window_line): Draw right truncation mark.
14047
14048 * xterm.c (draw_glyphs): Bug fix buffer overrun.
14049
14050 * window.h: Include blocker around dispextern.h removed.
14051
14052 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 14053
26901792
DL
14054 * dispextern.h (struct display_iterator): Former ovstr made a
14055 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
14056 next_ovstr_invisble_check_pos; check at these positions for
14057 face changes and changes in invisible text property.
14058 (struct glyph_pos): Former ovlen now overlay_string_index.
14059
14060 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
14061 overlay_string.
14062 (set_iterator_to_next_overlay_string): Set overlay_string and
14063 pos.overlay_string_index.
14064 (get_overlays_at_iterator_position): Use overlay_string and
14065 overlay_string_index.
14066 (next_element_from_overlay_string): Use overlay_string and
14067 overlay_string_index.
14068 (move_iterator_forward): Increment overlay_string_index.
14069 (try_window_id): Use overlay_string and overlay_string_index.
14070 (move_iterator_forward): At end of dpvec, maybe use method
14071 next_element_from_overlay_string for the case a character from an
14072 overlay string was translated via a display table.
14073 (reseat_iterator_to_string): Take a Lisp string.
14074 (display_string): Pass a Lisp string to reseat_iterator_to_string.
14075 (compute_face_at_iterator_overlay_string_position): Compute face
14076 based on text properties for an overlay string.
14077 (next_element_from_overlay_string): Check invisible and face text
14078 properties.
178c5d9c 14079
26901792
DL
14080 (set_iterator_to_next_overlay_string): Restore face id before
14081 overlay strings when no more overlay strings are found to return.
14082 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 14083
bb6677a8
GM
14084 A line in the following paragraph was garbled for an unknown
14085 reason. It couldn't be fully reconstructed.
178c5d9c 14086
bb6677a8 14087 (compute_base_face): Made public.
26901792
DL
14088 (merge_face_list): Ditto.
14089 (intern_computed_face): Ditto.
14090
427ec082 14091 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
14092 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14093 of row is > instead of >= last_y.
14094
14095 * buffer.h (overlays_at): Function prototype.
14096
14097 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14098 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14099
427ec082 14100 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
14101 memory of a display_iterator.
14102 (copy_iterator): Copy an iterator.
14103 (restore_iterator): Restore an iterator from a backup copy.
14104 (global): Use the functions above.
14105 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14106 * dispnew.c (direct_output_for_insert): Call release_iterator.
14107
14108 * dispextern.h (struct display_iterator): Allocate overlays
14109 vector dynamically.
14110
141111997-12-06 Gerd Moellmann <gerd@acm.org>
14112
14113 * Makefile.in (window.o): Depends on dispextern.h.
14114
14115 * buffer.c (overlays_at): Make it work when extending vectors
14116 and an initial vector of zero size.
14117
14118 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14119 from set_cursor_to_previous_visible_line_end.
14120 (set_iterator_to_next_visible_line_start): Renamed from
14121 set_cursor_to_next_visible_line_end.
14122 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14123 (compute_face_at_iterator_position): Renamed from
14124 compute_cursor_face.
14125 (set_iterator_to_next_overlay_string): Renamed from
14126 cursor_to_next_overlay_string.
14127 (get_overlays_at_iterator_position): Renamed from
14128 get_overlays_for_cursor.
14129 (reseat_iterator): Renamed from reseat_cursor.
14130 (setup_iterator_overlays_from_glyph_pos): Renamed from
14131 setup_overlays_from_pos.
14132 (init_string_iterator): Renamed from init_string_cursor.
14133 (get_next_display_element): Renamed from next_display_element.
14134 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 14135 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
14136 dynamically.
14137
14138 * xdisp.c: display_cursor renamed display_iterator.
14139 * dispextern.h: Ditto.
14140 * dispnew.c: Ditto.
14141
141421997-12-01 Gerd Moellmann <gerd@acm.org>
14143
14144 * window.c (mark_window_cursors_off): Function comment added.
14145 (window_topmost_p, window_rightmost_p): Removed because not used.
14146
141471997-11-30 Gerd Moellmann <gerd@acm.org>
14148
14149 * emacs.c (main): Function prototypes removed in profiling code.
14150 Use safe_bcopy as start of text.
14151
14152 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14153 mirrored_make_current -> make_current.
14154
14155 * xdisp.c: (store_frame_title_char): New function to store a
14156 single character for the frame title with re-allocation of
14157 frame_title_buf.
14158 (init_xdisp): Intialize frame_title_.* variables to null.
14159
14160 * dispnew.c (quit_error_check): Removed.
14161
14162 * eval.c (Fsignal): Call to quit_error_check removed.
14163 * keyboard.c (quit_throw_to_read_char): Ditto.
14164
141651997-11-23 Gerd Moellmann <gerd@acm.org>
14166
14167 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14168 to mean a zero relief.
14169
26901792
DL
141701997-11-19 Gerd Moellmann <gerd@acm.org>
14171
14172 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14173 unconditionally.
14174 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14175 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14176 (check_glyph_memory): Define function body unconditionally.
14177
141781997-11-17 Gerd Moellmann <gerd@acm.org>
14179
14180 * dispnew.c (scrolling_window): Alternative version of this
14181 function removed.
14182
141831997-11-16 Gerd Moellmann <gerd@acm.org>
14184
14185 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14186 of height CANON_Y_UNIT.
14187 * dispextern.h: Prototype for that function.
427ec082 14188 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
14189 produce empty rows. Use make_empty_enabled_row instead.
14190
14191 * dispnew.c (scrolling_window): New version using diff-like
14192 algorithm activated.
427ec082 14193
26901792
DL
141941997-11-15 Gerd Moellmann <gerd@acm.org>
14195
14196 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14197 (clear_desired_matrices): Ditto.
14198 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14199 for menu_bar_window.
14200
14201 * alloc.c (mark_object): Mark menu_bar_window of frames.
14202
14203 * xterm.c (XTupdate_window_end): Don't display cursor if
14204 pseudo_window_p.
14205
14206 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14207 set mini_p.
14208 (update_window): Don't set cursor if pseudo_window_p.
14209
14210 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14211
14212 * window.h (struct window): New flag pseudo_window_p set to
14213 1 for windows that aren't really part of the window tree, like
14214 menu_bar_window's of frames.
14215 * window.c (make_window): Initialize it.
14216 (replace_window): Ditto.
14217 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14218
14219 * frame.c (make_frame): Initialize menu_bar_window to nil.
14220
14221 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14222 FACE_RELIEF
14223
14224 * xfaces.c (copy_face): shadow_thickness -> relief.
14225 (face_eql): Ditto.
14226 (merge_faces): Ditto.
14227 (compute_base_face): Ditto.
14228 (Fset_face_attribute_internal): Ditto.
14229 * dispextern.h (struct face): Ditto.
14230
14231 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14232 it is non-nil.
14233
14234 * xdisp.c (display_menu_bar): Display the menu bar in
14235 f->menu_bar_window if appropriate.
14236 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14237
14238 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14239 dummy window and window matrices for f->menu_bar_window.
14240 (free_glyphs): Free the dummy window and its glyph matrices.
14241
14242 * frame.h (struct frame): New member menu_bar_window.
14243
142441997-11-09 Gerd Moellmann <gerd@acm.org>
14245
14246 * dispnew.c (scrolling_window): New version with diff-like
14247 algorithm.
14248
14249 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14250 old_start always start displaying at start of
14251 first_row_to_display. The previous scheme failed if the last row
14252 was fully visible.
14253
14254 * dispnew.c (update_window): Remove cost calculations. Remove
14255 redundant preempt_count calculations.
14256
14257 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14258 differently.
14259
14260 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14261
427ec082 14262 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14263 WITH_MARGINAL_AREAS is defined.
14264
427ec082 14265 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14266 removed.
14267
14268 * dispnew.c (scrolling): Call line_hash_code because hash values
14269 are not set in the frame matrix.
14270
14271 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14272 (redisplay_window): Check line_ins_del_ok before calling
14273 try_window_id.
14274 (try_window_reusing_current_matrix): Give up for terminal frames
14275 if window is not full width or we cannot insert/delete lines.
14276 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14277 frames.
14278
14279 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14280 Lisp_Object to mark_object.
14281
14282 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14283 window rows have the same glyph pointers.
14284 (try_window_id): Call it.
14285
14286 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14287 a glyph matrix.
14288 (mark_object): Call it.
14289
14290 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14291 truncations.
14292 (display_line): Ditto.
14293 (display_line): Ditto for DISP_CONTINUATION.
14294 (display_line): Truncation on right: test current_x >
14295 last_visible_x.
14296 (skip_in_display_line_to): Ditto.
14297 (skip_via_matrix): Stop skipping in glyph row at face extending
14298 glyphs or at padding spaces.
14299
14300 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14301
14302 * xdisp.c (display_line): Use glyph->object == 0 for padding
14303 glyphs.
14304 (redisplay_window): Don't let cursor move over padding
14305 spaces.
14306
14307 * dispextern.h (struct glyph): Fix comment for object.
14308
143091997-11-08 Gerd Moellmann <gerd@acm.org>
14310
14311 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14312 has a mode line.
14313 * xdisp.c (redisplay_window): Use it.
14314 (display_mode_line): Check that window wants mode line.
14315
143161997-11-03 Gerd Moellmann <gerd@acm.org>
14317
14318 * xdisp.c (display_menu_bar): Enable menu bar rows.
14319
14320 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14321 (x_erase_phys_cursor): Ditto.
14322 (x_draw_bar_cursor): Ditto.
14323
143241997-11-02 Gerd Moellmann <gerd@acm.org>
14325
14326 * dispnew.c (update_marginal_area): Update a marginal area.
14327 (update_text_area): Update text area.
14328 (update_window_line): Call both.
14329
14330 * xterm.c (XTclear_end_of_line): Translate coordinates area
14331 dependent.
14332
14333 * dispnew.c (updated_area): Row area being updated in
14334 update_window_line.
14335 (update_window_line): Set it.
14336 (update_marginal_area): Clear to end of line if not in text area.
14337
14338 * window.c (Fset_window_margins): Increment
14339 windows_or_buffer_changed. Adjust glyphs.
14340
14341 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14342 area X coordinates to frame coordinates.
427ec082 14343 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14344 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14345 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14346
14347 * xterm.c (draw_glyphs): Use text area width as display width.
14348
14349 * xdisp.c (init_display_info): Subtract widths of marginal areas
14350 from last_visible_x.
14351
14352 * alloc.c (mark_object): Mark objects in glyphs only if they are
14353 overlays. Mark only if current_matrix != 0. Activate the code.
14354
14355 * window.c (Fset_window_margins): Set margins.
14356 (Fwindow_margins): Return margin area widths.
14357 (syms_of_window): Add defsubr's.
14358
14359 * window.h (struct window): left_margin_width, right_margin_width.
14360
14361 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14362 and cols.
14363
14364 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14365 truncation/overlay arrow area.
14366 (struct frame): trunc_area_pixel_width, and _cols.
14367
14368 * window.c (Fsplit_window): Use it.
14369
14370 * window.c (Fsplit_window): Set cursor vpos to -1 after
14371 splitting.
14372 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14373 split windows.
14374
14375 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14376 of bounds cursor positions.
26901792
DL
14377
14378 * xdisp.c (redisplay_internal): Check that after cursor motion
14379 within line, PT is on same line.
14380
14381 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14382 FRAME_TRUNC_WIDTH.
14383
14384 * xterm.h (struct x_output): trunc_area_extra.
14385 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14386 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14387 * widget.c (set_frame_size): Set it.
14388 (EmacsFrameSetCharSize): Ditto.
14389 * xfns.c (x_figure_window_size): Ditto.
14390 * xterm.c (x_set_window_size): Ditto.
14391
14392 * dispnew.c (check_matrix_invariants): First try to check window
14393 ends (in #if 0).
14394
14395 * xdisp.c (try_window_reusing_current_matrix): Try window
14396 redisplay with different window start.
14397
143981997-11-01 Gerd Moellmann <gerd@acm.org>
14399
14400 * window.c (make_window): Set window_end_pos/vpos.
14401 (Fsplit_window): Zero last_cursor, window_end_valid.
14402 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14403
14404 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14405
144061997-10-31 Gerd Moellmann <gerd@acm.org>
14407
14408 * window.c (make_window): Initialize last_cursor.
14409 (replace_window): Ditto.
14410
144111997-10-29 Gerd Moellmann <gerd@acm.org>
14412
14413 * window.h: New member last_cursor.
14414 * dispnew.c (direct_output_for_insert): Set it.
14415 (direct_output_forward_char): Ditto.
14416 * xdisp.c (redisplay_internal): Ditto.
14417
144181997-10-28 Gerd Moellmann <gerd@acm.org>
14419
14420 * xdisp.c (redisplay_internal): Optimization 1 change partially
14421 reverted. Check this again later.
14422 (skip_via_matrix): Remove redundent test for
427ec082 14423 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14424
144251997-10-27 Gerd Moellmann <gerd@acm.org>
14426
14427 * dispnew.c (update_window_line): Call
14428 after_update_window_line_hook only for interesting constellations.
14429 (free_glyph_matrix): Fix memory leak.
14430
14431 * window.h: Include blocker WINDOW_H_INCLUDED, include
14432 dispextern.h.
14433 (struct window): phys_cursor_glyph as struct glyph. * window.c
14434 (make_window): Initialize it.
427ec082 14435 (replace_window): Ditto.
26901792
DL
14436 * dispnew.c (free_window_matrices): Remove freeing of
14437 phys_cursor_glyph.
14438 (check_matrix_invariants): Renamed from check_current_matrix_...
14439 * xterm.c: All references to phys_cursor_glyph changed.
14440
14441 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14442
14443 * xfaces.c: Comment update.
14444
14445 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14446 pointer. Remove phys_cursor_ascent, descent, etc.
14447 * dispnew.c (free_window_matrices): Free it.
14448 * window.c (make_window): Allocate it.
14449 (replace_window): Ditto.
14450 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14451 (x_display_and_set_cursor): Fill it.
14452 (x_phys_cursor_in_rect_p): Use it.
14453 (x_draw_hollow_cursor): Ditto.
14454 (x_draw_bar_cursor): Ditto.
14455 (x_erase_phys_cursor): Ditto.
14456
14457 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14458
14459 * xterm.c (XTget_display_info): Handle 3D facess.
14460 (draw_glyphs): Ditto.
14461
14462 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14463
14464 * xfaces.c (Fset_face_attribute_internal): New face attribute
14465 shadow-thickness.
14466 (copy_face): Handle shadow_thickness.
14467 (face_eql): Ditto.
14468 (merge_faces): Ditto.
14469 (compute_base_face): Ditto.
14470
14471 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14472 (struct display_info): Ditto.
14473 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14474 * xdisp.c (compute_cursor_face): Set it.
14475 (advance_display_cursor): Clear it.
14476
14477 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14478 (init_string_cursor): Init face_id to zero.
14479
14480 * dispextern.h (struct face): New member shadow_thickness.
14481
427ec082 14482 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14483 search to 100.
14484
14485 * dispnew.c (update_window_line): Try to resynch with current line
14486 to prevent mode line flickering.
14487
144881997-10-26 Gerd Moellmann <gerd@acm.org>
14489
427ec082 14490 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14491 on cursor_in_echo_area >= 0.
14492
14493 * xdisp.c (echo_area_display): Clear desired matrix before
14494 displaying into it.
14495 (display_menu_bar): Clear glyph row instead of hoping it is not
14496 enabled. This is safer.
14497
14498 * dispnew.c (check_current_matrix_invariants): Check only
14499 visible rows.
14500
14501 * xdisp.c (try_window_id): Handle window end setting in case of
14502 display to end of window, but only non-text lines displayed.
14503
14504 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14505 (check_current_matrix_invariants): Check used counts.
14506
14507 * Revisiob v114.
14508
14509 * dispnew.c (scrolling): Use hash codes from rows.
14510
14511 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14512
14513 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14514
145151997-10-25 Gerd Moellmann <gerd@acm.org>
14516
14517 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14518 * dispnew.c (update_window): Use it.
14519 (clear_glyph_matrix): Clear it.
14520 * xdisp.c (try_window_id): Set it.
14521
14522 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14523
14524 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14525
14526 * dispextern.h: More comments etc.
14527
145281997-10-24 Gerd Moellmann <gerd@acm.org>
14529
14530 * dispnew.c (set_window_cursor_after_update): Set cursor
14531 for cursor_in_echo_area == 0 to (0, 0).
14532
14533 * dispextern.h (struct glyph_row): New flags continuation_line_p
14534 and displays_text_p.
14535 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14536 * xdisp.c (display_line): Set them.
14537 (try_window_id): Move to start of continuation line to find out
14538 continuation_line_width.
14539 (first_unchanged_current_row): Don't retract row if continued,
14540 truncated etc.
14541
14542 * xterm.c: Map X coordinates.
14543
145441997-10-23 Gerd Moellmann <gerd@acm.org>
14545
14546 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14547 left text.
14548
14549 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14550
14551 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14552
f28eba7b 14553 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14554
14555 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14556
14557 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14558 Set this to functions to be called before/after window updates.
14559 (direct_output_for_insert): Call them.
14560 (update_window): Ditto.
14561 (update_frame): Call update_begin/ update_end for windows.
14562
14563 * xterm.c (XTupdate_window_begin): Called before window updates.
14564 (XTupdate_end): Called after window updates.
14565 (x_initialize): Set hooks to above.
14566
14567 * xdisp.c (init_display_info): Initialize c and len of
14568 display_info.
14569
14570 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14571 fonts more than once.
14572
145731997-10-22 Gerd Moellmann <gerd@acm.org>
14574
14575 * xdisp.c (display_line): Handle most common case of current_x <
14576 last_visible_x separately.
14577
14578 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14579
14580 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14581 so that face extending space doesn't compare equal to normal space
14582 with same face.
14583
14584 * xdisp.c (display_line): Make sure we have a position for
14585 a line end in an otherwise blank line if face is extended.
14586
14587 * dispnew.c (direct_output_for_insert): Increment row end position.
14588
427ec082 14589 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14590 window_end_pos.
14591
14592 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14593
14594 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14595
14596 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14597 start and end positions in rows.
14598 (increment_glyph_row_buffer_positions): Stop adjusting at
14599 glyphs with positions <= 0.
14600
14601 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14602 position including position in overlay.
26901792
DL
14603 (struct glyph_row): Use it for start and end positions.
14604 (struct display_cursor): Use it.
14605 * xdisp.c: Use it.
14606 (display_line): Set row start and end positions.
14607
14608 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14609 assignment.
14610
146111997-10-21 Gerd Moellmann <gerd@acm.org>
14612
14613 * dispnew.c (update_window): Add scrolling_window again. It's
14614 necessary for scroll_step != 0.
14615
14616 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14617 scrolling.
14618
14619 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14620
14621 * xterm.c (XTupdate_end): Flush only for messages.
14622
14623 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14624 first_unchanged_row.
14625
14626 * xterm.c (XTupdate_end): Flush if miniwindow.
14627
14628 * dispnew.c (matrix_row_last_pos): New function.
14629 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14630 Large comment moved to xdisp.c.
26901792
DL
14631
14632 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14633 (skip_via_matrix): Check window_end_valid instead of
14634 display_completed.
14635
14636 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14637 (update_window): scrolling_window commented out. It has negative
14638 effect most of the time.
14639
14640 * xdisp.c (try_window_id): Correct parameters to
14641 scroll_glyph_matrix_range.
14642
427ec082 14643 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14644
14645 * window.h: Comments for window_end_pos/vpos.
14646
f28eba7b 14647 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14648 of the window in which we are skipping.
14649
14650 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14651
14652 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14653 reached.
14654
146551997-10-20 Gerd Moellmann <gerd@acm.org>
14656
14657 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14658 a face extending glyph.
14659
427ec082 14660 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14661 (set_cursor_from_row): Set cursor position from a glyph row.
14662
14663 * dispnew.c (update_window_line): Write entire line if hash
14664 codes of lines differ.
14665
14666 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14667 if glyph row has an infinite width glyph at its end.
14668
14669 * xdisp.c (last_unchanged_current_row): Respect partially visible
14670 lines when looking for the last row displaying text.
14671 (try_window_id): Handle partially visible lines better.
14672
146731997-10-19 Gerd Moellmann <gerd@acm.org>
14674
14675 * dispnew.c (update_window): Remove unused variable.
14676 (update_window_line): Simplified.
14677
14678 * xterm.c (x_get_char_font_and_encoding): Handle most common
14679 case at the beginning.
14680
14681 * xdisp.c (advance_display_cursor): Dispatch on method and
14682 order if statements by expected call frequency. Fixed unclosed
14683 comment.
14684
14685 * xdisp.c (try_window_id): New implementation.
14686
14687 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14688 rows displaying a line end, only.
14689
146901997-10-18 Gerd Moellmann <gerd@acm.org>
14691
14692 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14693
146941997-10-14 Gerd Moellmann <gerd@acm.org>
14695
14696 * xdisp.c (display_line): Mark empty lines not corresponding to
14697 text with position -1.
14698
14699 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14700 not within window matrix bounds.
14701
14702 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14703 (struct display_info): NGLYPHS_TO_IGNORE removed.
14704 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14705 * term.c: Ditto.
14706 * xterm.c: Ditto.
14707
14708 * xdisp.c (init_display_cursor): Set it.
14709 (display_line): Use it to set W->REGION_SHOWING.
14710
14711 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14712
14713 * region-cache.h: functino prototypes with PROTO.
14714
14715 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14716
14717 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14718 a position.
14719
427ec082 14720 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14721 rectangle based on minimum character bounds.
14722
f28eba7b 14723 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14724 glyph position calculations.
14725 (make_lispy_movement): Use buffer_posn_from_coords and window
14726 relative coordinates.
14727
14728 * xterm.c (construct_mouse_click): Remove #if 0 case.
14729
14730 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14731 given row.
14732
427ec082
SS
14733 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14734 date.
26901792
DL
14735 (skip_to): Use it.
14736 (redisplay_window): Remove code skipping using current matrix.
14737
147381997-10-13 Gerd Moellmann <gerd@acm.org>
14739
14740 * xdisp.c (redisplay_window): Use available current matrix to
14741 skip faster when only point is moved withing the window.
14742
427ec082 14743 * intervals.c: Include stdio.h.
26901792
DL
14744 (find_interval): Trace to stderr to catch some nasty error
14745 that did not yet occur again with tracing.
14746 (set_point): Ditto.
14747
14748 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14749 cursor positioning on partially visible lines.
14750 (set_window_cursor_after_update): Ditto.
14751
f28eba7b 14752 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14753
14754 * window.h (struct window): start_y removed.
14755
14756 * window.c (make_window): start_y removed.
14757 (replace_window): Ditto.
14758
427ec082 14759 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14760 descent values of the last line processed by skip_to.
14761 (redisplay_window): Use them.
14762 (skip_to): Set them.
14763
14764 * dispextern.h (struct display_cursor): New member METHOD.
14765
14766 * xdisp.c: Use function member METHOD.
14767
14768 * xdisp.c (set_next_stop_pos): Determine next position at which to
14769 check for face properties, invisible text properties, and overlays.
14770 (compute_cursor_face): Use it.
14771 (get_overlays_for_cursor): Ditto.
14772 (reseat_cursor): Ditto.
14773 (next_display_element): Ditto.
14774
14775Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14776
14777 * termhooks.h: Some hooks with prototypes.
14778
14779 * term.c: Some hooks with function prototypes.
427ec082 14780
26901792
DL
14781 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14782 computing face if possible.
14783
14784 * xdisp.c (next_display_element): Use face from glyph from display
14785 table only if != 0.
14786
14787 * emacs.c: FreeBSD headers for profiling removed.
14788
427ec082
SS
14789 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14790 display cursor, use DEC_POS instread.
26901792
DL
14791
14792 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14793 all fonts are in the font table.
26901792
DL
14794 (unload_font): Don't XFreeFont.
14795
14796 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14797 row height.
14798
14799 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14800 (x_erase_phys_cursor): Clear only visible part of row.
14801 (x_draw_bar_cursor): Set clipping.
14802 (x_draw_hollow_cursor): Ditto.
14803 (x_display_and_set_cursor): Remove clipping.
14804 (expose_window_tree): Take trunc border into account.
14805 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14806 (expose_window): Use it.
14807
14808 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14809 current_x already beyond max_x.
26901792
DL
14810 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14811 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14812 last_visible_x.
26901792
DL
14813
14814 * scroll.c (scrolling_window_1): Removed.
14815
14816 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14817 based on redisplay method used.
14818 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14819 based redisplay.
14820 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14821 window based redisplay.
14822
14823 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14824 on data structures.
14825
14826 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14827 Handle own storage for purely window based redisplay.
14828 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14829 allocate_matrices.
26901792
DL
14830 (allocate_matrices_for_window_redisplay): Ditto.
14831
14832 * dispextern.h (struct glyph_matrix): window_top_y,
14833 window_height.
14834
14835 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14836 and optimize some common cases of window changes.
14837
14838 * emacs.c (main): Remove own profiling code because 0.95 now
14839 has it in.
14840
14841Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14842
d7d0dac0 14843 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
14844 (expose_window): Draw vertical border.
14845 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14846 don't do anything.
14847
14848 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14849 for non full width windows only if not window redisplay.
14850
14851 * dispnew.c (update_window_tree): Or paused_p return of called
14852 functions.
14853
14854 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14855 of window.
14856
14857 * window.c (Fset_window_configuration): adjust_glyphs being
14858 called twice.
14859 (Fset_window_configuration): Set frame garbaged if not all
14860 leaf windows reused.
14861
148621997-08-21 Gerd Moellmann <gerd@acm.org>
14863
14864 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14865 that rows should really be cleared. Used for current matrices.
14866
d7d0dac0
SM
14867 * dispnew.c (scrolling_window): Bug fix.
14868 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
14869
14870 * dispextern.h (struct run): Remove current_vpos.
14871
14872 * xterm.c (do_line_dance): Only one parameter.
14873
f28eba7b 14874 * xdisp.c (display_line): Set continued_p.
26901792
DL
14875
14876 * dispextern.h (struct glyph_row): New flag continued_p.
14877 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14878 (struct glyph_row):
26901792
DL
14879
14880Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14881
14882 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14883 when calling skip_to for continued lines.
14884
14885 * dispnew.c (change_frame_size_1): Set frame garbaged.
14886
14887 * xterm.c (expose_window): Check enabled_p of rows.
14888
14889 * xdisp.c (redisplay_internal): Compare line heights before and
14890 now for redisplay optimization 2 (hit).
14891 (display_line): Set this_line_pixel_height.
14892
14893 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14894 value.
14895 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14896 (do_line_dance): Simplified and pixel corrected.
14897
14898 * dispnew.c (scrolling_window): Simplified.
14899
14900 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14901
14902 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14903 to mode line row->x.
14904
14905Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14906
14907 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14908 override font of face.
14909 (draw_glyphs): Correct return value.
14910 (XTclear_end_of_line): Compare differently with output cursor
14911 position.
14912 (x_draw_hollow_cursor): 2 parameters, window and row.
14913
14914 * dispnew.c (update_window_line): If rows have different height
14915 or y, write entire line.
14916
f28eba7b 14917 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14918 of info struct.
14919
427ec082 14920 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14921 frame_update_line_height.
14922 (merge_faces): Don't use default font if new font has different
14923 size.
14924
14925Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14926
14927 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 14928 unknown. Some fonts have min_width zero.
26901792 14929 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 14930 line if face is merely extended to that point.
26901792 14931 (draw_glyphs): Don't assume background is filled if
d7d0dac0 14932 just_foreground_p but extending to end of line.
26901792
DL
14933
14934 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14935 for partially visible last lines.
14936 (x_clip_to_row): Ditto.
14937 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14938 display_height since line_height is really a line distance.
14939 (x_display_and_set_cursor): If cursor on padding glyph, use
14940 min_bounds pixel width.
14941
14942Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14943
14944 * xterm.c (x_clip_to_row): Height value was 1 too large.
14945 (XTclear_end_of_line): Clip to display area.
14946
14947 * xfns.c (x_figure_window_sizes): Add trunc border width
14948 to frame pixel width.
14949
14950 * xdisp.c (next_display_element): Don't display overlay strings
14951 within invisible text.
427ec082 14952 (skip_vertically_backward): Skip display lines.
26901792
DL
14953
14954Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14955
14956 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14957
14958 * xdisp.c (next_display_element): Next invisible
14959 text check position computed differently.
14960
14961 * dispextern.h (struct display_cursor): last_invisible_text_pos
14962 and display_ellipsis_for_invisible_p removed.
14963
14964 * xdisp.c (next_display_element): Set last_invisible_text_pos
14965 to the last position at which invisible text was found. Don't
14966 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14967 dpvec for `...' due to invisible text directly.
26901792
DL
14968 (redisplay_internal): Don't assert that cursor is at PT after
14969 skip_to. It may be in invisible text.
14970
427ec082 14971 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14972 x_y_to_hpos_vpos.
14973
427ec082 14974 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14975 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14976 checking for invisible text.
14977
14978 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14979
14980 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14981
d7d0dac0 14982 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
14983 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14984
14985 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14986 Removed.
14987
14988 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14989
14990 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14991 pixel coordinates.
14992 (note_mouse_highlight): Use it.
14993
14994 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14995 under a window system.
14996
427ec082 14997 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14998 necessary.
427ec082 14999 (update_window_line): Add width of face padding glyph to
26901792
DL
15000 displayed widths of rows.
15001
15002 * xterm.c (x_display_and_set_cursor): Set clipping after
15003 erasing cursor.
427ec082
SS
15004
15005 * window.c (Fset_window_configuration): Free only those
26901792
DL
15006 window matrices not reused.
15007 (get_leaf_windows): Build vector of leaf windows.
15008 Corrupted archive restored from v77.
15009
f28eba7b 15010 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
15011 like display_line does.
15012
15013 * xdisp.c (display_mode_line): Don't hscroll mode line.
15014
15015 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
15016 windows.
15017 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
15018 garbage between mode lines when splitting windows horiz.
15019
15020 * dispnew.c (direct_output_for_insert): Bug fix.
15021
15022 * dispextern.h (struct display_cursor): New member string_length.
15023
15024 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 15025 (init_string_cursor): Take precision and field_width
26901792
DL
15026 (display_string): Use string cursor, skip over invisible text.
15027
15028Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
15029
15030 * xterm.c (x_clip_to_row): Clip to partially visible lines.
15031 (x_display_and_set_cursor): Call it.
15032 (draw_glyphs): Call it
15033 (draw_bitmap): Call it.
15034
427ec082 15035 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
15036 (allocate_leaf_matrix): Return flags.
15037 (row_equal_p): Compare enabled_p.
15038
15039 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
15040 for type == -1.
15041
15042 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 15043 (draw_glyphs): Clip height one pixel taller.
26901792 15044
427ec082 15045 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
15046 mini window.
15047
f28eba7b 15048 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 15049
427ec082
SS
15050 * xdisp.c (echo_area_display): Call update_single_window if
15051 possible.
26901792
DL
15052
15053 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 15054 (scrolling_window): Work on enabled desired lines only.
26901792
DL
15055 (update_single_window): Update a single window like update_frame
15056 does for all windows.
427ec082 15057 (update_window, update_window_tree): Additional argument
26901792
DL
15058 no_scrolling_p.
15059 (update_frame): Pass no_scrolling_p to update_window_tree.
15060 (update_window): Don't call scrolling_window if no_scrolling_p.
15061
15062 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
15063 Erase under hollow cursor.
15064 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
15065 not enabled. Draw bar cursor 1 pixel smaller.
15066
f28eba7b 15067 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
15068 since update will follow soon.
15069
15070 * xdisp.c (echo_area_display): Unitialized variable.
15071
f28eba7b 15072 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
15073 overlay arrow bitmap.
15074
f28eba7b 15075 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 15076 up to the final \n as part of the line for cursor positioning.
26901792 15077
f28eba7b
SM
15078 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15079 (x_after_update_window_line): Clear trunc marks.
26901792
DL
15080
15081 * xterm.h (FRAME_X_TRUNC_WIDTH).
15082
f28eba7b 15083 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
15084 of a window reserved for truncation mark.
15085
427ec082 15086 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
15087
15088 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 15089 hook.
26901792
DL
15090
15091 * xdisp.c (display_line): Set overlay_arrow_p in row.
15092
15093 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15094
15095 * xterm.c (x_after_update_window_line): Draw truncation marks.
15096
15097 * xdisp.c (display_line): Insert truncation for lines with
15098 current_x > 0.
15099
15100 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15101 Correct y by 1.
15102 (x_display_cursor): Use default font width if width not
427ec082 15103 known.
26901792 15104
f28eba7b 15105 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
15106
15107 * dispnew.c (set_window_cursor_after_update): Don't assume
15108 all rows are enabled.
15109
15110 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15111 of cursor.pos.
15112 (skip_in_display_line_to): Check cursor.position after call to
15113 next_display_element.
15114
427ec082 15115 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
15116 buffer position.
15117
15118 * xdisp.c (display_line): Set row->y here.
15119 (skip_in_display_line_to): Test for to_pos after all glyphs
15120 have been added to hpos so that hpos is at the end of all
15121 glyphs for to_pos.
15122 (start_display): Remove assertion.
15123
d7d0dac0 15124 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
15125 (update_window): Don't set row->y here.
15126
15127 * xdisp.c (next_display_element): Don't translate control chars
15128 from display table entries.
15129
427ec082 15130 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
15131 update end to prevent cursor flickering. Revert changes to
15132 setting cursor.endpos.
15133
15134Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15135
15136 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15137 to PT because this prevents multi-byte characters from being
15138 recognized.
15139
427ec082
SS
15140 * xdisp.c (skip_to, display_line): Advance cursor at end of
15141 truncated line.
26901792
DL
15142
15143 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15144 replaced by XRectangle.
15145
d7d0dac0 15146 * dispnew.c (scrolling_window): New method.
26901792
DL
15147
15148 * xterm.c (do_line_dance): New implementation, new method.
427ec082 15149
26901792
DL
15150 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15151 visible part of line.
15152
15153 * dispnew.c (update_window_line): Fill inverse video lines
15154 with infinite width space.
15155 (update_window): Handle completely empty matrices.
15156 (set_window_cursor_after_update): Bug fix.
15157
427ec082 15158 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
15159
15160 * dispnew.c (update_window_line): Don't ignore spaces, don't
15161 fill with spaces.
15162
15163 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15164 the first glyph having width 0.
15165
15166 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 15167 a glyph that extends to the end of the line.
26901792
DL
15168
15169 * xdisp.c (display_line): Insert one padding glyph
15170
15171 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15172 amount from info.current_x.
15173 (display_line): Ditto.
15174
15175 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15176 (change_frame_size_1): Correct cursor.x if frame gets too small.
15177 (update_window_line): Start at row->x.
15178
15179 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15180 in xdisp.c).
15181
15182 * xterm.c (set_output_cursor): Use window relative X/Y.
15183 (global): Use window relative output cursor x/y.
15184 (draw_glyphs): Remove y param. Pass window relative x/y.
15185
15186 * dispnew.c (update_window): Start rows at start_y.
15187 (update_window): Don't try scrolling because it wouldn't work
15188 with variable height lines, anyway.
15189
15190 * dispextern.h (struct glyph_row): Remove shift_left_by,
15191 add x.
15192
15193 * window.h: (struct window): New member start_y.
15194
15195 * window.c (replace_window): Initialize start_y.
15196 (make_window): Ditto.
15197
15198Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15199
15200 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 15201 the mode line.
26901792 15202
427ec082
SS
15203 * dispnew.c (update_window): Take mode line border into
15204 account.
26901792
DL
15205
15206 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 15207 of border around mode line.
26901792
DL
15208
15209 * xterm.c (x_draw_row_borders): Bug fix.
15210 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15211 drawing functions.
15212
15213 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 15214 around modeline instead of inverting it.
26901792 15215
427ec082 15216 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
15217
15218 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15219 window relative pixel coordinates as arguments.
15220
15221 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15222 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15223 COORDS mit new arguments.
15224
15225Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15226
15227 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15228 DISPLAY_LINE.
26901792
DL
15229
15230 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15231 pixel coords.
15232 (make_lispy_movement): Same.
15233
15234 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15235 with new parameter meaning.
15236
15237 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15238 from canon units to pixels.
15239 (coordinates_in_window): Pixel based.
15240 (Fcoordinates_in_window_p): Convert result pixel values back
15241 to canonical units.
15242
15243 * window.h: phys_cursor_ascent + descent instead of height.
15244
15245 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15246 chars with charset width 1.
26901792
DL
15247
15248 * dispnew.c (direct_output_for_insert): Set updated_row.
15249
15250Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15251
15252 * dispextern.h (struct glyph): Padding flag removed.
15253
15254Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15255
15256 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15257
15258 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15259
15260 * dispnew.c (update_window_line): Use pixels.
15261
15262 * xdisp.c (compute_line_metrics): Correct pixel_width by
15263 shift_left_by.
15264
15265 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15266 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15267 glyph_row -> right_to_left_p. Change references to it.
15268
15269Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15270
15271 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15272
15273 * xterm.c (XTinsert_glyphs): Implement it.
15274
15275 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15276 of a call from DIRECT_OUTPUT_FOR_INSERT.
15277
15278 * window.h (struct cursor_pos): Keeps both matrix positions
15279 and pixel positions.
15280 (struct window): Use it.
15281
15282 * dispnew.c (direct_output_for_insert): New version.
15283
15284 * xdisp.c (redisplay_internal): Don't do anything if it has
15285 already be done directly.
15286
15287 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15288 for any character.
15289
15290Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15291
15292 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15293
15294Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15295
15296 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15297 (struct glyph): ASCENT, DESCENT.
15298 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15299 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15300
15301 * xterm.c (XTget_display_info): Correct tab computation.
15302
15303 * term.c (get_display_info): Correct tab computation.
15304
15305 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15306 Renamed from CHAR_CURSOR.
15307
15308Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15309
15310 * xdisp.c (display_text_line): Mostly pixel oriented.
15311
15312 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15313
15314 * term.c (append_intermediate_glyph): Generate padding glyphs.
15315
15316 * xdisp.c (display_text_line): More into final direction.
15317
15318 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15319 (XTget_char_info): Use tabs as multiples of spaces.
15320
15321 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15322 Use tabs as multiples of spaces.
15323
15324 * dispextern.h (struct char_info ): WHAT field.
15325
15326 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15327 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15328
15329Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15330
15331 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15332 value.
15333 (init_char_info): Initialize with glyph row.
15334
15335 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15336
15337 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15338
15339 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15340 glyphs.
15341
15342 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15343 moved to xdisp.c.
15344
15345 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15346
15347 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15348 generation.
15349 (XTget_char_info): Ditto.
15350
15351 * term.c (get_char_info): Intermediate glyph generation.
15352 (append_intermediate_glyph): Ditto.
15353
15354Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15355
427ec082 15356 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15357 CHAR_CURSOR.
15358 (init_char_cursor): Initialize a CHAR_CURSOR.
15359 (get_char_and_advance): Get next character to display.
15360
15361 * dispextern.h (struct char_cursor): Cursor for iterating over
15362 display text of CURRENT_BUFFER.
15363
15364Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15365
15366 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15367
15368 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15369 New member MAX_PIXEL_HEIGHT.
15370
15371 * xterm.c (x_per_char_metric): Get per character metrics.
15372 (XTget_char_info): More cases covered.
15373
15374 * term.c (get_char_and_info): Get next character and character
15375 display information.
15376 (get_char_info): Get character display information.
15377
15378 * dispextern.h: Character display information.
15379
427ec082 15380 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15381 encode character.
15382 (XTget_char_info): Get display information about a character.
15383
15384Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15385
15386 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15387 zero if window is mini-window.
15388
15389 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15390 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15391
427ec082 15392 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15393 (clear_glyph_row): Clear pixel height.
15394 (update_window): Use PIXEL_HEIGHT.
15395
15396 * xdisp.c (display_string): Set row pixel height temporarily.
15397 (display_text_line): Ditto.
15398
427ec082 15399 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15400 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15401
427ec082 15402 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15403 line in default font.
15404 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15405 in default font.
15406 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15407
15408 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15409 in pixels.
15410
15411 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15412
15413 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15414 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15415 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15416 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15417 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15418 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15419 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15420 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15421 pixel values related to windows.
15422
15423Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15424
15425 * xterm.c (XTflash): Flash last line of frame.
15426
15427 * dispextern.h (cursor_in_echo_area): Extern declaration.
15428
15429 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15430 freezes stem from 16-bit functions.
26901792
DL
15431
15432 * xterm.c (x_display_and_set_cursor): Don't display hollow
15433 cursor in mini windows.
15434
15435 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15436 (make_window): Ditto.
15437
15438 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15439 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15440 and X_DISPLAY_BAR_CURSOR.
15441 (x_display_cursor): Use it.
15442 (x_update_window_cursor): Use it.
15443
15444 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15445 selected.
26901792
DL
15446
15447 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15448 of X and Y to denote matrix positions.
15449 (x_display_cursor): Ditto.
15450
15451 * dispnew.c (scrolling_window): Scrolling for windows.
15452
15453Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15454
15455 * dispnew.c (build_frame_matrix): Work on windows with update
15456 flag set.
15457 (build_frame_matrix_from_window_tree): Ditto.
15458 (build_frame_matrix_from_leaf_window): Ditto.
15459
15460 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15461 building frame matrix.
427ec082 15462 (redisplay_internal): Set window update flags instead of
26901792
DL
15463 building frame matrix.
15464
15465 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15466 building frame matrix.
15467
15468 * window.c (make_window): Initialize new members.
15469 (replace_window): Ditto.
15470
15471 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15472 I don't believe this is really necessary.
15473
15474 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15475 border glyph once.
26901792
DL
15476
15477Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15478
427ec082 15479 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15480 window tree off.
15481
427ec082 15482 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15483 window matrix.
15484 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15485 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15486 (x_update_cursor): Work on windows.
15487 (x_display_bar_cursor): Ditto.
15488 (x_draw_single_glyph): Ditto.
15489
15490 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15491
15492 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15493 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15494 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15495 parameter.
26901792 15496
d7d0dac0 15497 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15498
15499 * window.c (window_rightmost_p, window_topmost_p): Based on
15500 window tree.
15501
15502 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15503 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15504
15505 * window.h: PHYS_CURSOR_.* added.
15506
15507 * frame.h (struct frame): Cursor information removed.
15508
15509 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15510 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15511
15512 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15513
15514 * window.c (window_internal_width): Scroll bars no longer
15515 part of window.
15516
d7d0dac0 15517 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15518
d7d0dac0 15519 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15520
15521 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15522 (redisplay_internal): Ditto.
15523 (redisplay_window): Ditto.
15524 (redisplay_window): Ditto.
15525 (display_text_line): Ditto.
15526 (display_mode_line): Ditto.
15527
15528 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15529
15530 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15531 (direct_output_for_insert): Ditto.
15532 (direct_output_forward_char): Ditto.
15533 (update_frame_1): Ditto.
15534
15535Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15536
15537 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15538 being updated.
26901792
DL
15539 (update_window): Set and clear it.
15540
15541 * dispnew.c (update_window_line, update_window, scrolling_window):
15542 First versions.
15543
15544 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15545 bar for window borders.
15546 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15547 with spaces.
15548 (fill_up_glyph_row_with_spaces): Call above function.
15549
15550 * xdisp.c (display_text_line): Don't add vertical bar for
15551 window borders.
15552 (display_string): Ditto.
15553
15554 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15555 (replace_window): Ditto.
15556
15557 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15558
15559 * xfns.c (Fx_contour_region): Use selected window cursor position.
15560 (Fx_uncontour_region): Ditto.
15561 (Fx_select_region): Ditto.
15562
15563 * frame.c (make_frame): Remove CURSOR_X/Y.
15564
15565 * xdisp.c (redisplay_internal): Use window cursor position.
15566
15567 * dispnew.c (update_frame_1): Use cursor position of selected
15568 window.
15569 (change_frame_size_1): Ditto.
15570
15571 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15572 (XTwrite_glyphs): Use cursor position of selected window.
15573
d7d0dac0 15574 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15575
15576 * dispnew.c (set_cursor_to): Set window cursor position.
15577 (direct_output_for_insert): Use window cursor position.
15578 (init_display): Don't use frame cursor position.
15579
15580 * window.h: CURSOR_VPOS/HPOS added.
15581
15582 * frame.h (struct frame): CURSOR_X/Y removed.
15583 (FRAME_CURSOR_X): Removed.
15584 (FRAME_CURSOR_Y): Ditto.
15585
15586 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15587 (direct_output_forward_char): Ditto.
15588
d7d0dac0 15589 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15590
15591 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15592
15593 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15594
15595Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15596
15597 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15598 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15599
15600 * dispextern.h: Changed function names.
15601
15602 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15603 < 2.
15604 (clear_window_matrices): Formerly two functions for desired
15605 and current matrix.
15606 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15607 (update_frame): Return return value from UPDATE_FRAME_1.
15608
15609Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15610
15611 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15612 LAST_TEXT_VPOS.
15613
15614 * frame.c (set_menu_bar_lines): Adjust matrices.
15615
15616 * dispnew.c (set_cursor_to): Set cursor position.
15617
15618 * minibuf.c (read_minibuf): Build frame matrix.
15619
15620 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15621 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15622 relative.
26901792
DL
15623 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15624 reason.
15625
427ec082 15626 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15627 menu bar.
15628 (clear_window_records): Clear window rows.
15629 (clear_frame_records): Clear window and frame rows.
15630 (clear_glyph_matrix): Set all rows of a matrix to empty.
15631
d7d0dac0
SM
15632 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15633 Update frame if set.
26901792
DL
15634 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15635 removed.
15636 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15637 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15638
15639 * dispnew.c (assign_row): Assign one glyph row to another.
15640 (mirrored_make_current): Use it.
15641 (mirror_make_current): Use it.
15642 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15643 used counters for the current glyph row.
427ec082 15644
26901792
DL
15645
15646Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15647
15648 * lisp.h: Prototype for SCAN_BUFFER.
15649
15650 * xdisp.c (redisplay_windows): Simplified.
15651
15652 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15653 with debug checks.
15654 (window_to_frame_hpos): Convert window to frame hpos with checks.
15655 (frame_to_window_vpos): Convert frame to window vpos with checks.
15656 (frame_to_window_hpos): Convert frame to window hpos with checks.
15657
15658 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15659
15660 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15661
15662 * xdisp.c (redisplay_internal): Another instance of
15663 DISPLAY_TEXT_LINE with window relative VPOS.
15664 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15665
15666 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15667 only.
15668
15669 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15670 (redisplay_internal): Ditto.
15671
15672 * dispnew.c (cancel_window_line): Use window matrix. Changed
15673 name to CANCEL_WINDOW_LINE.
15674
15675 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15676 relative VPOS.
15677
427ec082
SS
15678 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15679 to frame vpos.
26901792
DL
15680 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15681 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15682 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15683
15684 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15685 window relative VPOS.
15686 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15687 relative VPOS.
15688
15689 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15690 MATRIX_BUFFER_POSITIONS.
15691
15692 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15693
15694 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15695
427ec082 15696 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15697 matrix. Change name to scroll_full_width_window.
15698
15699 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15700 NONINTERACTIVE.
26901792
DL
15701
15702Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15703
15704 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15705 and window matrices.
26901792
DL
15706 (adjust_window_charstarts): Use window matrix.
15707 (cancel_my_columns): Use window matrix.
15708 (direct_output_for_insert): Use window matrix, only.
15709
15710 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15711 (display_string): Call display_glyphs.
15712 (display_menu_bar_string): Display a string in a menu bar line.
15713 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15714 (display_text_line): Use window matrix.
15715 (try_window): Use window relative positions.
15716
15717Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15718
15719 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15720 (0, 0).
26901792 15721 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15722 top-most windows.
26901792
DL
15723
15724 * window.h (WINDOW_TOPMOST_P): Added.
15725
15726 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15727 (redisplay_window): Ditto.
15728 (display_text_line): Ditto.
15729 (display_menu_bar): Ditto.
15730 (display_mode_line): Ditto.
15731 (display_mode_line): Use window matrix.
15732 (display_string): Use window matrix.
15733 (display_mode_element): Ditto.
15734 (echo_area_display): Don't display if frame has no pools yet.
15735 (echo_area_display): Work with window matrix for mini window.
15736 (redisplay_window): Use window marix for mini window.
15737 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15738 use that for DISPLAY_STRING.
26901792
DL
15739
15740 * dispextern.h: Prototype for prepare_desired_row.
15741
d7d0dac0 15742 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15743
15744 * dispnew.c (adjust_window_charstarts): Always allocate window
15745 matrices.
15746 (clear_glyph_row): Only reset used counters and flags.
15747
15748Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15749
15750 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15751 line is non-empty.
26901792
DL
15752 (realloc_glyph_pool): Don't add 1 to the pool size.
15753 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15754
15755 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15756 (line_draw_cost): Ditto.
15757 (update_line): Ditto.
15758 (update_line): Use SPACE_GLYPH.
15759 (count_blanks): Additional parameter LEN.
15760
15761 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15762 (display_text_line): Don't add null-glyph end marker.
15763 (display_string): Use SPACE_GLYPH.
15764 (display_string): Don't use null-glyph end marker.
15765
15766 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15767
15768 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15769 (fill_up_glyph_row_with_spaces): Ditto.
15770 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15771 rows, instead of null-glyphs.
15772 (direct_output_for_insert): Don't add null-glyph end marker.
15773
15774 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15775 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15776 (do_scrolling): Ditto.
15777
15778 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15779 frame matrix in window matrices.
26901792 15780 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15781 Maybe do corresponding assignments in window matrices.
26901792 15782 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15783 rows agree about glyph pointers.
26901792
DL
15784 (check_matrix_pointers): Ditto.
15785 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15786 maybe mirror the operation in window matrices.
26901792 15787 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15788 frame matrix row was made current.
26901792
DL
15789
15790Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15791
15792 * dispnew.c (check_matrix_pointer_lossage): Check against
15793 pointer lossage in matrices.
15794 (get_glyph_matrix_row): Removed.
15795
15796 * scroll.c (do_scrolling): Simplified.
15797 (do_direct_scrolling): Simplified.
15798 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15799 DO_.*SCROLLING.
427ec082 15800
26901792
DL
15801
15802 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15803 (rotate_vector): Removed.
15804 (rotate_pointers): Removed.
15805 (scroll_frame_lines): Simplified.
15806
15807Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15808
15809 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15810
15811 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15812 what the name says.
15813 (clear_glyph_row): Make a glyph row structure empty.
15814 (make_matrix_row_current): Make a glyph row current.
15815 (make_window_matrix_row_current): Perform analogous row swaps
15816 for window matrices.
15817 (update_line): Call make_matrix_row_current.
15818
15819Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15820
15821 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15822 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15823 INVERSE_P.
15824 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15825 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15826
15827 * all files: use above new names.
15828
15829 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15830 SCROLL_GLYPH_MATRIX.
26901792 15831 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15832 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15833 buffer positions in a glyph row.
15834 (increment_glyph_matrix_buffer_positions): Increment buffer
15835 positions in a range of rows.
15836 (scroll_glyph_matrix): Scroll a glyph matrix.
15837 (swap_glyphs_in_rows): Swap glyphs between rows.
15838 (swap_glyph_pointers): Swap pointers between rows.
15839 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15840 (init_display): Initialize SPACE_GLYPH.
15841 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15842 spaces.
26901792
DL
15843
15844Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15845
15846 * xterm.c (dumprectangle): Use vectors in glyph rows.
15847
15848 * xdisp.c (display_text_line): Use vectors in glyph rows.
15849 (display_string): Ditto.
15850
15851 * scroll.c (do_scrolling): Use vectors in glyph rows.
15852 (do_direct_scrolling): Ditto.
15853
15854 * alloc.c (mark_object): Use vectors in glyph rows.
15855 Mark for all frame types.
15856
15857 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15858 glyph rows.
15859 (get_glyph_matrix_row): Ditto.
15860 (matrix_row): Ditto.
15861 (rotate_pointers): Ditto.
15862 (scroll_frame_lines): Ditto.
15863 (preserve_other_columns): Ditto.
15864 (cancel_my_columns): Ditto.
15865 (update_line): Ditto.
15866 (direct_output_for_insert): Ditto.
15867
15868 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 15869 instead of individual members. Use a vector of used counters.
26901792
DL
15870 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15871 (MATRIX_ROW_GLYPH_START): Ditto.
15872 (MATRIX_ROW_GLYPH_END): Ditto.
15873 (MATRIX_ROW_USED): Ditto.
15874 (MATRIX_ROW_SET_USED): Ditto.
15875
15876 * dispnew.c (line_hash_code): Simplified.
15877
15878Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15879
15880 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15881 CHANGE_FRAME_SIZE_1
15882 (preserve_other_columns): Void return.
15883 (cancel_my_columns): Void return type.
15884 (scrolling): Int return type.
15885 (do_pending_window_change): Void return type.
15886 (change_frame_size): Ditto.
15887 (bitch_at_user): Ditto.
15888 (init_display): Ditto.
15889 (syms_of_display): Ditto.
15890
15891 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
15892 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15893 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15894 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15895 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15896 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15897 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 15898 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15899
26901792 15900 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 15901 void.
26901792
DL
15902 (cancel_line): Return void.
15903 (clear_frame_records): Return void.
427ec082 15904
26901792
DL
15905 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15906 (SET_CHAR_GLYPH): Fill a character glyph.
15907 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15908 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15909 glyph.
26901792
DL
15910 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15911 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15912 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15913 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15914 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15915 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15916 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15917 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15918 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15919
15920 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15921
15922 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 15923 come below CURRENT_MATRIX.
26901792
DL
15924
15925 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 15926 member CURRENT_MATRIX.
26901792
DL
15927
15928Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15929
15930 * scroll.c (do_scrolling): Change algorithm to use pointers.
15931 (do_direct_scrolling): Ditto.
15932
15933 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15934 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15935 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15936 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 15937 Returns 1 if pool changed.
26901792
DL
15938 (matrix_row): Additional check for lost pointers to glyph rows.
15939 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
15940 allocation should take place. Addtional parameter
15941 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 15942 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
15943 when window matrix changes. Additional parameter DIM_ONLY_P set
15944 to 1 to indicate that no allocation should take place.
26901792 15945 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 15946 matrices. Optimize frame redraws.
26901792
DL
15947 (free_glyphs): Free pools.
15948 (check_glyph_memory): Check pools not freed.
15949 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15950 (scroll_frame_lines): Change algorithm to use pointers.
15951 (update_line): Ditto.
15952
15953 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15954 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 15955 MATRIX.
26901792
DL
15956
15957Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15958
15959 * dispextern.h (struct glyph_pool): Replacement for former
15960 FRAME_GLYPH_MATRIX.
15961 (struct glyph_matrix): No longer contains sizes of allocated
15962 areas.
15963
15964 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15965 no glyph pools.
15966
15967 * frame.c (make_frame): Initialize pools.
15968
15969Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15970
427ec082 15971 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15972 line moving algorithm has no intermediate steps.
15973 (do_scrolling): Ditto.
15974
15975 * Makefile.in (alloc.o): Add dependency dispextern.h.
15976
15977 * alloc.c: Include dispextern.h for glyph definitions.
15978
15979 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15980 is legal, return 0 otherwise.
15981
15982 * window.h: Add comment that windows are marked specially.
15983
15984 * alloc.c (mark_object): Mark windows specially.
15985
15986
15987Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15988
15989 * dispextern.h (struct glyph): Add member OBJECT
15990 referencing a Lisp object from which a glyph was drawn.
15991 Member TEXT_POSITION renamed POSITION.
15992 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15993
15994 * alloc.c: Include dispextern.h
15995 (mark_object): Mark objects referenced from glyphs.
15996
f28eba7b 15997 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15998
15999 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
16000 (do_scrolling): Ditto.
16001
427ec082 16002 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
16003 DECODE_MODE_SPEC_BUFFER added.
16004
16005 * window.h: TEMP_MATRIX removed.
16006
16007 * scroll.c: OPHYS_LINES removed.
16008
16009 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
16010 FRAME_PTR -> struct frame *.
16011
16012 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
16013 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16014
16015 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
16016 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
16017
16018 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
16019 (do_verify_charstarts): Removed.
16020
16021 * frame.c (Fmake_terminal_frame): Adjust glyphs.
16022 (Fdelete_frame): Free glyphs.
16023 (make_frame): Initialize matrix fields in frame.
16024
f28eba7b 16025 * config.in (PROTO): Added.
26901792 16026
f28eba7b 16027 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
16028
16029 * window.c (Fdelete_window): Free window matrices.
16030 (Fset_window_configuration): Ditto.
16031 (Fdelete_window): Adjust glyphs.
16032 (Fsplit_window): Ditto.
16033 (change_window_height): Ditto.
16034 (Fset_window_configuration): Ditto.
16035 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
16036 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
16037
16038 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
16039
16040 * window.c: Include dispextern.h
16041
16042 * scroll.c (do_scrolling): Use new glyphs.
16043 (do_direct_scrolling): Ditto.
16044
16045 * xdisp.c: Some function prototypes.
16046 (redisplay_internal): Don't do anything if matrices not yet set.
16047 (redisplay_internal): Use new glyphs.
16048 (try_window_id): Ditto.
16049 (copy_part_of_rope): Ditto.
16050 (display_text_line): Ditto.
16051 (display_menu_bar): Ditto.
16052 (display_mode_line): Ditto.
16053 (display_string): Ditto.
16054
16055 * xterm.c: Prototypes for some local functions.
16056 (dumpglyphs): Use new glyphs.
16057 (XTwrite_glyphs): Ditto.
16058 (dumprectangle): Ditto.
16059 (note_mouse_highlight): Ditto.
16060 (fast_find_position): Ditto.
16061 (show_mouse_face): Ditto.
16062 (x_draw_single_glyph): Ditto.
16063 (x_display_bar_cursor): Ditto.
16064 (x_display_box_cursor): Ditto.
16065 (x_new_font): Adjust glyphs when font change.
16066
16067 * term.c (clear_end_of_line): Use new glyphs.
16068 (write_glyphs): Ditto.
16069 (insert_glyphs): Ditto.
16070
16071 * Makefile.in (term.o): term.c depends on dispextern.h
16072
16073 * term.c: Include dispextern.h
16074
16075 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 16076 removed, new inserted.
26901792
DL
16077 (line_hash_code): Use new glyphs.
16078 (line_draw_cost): Ditto
16079 (cancel_line): Ditto
16080 (clear_frame_records): Ditto.
16081 (init_desired_glyphs): Ditto.
16082 (get_display_line): Ditto
16083 (scroll_frame_lines): Ditto.
16084 (preserve_other_columns): Ditto.
16085 (adjust_window_charstarts): Ditto.
16086 (cancel_my_columns): Ditto.
16087 (direct_output_for_insert): Ditto.
16088 (update_frame): Ditto.
16089 (quit_error_check): Made empty.
16090 (scrolling): Use new glyphs.
16091 (count_blanks): Ditto.
16092 (count_match): Ditto.
16093 (update_line): Ditto.
16094 (init_display): Adjust glyphs initially.
16095 (change_frame_size_1): Adjust glyphs.
16096
16097 * dispextern.h: Old glyphs removed, new added.
16098
16099 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16100
16101 * xterm.h: Prototype for min_char_bounds.
16102
16103 * window.h (struct window): Remove old glyphs, add new.
16104
16105 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 16106
26901792
DL
161071999-07-20 Dave Love <fx@gnu.org>
16108
16109 * buffer.c (syms_of_buffer): Make
16110 default-enable-multibyte-characters a user variable.
16111
161121999-07-14 Richard Stallman <rms@gnu.org>
16113
16114 * Version 20.4 released.
16115
161161999-07-14 Richard Stallman <rms@gnu.org>
16117
16118 * filelock.c (lock_file): Do nothing if purifying.
16119
161201999-07-10 Richard Stallman <rms@gnu.org>
16121
16122 * xterm.c (x_display_bar_cursor): Use the cursor-color
16123 to display the bar, not the cursor foreground pixel.
16124
161251999-07-09 Andrew Innes <andrewi@gnu.org>
16126
16127 * w32console.c (w32_use_full_screen_buffer): New variable.
16128 (syms_of_ntterm): Register it.
16129 (initialize_w32_display): Set initial frame size accordingly,
16130 respecting the LINES and COLUMNS environment variables if set.
16131
16132 * w32inevt.c (w32_console_read_socket): Use it.
16133
161341999-07-07 Kenichi Handa <handa@etl.go.jp>
16135
16136 * callproc.c (Fcall_process): Decide coding system for decoding
16137 after we set to the target buffer. If the output goes to a
16138 unibyte buffer, suppress character code conversion.
16139
16140 * fileio.c (Finsert_file_contents): If reading into a unibyte
16141 buffer, suppress character code conversion.
16142
16143 * process.c (create_process): If the output goes to a unibyte
16144 buffer, suppress character code conversion.p
16145
161461999-07-07 Andreas Schwab <schwab@gnu.org>
16147
16148 * xdisp.c (line-number-display-limit): Doc fix.
16149
161501999-07-05 Richard Stallman <rms@gnu.org>
16151
16152 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16153 (Fcall_process_region): Likewise.
16154
161551999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16156
16157 * callproc.c (init_callproc): Set exec_directory if
16158 installation_directory is non-nil, without a test of exec_path.
16159
161601999-07-01 Andrew Innes <andrewi@gnu.org>
16161
16162 * w32xfns.c (drain_message_queue): New function.
16163
16164 * w32term.h (drain_message_queue): Add extern.
16165
16166 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16167 of WaitForMultipleObjects when user input is allowed, so we can
16168 handle incoming window messages. Call drain_message_queue when
16169 there are messages waiting; this ensures that windows created
16170 indirectly from the lisp thread get processed properly, and don't
16171 hang other applications by failing to respond to broadcasts.
16172
161731999-07-01 Andreas Schwab <schwab@gnu.org>
16174
16175 * callint.c (Fcall_interactively): Ignore first element of
16176 event-symbol-elements property.
16177
161781999-07-01 Richard Stallman <rms@gnu.org>
16179
16180 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16181
161821999-07-01 Kenichi Handa <handa@etl.go.jp>
16183
16184 * minibuf.c (read_minibuf): Set the multibyteness of the
16185 minibuffer before inserting `initial' string.
16186
161871999-06-30 Richard Stallman <rms@gnu.org>
16188
16189 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16190
161911999-06-29 Richard M. Stallman <rms@gnu.org>
16192
16193 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16194 Move the handling of MALLOC_CHECK_ envvar here.
16195 (main): Moved from here.
16196
161971999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16198
16199 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16200 function, assigned to the global __malloc_initialize_hook pointer.
16201 (main): Move malloc_set_state call into malloc_initialize_hook
16202 so that it happens as early as possible.
16203
162041999-06-27 Richard M. Stallman <rms@gnu.org>
16205
16206 * keyboard.c (read_key_sequence): Properly reinitialize
16207 fkey_map after translating thru Vkey_translation_map.
16208 After translating thru Vfunction_key_map, don't reset
16209 keytrans-start to 0.
16210
162111999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16212
16213 * w32.c (get_emacs_configuration): Use GetVersionEx to
16214 handle NT5.0 correctly. Include build number in configuration.
16215 w32heap.c (osinfo_cache): New variable.
16216 (cache_system_info): Initialize osinfo_cache.
16217 w32heap.h (osinfo_cache): Declare.
16218
162191999-06-24 Richard M. Stallman <rms@gnu.org>
16220
16221 * casefiddle.c (casify_object): Use make_multibyte_string
16222 if we casify a multibyte string.
16223
162241999-06-22 Ken'ichi Handa <handa@gnu.org>
16225
16226 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16227 del_range_byte instead of del_range_1, set `inserted' to the
16228 number of characters actually inserted.
16229
162301999-06-17 Dave Love <fx@gnu.org>
16231
16232 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16233
162341999-06-18 Paul Eggert <eggert@twinsun.com>
16235
16236 * filelock.c (BOOT_TIME_FILE): New macro.
16237 (get_boot_time): Use it instead of hardwiring the file name.
16238 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16239
162401999-06-17 Dave Love <fx@gnu.org>
16241
16242 * xdisp.c (invalid_eol_type): Make it unsigned.
16243
162441999-06-17 Karl Heuer <kwzh@gnu.org>
16245
16246 * process.c (send_process): Delete unsafe/redundant assignment.
16247
162481999-06-17 Jason Rumney <jasonr@gnu.org>
16249
16250 * w32term.c (dumprectangle): Handle wide characters properly.
16251
162521999-06-16 Andrew Innes <andrewi@gnu.org>
16253
16254 * s/ms-w32.h (strerror): Override the default implementation of
16255 strerror, so we can map winsock error codes.
16256
16257 * w32.c (sys_strerror): New function.
16258
16259 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16260
162611999-06-15 Ken'ichi Handa <handa@gnu.org>
16262
16263 * buffer.c (syms_of_buffer): Don't make
16264 enable-multibyte-characters customizable.
16265
162661999-06-15 Richard M. Stallman <rms@gnu.org>
16267
16268 * editfns.c (Fuser_full_name): Doc fix.
16269
162701999-06-14 Tak Ota <ota@atc.sel.sony.com>
16271
16272 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16273 (get_bitmap_with_cache): Check if CreateBitmap failed.
16274 Adjust cache size dynamically so cache is never larger than the
16275 system limit of GDI resources.
16276 Do cache clearing inline. Move global variables to local scope.
16277
16278
162791999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16280
16281 * unexsgi.c (unexec): Dump the .rodata section from memory
16282 under IRIX6.5 in order to be able to unexec with gcc.
16283
162841999-06-11 Greg Hudson <ghudson@MIT.EDU>
16285
16286 * indent.c (compute_motion): Fix boundary case.
16287
162881999-06-11 Jason Rumney <jasonr@altavista.net>
16289
16290 * w32term.c (cancel_mouse_face): New function. See equiv
16291 changes to xterm.c on 1996-10-31.
16292 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16293 (w32_read_socket): Use cancel_mouse_face.
16294 Update frame position when size is restored.
26901792
DL
16295
162961999-06-04 Richard M. Stallman <rms@gnu.org>
16297
16298 * lread.c (Vuser_init_file): New variable.
16299 (syms_of_lread): Set up Lisp variable.
16300 (Fload): Store the file name there, if var was t before.
16301
163021999-06-04 Paul Eggert <eggert@twinsun.com>
16303
16304 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16305 doesn't work if the system date is changed, or if the system
16306 is suspended. Look at the last-modified time of
16307 /var/run/random-seed instead.
16308
163091999-06-03 Ken'ichi Handa <handa@gnu.org>
16310
16311 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16312 japanese-jisx0208-1978 correctly.
16313
163141999-06-03 Andrew Innes <andrewi@gnu.org>
16315
16316 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16317 as possible to be dumped, for safety.
16318
163191999-06-02 Ken'ichi Handa <handa@gnu.org>
16320
16321 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16322 latin-jisx0201 correctly.
16323
163241999-05-26 Ken'ichi Handa <handa@gnu.org>
16325
16326 * charset.h (Vcharset_table): Comment fixed.
16327
163281999-05-24 Richard Stallman <rms@gnu.org>
16329
16330 * coding.c (syms_of_coding): Doc fix.
16331
16332 * buffer.c (syms_of_buffer): Doc fix.
16333
16334 * filelock.c (lock_if_free): After deleting a stale lock,
16335 try again to lock the file.
16336
163371999-05-22 Andrew Innes <andrewi@gnu.org>
16338
16339 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16340 console window size.
16341 (w32_console_read_socket): Call maybe_generate_resize_event
16342 whenever input events are received, since we don't get told when
16343 the window size changes (as opposed to the buffer size, which we
16344 don't care about).
16345
16346 * w32console.c (clear_frame): Remember that the window width might
16347 be smaller than the screen buffer width.
16348 (write_glyphs): Remove redundant variable attrs. Use
16349 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16350
163511999-05-20 Andrew Innes <andrewi@gnu.org>
16352
16353 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16354 loses focus.
16355
16356 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16357 frame loses focus, and that mouse button state is reset. Ditto
16358 when the menu bar is activated.
16359
163601999-05-18 Richard Stallman <rms@gnu.org>
16361
16362 * abbrev.c (Fdefine_abbrev): Doc fix.
16363
163641999-05-13 Paul Eggert <eggert@twinsun.com>
16365
16366 * filelock.c: Fix performance bug on hosts with large
16367 /var/adm/wtmp files with no boot records.
16368
16369 (boot_time_initialized): New var.
16370 (init_filelock): Initialize it.
16371 (get_boot_time): Use it, instead of nonzero boot_time,
16372 to test whether boot_time is initialized.
16373 Don't invoke utmp routines when dumping.
16374
16375 (get_boot_time): First, try to get the boot time from the
16376 current utmp file, as this can be much faster. Don't try to
16377 get the boot time from utmp and/or wtmp more than once.
16378
16379 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16380 New arg LATEST. All uses changed.
16381
163821999-05-15 Andrew Innes <andrewi@gnu.org>
16383
16384 * w32term.c (dumpglyphs): Use correct colours for drawing
16385 rectangles in place of missing fonts, and make them the right
16386 size.
16387
163881999-05-14 Dave Love <fx@gnu.org>
16389
16390 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16391 non-nil.
16392
163931999-05-11 Andrew Innes <andrewi@gnu.org>
16394
16395 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16396 definition.
16397 (w32_wnd_proc): Reinstall debugging output.
16398 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16399 (syms_of_w32fns): Reinstall new initializer for
16400 Vw32_phantom_key_code.
16401
16402 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16403 names for most non-European charsets, to cope with wildcards or
16404 missing spec dates.
16405 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16406 to avoid deadlock when activating the menu bar.
16407
164081999-05-10 Ken'ichi Handa <handa@gnu.org>
16409
16410 * search.c (boyer_moore): Get charset base value of `untranslated'
16411 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16412
164131999-05-10 Andreas Schwab <schwab@gnu.org>
16414
16415 * fileio.c (Fread_file_name): Correct handling of dollars in file
16416 names. Protect dollars in strings put on the file-name-history.
16417 Substitute homedir by `~' also in default_filename.
16418
16419 * xdisp.c (try_window_id): Fix computation of tab_offset when
16420 backing up over a character that is splitted across lines.
16421
164221999-05-08 Kenichi HANDA <handa@etl.go.jp>
16423
16424 * coding.c (code_convert_region): If eol format is inconsistent,
16425 change coding->symbol to the sibling coding system of Unix like
16426 eol format.
16427
164281999-05-09 Richard M. Stallman <rms@gnu.org>
16429
16430 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16431
16432 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16433
164341999-05-05 Andrew Innes <andrewi@gnu.org>
16435
16436 * w32fns.c (w32_strict_painting): New variable.
16437 (w32_wnd_proc): Use it to select repaint rules.
16438 (syms_of_w32fns): Defvar it.
16439
164401999-05-04 Andrew Innes <andrewi@gnu.org>
16441
16442 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16443 charsets to the standard Windows charset for Japanese.
16444
164451999-05-04 Ken'ichi Handa <handa@gnu.org>
16446
16447 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16448
16449 * ccl.h (struct ccl_program): New member stack_idx.
16450
16451 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16452 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16453 before returing.
16454 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16455
164561999-05-03 Jason Rumney <jasonr@altavista.net>
16457
16458 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16459
164601999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16461
16462 * dired.c (make_time): Make argument type be time_t.
16463
164641999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16465
16466 * msdos.c (unibyte_display_via_language_environment): Add extern.
16467
83c8f461 164681999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16469
16470 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16471 if unibyte_display_via_language_environment is set.
16472 (unibyte_display_via_language_environment):
16473 Variable moved from xfns.c and elsewhere.
16474 (syms_of_xfns): Set up Lisp var.
16475
16476 * xfns.c (unibyte_display_via_language_environment):
16477 Variable moved to xdisp.c.
16478 (syms_of_xfns): Don't set up Lisp var here.
16479
16480 * msdos.c (unibyte_display_via_language_environment):
16481 Variable moved to xdisp.c.
16482 (syms_of_msdos): Don't set up Lisp var here.
16483
16484 * w32fns.c (unibyte_display_via_language_environment):
16485 Variable moved to xdisp.c.
16486 (syms_of_w32fns): Don't set up Lisp var here.
16487
164881999-05-02 Andrew Innes <andrewi@gnu.org>
16489
16490 * s/ms-w32.h (HAVE_FSYNC): New macro.
16491 (fsync): Map to _commit.
16492 (ftruncate): Map to _chsize.
16493
16494 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16495 for ASCII, if enabled, to avoid memory allocation overhead for
16496 implicit Unicode conversion. Also, recognize that ASCII and
16497 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16498 already contains the Unicode characters in that case.
16499 (construct_drag_n_drop): Remove old code that was
16500 trashing the drop location.
16501
16502 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16503 nlines to encoding_buffer_size (real bug was in a ccl program in
16504 lisp/international/coding.el).
16505
16506 * w32reg.c (w32_get_string_resource): Check for name in current
16507 user area, and if not found look in the local machine area.
16508
16509 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16510 (Fw32_shell_execute): New function; used to support browse-url.
16511 (syms_of_w32fns): Register it.
16512 (w32_load_system_font): Force max width to be average
16513 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16514 slowdown.
16515 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16516 already defined.
16517 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16518
16519 * unexw32.c (get_section_info): Dump back the entire EMDATA
16520 section if we can put Emacs' initialized data in a separate
16521 section, otherwise use the my_begdata/my_edata method.
16522
16523 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16524
16525 * coding.c (decode_eol): Set produced/consumed values to zero if
16526 src_bytes is <= 0 on entry.
16527
165281999-05-02 Jason Rumney <jasonr@altavista.net>
16529
16530 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16531 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16532 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16533 field in frame.
16534 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16535 (dumprectangle): Take into account the width of a left-side
16536 scroll bar.
16537
16538 * w32proc.c (sys_kill): Attach to current foreground thread
16539 when grabbing focus; necessary on NT 5.0.
16540
16541 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16542 GetUpdateRect rather than BeginPaint.
16543 (w32_wnd_proc): Attach to current foreground thread
16544 when grabbing focus; necessary on NT 5.0.
16545 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16546 debugging display messages.
16547 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16548 false matching.
16549
165501999-05-02 Kenichi HANDA <handa@etl.go.jp>
16551
16552 * coding.c (setup_raw_text_coding_system): Call
16553 setup_coding_system to initialize the fields of struct
16554 coding_system correctly.
427ec082 16555
26901792
DL
165561999-04-26 Kenichi HANDA <handa@etl.go.jp>
16557
16558 * xterm.c (x_list_fonts): Fix previous change.
16559
165601999-04-26 Richard Stallman <rms@gnu.org>
16561
16562 * config.in (HAVE_LIBXP): Add #undef.
16563 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16564
165651999-04-12 Ken'ichi Handa <handa@gnu.org>
16566
16567 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16568 by them.
16569
165701999-04-12 Karl Heuer <kwzh@gnu.org>
16571
16572 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16573
165741999-04-11 Ken'ichi Handa <handa@gnu.org>
16575
16576 * fontset.c (Fset_fontset_font): Fix previous change.
16577
165781999-04-09 Ken'ichi Handa <handa@gnu.org>
16579
16580 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16581 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16582
165831999-04-08 Richard Stallman <rms@gnu.org>
16584
16585 * process.c (Faccept_process_output): Check validity of PROCESS.
16586
165871999-04-08 Eli Zaretskii <eliz@gnu.org>
16588
16589 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16590
165911999-04-07 Richard Stallman <rms@gnu.org>
16592
16593 * xfns.c (x_set_font): Fix error message.
16594
16595 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16596 (Fnew_fontset, Fset_fontset_font): Check for them here.
16597 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16598 Fix error message syntax.
16599
16600 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16601 from the base buffer.
16602 (Fset_buffer_multibyte): Copy new multibyte status
16603 into the buffer's indirect buffers.
16604
166051999-04-07 Ken'ichi Handa <handa@gnu.org>
16606
16607 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16608 tail.
16609
166101999-04-06 Richard Stallman <rms@gnu.org>
16611
16612 * dired.c (Ffile_attributes): Doc fix.
16613
16614 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16615 Convert 0200 to meta only in a unibyte string.
16616 (Fkey_description): Likewise.
16617
16618 * eval.c (do_autoload): Preserve match data.
16619
166201999-04-06 Kenichi HANDA <handa@etl.go.jp>
16621
16622 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16623 encode_coding to avoid carryover.
16624
16625 * coding.c: Add comments for decode_coding and encode_coding.
16626
16627 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16628 a composite character by skipping its leading code.
16629 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16630 correctly.
16631
16632 * coding.c: Add comments for decode_coding and encode_coding.
16633
16634 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16635 a composite character by skipping its leading code.
16636 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16637 correctly.
16638
166391999-04-06 Eli Zaretskii <eliz@gnu.org>
16640
16641 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16642 table was used.
16643 (jp_kbd_translate_table): Support C-\.
16644 (it_kbd_translate_table): Map `>' correctly.
16645 (it_keyboard): Add `>'.
16646
166471999-04-06 Richard Stallman <rms@gnu.org>
16648
16649 * intervals.c (graft_intervals_into_buffer): Turn off
16650 inhibit_modification_hooks around calling Fset_text_properties.
16651
166521999-04-05 Kenichi HANDA <handa@etl.go.jp>
16653
16654 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16655 glyphs.
16656
166571999-04-05 Eli Zaretskii <eliz@gnu.org>
16658
16659 * msdos.c (jp_kbd_translate_table): Fix last change.
16660
166611999-04-04 Eli Zaretskii <eliz@gnu.org>
16662
16663 * msdos.c (struct kbd_translate): New struct, for key translation
16664 tables private to certain national keyboard layouts.
16665 (struct dos_keyboard_map): Add a pointer to a private translation
16666 table.
16667 (jp_kbd_translate_table): Private table for the Japanese
16668 keyboard.
16669 (jp_keyboard): Japanese keyboard layout.
16670 (it_kbd_translate_table): Private table for the Italian keyboard.
16671 (it_keyboard): Use it_kbd_translate_table.
16672 (keyboard_layout_list): Add the Japanese keyboard.
16673 (dos_rawgetc): Use the keyboard-private translation table, if
16674 available.
16675 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16676
166771999-04-02 Kenichi HANDA <handa@etl.go.jp>
16678
16679 * xdisp.c (redisplay_window): When we call compute_motion with
16680 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16681 (display_text_line): Stop the loop for processing overlay strings
16682 when we reach the right edge of the window.
16683
83c8f461 166841999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16685
16686 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16687 let the data control whether string is unibyte.
16688
166891999-03-30 Richard M. Stallman <rms@gnu.org>
16690
16691 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16692 (pop_kbd_macro): Restore the saved real_this_command.
16693 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16694
166951999-03-26 Richard M. Stallman <rms@gnu.org>
16696
16697 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16698 if buffer-file-name is nil.
16699
167001999-03-25 Jason Rumney <jasonr@altavista.net>
16701
16702 * w32select.c (Fw32_set_clipboard_data): Take into account line
16703 ends when calculating clipboard storage needed for non-ASCII text.
16704
167051999-03-25 Andrew Innes <andrewi@gnu.org>
16706
16707 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16708 (epaths.h): Renamed from paths.h.
427ec082
SS
16709 (clean):
16710 ($(BLD)\filelock.obj):
16711 ($(BLD)\lread.obj):
26901792
DL
16712 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16713
167141999-03-23 Ken'ichi Handa <handa@gnu.org>
16715
16716 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16717 ENCODE_ISO_CHARACTER for the previous change on this macro.
16718
167191999-03-23 Kenichi Handa <handa@etl.go.jp>
16720
16721 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16722 eoltype correctly for backward compatibility.
16723
167241999-03-20 Kenichi HANDA <handa@etl.go.jp>
16725
16726 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16727 invalid, produce the buffer internal byte sequence without encoding.
16728
167291999-03-19 Karl Heuer <kwzh@gnu.org>
16730
16731 * editfns.c (Fformat): Accept %i format.
16732
167331999-03-17 Karl Heuer <kwzh@gnu.org>
16734
16735 * filelock.c (get_boot_time): Test tempname, not filename.
16736
167371999-03-17 Jason Rumney <jasonr@altavista.net>
16738
e5619f6b
JR
16739 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16740 speed display.
16741
16742 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16743 speed display.
16744 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16745 New functions.
16746 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16747 Use bitmap cache.
26901792
DL
16748
16749 * w32fns.c (enum_font_cb2): Set the font height to be the
16750 character height, not the cell height.
16751 (Fw32_select_font): Initialize font dialog with current default font.
16752 (Vw32_system_coding_system): New variable.
16753 (w32_strict_filenames): Add comment.
16754 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16755 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16756 (syms_of_w32fns): Add w32-system-coding-system.
16757
167581999-03-15 Richard M. Stallman <rms@gnu.org>
16759
16760 * xterm.c (XTread_socket) <ConfigureNotify>:
16761 If cursor pos is outside the new frame size, mark cursor as off.
16762
167631999-03-14 Ken'ichi Handa <handa@gnu.org>
16764
16765 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16766
16767 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16768 by them.
16769
167701999-03-14 Richard M. Stallman <rms@gnu.org>
16771
16772 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16773 at beginning.
16774
167751999-03-14 Jason Rumney <jasonr@altavista.net>
16776
16777 * w32fns.c (w32_strict_fontnames): New variable.
16778 (Fx_create_frame): Formatting fix.
16779 (w32_load_system_font): Keep trying to load non-existant font
16780 if w32_strict_fontnames is nil. Formatting fix.
16781 (syms_of_w32fns): Add w32-strict-fontnames.
16782
16783 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16784 (dumpglyphs): Formatting fixes.
16785
167861999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16787
16788 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16789
167901999-03-10 Karl Heuer <kwzh@gnu.org>
16791
16792 * puresize.h (BASE_PURESIZE): Increase to 505000.
16793
167941999-03-09 Richard M. Stallman <rms@gnu.org>
16795
16796 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16797
16798 * filelock.c (init_filelock): New function.
16799
168001999-03-09 Dave Love <fx@gnu.org>
16801
16802 * fileio.c (Ffile_directory_p): Doc fix.
16803
83c8f461 168041999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16805
16806 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16807
168081999-03-08 Richard M. Stallman <rms@gnu.org>
16809
16810 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16811 to only the part that uses get_boot_time_1.
16812
168131999-03-07 Dave Love <fx@gnu.org>
16814
16815 * fileio.c (Finsert_file_contents): Use xfree.
16816
168171999-03-06 Kenichi Handa <handa@etl.go.jp>
16818
16819 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16820 term.o, xselect.o): Depend on ccl.h.
16821
168221999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16823
16824 * makefile.nt: Remove common multiple file compilation commands.
16825
168261999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16827
16828 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16829 newlines added when the arg NO-LINE-BREAK is nil.
16830
168311999-03-04 Karl Heuer <kwzh@gnu.org>
16832
16833 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16834
16835 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16836
168371999-03-04 Dave Love <fx@gnu.org>
16838
16839 * term.c (term_init): Use xmalloc, not malloc.
16840
16841 * callproc.c (Fcall_process): Use xmalloc, xfree.
16842
168431999-03-03 Andreas Schwab <schwab@gnu.org>
16844
16845 * eval.c (Fdefconst): Doc fix.
16846
168471999-03-01 Kenichi Handa <handa@etl.go.jp>
16848
16849 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16850
168511999-03-01 Eli Zaretskii <eliz@gnu.org>
16852
16853 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16854
168551999-02-28 Richard M. Stallman <rms@gnu.org>
16856
16857 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16858
16859 * cmds.c (internal_self_insert): Calculate column properly
16860 in overwrite-of-tab case.
16861
168621999-02-27 Andreas Schwab <schwab@gnu.org>
16863
16864 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16865 malloc in glibc 2.1.
16866
168671999-02-26 Richard Stallman <rms@gnu.org>
16868
16869 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16870
16871 * epaths.in: Renamed from paths.in.
16872 This avoids a conflict with a system header file paths.h on GNU/Linux.
16873
16874 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16875 Use epaths.h istead of paths.h.
16876
168771999-02-26 Andreas Schwab <schwab@gnu.org>
16878
16879 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16880 malloc.
16881
168821999-02-25 Dave Love <fx@gnu.org>
16883
16884 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16885
168861999-02-25 Richard Stallman <rms@gnu.org>
16887
16888 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16889 (WTMP_FILE): Default definition in case not defined.
16890 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16891
26901792
DL
168921999-02-25 Ken'ichi Handa <handa@gnu.org>
16893
16894 * keymap.c (push_key_description): If enable-multibyte-characters
16895 is nil and C is single byte, push C as is.
16896
168971999-02-24 Kenichi Handa <handa@etl.go.jp>
16898
16899 * keymap.c (push_key_description): If enable-multibyte-characters
16900 is non-nil, try to convert unibyte character to multibyte. For
16901 invalid multibyte character, show all bits by octal form.
16902 (Fsingle_key_description): Check the validity of charset for a
16903 generic character.
16904
169051999-02-23 Richard M. Stallman <rms@gnu.org>
16906
16907 * fileio.c (Ffile_regular_p): Undo previous change.
16908
16909 * eval.c (Fdefconst): Doc fix.
16910
16911 * filelock.c (get_boot_time): Don't use BUFSIZ.
16912
169131999-02-22 Andrew Innes <andrewi@gnu.org>
16914
16915 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16916 (EXTRA_LINK): Do version test with strings.
16917
169181999-02-22 Andreas Schwab <schwab@gnu.org>
16919
16920 * fns.c (Fbase64_encode_string): Fix last change.
16921
16922 * termhooks.h (event_kind): Add user_signal.
16923
16924 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16925 (syms_of_keyboard): Initialize them.
16926 (lispy_user_signals): New variable.
16927 (make_lispy_event): Handle user_signal event type.
16928
16929 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16930 (syms_of_emacs): Don't initialize them.
16931 (handle_USR1_signal, handle_USR2_signal): Set event type to
16932 user_signal instead of non_ascii_keystroke, and use plain integers
16933 as code instead of Lisp symbols.
16934
169351999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16936
16937 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16938
169391999-02-21 Richard Stallman <rms@gnu.org>
16940
16941 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16942
16943 * print.c (print_error_message): Don't crash if (cdr data)
16944 is not a list.
16945
169461999-02-21 Eli Zaretskii <eliz@gnu.org>
16947
16948 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16949
169501999-02-20 Andrew Innes <andrewi@gnu.org>
16951
16952 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16953 run, since size can vary from run to run.
16954
16955 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16956 data is included, to enable profiling.
16957 ($(EMACS)): Map file not needed for emacs.exe.
16958
16959 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16960 as malloc before calling uninterrupt_malloc, for consistency.
16961 This also enables profiling to work on WINDOWSNT.
16962
169631999-02-18 Richard Stallman <rms@gnu.org>
16964
16965 * Makefile.in (emacs.o): Depend on termhooks.h.
16966 (filelock.o): Depend on systime.h.
16967
169681999-02-18 Ken'ichi Handa <handa@gnu.org>
16969
16970 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16971 (Fdecode_big5_char): Likewise.
16972
169731999-02-17 Richard Stallman <rms@gnu.org>
16974
16975 * insdel.c (adjust_markers_for_replace): When doing an insertion
16976 (replacing a region of zero length), handle markers at the
16977 insertion point properly.
16978
169791999-02-17 Andrew Innes <andrewi@gnu.org>
16980
16981 * w32fns.c (Vw32_quit_key): New variable.
16982 (post_character_message): Use it.
16983 (syms_of_w32fns): DEFVAR it.
16984
169851999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16986
16987 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16988
169891999-02-16 Richard Stallman <rms@gnu.org>
16990
16991 * filelock.c (within_one_second): New function.
16992 (current_lock_owner): Use that.
16993 (get_boot_time): Use /proc/uptime if available.
16994 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16995 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16996
26901792
DL
169971999-02-16 Richard Stallman <rms@gnu.org>
16998
16999 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17000 (syms_of_emacs): Init and staticpro them.
17001 (handle_USR1_signal): Don't run any code, just queue up an event.
17002 (handle_USR2_signal): Likewise.
17003
170041999-02-16 Eli Zaretskii <eliz@gnu.org>
17005
17006 * dired.c (Ffile_attributes): If the file's size doesn't fit in
17007 an integer, return it as a float. Doc string fixed.
17008
170091999-02-16 Richard Stallman <rms@gnu.org>
17010
17011 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
17012 (syms_of_emacs): Init and staticpro them.
17013 (handle_USR1_signal): Don't run any code, just queue up an event.
17014 (handle_USR2_signal): Likewise.
17015
170161999-02-15 Kenichi Handa <handa@etl.go.jp>
17017
17018 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
17019 ASCII correctly. Signal error on invalid characters.
17020 (Fdecode_big5_char, Fencode_big5_char): Likewise.
17021
170221999-02-15 Eli Zaretskii <eliz@gnu.org>
17023
17024 * w16select.c (get_clipboard_data): Work around a bug in Windows95
17025 DOS box which doubles the reported size of text in the clipboard.
17026
170271999-02-15 Kenichi Handa <handa@etl.go.jp>
17028
17029 * coding.c (decode_coding_iso2022): Don't set
17030 coding->composed_chars to 0 here.
17031 (setup_coding_system): Set coding->composed_chars to 0 here.
17032
170331999-02-10 Richard Stallman <rms@gnu.org>
17034
17035 * fileio.c (Ffile_regular_p): Use lstat.
17036
170371999-02-09 Richard Stallman <rms@gnu.org>
17038
17039 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
17040 (unexec): Test this instead of specific systems.
17041
17042 * m/macppc.h: New file.
17043
170441999-02-08 Dave Love <fx@gnu.org>
17045
17046 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
17047
170481999-02-08 Ken'ichi Handa <handa@gnu.org>
17049
17050 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
17051 should be set to coding->produced.
17052
170531999-02-07 Paul Fisher <rao@gnu.org>
17054
17055 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
17056 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
17057
170581999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
17059
17060 * editfns.c (Fformat): Doc fix.
17061
170621999-02-06 Richard Stallman <rms@gnu.org>
17063
17064 * process.c (syms_of_process): defsubr it.
17065 (Fprocess_running_child_p): New function.
17066
170671999-02-05 Andrew Innes <andrewi@gnu.org>
17068
17069 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
17070 recording drop position.
17071
170721999-02-05 Ken'ichi Handa <handa@gnu.org>
17073
17074 * coding.c (encode_coding_iso2022): Before writing out an invalid
17075 code, reset graphic planes and registers if necessary.
17076
17077 * term.c (encode_terminal_code): Fix previous change.
17078
170791999-02-04 Eli Zaretskii <eliz@gnu.org>
17080
17081 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17082 static variables.
17083 (set_clipboard_data): Save a copy of the text we put into
17084 clipboard in last_clipboard_text.
17085 (get_clipboard_data): If the clipboard text is identical to what
17086 last_clipboard_text holds, pretend there's no data in the clipboard.
17087
170881999-02-03 Richard Stallman <rms@gnu.org>
17089
17090 * s/gnu.h (NLIST_STRUCT): Add #undef.
17091
170921999-02-03 Eli Zaretskii <eliz@gnu.org>
17093
17094 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17095 encoded, set its pointer and size as returned by encode_coding.
17096
170971999-02-02 Ken'ichi Handa <handa@gnu.org>
17098
17099 * fns.c (Fset_char_table_default): To handle the case that CH is
17100 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17101
171021999-02-02 Andrew Innes <andrewi@gnu.org>
17103
17104 * w32fns.c (syms_of_w32fns): Change default value of
17105 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17106 some mice works properly.
17107
171081999-02-02 Eli Zaretskii <eliz@gnu.org>
17109
17110 * w16select.c (set_clipboard_data): Correctly null-terminate the
17111 string to be put into the Windows clipboard. Use xbuf_addr.
17112
171131999-02-01 Richard Stallman <rms@gnu.org>
17114
17115 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17116
171171999-01-31 Richard Stallman <rms@gnu.org>
17118
17119 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17120 then don't send the signal if the shell owns the terminal.
17121 (Finterrupt_process): Doc change.
427ec082 17122
26901792
DL
171231999-01-31 Andrew Innes <andrewi@gnu.org>
17124
17125 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17126 (copy_executable_and_dump_data): Use it to ensure alignment slop
17127 is zeroed.
17128
171291999-01-30 Andrew Innes <andrewi@gnu.org>
17130
17131 * w32.c (init_environment): Change argv[0] to contain the full
17132 path to Emacs.
17133
17134 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17135
171361999-01-29 Ken'ichi Handa <handa@gnu.org>
17137
17138 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17139 returned by x_new_font (the resolved one) but use the font name
17140 set in the fontset specification.
17141 (x_load_font): For the height of font, if normarl ascent and
17142 descent value are larger than those in max_bounds field, use the
17143 former.
17144
171451999-01-28 Eli Zaretskii <eliz@gnu.org>
17146
17147 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17148
171491999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17150
17151 * makefile.nt: Use full path to temacs.exe when dumping.
17152
171531999-01-27 Jason Rumney <jasonr@altavista.net>
17154
17155 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17156 list was reliable.
17157 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17158 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17159 (w32_list_synthesized_fonts): New function.
17160 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17161 available instead of EnumFontFamilies. List synthesized fonts if
17162 Vw32_enable_italics is non-nil.
427ec082 17163
26901792
DL
171641999-01-27 Richard Stallman <rms@gnu.org>
17165
17166 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17167 Don't complain if ttcompat does not exist.
17168
17169 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17170
171711999-01-27 Andrew Innes <andrewi@gnu.org>
17172
17173 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17174 the lwindow, rwindow and apps keys could not be used as function
17175 keys, because they were being passed to TranslateMessage which
17176 ignores them. Also, key was being changed to SPC.
17177
17178 * makefile.nt: Do make version comparison as strings.
17179
171801999-01-27 Eli Zaretskii <eliz@gnu.org>
17181
17182 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17183 strings, not characters.
17184
17185 * coding.h: Likewise.
17186
17187 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17188 string.
17189
171901999-01-26 Dave Love <fx@gnu.org>
17191
17192 * emacs.c (main): Up-date copyright.
17193
171941999-01-25 Dave Love <fx@gnu.org>
17195
17196 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17197
171981999-01-25 Andreas Schwab <schwab@gnu.org>
17199
17200 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17201
172021999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17203
17204 * xfns.c (x_set_frame_parameters): gcpro as needed.
17205
17206 * window.c (Fset_window_point): If WINDOW is selected but the
17207 current buffer is not its buffer, don't use Fgoto_char.
17208
172091999-01-22 Richard M. Stallman <rms@gnu.org>
17210
17211 * syntax.c (scan_sexps_forward): Delete duplicate code
17212 to set prev_from_syntax, above start of main loop.
17213 At startinstring, check syntax when checking for a match.
17214
172151999-01-22 Jason Rumney <jasonr@altavista.net>
17216
17217 * w32bdf.c: New file.
17218 * w32bdf.h: New file.
17219 * makefile.nt: Add w32bdf.c and w32bdf.h.
17220
17221 * w32gui.h: Include w32bdf.h.
17222 (W32FontStruct) Add bdf element.
17223
17224 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17225 Support BDF fonts.
17226
17227 * w32term.c (W32_TEXTOUT): New macro.
17228 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17229 Simplify baseline calculation. Detect SJIS by font, not glyph.
17230 Call SetTextAlign.
17231 (syms_of_w32term): Remove "jisx0212-sjis" from
17232 w32-charset-to-codepage-alist.
17233 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17234 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17235
26901792
DL
17236 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17237 (x_destroy_bitmap): Returns void not int.
17238 (x_set_border_pixel): Returns void.
17239 (w32_load_bdf_font): New function.
17240 (w32_load_system_font): New function, was w32_load_font. List
17241 fonts before loading. Explicitly set encoding for SJIS fonts.
17242 Set default_ascent to 0 as comment indicates.
17243 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17244 (w32_unload_font): Support BDF fonts.
17245 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17246 Autodetect whether to use koi8-r instead of iso8859-5.
17247 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17248 Associate "ksc5601.1992" with JOHAB_CHARSET.
17249 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17250 (w32_to_x_font): Add resolution.
17251 (x_to_w32_font): Use font resolution to calculate height if supplied.
17252 (w32_font_match): Handle wildcards anywhere within field.
17253 (enumfont_t): Remove unused head pointer.
17254 (enum_font_cb2): Dereference elfLogFont.
17255 (w32_list_bdf_fonts): New function.
17256 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17257 valid frame. Remove MessageBox. Support BDF fonts.
17258 (Fw32_find_bdf_fonts): New function.
17259 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17260 Sw32_find_bdf_fonts.
17261
172621999-01-21 Andrew Innes <andrewi@gnu.org>
17263
17264 * makefile.nt (temacs): Use del to delete file, not rm.
17265
172661999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17267
17268 * keyboard.c (read_key_sequence): Fix previous change.
17269
17270 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17271 as the same. Treat "myname:0" as the same as those two.
17272
172731999-01-19 Jason Rumney <jasonr@altavista.net>
17274
17275 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17276 (w32_to_x_charset): Fix charset mappings.
17277
17278 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17279 (dumpglyphs): Move definitions out of block containing goto.
17280 Remove redundant code for BIG5.
17281 Use w32_codepage_for_font instead of
17282 w32_codepage_for_charset. Add cast to int where float
17283 operation is assigned to int.
17284 (Vw32_charset_to_codepage_alist): New variable.
17285 (w32_codepage_for_charset): Removed.
427ec082
SS
17286 (w32_codepage_for_font): New function, replacing
17287 w32_codepage_for_charset.
26901792
DL
17288 (syms_of_w32term): Add and initialize
17289 w32-charset-to-codepage-alist.
17290
172911999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17292
17293 * xselect.c (x_handle_selection_clear): Don't clear the
17294 selection if Emacs still owns it through a different display.
17295
172961999-01-17 Andrew Innes <andrewi@gnu.org>
17297
17298 * w32proc.c: (w32_executable_type): Relax the check to identify
17299 cygwin-compiled applications, because the exact dll name varies
17300 with release. Now only require the name to start "cygwin".
17301
17302 * w32heap.h: (ROUND_UP):
17303 (ROUND_DOWN): New macros.
17304 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17305 (init_heap): New extern.
17306 (data_region_size):
17307 (recreate_heap):
17308 (read_in_bss):
17309 (map_in_heap):
17310 (round_to_next):
17311 (w32_fatal_reload_error):
17312 (get_section_size): Obsolete externs removed.
17313
17314 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17315 current process.
17316 (round_to_next): Obsolete function removed.
17317 (preload_heap_section): New variable.
17318 (data_region_size): Obsolete variable removed.
17319 (allocate_heap): Modified to determine end of static heap section
17320 used during preload, and use that as initial base address for
17321 dynamic heap instead of hard-coded value.
17322 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17323 calls to commit or decommit pages when allocating from static heap
17324 section during preload.
17325 (recreate_heap): Obsolete function removed.
17326 (init_heap): New function to initialize internal sbrk heap
17327 variables. Uses static heap section during preload, otherwise
17328 calls allocate_heap to reserve a heap region dynamically.
17329 (round_heap): Use ROUND_UP macro instead of round_to_next.
17330
17331 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17332 static "bss" section is used for heap space during preload, and
17333 bss data is now written to the proper section area when dumping.
17334 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17335 (heap_index_in_executable): Obsolete variable removed.
17336 (data_section): New variable.
17337 (data_start_va): Renamed to data_start.
17338 (data_start_file): Obsolete variable removed.
17339 (bss_section):
17340 (extra_bss_size):
17341 (bss_section_static):
17342 (bss_start_static):
17343 (bss_size_static):
17344 (extra_bss_size_static):
17345 (heap_section): New variables.
17346 (_start): Remove code based on old unexec method. Call init_heap
17347 to initialize sbrk heap.
17348 (close_file_data): Update size of file when closing, so that
17349 unexec doesn't have to work out exact size in advance.
17350 (get_bss_info_from_map_file):
17351 (get_section_size): Obsolete functions removed.
17352 (rva_to_section): Fix minor bug, and add a work-around for a bug
17353 in very old linkers.
17354 (offset_to_section):
17355 (relocate_offset): New functions.
17356 (OFFSET_TO_RVA):
17357 (RVA_TO_OFFSET):
17358 (RVA_TO_SECTION_OFFSET):
17359 (PTR_TO_RVA):
17360 (PTR_TO_OFFSET):
17361 (OFFSET_TO_PTR): New macros.
17362 (get_section_info): Modify to support new unexec method;
17363 determines address ranges in process that need dumping, and COFF
17364 sections where data will be dumped. Allows for static and global
17365 bss data to be in separate ranges. No longer relies on knowledge
17366 of section names.
17367 (copy_executable_and_dump_data_section): Renamed
17368 copy_executable_and_dump_data. Completely rewritten to copy
17369 executable section by section, so that raw data areas can be
17370 expanded to hold dumped data as necessary. Allows for bss data to
17371 be in same section as initialized data. Reduces size of static
17372 heap section to that used during preload.
17373 (dump_bss_and_heap):
17374 (w32_fatal_reload_error):
17375 (read_in_bss):
17376 (map_in_heap): Obsolete functions removed.
17377 (unexec): Rounds off preload heap to nearest page rather than
17378 virtual allocation unit. Modified to match other changes.
17379
17380 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17381 data_region_size.
17382
17383 * makefile.nt: (TEMACS_TMP): New macro.
17384 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17385 processor to add static heap section in support of new unexec.
17386
17387 * lastfile.c: Include config.h to pick up data layout pragmas.
17388 [WINDOWSNT]: Remove explicit pragma.
17389
173901999-01-12 Kenichi Handa <handa@etl.go.jp>
17391
17392 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17393 correctly.
17394 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17395
173961999-01-11 Dave Love <fx@gnu.org>
17397
17398 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17399
174001999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17401
17402 * keyboard.c (read_key_sequence): In key-translation-map and
17403 function-key-map, handle symbol with array as fn def.
17404 In function-key-map, handle symbol with keymap as fn def,
17405 and autoloaded definitions.
427ec082 17406
26901792
DL
17407 * puresize.h (BASE_PURESIZE): Increment to 500000.
17408
17409 * print.c (Qtemp_buffer_setup_hook): New variable.
17410 (syms_of_print): Init and staticpro that.
17411 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17412
174131999-01-11 Kenichi Handa <handa@etl.go.jp>
17414
17415 * insdel.c (del_range_1): Call signal_after_change.
17416 (del_range_byte): Likewise.
17417 (del_range_both): Likewise.
17418 (del_range_2): Don't call signal_after_change.
17419
17420 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17421 Lisp code here.
17422
174231999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17424
17425 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17426 never run the debugger, and don't bother checking the args
17427 to see whether the debugger should be run.
17428
174291999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17430
17431 * keyboard.c (read_key_sequence):
17432 Tell get_keyelt to look handle autoloads.
17433 Handle symbols defined as keymaps, and autoloaded keymaps.
17434
174351999-01-06 Kenichi Handa <handa@etl.go.jp>
17436
17437 * search.c (search_buffer): Fix previous change.
17438
174391999-01-06 Eli Zaretskii <eliz@gnu.org>
17440
17441 * w16select.c (set_clipboard_data): Terminate the text with a null
17442 character. Don't allow to put binary data into the clipboard.
17443 Return zero in case of success, 1 or 2 otherwise.
17444 (get_clipboard_data): Only bail out if the null character is in
17445 the last 32-byte chunk of clipboard data
17446 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17447 they save binary data, print a message in the echo area saying the
17448 text was not put into the clipboard.
17449
17450 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17451
174521999-01-06 Andreas Schwab <schwab@gnu.org>
17453
17454 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17455 _BSD_SOURCE, the latter is always defined.
17456
174571999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17458
17459 * fns.c (Frequire): Don't fail to unbind bindings.
17460
174611999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17462
17463 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17464
17465 * charset.c (Ffind_charset_region): Fix doc typo.
17466
174671998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17468
17469 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17470 multibyte in unibyte buffers only.
17471
17472 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17473 and pass it to Fmake_sparse_keymap.
17474
174751998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17476
17477 * alloc.c (MMAP_MAX_AREAS): New macro.
17478 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17479 (init_alloc_once): Use that.
17480
17481 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17482
17483 * alloc.c (lisp_malloc, lisp_free): New functions.
17484 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17485 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17486 (n_interval_blocks, n_float_blocks): New variable.
17487 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17488 (n_marker_blocks, n_string_blocks): New variable.
17489 (init_intervals, make_interval): Set a count variable.
17490 Use lisp_malloc instead of setting allocating_for_lisp.
17491 (init_float, make_float, init_cons, Fcons): Likewise.
17492 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17493 (init_marker, allocate_misc, init_strings): Likewise.
17494 (make_uninit_multibyte_string): Likewise.
17495 (gc_sweep, compact_strings): Decrement the count variables.
17496
17497 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17498 into the old_..._hook variables.
17499
175001998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17501
17502 * keyboard.c: In each active map, for each menu bar item, use only
17503 the first submap.
17504 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17505 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17506 (syms_of_keyboard): Staticpro and init it.
17507
427ec082 17508 * xmenu.c (single_keymap_panes):
26901792
DL
17509
175101998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17511
17512 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17513 by complete_deferred_msg.
17514 (post_character_message): Cancel all deferred messages when
17515 quit_char is typed, in order to break out of potential deadlocks.
17516 (cancel_all_deferred_msgs): New function.
17517 (complete_deferred_msg): Don't abort if msg not found; may have
17518 been cancelled.
17519 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17520 (Fw32_send_sys_command): Wait for system command to
17521 complete before returning.
427ec082 17522
26901792
DL
17523 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17524 not set async_iconified flag though.
17525
17526 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17527 (create_child): Use it.
17528 (syms_of_ntproc): Defvar it. Also fix docstrings for
17529 w32-start-process-share-console and w32-start-process-show-window.
17530
17531 * unexw32.c (_start): Force system calls accessing unmounted
17532 devices to fail without prompting.
17533
175341998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17535
17536 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17537 even when starting the dumped Emacs.
17538
17539 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17540 (Fkey_description): Handle lists like vectors.
17541
175421998-12-21 Kenichi Handa <handa@etl.go.jp>
17543
17544 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17545 because of the change of the second argument of Fread_char.
17546
17547 * charset.c (Fcharset_after): Check range. If POS is out of
17548 range, return nil.
17549
17550 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17551
17552 * lread.c (Fread_char): Change the meaning of the second argument.
17553 (Fread_event): Likewise.
17554 (Fread_char_exclusive): Likewise.
17555
17556 * print.c (printchar): Fix previous change.
17557
17558 * process.c (read_process_output): Decide the multibyteness of
17559 string given to a process filter by a coding system used for
17560 decoding the process output.
17561
175621998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17563
17564 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17565 nonascii-translation-table.
17566 * msdos.c (IT_write_glyphs): Likewise.
17567 * fns.c (concat): Likewise.
17568 * charset.c (unibyte_char_to_multibyte): Likewise.
17569 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17570
175711998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17572
17573 * doc.c (Fdocumentation): Change the doc string for prefix
17574 commands to make it a complete sentence in one line.
17575
175761998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17577
17578 * s/irix6-5.h: New file.
17579 * s/irix6-0.h (IRIX6): Define this symbol.
17580 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17581 (bcopy, bcmp, bzero): Likewise.
17582 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17583 (C_SWITCH_MACHINE): New value for irix6.5.
17584
175851998-12-15 Richard Stallman <rms@gnu.org>
17586
17587 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17588 Do free malloc'd memory even in case of failure. Use xfree, not free.
17589 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17590 (base64_decode_1): Don't fail for short lines.
17591
17592 * print.c (printchar): Outputting multibyte characters
17593 to echo area always makes it multibyte.
17594
17595 * search.c (search_buffer): Don't use Boyer-Moore
17596 to search for an invalid multibyte code.
17597 In unibyte case, no need to check whether there are translations
17598 in more than one charset; just set charset_base to 0.
17599
176001998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17601
17602 * print.c (printchar): Cancel previous change.
17603
176041998-12-15 Kenichi Handa <handa@etl.go.jp>
17605
17606 * callproc.c: Include "ccl.h".
17607 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17608 bit in argument_coding.mode to tell encoding procedure to flush
17609 data. While encoding arguments, if argument_coding uses CCL
17610 program, initialize it again after encoding.
17611 (Fcall_process_region): Doc-string modified. Handle the case that
17612 NARGS is 3.
17613
17614 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17615 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17616 Set `ic' to the head of this command.
17617 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17618 code for an invalid code.
17619 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17620 based on VEC.
17621
17622 * charset.c (Qunknown): New variable.
17623 (init_charset_once): Intern and staticpro Qunknown. Initialize
17624 all elements of Vcharset_symbol_table to Qunknown.
17625 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17626 unibyte characters only. For an invalid composition sequence, set
17627 CHARSETS[1] to 1.
17628 (Ffind_charset_region): Call find_charset_in_str with an
17629 appropriate MULTIBYTE arg. If undefined charsets are found,
17630 include `unknown' is the return value.
17631 (Ffind_charset_string): Likewise.
17632 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17633 (str_cmpchar_id): Max composite character code should be less than
17634 GENERIC_COMPOSITION_CHAR.
17635
17636 * charset.h (find_charset_in_str): Update declaration.
17637
17638 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17639 final_char is invalid.
17640 (decode_coding): If coding->type is coding_type_ccl, call
17641 ccl_coding_driver even if SRC_BYTES is zero.
17642 (code_convert_region): Update `inserted' correctly after calling
17643 coding->post_read_conversion. Even after the code converter
17644 consumed all source text, call it once more if it is
17645 coding_type_ccl to flush out data.
17646
17647 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17648 CODING is handled by CCL program, call code_convert_region.
17649
17650 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17651 correctly.
17652 (string_byte_to_char): Likesize.
17653
17654 * print.c (printchar): When outputting a multibyte character to
17655 echo area, always set message_enable_multibyte to 1.
17656
17657 * process.c (read_process_output): If NBYTES is zero and
17658 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17659 and try decoding again.
17660 (Fprocess_send_eof): If the coding system of PROCESS
17661 requires flushing, call send_process with null-string at first.
17662
17663 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17664 with MULTIBYTE arg 0.
17665 * w32select.c (Fw32_set_clipboard_data): Likewise.
17666 * xselect.c (lisp_data_to_selection_data): Likewise.
17667
176681998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17669
17670 * search.c (Freplace_match): Set OPOINT clearly for the case
17671 where point is in the middle of the text to be replaced.
17672
17673 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17674 if compute_motion fails to advance at all, don't back it up.
17675
176761998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17677
17678 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17679
427ec082 17680 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17681
176821998-12-09 Richard Stallman <rms@gnu.org>
17683
17684 * insdel.c (insert_from_buffer_1): Properly count the size
17685 of output from conversion to multibyte even when input
17686 is split across the gap.
17687
176881998-12-09 Karl Heuer <kwzh@gnu.org>
17689
17690 * keyboard.c: Doc fixes.
17691
17692 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17693
176941998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17695
17696 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17697 characters, only convert CRLF to LF.
17698
176991998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17700
17701 * makefile.nt: Do string comparision of _NMAKE_VER.
17702
177031998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17704
17705 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17706 coding.h, and disptab.h
17707
17708 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17709 (syms_of_msdos): DEFVAR_LISP it.
17710 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17711 (internal_terminal_init): Set up insert_glyphs_hook and
17712 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17713 (unibyte_display_via_language_environment): New variable.
17714 (syms_of_msdos): Devfar it.
17715 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17716 Encode the character codes of the glyphs according to the
17717 terminal_coding in effect.
17718
177191998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17720
17721 * fns.c (Fstring_as_unibyte): Doc fix.
17722
177231998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17724
17725 * charset.h: Declare char_valid_p.
17726
177271998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17728
17729 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17730
17731 * msdos.c (init_environment): Record the time we started up.
17732 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17733 fast after startup (aka crash).
17734
177351998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17736
17737 * w32.c (check_windows_init_file): Use decode_env_path when
17738 using EMACSLOADPATH.
17739
177401998-12-02 Jason Rumney <jasonr@altavista.net>
17741
17742 * w32term.c (dumpglyphs): Use unsigned char arrays.
17743 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17744 for various languages.
17745 Compensate for fonts that have underhangs (e.g., Thai).
17746
17747 * w32term.h (FONT_MAX_WIDTH): New macro.
17748
177491998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17750
17751 * keyboard.c (Qlanguage_change): New variable.
17752 (syms_of_keyboard): Init it.
17753 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17754 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17755 keys; add name for Escape key; extend to 256 elements.
17756 (parse_modifiers): Make non-static.
17757
17758 * keyboard.h (parse_modifiers): Declare prototype.
17759
17760 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17761
17762 * w32fns.c (w32_last_error): Fix cut+paste error.
17763 (Vw32_phantom_key_code): New variable.
17764 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17765 (syms_of_w32fns): Init and register them.
17766 (reset_modifiers): Use a more precise test for whether Emacs has
17767 keyboard focus. Synchronize state of all keys that can be used as
17768 modifiers, to overcome problems arising from hot-keys.
17769 (w32_key_to_modifier): Be careful not to call intern() to avoid
17770 requiring thread synchronization.
17771 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17772 (w32_wnd_proc): Ensure lock key indicator lights are updated
17773 promptly on Windows 9x, by passing key events on to the system.
17774 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17775 responding to Windows key events when not wanted.
17776 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17777 Ctrl-NumLock into pause by the system.
17778 (w32_wnd_proc): Don't translate key combinations containing any
17779 modifiers other than shift (and capslock).
17780 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17781 can't determine the key states until we have keyboard focus).
17782 (Fw32_toggle_lock_key): New function.
17783 (syms_of_w32fns): Defsubr it.
17784
17785 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17786 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17787 (w32_console_toggle_lock_key): New function.
17788
17789 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17790
177911998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17792
17793 * search.c (Freplace_match): Set OPOINT clearly for the case
17794 where point is in the middle of the text to be replaced.
17795
17796 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17797 if compute_motion fails to advance at all, don't back it up.
17798
177991998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17800
17801 * xfns.c (Qouter_window_id): New variable.
17802 (syms_of_xfns): Initialize it.
17803 (x_report_frame_params): Set up outer-window-id parameter.
17804
17805 * keymap.c (Fsingle_key_description): Fix previous change.
17806
178071998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17808
17809 * lisp.h (Frequire): Update declaration.
17810
178111998-11-26 Kenichi Handa <handa@etl.go.jp>
17812
17813 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17814 if the charset is ascii.
17815 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17816
17817 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17818 make an appropriate one byte string.
17819 (char_bytes): Handle the case that C is a single byte char or has
17820 modifier bits.
17821
17822 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17823
17824 * cmds.c (internal_self_insert): If C has modifier bits, insert
17825 appropriate one byte char.
17826
178271998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17828
17829 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17830 Clear text properties in the new string.
17831
178321998-11-24 Felix Lee <flee@cygnus.com>
17833
17834 * process.c (read_process_output): Call signal_after_change.
17835
178361998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17837
17838 * buffer.c (syms_of_buffer): Doc fix.
17839
17840 * keyboard.c (syms_of_keyboard): Doc fix.
17841
178421998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17843
17844 * frame.c (Fset_mouse_position): Doc fix.
17845
178461998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17847
17848 * keymap.c (Fmake_keymap): Doc fix.
17849
178501998-11-17 Kenichi Handa <handa@etl.go.jp>
17851
17852 * category.c (word_boundary_p): If C1 or C2 are composite
17853 characters, test their first components.
17854
178551998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17856
17857 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17858 don't do save-excursion, just restore selected window.
17859
17860 * window.c (window_loop): For UNSHOW_BUFFER,
17861 always do consider minibuffer windows.
427ec082 17862
26901792
DL
178631998-11-16 Kenichi Handa <handa@etl.go.jp>
17864
17865 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17866
17867 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17868
17869 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17870
17871 * s/bsdos4.h: New file.
17872
178731998-11-16 Kenichi Handa <handa@etl.go.jp>
17874
17875 * Makefile.in (abbrev.o): Depend on charset.h
17876 (bytecode.o): Depend on charset.h.
17877
17878 * bytecode.c: Include charset.h.
17879
17880 * abbrev.c: Include charset.h.
17881
17882 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17883 the first component.
17884
178851998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17886
17887 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17888
178891998-11-11 Richard Stallman <rms@gnu.org>
17890
17891 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17892
17893 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17894
17895 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17896 (INTERRUPT_INPUT): #define commented out.
17897
17898 * m/aviion-intel.h: New file.
17899
179001998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17901
17902 * fns.c (MAX_ALLOCA): New macro.
17903 (Fbase64_encode_region, Fbase64_encode_string,
17904 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17905 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17906
179071998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17908
17909 * insdel.c (byte_combining_error): Error message improved.
17910
17911 * charset.c (char_valid_p): Handle a composite character correctly.
17912
179131998-11-11 Kenichi Handa <handa@etl.go.jp>
17914
17915 * charset.c (str_cmpchar_id): Check the byte sequence for
17916 composition more rigidly.
17917 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17918 contains an invalid multibyte sequence.
17919
17920 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17921
179221998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17923
17924 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17925 (WM_EMACS_SETKEYBOARDLAYOUT):
17926 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17927 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17928 (LEFT_WIN_PRESSED):
17929 (RIGHT_WIN_PRESSED):
26901792
DL
17930 (APPS_PRESSED): New console keyboard modifier flags.
17931
17932 * w32term.c (convert_to_key_event): Removed.
17933 (is_dead_key): Copied to w32fns.c.
17934 (w32_read_socket): Generate language_change_event. Modify to work
17935 with keyboard handling changes in w32_wnd_proc.
17936
17937 * w32proc.c (sys_kill): Set extended key flag when faking
17938 Ctrl-Break keystrokes.
17939 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17940 arbitrary locale property using a numerical index.
17941 (Vw32_valid_codepages): New variable.
427ec082
SS
17942 (enum_codepage_fn):
17943 (Fw32_get_valid_codepages):
17944 (Fw32_get_console_codepage):
17945 (Fw32_set_console_codepage):
17946 (Fw32_get_console_output_codepage):
17947 (Fw32_set_console_output_codepage):
17948 (Fw32_get_codepage_charset):
17949 (Fw32_get_valid_keyboard_layouts):
17950 (Fw32_get_keyboard_layout):
26901792
DL
17951 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17952 handling functions.
17953 (syms_of_ntproc): Register them.
17954
17955 * w32inevt.c: Include w32term.h and w32heap.h.
17956 (map_keypad_keys):
17957 (Vw32_enable_caps_lock):
17958 (Vw32_enable_num_lock):
17959 (Vw32_pass_lwindow_to_system):
17960 (Vw32_pass_rwindow_to_system):
17961 (Vw32_lwindow_modifier):
17962 (Vw32_rwindow_modifier):
17963 (Vw32_apps_modifier):
17964 (Vw32_scroll_lock_modifier):
17965 (w32_key_to_modifier): Add externs.
17966 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17967 Scroll Lock as potential modifiers; exclude numpad keys from
17968 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17969 code.
17970 (is_dead_key): Copy from w32fns.c.
17971 (w32_kbd_patch_key): Comment attempt to improve handling of
17972 dead-keys, and system bug relating to same on Windows NT. Work
17973 around the bug by calling ToUnicode and then converting to the
17974 correct codepage.
17975 (map_virt_key): Removed obsolete variable.
17976 (lispy_function_keys): Add extern.
17977 (key_event): Major rework of keyboard input handling: optionally
17978 recognize Windows keys and Apps key as modifiers; optionally treat
17979 NumLock, CapsLock and ScrollLock as function keys; let system
17980 translate keystrokes to characters to avoid system bugs relating
17981 to dead-key handling; preserve shift distinction for control
17982 characters. Remove some obsolete code.
17983
17984 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17985 and w32heap.h.
17986
17987 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17988 (Vw32_pass_lwindow_to_system):
17989 (Vw32_pass_rwindow_to_system):
17990 (Vw32_lwindow_modifier):
17991 (Vw32_rwindow_modifier):
17992 (Vw32_apps_modifier):
17993 (Vw32_enable_num_lock):
17994 (Vw32_enable_caps_lock):
17995 (Vw32_scroll_lock_modifier): New variables.
17996 (modifier_set): Return toggle state for Scroll Lock.
17997 (w32_key_to_modifier): New function. Returns chosen modifier bit
17998 for given key.
17999 (w32_get_modifiers): Returns modifier flags for
18000 non-keyboard input events.
18001 (construct_console_modifiers): Renamed from construct_modifiers;
18002 recognize Windows and Apps keys as modifiers.
18003 (w32_get_key_modifiers): New function. Returns modifier flags for
18004 keyboard input events.
18005 (map_keypad_keys): Make non-static. Use second arg as extended
18006 flag.
18007 (w32_grabbed_keys): New variable.
18008 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
18009 (register_hot_keys):
18010 (unregister_hot_keys):
18011 (lookup_vk_code):
18012 (w32_parse_hot_key):
18013 (Fw32_register_hot_key):
18014 (Fw32_unregister_hot_key):
18015 (Fw32_registered_hot_keys):
18016 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
18017 (post_character_message): New function.
18018 (w32_msg_pump): Handle new messages for using hotkeys and changing
18019 keyboard layout/language.
18020 (w32_wnd_proc): Major rework of keyboard input handling:
18021 optionally recognize Windows keys and Apps key as modifiers;
18022 optionally treat NumLock, CapsLock and ScrollLock as function
18023 keys; let system translate keystrokes to characters to avoid
18024 system bugs relating to dead-key handling; preserve shift
18025 distinction for control characters; forward keyboard
18026 layout/language changes to lisp; detect and convert hot-key events
18027 to normal keystrokes.
18028 (syms_of_w32fns): Register new functions and variables.
18029 (w32_last_error): New function for use in debugging.
18030
180311998-11-10 Kenichi Handa <handa@etl.go.jp>
18032
18033 * category.h (CATEGORY_SET): Adjusted for the change of
18034 cmpchar_component.
18035 (CATEGORY_SET): Likewise.
18036
18037 * charset.c (cmpchar_component): New arg NOERROR. Check
18038 composition char ID more strictly.
18039 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
18040 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
18041 return 255.
18042 (Fcompose_string): Signal error if STR contains a rule-based
18043 composition character.
18044
18045 * charset.h (cmpchar_component): Proto-type adjusted.
18046
180471998-11-09 Kenichi Handa <handa@etl.go.jp>
18048
18049 * charset.c (string_to_non_ascii_char): Return correct length for
18050 a charset of dimension 2 and composition character.
18051
180521998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18053
18054 * keymap.c (Fsingle_key_description): Handle generic characters.
18055
18056 * process.c (Fprocess_status): Doc fix.
18057
180581998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
18059
18060 * charset.c (init_charset_once): Fix previous change.
18061
180621998-11-06 Kenichi Handa <handa@etl.go.jp>
18063
18064 * charset.c (string_to_non_ascii_char): Fix previous change.
18065 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
18066
18067 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
18068 character correctly.
18069 (STRING_CHAR): Handle an invalid charater correctly.
18070
180711998-11-05 Kenichi Handa <handa@etl.go.jp>
18072
18073 * charset.c (string_to_non_ascii_char): Fix previous change.
18074
18075 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
18076
18077 * editfns.c (Fstring_to_char): Don't return a multibyte character
18078 if STRING is a unibyte string.
18079
18080 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18081 character.
18082
18083 * xdisp.c (display_text_line): Check validity of a multibyte character.
18084 (display_string): Likewise. Handle an invalid character correctly.
18085
180861998-11-05 Karl Heuer <kwzh@gnu.org>
18087
18088 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18089 If nothing to do, return immediately.
18090 (syms_of_insdel): Initialize combine_after_change_buffer.
18091
180921998-11-05 Richard Stallman <rms@gnu.org>
18093
18094 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18095
180961998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18097
18098 * w32term.c (w32_enable_unicode_output): Rename from
18099 w32_no_unicode_output.
18100 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18101 and new semantics.
18102
181031998-11-04 Jason Rumney <jasonr@altavista.net>
18104
18105 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18106 been created yet.
18107
18108 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18109
181101998-11-04 Kenichi Handa <handa@etl.go.jp>
18111
18112 * charset.c (string_to_non_ascii_char): Change the check for the
18113 varidity of multibyte form.
18114 (update_charset_table): Check validity of BYTES. Don't set
18115 bytes_by_char_head here.
18116 (init_charset_once): Set bytes_by_char_head completely.
18117
18118 * frame.c (do_switch_frame): Cancel previous change.
18119
18120 * print.c (print_string): Check validity of a character.
18121 (print): Likewise.
18122
18123 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18124
18125 * m/ews4800.h, s/ux4800.h: New files.
18126
181271998-11-03 Theodore Jump <tjump@tertius.com>
18128
18129 * makefile.nt: Compile multiple source files when possible.
18130
18131 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 18132
26901792
DL
181331998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18134
18135 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18136 so don't rely on it succeeding.
18137
18138 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18139 LOGFONT struct if x font doesn't specify the charset.
18140 (x_to_w32_charset): Change >= to == when testing results of
18141 stricmp.
18142
181431998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18144
18145 * fns.c (Frequire): New arg NOERROR.
18146
181471998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18148
18149 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18150
181511998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18152
18153 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18154 (syms_of_xfaces): Initialization deleted.
18155
18156 * textprop.c (Qmouse_face): Variable definition moved here.
18157 (syms_of_textprop): Initialize it.
18158
18159 * data.c (set_internal): For built-in maybe-local vars,
18160 when BINDFLAG is set, do not mark them as local.
18161
181621998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18163
18164 * insdel.c (replace_range): Fix previous change.
18165
181661998-10-31 Kenichi Handa <handa@etl.go.jp>
18167
18168 * editfns.c (Fsubst_char_in_region): Fix previous change.
18169 (Ftranslate_region): Fix previous change.
18170
18171 * fns.c (Fbase64_decode_region): Fix previous change.
18172
18173 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18174
18175 * insdel.c (byte_combining_error): New function.
18176 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18177 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18178 CHECK_BYTE_COMBINING_FOR_INSERT.
18179 (insert_from_buffer_1): Likewise.
18180 (adjust_after_replace): Check the posibility of inhibitted byte
18181 combining correctly.
18182 (replace_range): Before signaling an error for inhibitted byte
18183 combining, recover the buffer in a safe state.
18184 (del_range_2): Check the posibility of inhibitted byte combining
18185 correctly.
18186
181871998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18188
18189 * xselect.c (Vselection_coding_system): Doc fix.
18190
18191 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18192 when we have both char and byte position. Fix type clashes.
18193
18194 * eval.c (Fsignal): Use a separate format string when passing
18195 error message string to fatal, in case it contains %'s.
18196
18197 * editfns.c (Fchar_after): Fix type clashes.
18198
18199 * charset.c (Fchar_bytes): Doc fix.
18200 (char_bytes): Fix returned value to match returned type.
18201 (syms_of_charset): Fix type clash in initialisation of
18202 Vauto_fill_chars.
18203
182041998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18205
18206 * w32console.c (initialize_w32_display): Use buffer coords
18207 instead of buffer size (which may be larger than the window).
18208
18209 * fileio.c (init_fileio_once): New function.
18210
18211 * emacs.c (main): Invoke init_fileio_once.
18212
182131998-10-28 Paul Eggert <eggert@twinsun.com>
18214
18215 * xterm.c (XTread_socket): Check the returned value of
18216 XmbLookupString more carefully.
18217
182181998-10-28 Kenichi Handa <handa@etl.go.jp>
18219
18220 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18221 (DECODE_CHARACTER_DIMENSION1): Likewise.
18222 (DECODE_CHARACTER_DIMENSION2): Likewise.
18223 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18224
18225 * editfns.c (Fsubst_char_in_region): Fix previous change.
18226 (Ftranslate_region): Fix previous change.
18227
18228 * insdel.c (check_markers): Check if markers are at character boundry.
18229 (adjust_markers_for_insert): Fix previous change.
18230 (count_combining_before): Don't limit the check at BEGV.
18231 (count_combining_after): Don't limit the check at ZV.
18232 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18233 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18234 (insert_from_string_1): Likewise.
18235 (insert_from_buffer_1): Likewise.
18236 (adjust_after_replace): Inhibit bytes combined across region
18237 boundary. Update end_unchanged correctly.
18238 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18239 end_unchanged correctly.
18240 (del_range_2): Inhibit bytes combined across region boundary.
18241 Update end_unchanged correctly.
18242
182431998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18244
18245 * w32.c (check_windows_init_file): Also look in load path specified
18246 in environment.
18247
18248 * w32console.c (Fset_message_beep): Recognize 'silent.
18249 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18250
26901792
DL
18251 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18252
18253 * w32select.c (Vnext_selection_coding_system): New variable.
18254 (syms_of_w32select): DEFVAR_LISP it.
18255 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18256 non-nil. Always convert multibyte strings.
18257 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18258 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18259
26901792
DL
182601998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18261
18262 * fns.c (Fbase64_decode_string): Doc fix.
18263 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18264 Likewise.
18265
182661998-10-27 Dave Love <fx@gnu.org>
18267
18268 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18269 newline in doc string.
18270
182711998-10-27 Kenichi Handa <handa@etl.go.jp>
18272
18273 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18274 that byte combining before happens.
18275 (Ftranslate_region): Likewise.
18276
18277 * insdel.c (adjust_after_replace): Correctly handle the case that
18278 both byte combining before and byte combining after happen.
18279 (replace_range): Likewise.
18280
182811998-10-26 Kenichi Handa <handa@etl.go.jp>
18282
18283 * category.c (syms_of_category): Doc-string modified.
18284
18285 * coding.c (code_convert_region): Kill the work buffer created by
18286 pre-write-conversion.
18287
182881998-10-25 Jason Rumney <jasonr@altavista.net>
18289
18290 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18291
182921998-10-23 Kenichi Handa <handa@etl.go.jp>
18293
18294 * coding.c (code_convert_region): While preserving the orignal
18295 point, pay attention to the byte combining problem.
18296
18297 * fns.c (Fbase64_decode_region): Pay attention to the byte
18298 combining problem.
18299
18300 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18301 combined_before_bytes and combined_after_bytes into account.
18302 (count_combining_after): Handle the case that LENGTH is zero.
18303 (adjust_after_replace): Record deletion at correct buffer
18304 position. Handle the case that LEN is zero.
18305 (replace_range): Record deletion at correct buffer position.
18306 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18307 combined bytes.
18308
183091998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18310
18311 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18312
26901792
DL
183131998-10-21 Kenichi Handa <handa@etl.go.jp>
18314
18315 * coding.c (setup_coding_system): Fix setting up
18316 coding->spec.ccl.valid_codes for CCL based coding system.
18317 (code_convert_region): Set point to FROM before inserting the
18318 result of pre-write-funciton. Preserve original point.
18319 (code_convert_string): If coding->type is coding_type_ccl, do
18320 conversion even if the length of conversion region is zero.
18321
18322 * fontset.c: Include frame.h before fontset.h.
427ec082 18323 (list_fonts_func): Fix prototype.
26901792
DL
18324
18325 * frame.c: Include frame.h before fontset.h.
18326
18327 * xterm.c: Likewise.
18328
183291998-10-21 Jason Rumney <jasonr@altavista.net>
18330
18331 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18332 general macros. Don't call x_list_font directory, instead call a
18333 function set in list_fonts_func.
18334
18335 * fontset.h (list_fonts_func): Fix prototype.
18336
183371998-10-20 Jason Rumney <jasonr@altavista.net>
18338
18339 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18340
18341 * w32faces.c: Update comments referring to obsolete structs.
18342 (allocate_face, copy_face, face_eql, load_font,
18343 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18344 frame_update_line_height, merge_faces, compute_base_face,
18345 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18346
18347 * w32fns.c: (Vx_pixel_size_width): New global variable.
18348 (unibyte_display_via_language_environment): New global variable.
18349 (x_set_font): Add support for setting fontsets.
18350 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18351 font names to match xlfd-tight-regexp.
18352 (w32_load_font): Rewrite based on x_load_font.
18353 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18354 `iso8859-1' rather than `ansi'.
18355 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18356 end. Move charset into `charset registry' field.
18357 (enum_font_cb2): Check charsets match. Include width in font list.
18358 (w32_list_fonts): Rewrite based on x_list_fonts.
18359 Moved from w32term.c to have access to enumfont_t struct.
18360 (Fx_list_fonts): w32 specific version eliminated. Include
18361 `x-list-fonts.c'.
18362 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18363 functions for fontset support - adapted from x_ equivalents.
18364 (syms_of_w32fns): New lisp variables initialised. Function
18365 pointers for fontset.c set up.
18366
427ec082 18367 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18368 Add ENCODE_BIG5 macro from coding.c.
18369 (w32_no_unicode_output): New variable.
18370 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18371 functions.
18372 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18373 (dumpglyphs): Rewrite based on xterm.c equivalent.
18374 (x_new_font): Use functionality provided in fontset.c.
18375 (x_new_fontset): New function based on the one in xterm.c.
18376 (syms_of_w32term): Add w32-no-unicode-output flag.
18377
427ec082 18378 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18379 (Vx_pixel_size_width_font_regexp,
18380 unibyte_display_via_language_environment): Declare variables.
427ec082 18381 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18382 Declare functions.
18383 (w32_output): New fields font_baseline and fontset.
18384 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18385
18386 * w32xfns.c: Include charset.h and fontset.h.
18387
183881998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18389
18390 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18391
183921998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18393
18394 * msdos.c (mouse_init): Reset the button press/release info of the
18395 mouse driver.
18396 (mouse_preempted): New variable.
18397 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18398 (XMenuActivate): Preempt the mouse during menu-handling loop.
18399 Release the current time slice while idling in the menu-handling
18400 loop. Leave the loop only if the user pressed, then released the
18401 same button. Discard all mouse events that are pending in the
18402 event queue before exiting.
18403
184041998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18405
18406 * editfns.c (Fformat): Increase buffer size for floating format.
18407
184081998-10-17 Kenichi Handa <handa@etl.go.jp>
18409
18410 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18411 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18412 Declare auto-fill-chars as a Lisp variable and initialize it.
18413
18414 * charset.h (Vauto_fill_chars): Extern it.
18415
18416 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18417
184181998-10-16 Kenichi Handa <handa@etl.go.jp>
18419
18420 * casefiddle.c (casify_object): Use make_string instead of
18421 make_specified_string to cope with byte-combining situation.
18422
18423 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18424 1 when encountered with a code of the range 0x80..0x9F.
18425
184261998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18427
18428 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18429 trying $TMP and $TEMP, since the former is always set in msdos.c.
18430 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18431 the temporary files, check $TMPDIR as well.
18432
184331998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18434
427ec082 18435 * process.c (exec_sentinel, read_process_output):
26901792
DL
18436 Restore waiting_for_user_input_p after running Lisp code.
18437
18438 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18439 (command_loop): Likewise.
18440
184411998-10-14 Kenichi HANDA <handa@etl.go.jp>
18442
18443 * data.c (Faset): Fix previous change.
18444
18445 * fns.c (Ffillarray): Fix previous change.
18446
18447 * insdel.c (adjust_markers_for_combining): This function deleted.
18448 (adjust_markers_for_replace): Correctly adjust marker positions.
18449 Don't record these adjustment because they were recorded already.
18450 (combine_bytes): Don't adjust markers here.
18451
184521998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18453
18454 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18455
184561998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18457
18458 * keyboard.c (Fclear_this_command_keys): New function.
18459 (syms_of_keyboard): defsubr it.
18460
18461 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18462
184631998-10-12 Kenichi Handa <handa@etl.go.jp>
18464
18465 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18466
18467 * charset.c (Fstring): Call make_string instead of
18468 make_string_from_bytes.
18469 (Ffind_charset_region): Include `composition' in the returned list
18470 if the region contains any composite characters.
18471 (Ffind_charset_string): Include `composition' in the returned list
18472 if the string contains any composite characters.
18473 (find_charset_in_str): Handle CMPCHARP arg correctly.
18474
18475 * coding.c (shrink_decoding_region): If a charset other than ascii
18476 is initially designated to G0, don't shrink the region.
18477 (shrink_encoding_region): Likewise.
18478
18479 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18480 byte-combining situation.
18481
18482 * fns.c (clear_string_char_byte_cache): New function.
18483 (Ffillarray): Handle multibyte string correctly.
18484
18485 * lisp.h (clear_string_char_byte_cache): Extern it.
18486
18487 * xselect.c (lisp_data_to_selection_data): Call
18488 find_charset_in_str with CMPCHARP arg 0.
18489 * w16select.c (Fw16_set_clipboard_data): Likewise.
18490 * w32select.c (Fw32_set_clipboard_data): Likewise.
18491
184921998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18493
18494 * keyboard.c (parse_menu_item): For top level of menu bar,
18495 accept ordinary commands, and treat them just like a keymap.
18496
184971998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18498
18499 * xdisp.c (redisplay_window): Clear w->window_end_valid
18500 before running the window-scroll-functions hook, if appropriate.
18501
185021998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18503
18504 * data.c (Fstring_to_number): Don't recognize floating point
18505 if base is not 10.
18506
18507 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18508 (check_all_windows): New function for debugging tests.
18509 (syms_of_window): Initialize it.
18510
18511 * window.c (Qwindow_configuration_p): New variable.
18512 (Fwindow_configuration_frame): New function.
18513 (syms_of_window): defsubr it.
18514 (Fset_window_configuration): Return t if frame is live.
18515 Use Qwindow_configuration_p.
18516
18517 * xfns.c (check_x_display_info): Don't use selected_frame
18518 if it is dead.
18519
185201998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18521
18522 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18523
185241998-10-08 Kenichi Handa <handa@etl.go.jp>
18525
18526 * buffer.h (inhibit_modification_hooks): Extern it.
18527
18528 * buffer.c (inhibit_modification_hooks): New variable.
18529 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18530
18531 * charset.c (invalid_character): Prepend `0' to octal
18532 representation. Give error sufficient args.
18533
18534 * coding.c (code_convert_region): Set inhibit_modification_hooks
18535 to 1 before calling Fset_text_properties.
18536
18537 * insdel.c (signal_before_change): If inhibit_modification_hooks
18538 is nonzero, do nothing.
18539 (signal_after_change): Likewise.
18540
185411998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18542
18543 * process.c: Doc fixes.
18544
185451998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18546
18547 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18548
185491998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18550
18551 * w32.c (init_ntproc): Check for Windows init file.
18552 (term_ntproc): Do not check for it here.
18553
185541998-09-28 Kenichi Handa <handa@etl.go.jp>
18555
18556 * coding.c (check_composing_code): Fix previous change. Now it
18557 alwasy returns 0 or -1.
18558 (decode_coding_iso2022): Adjusted for the above change.
18559 (encode_coding_iso2022): When encoding the last block, flush out
18560 tailing garbage bytes.
18561 (setup_coding_system): Delete unnecessary code.
18562 (shrink_decoding_region): Check translation table. If ASCII
18563 should be translated, give up shrinking.
18564 (shrink_encoding_region): Likewise.
18565 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18566 (SHRINK_CONVERSION_REGION): New macro.
18567 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18568 properties here.
18569 (code_convert_region): In the case of encoding, always calulate
18570 correct character number.
18571 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18572 (code_convert_region1): Don't delete text properties here.
18573
18574 * insdel.c (adjust_after_replace): Don't delete text properties here.
18575
18576 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18577
185781998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18579
18580 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18581
185821998-09-26 Kenichi Handa <handa@etl.go.jp>
18583
18584 * coding.h (struct coding_system): New member composed_chars.
18585
18586 * coding.c (check_composing_code): If the current composing
18587 sequence doesn't end properly, return -1.
18588 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18589 (DECODE_CHARACTER_DIMENSION1): Likewise.
18590 (decode_coding_iso2022): Check validity of a composing sequence.
18591 (code_convert_string): If the length of text to be converted is
18592 shrunk to zero, don't perform code conversion.
18593 (shrink_decoding_region): Fix previous change.
18594
18595 * editfns.c (Fformat): Check format control characters.
18596
185971998-09-25 Kenichi Handa <handa@etl.go.jp>
18598
18599 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18600 single CR code correctly.
18601 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18602 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18603
186041998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18605
18606 * w32fns.c (w32_color_map_lookup): New function.
18607 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18608
186091998-09-22 Kenichi Handa <handa@etl.go.jp>
18610
18611 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18612
18613 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18614 strings unibyte.
18615 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18616
186171998-09-22 Kenichi Handa <handa@etl.go.jp>
18618
18619 * callint.c (Fcall_interactively): Don't use input method when
18620 reading a character in the case of `c' code letter.
18621
186221998-09-21 Dave Love <fx@gnu.org>
18623
18624 * editfns.c (Fsave_restriction): Doc fix.
18625
186261998-09-21 Richard Stallman <rms@gnu.org>
18627
18628 * lread.c (build_load_history): Do add to Vload_history
18629 even when dumping Emacs.
18630
186311998-09-18 Kenichi Handa <handa@etl.go.jp>
18632
18633 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18634 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18635 cause error if the program is going to output some bytes. When
18636 outputing a string to notify an error, check the case that
18637 DST_BYTES is zero.
18638
427ec082 18639 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18640
18641 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18642 user or the CCL program executed an invalid command, return
18643 CODING_FINISH_INTERRUPT.
18644 (code_convert_region): Pay attention to the converters return
18645 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18646
186471998-09-16 Kenichi Handa <handa@etl.go.jp>
18648
18649 * coding.c (code_convert_region): Update beg_unchanged and
18650 end_unchanged after we delete the source text.
18651
18652 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18653 position if it is FROM.
18654 (adjust_markers_for_combining): New function.
18655 (combine_bytes): Call adjust_markers_for_combining instead of
18656 adjust_markers_for_replace.
18657 (adjust_after_replace): Record deletion of combining after bytes
18658 with the correct position.
18659 (replace_range): Likewise. Record the actual deletion after
18660 recoding deletions of combining bytes.
18661
18662 * xdisp.c (message_log_check_duplicate): Count byte length of the
18663 latest message correctly.
18664
186651998-09-12 Richard Stallman <rms@gnu.org>
18666
18667 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18668 instead of SET_PT_BOTH.
18669 (try_window_id, display_text_line): Likewise.
18670
186711998-09-12 Karl Heuer <kwzh@gnu.org>
18672
18673 * data.c (Fmake_local_variable): Doc fix.
18674
186751998-09-10 Dave Love <fx@gnu.org>
18676
18677 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18678
186791998-09-10 Richard Stallman <rms@gnu.org>
18680
18681 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18682 (bcopy, bcmp, bzero): Add #undef.
18683
18684 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18685 first exit if selected frame is dead (no live frames remain).
18686 (read_key_sequence): Likewise.
18687
186881998-09-10 Karl Heuer <kwzh@gnu.org>
18689
18690 * emacs.c (main): Mention --display and --eval in help.
18691
186921998-09-07 Paul Eggert <eggert@twinsun.com>
18693
18694 * editfns.c (emacs_memftime): New function.
18695 (Fformat_time_string): Use it to handle null bytes in formats
18696 correctly.
18697
186981998-09-08 Kenichi Handa <handa@etl.go.jp>
18699
18700 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18701 (Ffind_charset_string): For unibyte string, return (ascii).
18702
18703 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18704 arg MARKERS 1.
18705
18706 * insdel.c (adjust_after_replace): Don't add combining bytes to
18707 the args given to adjust_point. Handle correctly the case that
18708 there are both before and after combining bytes.
18709 (replace_range): Likewise.
18710
187111998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18712
18713 * fns.c (base64_decode_1, base64_encode_1): New functions.
18714 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18715 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18716
187171998-09-07 Karl Heuer <kwzh@gnu.org>
18718
18719 * eval.c (error): After enlarging buffer, write to it, not to buf.
18720
18721 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18722
187231998-09-07 Kenichi Handa <handa@etl.go.jp>
18724
18725 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18726 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18727 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18728
18729 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18730 chars in produced byte sequence.
18731 (Ffind_operation_coding_system): Doc-string fixed.
18732
18733 * insdel.c (count_combining_after): Check also preceding bytes at
18734 POS if all characters in STRING are not character head.
18735
187361998-09-06 Paul Eggert <eggert@twinsun.com>
18737
18738 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18739 Don't assume that localtime and gmtime return non-NULL.
18740
187411998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18742
18743 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18744 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18745 New functions.
18746
187471998-09-06 Richard Stallman <rms@gnu.org>
18748
18749 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18750
18751 * lread.c (Fload): Handle case where openp finds a magic file
18752 but it has no `load' handler or that handler calls `load'.
18753 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18754
187551998-09-04 Dave Love <fx@gnu.org>
18756
18757 * buffer.c (enable-multibyte-characters): Doc fix.
18758
187591998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18760
18761 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18762
187631998-09-01 Kenichi Handa <handa@etl.go.jp>
18764
18765 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18766 address in buffer from byte-position.
18767
187681998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18769
18770 * w16select.c (Vnext_selection_coding_system): New variable.
18771 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18772 Vselection_coding_system.
18773 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18774 Vnext_selection_coding_system if non-nil.
18775 (Fw16_get_clipboard_data): Always convert a string that includes
18776 non-ASCII characters. Use Vnext_selection_coding_system if
18777 non-nil.
18778
187791998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18780
18781 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18782 mouse capture.
18783
187841998-08-31 Kenichi Handa <handa@etl.go.jp>
18785
18786 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18787 x_list_font returns.
18788
187891998-08-31 Paul Eggert <eggert@twinsun.com>
18790
18791 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18792 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18793
187941998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18795
18796 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18797 cursor, save and restore previous cursor position in the
18798 minibuffer.
18799
188001998-08-31 Kenichi Handa <handa@etl.go.jp>
18801
18802 * charset.c (unibyte_char_to_multibyte):
18803 Vnonacii_translation_table will convert a 7-bit charcater.
18804 (multibyte_char_to_unibyte): Handle the case that
18805 Vnonacii_translation_table converts a multibyte charcater to a
18806 unibyte charcter of less than 128.
18807 (init_charset_once): Initialize nonascii_insert_offset and
18808 Vnonacii_translation_table.
18809
18810 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18811 processing if CODING requires flushing.
18812 (encode_coding): Likewise.
18813 (code_convert_region): Likewise.
18814 (code_convert_string): Likewise.
18815
18816 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18817 to convert a character less than 160 to multibyte.
18818 * insdel.c (copy_text): Likewise.
18819 (count_size_as_multibyte): Likewise.
18820 * xterm.c (dumpglyphs): Likewise.
18821
188221998-08-29 Paul Eggert <eggert@twinsun.com>
18823
18824 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18825 using negation, not subtraction; this makes a difference with
18826 IEEE floating point arithmetic (and also if integer arithmetic
18827 is ones' complement or signed-magnitude!).
18828
188291998-08-29 Karl Heuer <kwzh@gnu.org>
18830
18831 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18832
188331998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18834
18835 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18836
188371998-08-28 Paul Eggert <eggert@twinsun.com>
18838
18839 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18840 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18841 path only if we're not building with Motif.
18842
188431998-08-28 Kenichi Handa <handa@etl.go.jp>
18844
18845 * insdel.c (adjust_after_replace): Fix the code to record undo
18846 information for the case that `before combining' happens. Remove
18847 text properties which are added to the new text by
18848 offset_intervals.
18849
18850 * coding.c (code_convert_region1): Remove all text properties of
18851 the region.
18852
188531998-08-28 Kenichi Handa <handa@etl.go.jp>
18854
18855 * charset.h (CHAR_BYTES): New macro.
18856
18857 * charset.c (Fchar_bytes): Now always return 1.
18858 (char_bytes): New function.
18859
18860 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18861 range, return nil.
18862 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18863 nil.
18864
18865 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18866 * fns.c (concat): Likewise.
18867 * insdel.c (count_size_as_multibyte): Likewise.
18868 * xdisp.c (message_dolog): Likewise.
18869
188701998-08-27 Kenichi Handa <handa@etl.go.jp>
18871
18872 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18873 correctly. They are for SS2 and SS3 respectively.
18874 (ccl_coding_driver): Fix previous change.
18875
188761998-08-26 Paul Eggert <eggert@twinsun.com>
18877
18878 * xterm.c (fixup_locale): New function. For now, it resets
18879 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18880 resets LC_MESSAGES to "C".
18881 (x_term_init): Use it to fix up the locale after setlocale
18882 (LC_ALL, "").
18883
188841998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18885
18886 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18887 case it was prototyped the old way.
18888
188891998-08-25 Kenichi Handa <handa@etl.go.jp>
18890
18891 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18892 returns a null string. This happens when dxpc 3.7 is being used.
18893
188941998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18895
18896 * keyboard.c (input-method-previous-message): Doc fix.
18897
18898 * coding.c (file-coding-system-alist,
18899 select-safe-coding-system-function): Doc fix.
18900
189011998-08-23 Kenichi HANDA <handa@etl.go.jp>
18902
18903 * coding.c (detect_coding_iso2022): Don't check the byte length of
18904 succeeding codes (0xa0..0xFF) if the codes follows single shift
18905 code (SS2 or SS3).
18906
189071998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18908
18909 * coding.c (detect_coding_system): If detect_eol_type returns
18910 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18911 correctly.
18912
18913See ChangeLog.7 for earlier changes.