(IT_note_mouse_highlight): Process overlays in the
[bpt/emacs.git] / src / ChangeLog
CommitLineData
e2db3069
MB
12000-07-22 Miles Bader <miles@gnu.org>
2
3 * textprop.c (Fprevious_single_char_property_change): The initial
4 property value should be from the position preceding POSITION, not
5 following it.
6
5e3203e4
EZ
72000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
8
9 * coding.c (syms_of_coding): Doc fix for
10 inhibit-iso-escape-detection.
11
62145073
GM
122000-07-21 Gerd Moellmann <gerd@gnu.org>
13
c20aeb83
GM
14 * xterm.c (note_mouse_highlight): Process overlays in the right
15 order of priority.
16
743934db
GM
17 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
18
19 * xterm.c (note_mouse_highlight): If help-echo was found in an
20 overlay, use that overlay as the object in which the help was
21 found.
22
d1dc7e43
GM
23 * window.c (foreach_window_1): Fix typo reversing an if-condition.
24
62145073
GM
25 * window.c (foreach_window): Instead of a fake variable argument
26 list, take one USER_DATA argument.
27 (foreach_window_1): Likewise, and call callback functions with two
28 args, the window and USER_DATA.
29 (struct check_window_data): New struct.
30 (check_window_containing): Use it.
31 (window_from_coordinates): Set up a struct check_window_data for
32 foreach_window.
33 (add_window_to_list, freeze_window_start): Change parameters
34 according to new calling convention.
35
36 * window.h (foreach_window): Change prototype.
37
38 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
39
402000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
41
42 * xmenu.c (menu_help_callback): Call show_help_echo with
43 additional arguments OBJECT and POS.
44
11270583
KH
452000-07-21 Kenichi Handa <handa@etl.go.jp>
46
07b14857
KH
47 * data.c (Faset): Allow storing any multibyte character in a
48 string. Convert unibyte string to multibyte if necessary.
49
11270583
KH
50 * xfns.c (x_encode_text): New function.
51 (x_set_name): Use x_encode_text.
52 (x_set_title): Likewise.
53
54 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
55
56 * xterm.h (x_encode_text): Add prototype.
57
bc75b4fd
DL
582000-07-20 Dave Love <fx@gnu.org>
59
60 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
61 xfree, not free.
62
48c14970
EZ
632000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
64
65 * msdos.c (help_echo_window): New variable.
66 (syms_of_msdos): Initialize and staticpro it.
67 (IT_note_mode_line_highlight): Set help_echo_window.
68 (IT_note_mouse_highlight): Ditto.
69 (dos_rawgetc): Store help_echo_window in the second event produced
70 for HELP_EVENTs.
71
72 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
73 Record the object that generated the help echo and the position of
74 that object in help_echo_object and help_echo_pos. Record that
75 some glyphs in a row are displayed in mouse-face.
76 (IT_update_begin): Don't clear mouse highlight unless one of the
77 enabled glyph rows is marked as being displayed in mouse-face.
78 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
79 and position recorded in help_echo_object and help_echo_pos to the
80 event queue.
81 (IT_menu_display): Accept a new argument PN: the pane number of
82 the current menu pane. Record the pane number and the item
83 number of the item which has associated help string.
84 (XMenuActivate): Update the prototype for help_callback in
85 function declaration. Call IT_menu_display with the current menu
86 pane number as an additional argument. Call help_callback with
87 two additional arguments: the pane number and the item number of
88 the menu item associated with the help text.
89 (help_echo_object, help_echo_pos): New variables.
90 (syms_of_msdos): Initialize them and staticpro help_echo_object.
91
92 * msdos.h (XMenuActivate): Update prototype.
93
4279296d
GM
942000-07-19 Gerd Moellmann <gerd@gnu.org>
95
47db06aa
GM
96 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
97 Add some more prototypes.
98
99 * xterm.c, xterm.h: Add some more prototypes.
100
101 * lisp.h (Fnext_single_char_property_change): Add prototype.
102
103 * dispnew.c (direct_output_for_insert): Remove confusing
104 outer local variable mouse_face_overwritten_p.
105 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
106
4279296d
GM
107 * alloc.c (allocate_string_data): Don't copy old string contents.
108
670acd62
KH
1092000-07-19 Kenichi Handa <handa@etl.go.jp>
110
111 * coding.c (code_convert_region): Delete text properties before
112 shrinking the conversion region.
113
7cea38bc
GM
1142000-07-18 Gerd Moellmann <gerd@gnu.org>
115
dc1cac59
GM
116 * dispnew.c (update_text_area): Write the whole row if it
117 has mouse-face in it.
118
85a8aca9
GM
119 * xfaces.c (face-alternative-font-family-alist): Remove
120 DEFVAR_LISP; staticpro instead.
121
7cea38bc
GM
122 * xmenu.c (menu_help_callback): Call show_help_echo with
123 new arguments.
124
125 * keyboard.c (show_help_echo): Add parameter WINDOW.
126 (read_char): Call show_help_echo with window extracted from Lisp
127 help event.
128 (gen_help_event): Add parameter WINDOW.
129
130 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
131
132 * xterm.c (help_echo_window): New variable.
133 (note_mouse_highlight, note_tool_bar_highlight): Set
134 help_echo_window.
135 (XTread_socket): Pass help_echo_window to gen_help_event.
136 (syms_of_xterm): Initialize and staticpro help_echo_window.
137
f8276b77
DL
1382000-07-18 Dave Love <fx@gnu.org>
139
140 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
141 systime.h.
142
088831a6
GM
1432000-07-18 Gerd Moellmann <gerd@gnu.org>
144
3d6cd763
GM
145 * alloc.c (allocate_string_data): If string had already data
146 assigned, copy old contents to new string data.
147
148 * coding.c (syms_of_coding): Fix typo in spelling of variable
149 `inhibit-iso-escape-detection'.
150
088831a6
GM
151 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
152
153 * Makefile.in: Add dependencies on dispextern.h.
154 (alloca.o): Don't define malloc and define EMACS_FREE instead of
155 `free'; both can conflict with system header files.
156
bc8a8d55
KH
1572000-07-18 Kenichi Handa <handa@etl.go.jp>
158
159 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
160 undefined.
161
069f5950
DL
1622000-07-18 Dave Love <fx@gnu.org>
163
164 * window.c (Fwindow_list): Declare arg `window'.
165
aa96c820
KH
1662000-07-18 Kenichi Handa <handa@etl.go.jp>
167
168 * coding.c (setup_coding_system): Don't override the explicitly
169 specified designations.
170
06be8d32
MB
1712000-07-15 Miles Bader <miles@gnu.org>
172
173 * editfns.c (char_property_eq, char_property_stickiness): Renamed
174 from `text_property_eq' and `text_property_stickiness', respectively.
175 (find_field, Fconstrain_to_field, char_property_eq)
176 (char_property_stickiness): Changed to call char-property functions
177 instead of text-property-only ones.
178
179 * textprop.c (Fnext_single_char_property_change): Made a subr (was
180 `next_single_char_property_change'). Do more error checking, and
181 cleanup limit behavior.
182 (Fprevious_single_char_property_change): New function.
183 (syms_of_textprop): Initialize new subrs.
184
185 * xdisp.c (display_prop_end, invisible_text_between_p):
186 Call Fnext_single_char_property_change instead of
187 next_single_char_property_change.
188
3fddcdc3
JR
1892000-07-15 Jason Rumney <jasonr@gnu.org>
190
191 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
192 after menu is finished with.
193 (add_menu_item): Only consider wv->title as a menu title.
194 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
195
196 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
197 null title.
198 (FONT_REGEXP): Remove unused macro, and its sub-components.
199 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
200
201 * w32term.c (help_echo_object, help_echo_pos): New variables.
202 (note_mode_line_highlight): Store additional information about the
203 help-echo in help_echo_object and help_echo_pos. Check both
204 `local-map' and `keymap' properties for changing the cursor
205 (note_mouse_highlight): Store additional information about the
206 help-echo in help_echo_object and help_echo_pos.
207 (note_tool_bar_highlight): Set help_echo_object to nil and
208 help_echo_pos to -1.
209 (w32_read_socket): Use gen_help_event instead of filling
210 input_events manually.
211 (syms_of_w32term): Staticpro help_echo_object.
212 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
213 set, arrange for a mouse-highlight redisplay in
214 XTframe_up_to_date.
215 (x_clear_mouse_face): New function.
216 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
217 (x_update_window_begin): No need to turn off the mouse
218 highlight here.
219 (show_mouse_face): Set the mouse_face_p flag of glyph rows
220 depending on whether they contain glyphs highlighted in
221 mouse-face.
222 (x_fill_stretch_glyph_string): Consume runs of stretch
223 glyphs instead of a single one.
224 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
225 with new argument list.
226 (x_set_glyph_string_gc): Make sure the face's GC is valid.
227 (x_append_glyph, x_append_composite_glyph)
228 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
229 changes in struct glyph starting 1999-12-27. See comments for
230 xterm.c on 2000-07-05.
231
178c5d9c
SS
2322000-07-14 Sam Steingold <sds@gnu.org>
233
234 * xfaces.c (realize_x_face): Fix the last patch:
235 check `default_face' before dereferencing.
236
6fe533f6
DL
2372000-07-14 Dave Love <fx@gnu.org>
238
069f5950 239 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 240
dd7b81cf
KH
2412000-07-14 Kenichi Handa <handa@etl.go.jp>
242
0693904a 243 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 244 default_face's fontset, not using the default fontset.
0693904a 245
dd7b81cf
KH
246 * coding.c (inhibit_iso_escape_detection): New variable.
247 (syms_of_coding): Make it a Lisp variable.
248 (detect_coding_iso2022): If inhibit_iso_escape_detection is
249 nonzero, ignore ISO2022's escape sequence.
250
d5aa31d8
GM
2512000-07-14 Gerd Moellmann <gerd@gnu.org>
252
e5acf0ca
GM
253 * alloca.c (malloc) [emacs]: Define as xmalloc.
254
bd23a692
GM
255 * xfns.c (Fx_show_tip): If frame parameters contain a position,
256 use that instead of the mouse position. Add parameters DX and DY.
257
258 * dispextern.h (Fx_show_tip): Adjust number of parameters
259 in prototype.
260
9662da0b
GM
261 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
262 if HELP is a function, call it with OBJECT and POS as parameters
263 to get the help to display.
264 (gen_help_event, kbd_buffer_store_help_event): New functions.
265 (kbd_buffer_get_event): Construct the Lisp help-event differently.
266 (read_char): Call show_help_echo with new parameters.
267
178c5d9c 268 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
269 Add prototypes.
270
271 * xterm.c (help_echo_object, help_echo_pos): New variables.
272 (note_mode_line_highlight): Store additional information about the
273 help-echo in help_echo_object and help_echo_pos. Check both
274 `local-map' and `keymap' properties for changing the cursor
275 (note_mouse_highlight): Store additional information about the
276 help-echo in help_echo_object and help_echo_pos.
277 (note_tool_bar_highlight): Set help_echo_object to nil and
278 help_echo_pos to -1.
279 (XTread_socket): Use gen_help_event instead of filling
280 input_events manually.
281 (syms_of_xterm): Staticpro help_echo_object.
282
283 * xmenu.c (menu_highlight_callback): Use
284 kbd_buffer_store_help_event instead of setting up and input_event
285 structure manually.
286
287 * xdisp.c (eval_form): GCPRO argument sexpr.
288 (call_function): New function.
289 (handle_single_display_prop): Use call_function and FUNCTIONP
290 instead of checking whether if font_height is a symbol and
291 using eval_form.
292
293 * eval.c (internal_condition_case_2): New function.
294
295 * lisp.h (FUNCTIONP): New macro.
296 (internal_condition_case_2, call_function): Add prototypes.
297
d5aa31d8
GM
298 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
299 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
300 Always set `arg' member of input_events.
301 (construct_menu_click): Unused function removed.
302
303 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
304
305 * w32term.c (construct_mouse_click, construct_mouse_wheel)
306 (construct_drag_n_drop, x_scroll_bar_handle_click)
307 (w32_read_socket): Always set `arg' member of input_events.
308
309 * keyboard.c (show_help_echo): Use eval_form. Add comment.
310
311 * lisp.h (eval_form): Add prototype.
312
313 * xdisp.c (eval_form): Make it externally visible.
314
0f1a9b23
GM
3152000-07-13 Gerd Moellmann <gerd@gnu.org>
316
317 * xterm.c (x_handle_tool_bar_click): Store the frame in the
318 frame_or_window slot of TOOL_BAR_EVENT input events instead of
319 consing. For prefix events, store the frame in the `arg' slot of
320 the event, otherwise store the key there.
321 (XTread_socket): Instead of consing, use the frame_or_window slot
322 of HELP_EVENTs for the frame, and the `arg' slot for the help
323 string.
324
325 * xmenu.c (menu_highlight_callback): Store help string in the
326 `arg' member of the input event; don't cons.
327 (menubar_selection_callback): Use the `arg' slot of input events
328 to queue additional information, instead of consing.
329
330 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
331
332 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
333 TOOL_BAR_EVENTs.
334 (w32_read_socket): Adapt to changes in HELP_EVENTs.
335
336 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
337 input events to queue additional information, instead of consing.
338
339 * keyboard.c (kbd_buffer_gcpro): Renamed from
340 kbd_buffer_frame_or_window. Now used for all Lisp objects
341 referenced from the input queue.
342 (kbd_buffer_store_event): Always use structure assignment for
343 copying input events. Record all Lisp objects referenced from
344 events in kbd_buffer_gcpro.
345 (kbd_buffer_get_event): Construct Lisp `help-echo' events
346 differently from input events. Test for prefix menu_bar_events
347 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
348 event in kbd_buffer_gcpro to nil.
349 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
350 frame_or_window is equal to its arg member as prefix events.
351 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
352 used by an input event to nil.
353 (init_keyboard): Use two times the size of the input queue
354 for kbd_buffer_gcpro.
355 (syms_of_keyboard): Likewise.
356
357 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
358 USER_SIGNAL_EVENT.
359
360 * termhooks.h (struct input_event): Add member `arg'.
361 (MENU_BAR_EVENT): Renamed from menu_bar_event.
362 (USER_SIGNAL_EVENT): Renamed from user_signal.
363
364 * xfaces.c (ASET): Remove definition.
365
366 * lisp.h (AREF, ASET, ASIZE): New macros.
367
368 * fontset.c (AREF, ASIZE): Remove definitions.
369
370 * fns.c (AREF): Remove definition.
178c5d9c 371
0f1a9b23
GM
372 * composite.c (AREF): Remove definition.
373
712eaef2
GM
3742000-07-12 Gerd Moellmann <gerd@gnu.org>
375
d8ee7803
GM
376 * dispnew.c (redraw_overlapped_rows): Add missing local.
377 (scrolling_window): Remove debug code.
378
712eaef2
GM
379 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
380 Before scrolling, turn off a mouse-highlight in the window
381 being scrolled.
382
383 * xterm.c (x_update_window_end): Add parameter
384 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
385 redisplay in XTframe_up_to_date.
386 (x_clear_mouse_face): New function.
387 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
388
389 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
390 current glyph row.
391 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
392 it when any row is written to that contains glyphs highlighted in
393 mouse-face.
394 (update_window): Call the window update end hook with new
395 parameter MOUSE_FACE_OVERWRITTEN_P.
396 (direct_output_for_insert): Give up if row contains mouse-face.
397
398 * dispextern.h (struct redisplay_interface): Add parameter
399 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
400 (clear_mouse_face): New function pointer member.
401
02010917
SM
4022000-07-11 Stefan Monnier <monnier@cs.yale.edu>
403
404 * syntax.c (back_comment): Use one switch rather than a few `if's.
405 Obey open_paren_in_column_0_is_defun_start.
406 When reverting to the `slow' method, try to nicely handle the case
407 of nested comments by checking that the comment-starter we found
408 does indeed match the comment-ender.
409 (scan_sexps_forward, scan_sexps_forward):
410 Ignore excessive opening parenthesis rather than throwing an error.
411
d76c03ea
GM
4122000-07-11 Gerd Moellmann <gerd@gnu.org>
413
414 * doc.c (Fsubstitute_command_keys): Handle case that a GC
415 in Fwhere_is_internal or get_keymap_1 relocates string contents.
416
417 * dispnew.c (direct_output_forward_char): Give up if currently
418 displaying a message instead of the minibuffer contents.
419
420 * xterm.c (x_update_window_begin): No need to turn off the mouse
421 highlight here.
422 (show_mouse_face): Set the mouse_face_p flag of glyph rows
423 depending on whether they contain glyphs highlighted in
424 mouse-face.
425
426 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
427 compare the mouse_face_p flags of both rows.
428
429 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
430
d55ead18
EZ
4312000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
432
433 * keyboard.c (show_help_echo): Accept additional parameter
434 ok_to_overwrite_keystroke_echo.
435 (read_char): Call show_help_echo with a zero
436 ok_to_overwrite_keystroke_echo argument.
437 * keyboard.h (show_help_echo): Update prototype of
438 show_help_echo.
439 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
440 ok_to_overwrite_keystroke_echo argument.
441 * w32menu.c (w32_menu_display_help): Call show_help_echo with
442 non-zero ok_to_overwrite_keystroke_echo argument.
443
df75b1a3
GM
4442000-07-10 Gerd Moellmann <gerd@gnu.org>
445
4b92c49a
GM
446 * xdisp.c (try_window_id): If changes are all below what is
447 displayed in the window, and point is in the window, we still
448 might have to find point on the display.
449
450 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
451 glyphs instead of a single one.
452 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
453 with new argument list.
454 (x_set_glyph_string_gc): Make sure the face's GC is valid.
455
df75b1a3
GM
456 * keymap.c (get_keymap_1): Add comment that this function can GC.
457 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
458 comment that functions can GC.
459 (Fset_keymap_parent): GCPRO arg KEYMAP.
460
4314cf3e
EZ
4612000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
462
463 * msdos.c (XMenuActivate): After exiting the menu, restore the
464 echo area message and erase it.
465
ab49ce15
KH
4662000-07-10 Kenichi Handa <handa@etl.go.jp>
467
468 * fontset.c (Ffontset_info): Make the return value more compatible
469 with that of Emacs 20.
470
090a072f
GM
4712000-07-07 Gerd Moellmann <gerd@gnu.org>
472
473 * eval.c (Fsignal): Handle case that backtrace_list is null.
474
f92de4a6
KH
4752000-07-07 Kenichi Handa <handa@etl.go.jp>
476
477 * ccl.c (Fccl_execute): Typo fixed.
478
dd8888a1
GM
4792000-07-06 Gerd Moellmann <gerd@gnu.org>
480
e5c81191 481 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 482
dd8888a1
GM
483 * window.c (Fwindow_list): Reverse list at the end.
484 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
485 means allow windows on OWINDOW's frame, only.
486 (window_loop): Simplified; use Fwindow_list.
487
488 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
489
485266d0
GM
4902000-07-05 Gerd Moellmann <gerd@gnu.org>
491
492 * xterm.c (XTread_socket): Increment handling_signal at the start,
493 decrement it at the end.
494
495 * eval.c (handling_signal): New variable.
496 (Fsignal): Abort if handling_signal is non-zero.
497
498 * lisp.h (handling_signal): External declaration.
178c5d9c 499
485266d0
GM
500 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
501
80fcd514
KR
5022000-07-05 Ken Raeburn <raeburn@gnu.org>
503
504 Sound support for NetBSD through "Linux emulation" support:
505 * config.in (HAVE_SOUNDCARD_H): Undef.
506 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
507 * Makefile.in (LIBSOUND): New variable.
508 (LIBES): Include it.
509 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
510 <soundcard.h>.
511 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
512 elsewhere.
513 (vox_open): Use DEFAULT_SOUND_DEVICE.
514 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
515
d5c5cddd
GM
5162000-07-05 Gerd Moellmann <gerd@gnu.org>
517
518 * print.c (print_error_message): If Vsignaling_function is set,
519 show it in *Messages*.
520
521 * lisp.h (Vsignaling_function): External declaration.
522
523 * eval.c (Vsignaling_function): New variable.
524 (Fsignal): Compute it.
525 (syms_of_eval): Staticpro it.
526
65171e3a
DL
5272000-07-05 Dave Love <fx@gnu.org>
528
529 * syswait.h: Use the autoconf recommended approach. Old code
530 #if'd out in case we need to revert.
531
178c5d9c 532 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 533
e2c46326
AI
5342000-07-05 Andrew Innes <andrewi@gnu.org>
535
536 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
537 when non-NULL instead of __morecore, to take account of buffer
538 memory. This also solves a problem with spurious memory warnings
539 on Windows.
540
541 * ralloc.c: Make real_morecore non-static.
542
543 * eval.c (internal_condition_case): Comment out abort if
544 interrupt_input_blocked is not zero.
545
546 * makefile.nt: Add support for `bootstrap' and related targets.
547 Include minimal debug info in emacs.exe in release build.
548 Remove all dependencies on lisp.h, and fixup some others.
549
550 * w32.c (init_environment): Install code from 20.7 for providing
551 default values for environment variables, based on the
552 executable's own location.
553 (map_w32_filename): Handle filenames that are longer than
554 MAX_PATH.
555 (sys_socket): Install socket inheritance bug fix from 20.7.
556
557 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
558 here via blockinput.h).
559
a027a91b
SM
5602000-07-05 Stefan Monnier <monnier@cs.yale.edu>
561
e4b31601
SM
562 * w32menu.c (w32_menu_display_help):
563 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
564
565 * keyboard.h (show_help_echo): Declare.
566
567 * keyboard.c (show_help_echo): New function, extracted from read_char.
568 Feval its `msg' argument if it's a cons cell.
569 (read_char): Use it.
4cf8d9d5 570 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 571
178c5d9c 572 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 573 (note_tool_bar_highlight, XTread_socket):
178c5d9c 574 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
575 (dos_rawgetc):
576 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
577 (note_tool_bar_highlight, w32_read_socket):
578 Do not gratuitously ignore non-string `help-echo' properties.
579
88d75730
GM
5802000-07-05 Gerd Moellmann <gerd@gnu.org>
581
969f7e79
GM
582 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
583
71201b00
GM
584 * window.c (delete_all_subwindows): Reset Vwindow_list.
585
88d75730
GM
586 * xterm.c (x_append_glyph, x_append_composite_glyph)
587 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
588 changes in struct glyph starting 1999-12-27. Some bit-fields of
589 struct glyph were not set, which made glyphs unequal when compared
590 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
591 effects were the result. This also depended on the contents of
592 memory returned by xmalloc. If flickering happens again, activate
593 the code in clear_glyph_row that's in #if 0. If the flickering is
594 gone with that, chances are that it is caused by something
595 similar.
596
597 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 598
88d75730
GM
599 * dispextern.h: Add some comments.
600
601 * window.c (add_window_to_list): Add parameter LIST.
602 (window_list): Order list so that, for each frame, windows are
603 in canonical order, and so that frames appear in the list in
604 the order given by Vframe_list.
605 (next_window): Reverse the handling of NEXT_P.
606
53654733
GM
6072000-07-04 Gerd Moellmann <gerd@gnu.org>
608
87efd256
GM
609 * window.c (Vwindow_list): New variable.
610 (make_window, delete_window): Set Vwindow_list to nil.
611 (check_window_containing): New function.
612 (window_from_coordinates): Rewritten.
613 (add_window_to_list, window_list, candidate_window_p)
614 (decode_next_window_args, next_window): New functions.
615 (Fnext_window, Fprevious_window): Rewritten in terms of
616 next_window.
617 (Fwindow_list): New function.
618 (Fother_window): Cleaned up.
619 (foreach_window): Add a longer "variable argument list". Let
620 callback function return 0 to indicate that cycling over windows
621 should stop.
622 (foreach_window_1): Likewise.
623 (freeze_window_start): Return int.
624 (init_window): New function.
625 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
626
627 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
628 input_event with bzero.
629 (main): Call init_window.
630
53654733
GM
631 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
632 a menu filter.
633
4a8c194f
KH
6342000-07-04 Kenichi Handa <handa@etl.go.jp>
635
636 * composite.h (make_composition_value_copy): Extern it.
637
638 * composite.c (make_composition_value_copy): New function.
639
640 * editfns.c (Fformat): While copying text properties, make each
641 composition property value a copy.
642
643 * fns.c (concat): While copying text properties, make each
644 composition property value a copy.
645
831a6cb0
GM
6462000-07-03 Gerd Moellmann <gerd@gnu.org>
647
2f516940
GM
648 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
649
178c5d9c 650 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
651 marked already.
652
831a6cb0
GM
653 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
654 include those frames as candidates which have their focus
655 redirected to the minibuffer frame.
656
d9c4f922
SM
6572000-07-03 Stefan Monnier <monnier@cs.yale.edu>
658
659 * fns.c (Fputhash): Return `value' rather than nil.
660
3780bc22
GM
6612000-06-30 Gerd Moellmann <gerd@gnu.org>
662
97d176db
GM
663 * frame.c (next_frame): Don't check focus redirection in case
664 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
665 unless their focus is redirected, which contradicts the
666 specification of next-frame, and leads to infinite loops in
667 certain situations when cycling through windows with next-window.
668
dca9961d
KH
6692000-06-30 Kenichi Handa <handa@etl.go.jp>
670
671 * coding.c (code_convert_region): Even if the length of text is
672 zero, try to convert it if coding->type is coding_type_ccl.
673 (decode_coding_string, encode_coding_string): Likewise.
674
d5483ab1
GM
6752000-06-28 Gerd Moellmann <gerd@gnu.org>
676
af5c25e1 677 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 678 the display if windows_or_buffers_changed.
af5c25e1
GM
679
680 * dispnew.c (struct row_entry): New structure.
681 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
682 (row_table_size, old_lines, new_lines, old_lines_size)
683 (new_lines_size, run_pool, runs_size, runs): New variables.
684 (add_row_entry): New function.
685 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 686 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
687 holding them in local variables. Use a larger hash table whose
688 size depends on glyph matrix sizes. Don't use bzero to clear the
689 hash table; instead, clear used slots only.
690
691 * fns.c (next_almost_prime): Make it externally visible.
692
693 * lisp.h (next_almost_prime): Add prototype.
694
d5483ab1
GM
695 * s/isc4-0.h (sigunblock): Define.
696
697 * s/sco5.h (sigunblock): Define.
698
93e40f40
DL
6992000-06-27 Dave Love <fx@gnu.org>
700
701 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
702 (moved to osf5-0.h).
703 [!NOT_C_CODE]: Protect string.h stuff.
704
705 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
706 (sys_siglist, NSIG): Definitions moved here from osf1.h.
707
3c4b7685
GM
7082000-06-27 Gerd Moellmann <gerd@gnu.org>
709
97d176db 710 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
711 below the last line from the needed window height.
712
32cad0aa
SM
7132000-06-26 Stefan Monnier <monnier@cs.yale.edu>
714
715 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
716 (Fwidget_get): Use it.
717 (syms_of_fns): Defsubr it.
718
2c69ced2
GM
7192000-06-26 Gerd Moellmann <gerd@gnu.org>
720
178c5d9c 721 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
722 display info for XIM.
723 (xim_open_dpy): Likewise.
724 (xim_close_dpy): Don't free the display info's XIM.
725
726 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
727
728 * config.in (USE_XIM): New define.
729
3fc720e4
GM
730 * keymap.c (get_keyelt): For menu-items containing a `:filter
731 FILTER', apply FILTER to the menu-item's definition to get the
732 real definition to use.
733
734 * lisp.h (QCfilter): External declaration.
735
2c69ced2
GM
736 * xfns.c (Fimage_size): New function.
737 (syms_of_xfns): Defsubr it.
738
f978b2a2
AS
7392000-06-26 Andreas Schwab <schwab@suse.de>
740
741 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
742 Fstring_as_unibyte.
743
94cc7892
DL
7442000-06-25 Dave Love <fx@gnu.org>
745
746 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
747 tgetnum.
748
749 * Makefile.in (blockinput.h): Depend on atimer.h.
750 (atimer.h): Depend on systime.h.
751
752 * blockinput.h: Protect against multiple inclusion. Include
753 atimer.h.
754
755 * atimer.h: Protect against multiple inclusion. Include
756 systime.h.
757
758 * lisp.h (swap_in_global_binding): Declare.
759
b8c24556
KR
7602000-06-24 Ken Raeburn <raeburn@gnu.org>
761
762 * process.c (Fopen_network_stream): Turn off atimers for duration
763 of call to connect. (Patch from Gerd.)
764
8cf8560b
DL
7652000-06-23 Dave Love <fx@gnu.org>
766
511c7541
DL
767 * ralloc.c: Maybe include unistd.h
768
8cf8560b
DL
769 * emacs.c (setgrp): Undefine before defining.
770 (malloc_warning, set_time_zone_rule, index): Prototype.
771
772 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
773 HAVE_STRUCT_TIMEZONE.
774
775 * s/osf1.h: Move string.h hack here from alpha.h and make it
776 conditional.
777 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
778 _XOPEN_SOURCE.
779 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
780 (SOCKLEN_TYPE): Don't define.
781
782 * m/alpha.h: Remove string.h hack.
783
784 * s/osf5-0.h: New file.
785
786 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
787 include time.h, done by systime.h.
788 [__FreeBSD__]: Remove redundant includes.
789
3fc720e4 790 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
791 (delete_temp_file): Return Qnil to avoid warning.
792
793 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
794
795 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
796 HAVE_X_WINDOWS.
797
798 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
799
800 * composite.h (compose_text): Declare.
801
802 * xterm.c: Don't include sys/types.h unconditionally. Don't
803 protect its inclusion with !USG (following xmenu.c).
804
ea055732
GM
8052000-06-23 Gerd Moellmann <gerd@gnu.org>
806
807 * xfns.c (x_create_tip_frame): Initialize frame's colors like
808 in x_create_frame.
809
74b01b80
EZ
8102000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
811
812 * coding.c (decode_eol_post_ccl): Special handling for undecided
813 and inconsistent EOL types.
814
64f3a166
GM
8152000-06-22 Gerd Moellmann <gerd@gnu.org>
816
16cf31f7
GM
817 * xrdb.c (x_load_resources): Add default resource for scroll bar's
818 trough color and main window's background color.
819
178c5d9c 820 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
821 differently.
822
823 * xterm.h (Xt_app_con): External declaration.
824
825 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 826
486a103d
GM
827 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
828
64f3a166
GM
829 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
830 (handle_invisible_prop): Record the start of invisible text in
831 it->add_overlay_start.
832 (struct overlay_entry): Add member `overlay'.
833 (handle_overlay_change): Simplify.
834 (next_overlay_string): After having processed overlay strings at the
835 end of the buffer, record that fact in
836 it->overlay_strings_at_end_processed_p.
837 (compare_overlay_entries): If before- and after-strings come
838 from the same overlay, let before-strings come first.
839 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
840 (load_overlay_strings): Take it->add_overlay_start into account
841 when adding overlay strings.
842
843 * dispextern.h (struct it): Add member add_overlay_start.
844
bb746ea6
DL
8452000-06-22 Dave Love <fx@gnu.org>
846
847 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
848
849 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
850
a8f573f3
KH
8512000-06-22 Kenichi Handa <handa@etl.go.jp>
852
853 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
854 is greater than 0.
855
9f2bbc92
DL
8562000-06-21 Dave Love <fx@gnu.org>
857
178c5d9c 858 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 859
3ee5041c
SM
8602000-06-21 Stefan Monnier <monnier@cs.yale.edu>
861
862 * syntax.c (back_comment): Simplify string-parity counting (with
863 the added benefit of handling multiple string-styles as long as
864 they are not intertwined).
865 Jump to the slow code as soon as a comment starter is found in
866 a "string_lossage" position. Fixes the case: " /* " /* " */.
867
4c343001
DL
8682000-06-21 Dave Love <fx@gnu.org>
869
870 * Makefile.in: Use GETLOADAVG_LIBS.
871
872 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
873 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
874
e6365855
SM
8752000-06-20 Stefan Monnier <monnier@cs.yale.edu>
876
877 * syntax.c (describe_syntax): Recognize the `n'estable bit.
878 (Fforward_comment, scan_lists):
879 Check the comstyle of single-char comment-starters.
880 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
881 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
882 Check the comstyle of single-char comment-starters.
883 Clarify control-flow around the Scomment case.
e6365855 884
5700d2cc
DL
8852000-06-20 Dave Love <fx@gnu.org>
886
d355bd8a
SM
887 * fns.c (make_hash_table, maybe_resize_hash_table):
888 Cast arg of next_almost_prime.
5700d2cc 889
178c5d9c 890 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
891
892 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
893 and unistd.h.
894
4a27bdfb
GM
8952000-06-20 Gerd Moellmann <gerd@gnu.org>
896
a61d762c
GM
897 * keyboard.c (adjust_point_for_property): Check if display
898 property should be treated as intangible by looking at its
899 value.
900
178c5d9c 901 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
902 (display_prop_intangible_p): New functions.
903
904 * dispextern.h (display_prop_intangible_p): Add prototype.
905
906 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 907
4a27bdfb
GM
908 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
909 argument to sigprocmask.
910
911 * s/sco5.h (sigblock): Redefined to pass a pointer as second
912 argument to sigprocmask.
913
914 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
915 sigprocmask_set, and pass a pointer to it to sigprocmask.
916
917 * sysdep.c (sigprocmask_set): New variable.
918
919 * fileio.c (make_temp_name): Don't use `%s' in string passed to
920 report_file_error.
921
427ec082
SS
9222000-06-20 Sam Steingold <sds@gnu.org>
923
924 * xrdb.c: Don't declare xmalloc, xrealloc.
925
8972fe79 9262000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
927
928 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
929 (re_comp): Cast gettext return value to avoid complaints when
930 !HAVE_LIBINTL.
931
074b6efe
DL
9322000-06-20 Dave Love <fx@gnu.org>
933
f85c008a
DL
934 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
935 HAVE_GETTIMEOFDAY.
936
5700d2cc 937 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 938
d355bd8a 939 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
940
941 * m/alpha.h: Don't declare xmalloc, xrealloc.
942
0af4f205
DL
943 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
944
945 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
946
947 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
948
949 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
950 HAVE_GETWD.
951
074b6efe
DL
952 * keyboard.h (poll_for_input_1): Declare.
953
954 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
955
956 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
957
958 * doprnt.c: Don't declare xmalloc, xrealloc.
959
960 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
961 (getenv, ctime, getwd): Removed.
962 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
963
964 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
965 x_set_tool_bar_lines.
966
967 * config.in: Add HAVE_GETWD. Move some definitions above
968 machine/system includes.
969
68a5e97b
KH
9702000-06-20 Kenichi Handa <handa@etl.go.jp>
971
95417e1e
KH
972 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
973
68a5e97b
KH
974 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
975 contain information about ENCODING.
976
977 * fontset.c (FONTSET_ASCII): Use the first element of char table
978 for an ASCII font, not defalt slot.
979 (fontset_ref_via_base): If FONTSET doesn't contain information for
980 C, try the default fontset.
981 (make_fontset): Don't copy the default fontset.
982 (fontset_font_pattern): Likewise.
983 (accumulate_font_info): If ELT is nil, use the corresponding
984 element in the default fontset.
985
3b4fa1b2
DL
9862000-06-19 Dave Love <fx@gnu.org>
987
943e731c
DL
988 * syntax.c (Fparse_partial_sexp): Doc fix.
989
990 * regex.h: Test PROTOTYPES as well as __STDC__.
991
3b4fa1b2
DL
992 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
993 errno, strerror. Put text after #endif in comment.
994
995 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
996 pcc).
997
998 * xterm.c (x_frame_of_widget): Likewise.
999
cdf0357b
GM
10002000-06-19 Gerd Moellmann <gerd@gnu.org>
1001
1002 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1003 to Vfundamental_mode_abbrev_table.
1004
1005 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1006 bogus objects are marked. This slows down GC by ~80 percent, but
1007 it might be worth trying when debugging GC-related problems.
1008 This feature requires conservative stack marking to be enabled.
1009
1010 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1011 returns XLookupChars, reset `modifiers' to zero.
1012
998e9f8c
DL
10132000-06-19 Dave Love <fx@gnu.org>
1014
1015 * mktime.c: Unprotoized.
1016
18e21ce8 10172000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1018
1019 * data.c (set_internal): If variable is frame-local,
1020 store the new value immediately into the frame parameter alist.
1021
140c4ac6
KR
10222000-06-19 Ken Raeburn <raeburn@gnu.org>
1023
14358466
KR
1024 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1025 in the custom handler pointer.
1026
140c4ac6
KR
1027 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1028 value, or checks for CHAR_META can fail when Lisp_Object is a
1029 union type.
1030 * keymap.c (get_keyelt): Likewise.
1031
10d7bf84
KH
10322000-06-19 Kenichi Handa <handa@etl.go.jp>
1033
1034 * ccl.h (struct ccl_program): New member eol_type.
1035 (struct ccl_spec): New member cr_carryover.
1036
1037 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1038 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1039
1040 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1041 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1042 (decode_eol_post_ccl): New function.
1043 (decode_coding): Don't detect EOL format here for CCL based coding
1044 systems.
1045 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1046 decode_eol_post_ccl after running the CCL program.
1047 (code_convert_region): Don't detect EOL format here for CCL based
1048 coding systems.
1049 (decode_coding_string): Likewise.
1050
52e386c2
KR
10512000-06-18 Ken Raeburn <raeburn@gnu.org>
1052
1053 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1054 when treating it as an integer.
1055
1056 * coding.h (encode_coding_string): Declare.
1057
1058 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1059 it as an integer.
1060
1061 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1062 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1063 to be passed to get_local_map.
1064
1065 * sound.c (Fplay_sound): Don't call make_number on
1066 Frun_hook_with_args count argument.
1067
1068 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1069 for lisp objects in X event structure data field, when lisp
1070 objects are represented with unions.
1071 (x_scroll_bar_to_input_event): Ditto.
1072
b357b9d4
KR
10732000-06-16 Ken Raeburn <raeburn@gnu.org>
1074
1075 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1076 termination of string. Fix sense of test whether
1077 Vline_number_display_limit is an integer.
b357b9d4 1078
a871441d
GM
10792000-06-16 Gerd Moellmann <gerd@gnu.org>
1080
a9021acd
GM
1081 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1082 only if HAVE_X_WINDOWS.
1083
6344985d
GM
1084 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1085 of titles.
1086
427ec082 1087 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1088 out of bounds.
1089
228b083e
EZ
10902000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1091
1092 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1093 of its headers.
1094
c25b53a2
KH
10952000-06-15 Kenichi Handa <handa@etl.go.jp>
1096
1097 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1098 start of the while loop.
1099
a6981b11
GM
11002000-06-15 Gerd Moellmann <gerd@gnu.org>
1101
e9924e52
GM
1102 * atimer.c (alarm_signal_handler): Add forward declaration.
1103
a6981b11
GM
1104 * data.c (set_internal): Remove debug code.
1105
25fa6deb
GM
11062000-06-14 Gerd Moellmann <gerd@gnu.org>
1107
dce6b995
GM
1108 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1109
9f817ea4
GM
1110 * unexec.c (toplevel) [COFF]: Include coff.h.
1111
1112 * s/lynxos.h: New file.
1113
1114 * keymap.c (Fsingle_key_description): Enclose function key and
1115 event symbol names in angle brackets.
1116
8a4e3c0c
GM
1117 * xdisp.c (setup_echo_area_for_printing): Call
1118 message_log_maybe_newline if message_buf_print is not set.
1119
1120 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1121 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1122 function does something useful even when message_buf_print is
1123 already set.
1124
25fa6deb
GM
1125 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1126 variables.
1127 (ensure_echo_area_buffers): Initialize echo buffer's
1128 truncate lines setting to nil.
1129 (with_echo_area_buffer): Don't set the echo buffer's truncate
1130 lines setting here.
8a4e3c0c 1131 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1132 of message_truncate_lines.
1133 (resize_mini_window): Handle case that lines are truncated.
1134 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1135 message-truncate-lines.
1136
1137 * keyboard.c (read_char): Bind message-truncate-lines to t
1138 while displaying a help-echo.
1139
1140 * lisp.h (Qmessage_truncate_lines): External declaration.
1141
163dcff3
GM
11422000-06-13 Gerd Moellmann <gerd@gnu.org>
1143
1681ead6
GM
1144 * xdisp.c (Vline_number_display_limit): Renamed from
1145 line_number_display_limit.
1146 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1147 Extend documentation string. Initialize
1148 Vline_number_display_limit to nil meaning no limit.
1149 (decode_mode_spec): Use Vline_number_display_limit with its new
1150 meaning.
1151
163dcff3
GM
1152 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1153
18e21ce8 11542000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1155
1156 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1157
163dcff3
GM
1158 * xfns.c (x_set_frame_parameters): Comment fix.
1159
1160 * frame.c (store_frame_param): Call swap_in_global_binding if the
1161 variable's current binding was chosen based on this frame.
1162
1163 * data.c (swap_in_global_binding): New function.
1164
a704139d
EZ
11652000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1166
1167 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1168 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1169
9b6610db
EZ
11702000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1171
1172 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1173
c68833d2
JR
11742000-06-12 Jason Rumney <jasonr@gnu.org>
1175
1176 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1177
1178 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1179
1180 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1181
1182 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1183
ed1056b3
GM
11842000-06-12 Gerd Moellmann <gerd@gnu.org>
1185
1186 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1187 (syms_of_xfaces): Defsubr Sdump_colors.
1188 (x_free_colors): Don't treat b&w specially on default visual.
1189 (x_free_dpy_colors): New function.
1190 (free_face_colors): Don't check visual class; it's done
1191 in x_free_colors.
1192
1193 * xterm.c (x_frame_of_widget): New function.
1194 (x_alloc_nearest_color_for_widget): Use it.
1195 (x_copy_dpy_color): New function.
1196 (x_destroy_window): Free various colors.
1197
5050a2ef
KH
11982000-06-12 Kenichi Handa <handa@etl.go.jp>
1199
1200 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1201
1202 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1203
1204 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1205
1206 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1207
1208 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1209
fb1b041d
DL
12102000-06-11 Dave Love <fx@gnu.org>
1211
1212 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1213
ff96b5f4
EZ
12142000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1215
1216 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1217
db8eeecd
GM
12182000-06-11 Gerd Moellmann <gerd@gnu.org>
1219
ed1056b3 1220 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1221 to `XEvent *'.
1222
49b71c5f
KH
12232000-06-10 Kenichi Handa <handa@etl.go.jp>
1224
c479bd55
KH
1225 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1226 (regex_compile): Fix the code for handling the case of single byte
1227 char and multibyte char being mixed in a range within [...].
1228
ff6a65c2
KH
1229 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1230 and dst_multibyte members of coding.
1231
49b71c5f
KH
1232 * charset.c (update_charset_table): Update the table
1233 bytes_by_char_head.
1234 (init_charset_once): Initialize elements of bytes_by_char_head to
1235 1 except for leading codes for private charases.
1236
1237 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1238 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1239 sequence.
1240
9e80b57d
KR
12412000-06-09 Ken Raeburn <raeburn@gnu.org>
1242
1243 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1244 access the data it doesn't point to.
1245
f83fe4b4
GM
12462000-06-08 Gerd Moellmann <gerd@gnu.org>
1247
1248 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1249 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1250 event queue. This is necessary because Emacs otherwise won't
1251 perform a switch-frame to a new frame until some other event, for
1252 example a keystroke event, forces it to do so. This has various
1253 effects, one visible being that the cursor of a frame created with
1254 C-x 5 2 or switched to with a window manager key binding like
1255 A-TAB stays hollow because selected_window isn't on the newly
1256 focused frame until the switch-frame is performed.
1257
1258 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1259 generating a switch-frame event if necessary.
1260
1261 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1262
1263 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1264 it's an integer.
1265
0890801b
KH
12662000-06-08 Kenichi Handa <handa@etl.go.jp>
1267
1268 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1269 charset.
1270
173cbca8
GM
12712000-06-07 Gerd Moellmann <gerd@gnu.org>
1272
3091c2a6
GM
1273 * window.c (displayed_window_lines): Take empty lines at
1274 the bottom of a window into account.
427ec082 1275
f38952fe
GM
1276 * window.c (displayed_window_lines): New function.
1277 (Fmove_to_window_line): Use displayed_window_lines to determine
1278 the number of lines to move, instead of using the window's height.
1279
1280 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1281 to stop reading, even if the form read sets point to a different
1282 value when evaluated.
1283
427ec082 1284 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1285 put the cursor.
1286
6ba6c818
KH
12872000-06-07 Kenichi Handa <handa@etl.go.jp>
1288
1289 * fileio.c (e_write): Free composition data if stored in
1290 coding->cmp_data.
1291
5f1aea9a
GM
12922000-06-06 Gerd Moellmann <gerd@gnu.org>
1293
666852af
GM
1294 * xdisp.c (display_line): Set row's and iterator's
1295 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1296 Set cursor even if row ends in the middle of a character.
1297 (dump_glyph_row): Print values of new flags.
1298 (redisplay_window) <cursor movement in unchanged window>: When
1299 point has been moved forward, and PT is at the end of the cursor
1300 row, don't place the cursor in the next row if the cursor row ends
1301 in the middle of a character or at ZV.
1302
1303 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1304 (struct glyph_row): Add starts_in_middle_of_char_p and
1305 ends_in_middle_of_char_p.
1306 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1307 ends_in_middle_of_char_p flag.
1308 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1309
d13f3e2e
GM
1310 * term.c (append_glyph): Revert change of 2000-06-06.
1311
1312 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1313 padding glyph not fitting on line as whole character not
1314 fitting on line.
1315
5f1aea9a
GM
1316 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1317 this isn't true for images with `:ascent 100'.
1318
10cda9b0
KH
13192000-06-06 Kenichi Handa <handa@etl.go.jp>
1320
ed00559d
KH
1321 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1322 as modified if it is originally unmodified.
1323
10cda9b0
KH
1324 * term.c (encode_terminal_code): Change the way to check if
1325 terminal coding does any conversion.
1326 (append_glyph): Set glyph->pixel_width correctly.
1327
1328 * xdisp.c (display_line): While checking line continuation, pay
1329 attention to a padding glyph.
1330
1969fae2
GM
13312000-06-05 Gerd Moellmann <gerd@gnu.org>
1332
1333 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1334
162ccef4
DL
13352000-06-05 Dave Love <fx@gnu.org>
1336
f19f32dd
DL
1337 * xdisp.c: Include fontset.h.
1338
1339 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1340
1341 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1342
1343 * dispnew.c: Conditionally include term.h.
1344
1345 * coding.h: Declare code_convert_string_norecord.
1346
1347 * frame.h (struct frame): Use volatile unconditionally.
1348
1349 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1350
1351 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1352
1353 * systime.h: Protect against multiple inclusion.
1354 (timezone) [USG5_4]: Define as time_t.
1355
1356 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1357 (Foptimize_char_table, make_temp_name): Declare.
1358
1359 * Makefile.in (xdisp.o): Depend on fontset.h.
1360
1361 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1362
1363 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1364 (Foptimize_char_table, make_temp_name): Declare.
1365
427ec082 1366 * s/irix4-0.h:
162ccef4
DL
1367 * s/irix5-0.h:
1368 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1369
2082fe81
DL
13702000-06-02 Dave Love <fx@gnu.org>
1371
1372 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1373
dcf671d2
GM
13742000-06-02 Gerd Moellmann <gerd@gnu.org>
1375
1376 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1377 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1378 be freed.
1379
1380 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1381 glyph, use the ASCII NUL character to determine the face.
1382
d42122a3
DL
13832000-06-02 Dave Love <fx@gnu.org>
1384
1385 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1386 (VFORK_RETURN_TYPE): Remove.
427ec082 1387
d42122a3
DL
1388 * config.in: Add NO_MATHERR.
1389
dd432f16
DL
13902000-06-01 Dave Love <fx@gnu.org>
1391
90aa4ea8
DL
1392 * cmds.c (internal_self_insert): Don't check
1393 Vbefore_change_function, Vafter_change_function.
1394
1395 * insdel.c (signal_before_change, signal_after_change): Likewise.
1396
1397 * buffer.c (Vbefore_change_function, Vafter_change_function):
1398 Variables and their initializations deleted.
1399
2330c9d4
DL
1400 * callint.c (Fcall_interactively): Doc fix.
1401
dd432f16
DL
1402 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1403
bf9e8804
DL
14042000-05-31 Dave Love <fx@gnu.org>
1405
1406 * textprop.c: Revert last change -- duplicated.
1407
3694b4ab
GM
14082000-05-31 Gerd Moellmann <gerd@gnu.org>
1409
1410 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1411 in #if 0.
1412
1413 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1414
f14156cd
JR
14152000-05-31 Jason Rumney <jasonr@gnu.org>
1416
8119aab8
JR
1417 * search.c (Fre_search_forward, Fre_search_backward)
1418 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1419
f14156cd
JR
1420 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1421
4aab9be3
JR
14222000-05-30 Jason Rumney <jasonr@gnu.org>
1423
1424 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1425 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1426
1427 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1428 member.
1429
1430 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1431 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1432 expand a nil default_filename.
1433
1434 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1435 pointer to glyph_to_pixel_coords, not a frame.
1436
1437 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1438 coding.h to dependencies.
1439
1440 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1441
1442 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1443 window pointer to be consistent with w32term.c and xterm.c.
1444
1445 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1446 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1447 (Qline_spacing, Qcenter): New variables.
1448 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1449 (x_set_line_spacing): New function.
1450 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1451 macros.
1452 (x_specified_cursor_type): New function.
1453 (x_set_cursor_type): Use it.
1454 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1455 and icon strings.
1456 (validate_x_resource_name, x_get_resource_string): Measure lengths
1457 of external strings in bytes.
1458 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1459 GetTextExtentPoint32 with NULL title.
1460 (Fx_create_frame): Initialize Qline_spacing.
1461 (w32_load_system_font): Initialize font->double_byte_p.
1462 (x_to_w32_charset): Use Vw32_charset_info_alist.
1463 (Image, busy cursor, tooltip functions): Merged changes from
1464 xfns.c. Not yet functional on Windows.
1465
1466 * w32gui.h (W32FontStruct): Add double_byte_p member.
1467
1468 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1469 (emacs_button_translation): Use it.
1470 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1471 in `mask' to be set.
1472
1473 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1474 menu strings.
1475
1476 * w32term.c: Format and doc changes to bring closer to xterm.c.
1477 (w32_char_font_type): New enum.
1478 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1479 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1480 (w32_encode_char): New function.
1481 (x_encode_char): Removed.
1482 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1483 x_encode_char and w32_font_is_double_byte.
1484 (x_produce_image_glyph): Use image_ascent.
1485 (x_produce_glyphs): Use new version of w32_per_char_metric and
1486 handle NULL return value. Allow extra line spacing.
1487 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1488 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1489 w32_font_type member of glyph instead.
1490 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1491 (fast_find_position): Make sure not to consider rows not visible
1492 in the window.
1493 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1494 w32_menu_display_help with input blocked, as it can abort.
1495 (x_display_and_set_cursor): Choose cursor depending
1496 on buffer-local value of cursor_type.
1497 (x_draw_bar_cursor): Add parameter WIDTH.
1498
1499 * w32term.h (CP_DEFAULT): Define.
1500 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1501
10fc3187
GM
15022000-05-30 Gerd Moellmann <gerd@gnu.org>
1503
1504 * search.c (Fre_search_forward, Fre_search_backward)
1505 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1506
d0555360
KH
15072000-05-30 Kenichi Handa <handa@etl.go.jp>
1508
1509 * coding.c (detect_coding_iso2022): Fix code for checking
1510 CODING_CATEGORY_MASK_ISO_8_2.
1511
f1ad044f
SM
15122000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1513
1514 * regex.c (PREFETCH_NOLIMIT): New function.
1515 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1516
84ec3b4b
GM
15172000-05-29 Gerd Moellmann <gerd@gnu.org>
1518
66254a13
GM
1519 * syntax.c (find_defun_start): Move test for
1520 open_paren_in_column_0_is_defun_start outside of the loop.
1521
49e70dec
GM
1522 * xdisp.c (redisplay_window): Really switch buffers when
1523 displaying mode lines, and temporarily set selected_frame to the
1524 frame of the window that's redisplayed.
1525
84ec3b4b
GM
1526 * xfaces.c (free_realized_faces): Block/unblock input.
1527 (free_realized_multibyte_face): Ditto.
1528
869a3a14
DL
15292000-05-29 Dave Love <fx@gnu.org>
1530
1531 * textprop.c (Qkeymap): New variable.
1532 (syms_of_textprop): Intern it.
1533
1534 * keymap.c: Include intervals.h.
1535 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1536
1537 * Makefile.in (keymap.o): Depend on intervals.h.
1538
1539 * keyboard.c (menu_bar_items, tool_bar_items)
1540 (Fexecute_extended_command): Deal with `keymap' property.
1541 (read_key_sequence): Track map from `keymap' property as well as
1542 `local_map'.
1543
1544 * intervals.c (get_local_map): Extra arg to allow looking for
1545 `keymap' too.
1546
1547 * intervals.h (map_property): New enum.
1548 (get_local_map): Extra arg using it.
1549 (Qkeymap): Declare.
1550
84ec3b4b 1551 * lisp.h (get_local_map): Don't declare here.
869a3a14 1552
89d0c844
KH
15532000-05-29 Kenichi Handa <handa@etl.go.jp>
1554
1555 * Makefile.in (callproc.o): Depend on composite.h.
1556
1557 * callproc.c: Include composite.h.
1558 (Fcall_process): Handle composition correctly.
1559
1560 * coding.h (coding_allocate_composition_data): Extern it.
1561 (coding_restore_composition): Likewise.
1562
1563 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1564 yet allocated, finish decoding with result
1565 CODING_FINISH_INSUFFICIENT_CMP.
1566 (coding_allocate_composition_data): Make it non-static.
1567 (coding_restore_composition): Likewise.
1568
797a084a
EZ
15692000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1570
1571 * charset.c (syms_of_charset): Revert last change.
1572
cf872af5
EZ
15732000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1574
1575 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1576 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1577 Handa.
cf872af5 1578
5b1ae051
EZ
15792000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1580
1581 * charset.c (syms_of_charset): Set width of character sets
1582 eight-bit-control and eight-bit-graphic to 1 column.
1583
34ec9ebe
GM
15842000-05-26 Gerd Moellmann <gerd@gnu.org>
1585
1586 * config.in (HAVE_SPEED_T): New define.
1587
1588 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1589 `extern speed_t'.
1590
dd854dc2
DL
15912000-05-26 Dave Love <fx@gnu.org>
1592
1593 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1594
1595 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1596 (Fsubr_arity): New function.
1597 (syms_of_data): Install them.
1598
ba9f8f95
KH
15992000-05-26 Kenichi Handa <handa@etl.go.jp>
1600
0f3e0672
KH
1601 * charset.c (init_charset_once): Set the table bytes_by_char_head
1602 correctly.
1603
cebefb44
KH
1604 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1605 the default fontset to what Emacs uses by default.
0f3e0672
KH
1606 (check_registry_encoding): This function deleted.
1607 (Fset_fontset_font): Remove the adhoc condition for the default
1608 fontset. Allow cons in FONTNAME.
cebefb44 1609
0f3e0672
KH
1610 * fns.c (map_char_table): Ignore char-table entries for
1611 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1612
7a18af49
KR
16132000-05-25 Ken Raeburn <raeburn@gnu.org>
1614
1615 * emacs.c (main): Initialize keyboard syms before initializing
1616 window code, so face names are available.
1617
d2af47df
SM
16182000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1619
1620 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1621 of an anchor at the beginning of a shy-group.
1622
fc6a6a4e
GM
16232000-05-25 Gerd Moellmann <gerd@gnu.org>
1624
1625 * xdisp.c (handle_invisible_prop): Don't try to skip over
1626 invisible text if end of text is already reached.
1627
005f0d35
DL
16282000-05-25 Dave Love <fx@gnu.org>
1629
02513cdd
DL
1630 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1631
005f0d35
DL
1632 * coding.c (encode_eol): Add null statement after label.
1633
89f6ca4e
EZ
16342000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1635
1636 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1637 2000-05-20.
1638
a4e1759e
KH
16392000-05-25 Kenichi Handa <handa@etl.go.jp>
1640
1641 * ccl.c (ccl_driver): Fix previous change.
1642
eacfd7fe
KH
16432000-05-25 Kenichi Handa <handa@etl.go.jp>
1644
46ab33a9
KH
1645 * coding.c (run_pre_post_conversion_on_str): Set point to the
1646 beginning of buffer before calling coding->post_read_conversion.
1647 (decode_coding_string): Give correct args to
1648 run_pre_post_conversion_on_str.
1649 (encode_coding_string): Likewise.
1650
eacfd7fe
KH
1651 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1652 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1653 eight-bit-graphic correctly.
1654
f8569325
DL
16552000-05-24 Kenichi HANDA <handa@etl.go.jp>
1656
1657 * fileio.c (Finsert_file_contents): Even if a file is not found,
1658 execute codes for setting up coding system. Call
1659 after-insert-file-functions unconditionally.
1660
04545643
GM
16612000-05-24 Gerd Moellmann <gerd@gnu.org>
1662
1663 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1664 BSD_PGRPS are not defined.
1665
747d90ea
KH
16662000-05-24 Kenichi Handa <handa@etl.go.jp>
1667
1668 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1669 DESCRIPTION.
1670 (syms_of_charset): Avoid building same strings.
1671
716e3b88
GM
16722000-05-23 Gerd Moellmann <gerd@gnu.org>
1673
1674 * lread.c (Fload): Add a comment about the meaning of
1675 Vuser_init_file being t.
1676
1677 * puresize.h (BASE_PURESIZE): Increase to 675000.
1678
1679 * s/gnu-linux.h (setpgrp): Don't define it here because this
1680 prevents compilation on GNU/Linux systems with glib 2.2.
1681
1682 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1683 as setpgid.
427ec082 1684
9aeb39fa
EZ
16852000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1686
1687 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1688 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1689 version.
1690 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1691
29ced61b
KH
16922000-05-23 Kenichi Handa <handa@etl.go.jp>
1693
0574a2ed
KH
1694 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1695 unconditionally.
1696
3d80f24d
KH
1697 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1698
1699 * term.c (encode_terminal_code): Set coding->src_multibyte
1700 properly.
1701
29ced61b
KH
1702 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1703
d7e00792
KH
17042000-05-22 Kenichi Handa <handa@etl.go.jp>
1705
c9d80d38
KH
1706 * keyboard.c (read_char): Allow character codes 128..255 to be
1707 handled by input-method-function.
1708
d7e00792
KH
1709 * insdel.c (adjust_markers_for_replace): Fix previous change.
1710 (adjust_after_replace): If PREV_TEXT is nil, call
1711 adjust_markers_for_insert, not adjust_markers_for_replace.
1712
087121cc 17132000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1714
087121cc
GM
1715 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1716 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1717 [HAVE_GRANDPT]: Define.
1718 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1719
1720 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1721 like SYSV_PTYS.
1722
1723 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1724
1725 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1726
c9671f81
KH
17272000-05-20 Kenichi Handa <handa@etl.go.jp>
1728
1729 The following changes are to handle 8-bit characters in a
1730 multibyte buffer/string without facing with byte combining
1731 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1732 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1733
1734 * Makefile.in (fns.o): Depend on charset.h.
1735
1736 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1737 convert it to unibyte.
1738 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1739
1740 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1741 apparent char boundary.
1742 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1743 0x80..0x9F to/from multibyte form.
1744
1745 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1746 to unibyte.
1747
1748 * callproc.c (Fcall_process): Always encode an argument string if
1749 it is multibyte. Setup src_multibyte and dst_multibyte members of
1750 process_coding properly.
ce75fd23 1751
c9671f81
KH
1752 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1753 SPLIT_NON_ASCII_CHAR.
1754
1755 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1756 as is.
1757 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1758
1759 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1760 variables.
1761 (SPLIT_CHARACTER_SEQ): This macro deleted.
1762 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1763 valid.
1764 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1765 and eight-bit-graphic.
1766 (char_to_string): Likewise. Signal an error for too large
1767 character code.
1768 (char_printable_p): Return 0 for 8-bit characters.
1769 (update_charset_table): Update iso_charset_table only when a final
1770 character is non-negative.
1771 (find_charset_in_text): Renamed from find_charset_in_str.
1772 Arguments and return value changed. Callers changed.
1773 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1774 be -1 if CHARSET is used only internally.
1775 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1776 eight-bit-graphic.
1777 (Fcharset_after): Simplified.
1778 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1779 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1780 (multibyte_chars_in_text): Simplified by assuming there's no
1781 invalid multibyte sequence.
1782 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1783 str_as_unibyte): New functions.
1784 (Fstring): Simpified by assuming that byte combining never
1785 happens.
1786 (init_charset_once): Initialization for
1787 LEADING_CODE_8_BIT_CONTROL.
1788 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1789 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1790 eight-bit-control and eight-bit-graphic.
1791
1792 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1793 CHARSET_8_BIT_GRAPHIC): New macros.
1794 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1795 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1796 (CHARSET_REVERSE_CHARSET): Likewise.
1797 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1798 eight-bit-graphic.
1799 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1800 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1801 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1802 encounter an invalid multibyte sequence.
1803 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1804 sequence is always valid.
1805 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1806 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1807 macros.
1808 (CHAR_STRING): For 8-bit characters, call char_to_string.
1809 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1810 multibyte sequence is always valid.
1811 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1812 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1813 str_as_unibyte): Extern them.
1814 (BCOPY_SHORT): Fix a bug.
1815 (CHAR_LEN): This macro deleted. Callers changed to use
1816 CHAR_BYTES.
1817 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1818 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1819 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1820
bd4bde7f 1821 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1822 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1823 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1824 EMIT_BYTES): New macros.
1825 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1826 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1827 macros deleted.
1828 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1829 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1830 check the validity of multibyte sequence.
1831 (decode_coding_emacs_mule): New function.
1832 (encode_coding_emacs_mule): New macro.
1833 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1834 the source.
1835 (DECODE_ISO_CHARACTER): Just return a character code.
1836 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1837 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1838 EMIT_CHAR to produced decoded characters. Exit the loop only by
1839 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1840 block here.
1841 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1842 only position codes for an invalid character.
1843 (encode_designation_at_bol): Return new destination pointer. 5th
1844 arg DSTP is changed to DST.
1845 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1846 from the source by ONE_MORE_CHAR. Don't handle the case of last
1847 block here.
1848 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1849 macros deleted.
1850 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1851 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1852 TWO_MORE_BYTES to fetch a byte from the source.
1853 (encode_eol): Pay attention to coding->src_multibyte.
1854 (detect_coding, detect_eol): Preserve members src_multibyte and
1855 dst_multibyte.
1856 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1857 (encoding_buffer_size): Set magnification to 3 for all coding
1858 systems that require encoding.
1859 (ccl_coding_driver): For decoding, be sure that the result is
1860 valid multibyte sequence.
1861 (decode_coding): Initialize coding->errors and coding->result.
1862 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1863 and raw-text, always call decode_eol. Handle the case of last
1864 block here. If not coding->dst_multibyte, convert the resulting
1865 sequence to unibyte.
1866 (encode_coding): Initialize coding->errors and coding->result.
1867 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1868 and raw-text, always call encode_eol. Handle the case of last
1869 block here.
1870 (shrink_decoding_region, shrink_encoding_region): Detect cases
1871 that we can't skip data more rigidly.
1872 (code_convert_region): Setup src_multibyte and dst_multibyte
1873 members of coding. For decoding, if the buffer is multibyte,
1874 convert the source sequence to unibyte in advance. For encoding,
1875 if the buffer is multibyte, convert the resulting sequence to
1876 multibyte afterward.
1877 (run_pre_post_conversion_on_str): New function.
1878 (code_convert_string): Deleted and divided into the following two.
1879 (decode_coding_string, encode_coding_string): New functions.
1880 (code_convert_string1, code_convert_string_norecord): Call one of
1881 above.
1882 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1883 MAKE_NON_ASCII_CHAR.
1884 (Fset_terminal_coding_system_internal,
1885 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1886 and dst_multibyte members.
1887 (init_coding_once): Initialize iso_code_class with new enum
1888 ISO_control_0 and ISO_control_1.
1889
1890 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1891 devided into ISO_control_0 and ISO_control_1.
1892 (struct coding_system): New members src_multibyte, dst_multibyte,
1893 errors, and result. Delete member fake_multibyte.
1894 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1895 nonzero.
1896 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1897 nonzero.
1898
1899 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1900 (Faset): Likewise.
1901
1902 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1903 multibyte form.
1904 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1905 combining occurs.
1906 (Ftranspose_region): Delete codes for handling byte combining.
1907
1908 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1909 dst_multibyte members of coding. On handling REPLACE on unibyte
1910 buffer, convert the result of decode_coding to unibyte. On
1911 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1912 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1913 multibyteness of the source (buffer or string).
1914
1915 * fns.c (concat): Handle 8-bit characters correctly.
1916 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1917 unibyte in the result.
1918 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1919 valid multibyte form in the result.
1920 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1921 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1922 return -1, signal an error.
1923 (base64_encode_1): New arg MULTIBYTE. Get each character by
1924 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1925 character is found, return -1.
1926 (Fbase64_decode_region): Delete codes for handling byte-combining.
1927 Treat each decoded byte as a unibyte character.
1928 (Fbase64_decode_string): Return unibyte string.
1929 (Fcompare_strings, concat, string_byte_to_char): Use
1930 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1931 FETCH_STRING_CHAR_ADVANCE.
1932 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1933 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1934
1935 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1936 SPLIT_NON_ASCII_CHAR.
1937 (fontset_ref_via_base, fontset_set): Likewise
1938
1939 * insdel.c (adjust_markers_for_record_delete): Deleted.
1940 (adjust_markers_for_insert): Argument changed. Caller changed.
1941 (adjust_markers_for_replace): Likewise.
1942 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1943 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1944 (copy_text): Delete unused local varialbe c_save. For converting
1945 to multibyte, be sure to make all 8-bit characters in valid
1946 multibyte form.
1947 (count_size_as_multibyte): Handle 8-bit characters correctly.
1948 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1949 adjust_after_replace, replace_range, del_range_2)
1950 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1951 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1952 adjust_after_replace, replace_range, del_range_2) Delete codes for
1953 handling byte combining.
1954 (adjust_before_replace): Deleted.
427ec082 1955
c9671f81
KH
1956 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1957 SPLIT_NON_ASCII_CHAR.
1958 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1959 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1960 unconditionally.
1961 (Fkey_description): Likewise.
1962
1963 * lread.c (read1): On reading multibyte string, be sure to make
1964 all 8-bit chararacters in valid multibyte form.
1965 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1966
1967 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1968 unconditionally.
1969
1970 * process.c (Fstart_process): GCPRO current_dir before calling
1971 Ffind_operation_coding_system. Encode arguments here.
1972 (create_process): Don't encode arguments here. Setup
1973 src_multibyte and dst_multibyte members of struct coding.
1974 (read_process_output): Setup src_multibyte and dst_multibyte
1975 members of struct coding. If the output is to multibyte buffer,
1976 always decode the output of the process. Adjust the
1977 representation of 8-bit characters to the multibyteness of the
1978 output.
1979 (send_process): Setup coding->src_multibyte according to the
1980 multibyteness of the source.
1981
1982 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1983 unconditionally.
1984 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1985 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1986
1987 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1988 CHAR_LEN.
1989
1990 * w16select.c (Fw16_set_clipboard_data): Setup members
1991 src_multibyte and dst_multibyte of coding. Adjusted for the
1992 change for find_charset_in_str.
1993 (Fw16_get_clipboard_data): Likewise.
1994
1995 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1996 dst_multibyte of coding.
1997 (x_to_w32_font): Likewise.
1998
1999 * w32select.c (Fw32_set_clipboard_data): Setup members
2000 src_multibyte and dst_multibyte of coding. Adjusted for the
2001 change for find_charset_in_str.
2002 (Fw32_get_clipboard_data): Likewise.
2003
2004 * xdisp.c (get_next_display_element): Handle 8-bit characters
2005 correctly.
2006 (next_element_from_display_vector): Use CHAR_BYTES instead of
2007 CHAR_LEN.
2008 (disp_char_vector): Use SPLIT_CHAR instead of
2009 SPLIT_NON_ASCII_CHAR.
2010
2011 * xselect.c (selection_data_to_lisp_data): Setup members
2012 src_multibyte and dst_multibyte of coding. Adjusted for the
2013 change for find_charset_in_str.
2014 (lisp_data_to_selection_data): Likewise.
2015
5f64c9e0
GM
20162000-05-19 Gerd Moellmann <gerd@gnu.org>
2017
2b63d473
GM
2018 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2019 buffer.
2020
5f64c9e0
GM
2021 * dispextern.h (Vimage_types): Add extern declaration.
2022
2023 * xdisp.c (Vimage_types): Moved here from xfns.c.
2024 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2025
2026 * xfns.c (Vimages_types): Moved to xdisp.c.
2027 (syms_of_xfns): Move `image-types' to xdisp.c.
2028
2029 * w32fns.c (Vimage_types): Removed.
2030 (syms_of_w32fns): Remove `image-types'.
2031
813086ea
KH
20322000-05-18 Kenichi Handa <handa@etl.go.jp>
2033
2034 * fns.c (map_char_table): Pay attention to character number of
2035 charset. Check the validity of charset at the first level. For
2036 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2037 the default value.
2038
2039 * fontset.c: Include "buffer.h".
2040 (fs_load_font): If the face has fontset, record the face ID in
2041 that fontset.
2042 (Finternal_char_font): New function.
2043 (accumulate_font_info): New function.
2044 (Ffontset_info): Rewritten for the new fontset implementation.
2045 (syms_of_fontset): Register Vdefault_fontset in the first element
2046 of Vfontset_table. Include Vdefault_fontset in
2047 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2048 function.
2049
bdaebbf0
DL
20502000-05-16 Dave Love <fx@gnu.org>
2051
2052 * m/iris5d.h: Deleted -- unused.
2053
cb613bb8
GM
20542000-05-16 Gerd Moellmann <gerd@gnu.org>
2055
b15f3b77
GM
2056 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2057 `invalid' instead of `illegal'.
2058
2059 * indent.c (Fmove_to_column): When ending within a tab, insert
2060 spaces first so that markers at the end of the tab get adjusted.
2061
835c1b36
GM
2062 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2063 buffer list that wasn't selected in that frame.
2064
cb613bb8
GM
2065 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2066 is needed on mescaline, use a 2 char prefix, and call
2067 make_temp_name with second arg non-zero.
2068
2069 * fileio.c (make_temp_name): New function, extracted from
2070 Fmake_temp_name.
2071 (Fmake_temp_name): Use it.
2072
f685bea9
EZ
20732000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2074
2075 * window.c (coordinates_in_window): Subtract 1 when computing
2076 right_x.
2077
a1b8d58b
GM
20782000-05-15 Gerd Moellmann <gerd@gnu.org>
2079
2080 * Makefile.in (lisp): Add env.elc.
2081
2082 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2083
a265079f
GM
20842000-05-12 Gerd Moellmann <gerd@gnu.org>
2085
2086 * search.c (Freplace_match): Handle case of `\N' in the
2087 replacement when there's no group N.
2088
da4496b6
GM
20892000-05-11 Gerd Moellmann <gerd@gnu.org>
2090
0ace421a
GM
2091 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2092 of the message to message_dolog.
2093
1172eb8d
GM
2094 * keyboard.c (read_char): Don't clear current message for help
2095 events; let the code handling help events handle this. Change
2096 code detecting help events that should be ignored.
2097
da4496b6
GM
2098 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2099 we're interating over a string.
2100
0623e40f
DL
21012000-05-09 Dave Love <fx@gnu.org>
2102
2103 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2104 that offset before writing. Move gcpro region past call of
2105 Ffile_regular_p.
2106
bae2503b
DL
21072000-05-04 Dave Love <fx@gnu.org>
2108
2109 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2110
ec82fb2f
GM
21112000-05-04 Gerd Moellmann <gerd@gnu.org>
2112
2113 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2114 of inserted characters when BUF equals the current buffer, and PT
2115 is in front of or equal to FROM.
2116
cbf18892
GM
21172000-05-03 Gerd Moellmann <gerd@gnu.org>
2118
4ff40dd0
GM
2119 * xdisp.c (handle_single_display_prop): If display property value
2120 is invalid, or something not supported on the frame, restore
2121 iterator's position to what it was initially. Make sure to return
2122 0 for invalid and unsupported property values.
2123
cbf18892
GM
2124 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2125 that x_per_char_metric returns null.
2126
1b0672c3
GM
21272000-05-02 Gerd Moellmann <gerd@gnu.org>
2128
576da55d
GM
2129 * xterm.h (struct face): Add forward declaration.
2130 (struct image): Ditto.
2131 (image_ascent): Add prototype.
2132
2133 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2134 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2135 image_ascent instead of using IMAGE_ASCENT.
2136
2137 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2138 (IMAGE_ASCENT): Removed.
2139
2140 * xfns.c (Qcenter): New variable.
2141 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2142 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2143 (image_ascent): New function.
2144 (lookup_image): Recognize `:ascent center'.
2145 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2146 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2147 (xbm_load): Don't set image's ascent here.
2148 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2149 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2150 check ascent values here.
2151 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2152 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2153 (syms_of_xfns): Initialize Qcenter.
2154
1b0672c3
GM
2155 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2156 to the limits, increase the limits.
2157
0d7811ed
KH
21582000-05-01 Kenichi Handa <handa@etl.go.jp>
2159
2160 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2161 Check Vfont_encoding_alist against the full name of the opened
2162 font.
2163
a943a5ca
GM
21642000-04-28 Gerd Moellmann <gerd@gnu.org>
2165
2166 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2167 taller than the window.
2168
5dba1e29
KH
21692000-04-28 Kenichi Handa <handa@etl.go.jp>
2170
2171 * xfaces.c (realize_x_face): Fix the argument of the second
2172 xassert. BASE_FACE may not be a face for ASCII.
2173
353964e3
GM
21742000-04-27 Gerd Moellmann <gerd@gnu.org>
2175
c76e04a8
GM
2176 * print.c (print_object): Treat print-length < 0 as nil.
2177
2178 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2179
2180 * s/freebsd.h (TERMCAP_OBJ): Removed.
2181 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2182
2183 * lread.c (read1): Don't treat period followed by certain
2184 characters as symbol start.
2185
2186 * xfns.c (slurp_file): New function.
2187 (xbm_image_p): Handle case of in-memory XBM files.
2188 (xbm_scan): Rewritten to work on memory buffers instead of files.
2189 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2190 Work on memory buffers instead of files. If DATA is null test
2191 if buffer looks like an in-memory XBM file.
2192 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2193 memory buffers instead of files.
2194 (xbm_file_p): New function.
2195 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2196
353964e3
GM
2197 * lread.c (end_of_file_error): New function.
2198 (read1): Call it instead of signaling `end-of-file' directly.
2199
427ec082 2200 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2201 with Fprinc instead of Fprin1.
2202
24d744ac
KR
22032000-04-26 Ken Raeburn <raeburn@gnu.org>
2204
2205 * window.c (freeze_window_start): Check that minibuffer scroll
2206 window isn't nil before extracting the window structure pointer
2207 from it.
2208
2209 * undo.c (record_delete): If we hit the end of the undo list, stop
2210 picking elements apart.
2211
7464346d
GM
22122000-04-26 Gerd Moellmann <gerd@gnu.org>
2213
2214 * xdisp.c (display_line): If lines are continued, restore
2215 iterator's ascent/descent information to the values before the
2216 first glyph not fitting on the line.
2217
612839b6
GM
22182000-04-25 Gerd Moellmann <gerd@gnu.org>
2219
2220 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2221 positions in glyph matrix. Don't compute new window end
2222 positions.
2223
2224 * dispnew.c (increment_matrix_positions): Renamed from
2225 increment_glyph_matrix_buffer_positions.
2226 (increment_row_positions): Renamed from
2227 increment_glyph_row_buffer_positions.
2228
2229 * dispextern.h: Change names of renamed functions from dispnew.c
2230 in prototypes.
2231
cc181e95
GM
22322000-04-24 Gerd Moellmann <gerd@gnu.org>
2233
abfcc168
GM
2234 * fileio.c (Fdo_auto_save): Create directories for auto-save
2235 list file if necessary.
2236
cc181e95
GM
2237 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2238 from buffer or frame.
2239 (automatic_hscrolling_p): New variable.
2240 (hscroll_windows): Scroll windows horizontally only if automatic
2241 hscrolling is allowed.
2242 (syms_of_xdisp): New variable `automatic-hscrolling'.
2243
2244 * frame.h (struct frame): Add member extra_line_spacing.
2245
2246 * xfns.c (x_set_line_spacing): New function.
2247 (Fx_create_frame): Set line spacing from resources.
2248 (Qline_spacing): New variable.
2249 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2250
cc181e95
GM
2251 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2252
2253 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2254 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2255 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2256 extra_line_spacing from default value.
2257 (init_buffer_once): Initialize default value of extra_line_spacing.
2258
2259 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2260 and extra3.
2261
2262 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2263 prompt_width. Add extra line spacing.
2264
2265 * term.c (produce_glyphs): Remove reference to struct it's
2266 prompt_width.
2267
2268 * dispextern.h (struct it): Remove member prompt_width, add
2269 extra_line_spacing.
2270
58827478
GM
22712000-04-22 Gerd Moellmann <gerd@gnu.org>
2272
2273 * dispnew.c (update_frame_line): When writing a whole line, make
2274 sure cursor is in the right row afterwards, otherwise a use of
2275 capability `ch' in cmgoto might leave the cursor in the row below.
2276
25a87f42
GM
22772000-04-21 Gerd Moellmann <gerd@gnu.org>
2278
2279 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2280
2281 * keyboard.c (timer_check): Fix typo in comment.
2282
54edf5c2
KH
22832000-04-21 Kenichi Handa <handa@etl.go.jp>
2284
2285 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2286 name change: ch -> character.
2287
3a64eef5
GM
22882000-04-20 Gerd Moellmann <gerd@gnu.org>
2289
2290 * keyboard.c (echo_message_buffer): New variable.
2291 (echo_now): Set echo_message_buffer to the echo area buffer used
2292 to display the echo.
2293 (cancel_echoing): Reset echo_message_buffer to nil.
2294 (read_char): Code rewritten that handles canceling an echo or
2295 echoing a dash, respectively.
2296
2297 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2298 directory doesn't exist.
2299
6142fdcb
DL
23002000-04-19 Dave Love <fx@gnu.org>
2301
2302 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2303 (concat): Don't allow numeric args.
2304 (Fconcat): Doc change.
6142fdcb 2305
ac6b5352
SM
23062000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2307
2308 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2309 instead define end_match(1|2) more carefully.
2310 Use GET_CHAR_BEFORE_2 for `begline'.
2311
cb9215e4
GM
23122000-04-19 Gerd Moellmann <gerd@gnu.org>
2313
5e3dac3f
GM
2314 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2315 on 64-bit systems where NULL is defined as `0'.
2316
2317 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2318 the `variable argument list' to make it work on Alpha.
2319
cb9215e4
GM
2320 * m/alpha.h (_LP64) [!_LP64]: Define.
2321 (ORDINARY_LINK): Define for NetBSD.
2322
2323 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2324
f532dca0
DL
23252000-04-19 Dave Love <fx@gnu.org>
2326
c750667e
DL
2327 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2328 change.
2329
2330 * Makefile.in (LIBS): Don't use.
2331 (GETLOADAVG_OBJ): Define again.
2332 (otherobj): Add GETLOADAVG_OBJ.
2333
f532dca0
DL
2334 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2335
1c7e22fd
GM
23362000-04-18 Gerd Moellmann <gerd@gnu.org>
2337
f6d3257b
GM
2338 * lread.c (read_filtered_event): Cancel and start busy cursor.
2339
427ec082 2340 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2341 that the per-character metrics may be null.
2342
e10f64e7
GM
23432000-04-17 Gerd Moellmann <gerd@gnu.org>
2344
0daee095
GM
2345 * buffer.c (clone_per_buffer_values): New function.
2346 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2347 clone_per_buffer_values if CLONE is not nil.
2348
e10f64e7
GM
2349 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2350
38687d43
DL
23512000-04-16 Dave Love <fx@gnu.org>
2352
2353 * Makefile.in: Remove obsolete localcpp stuff.
2354 (GETLOADAVG_OBJ): Don't define.
2355 (obj): Move LIBOBJS...
2356 (otherobj): ... to here.
2357 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2358 whitespace-only lines after the continuation (Irix).
2359
c21c7262
GM
23602000-04-14 Gerd Moellmann <gerd@gnu.org>
2361
2362 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2363
2364 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2365
314767c0
DL
23662000-04-14 Dave Love <fx@gnu.org>
2367
2368 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2369 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2370 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2371 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2372 NLIST_STRUCT.
2373
2374 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2375 autoconfiscated HAVE_GETLOADAVG.
2376
2377 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2378 BROKEN_MKTIME.
2379
a2522dca
GM
23802000-04-14 Gerd Moellmann <gerd@gnu.org>
2381
2382 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2383 (fill_in_lock_file_name): Avoid existing files that aren't
2384 links.
2385
33744b5d
DL
23862000-04-14 Dave Love <fx@gnu.org>
2387
c21c7262 2388 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2389 (INTERVAL_SRC): Convert to make variable.
2390 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2391 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2392 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2393 add LIBOBJS.
2394 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2395 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2396 (shortlisp): Add facemenu, float-sup, frame.
2397 (SOME_MACHINE_LISP): Remove them from here.
2398 (LIBES): Change unused LDLIBS to autoconf LIBS.
2399
2400 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2401
9d3d5916
KH
24022000-04-14 Kenichi Handa <handa@etl.go.jp>
2403
2404 * composite.c (update_compositions): If FROM and TO are not in a
2405 valid range, do nothing.
2406
198e3c7a
GM
24072000-04-13 Gerd Moellmann <gerd@gnu.org>
2408
2409 * tparam.c (tparam1): Abort when encountering an unknown
2410 `%'-specifier.
2411
2412 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2413 terminfo.o.
2414
2415 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2416 as TERMCAP_OBJ.
2417
055a28c9
EZ
24182000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2419
2420 * fileio.c (a_write): Remove redundant semi-colons.
2421 (e_write): Return -1 if failed to write all the data.
2422 This fixes the changes made at 1999-12-15.
2423
f5c75033
DL
24242000-04-12 Dave Love <fx@gnu.org>
2425
2426 * fns.c (mapcar1): Test for null vals to support mapc.
2427 (Fmapc): New function.
2428
0c3cfc51
EZ
24292000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2430
2431 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2432 (IT_frame_up_to_date): Support the buffer local value of
2433 cursor-type, if defined.
2434
33465a31
DL
24352000-04-10 Dave Love <fx@gnu.org>
2436
2437 * editfns.c (preceding-char, following-char): Doc fix.
2438
6ed56568
KR
24392000-04-10 Ken Raeburn <raeburn@gnu.org>
2440
2441 * Makefile.in (temacs): Revert 2000-03-12 change.
2442
7cf80d4e
JR
24432000-04-10 Jason Rumney <jasonr@gnu.org>
2444
2445 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2446
34f3f342
GM
24472000-04-10 Gerd Moellmann <gerd@gnu.org>
2448
1a1b1895
GM
2449 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2450 area buffer, if it's not set up yet.
2451
34f3f342
GM
2452 * indent.c (compute_motion): Set immediate_quit.
2453
be0dbdab
GM
24542000-04-09 Gerd Moellmann <gerd@gnu.org>
2455
c45be9ac
GM
2456 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2457 variable.
2458 (realize_tty_face): Suppress boldness if colors are the inverse of
2459 the default colors, and tty_suppress_bold_inverse_default_colors_p
2460 is set.
2461 (Ftty_suppress_bold_inverse_default_colors): New function.
2462 (syms_of_xfaces): Defsubr it.
2463
be0dbdab
GM
2464 * buffer.c (Frestore_buffer_modified_p): New function.
2465 (syms_of_buffer): Defsubr it.
2466
e8413c3b
KR
24672000-04-08 Ken Raeburn <raeburn@gnu.org>
2468
87f67317
KR
2469 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2470 charset id (int) argument, not a charset (Lisp_Object).
2471
e8413c3b
KR
2472 * coding.h (code_convert_string): Declare.
2473 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2474 object, as the fourth argument to code_convert_string.
2475
2476 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2477 value.
2478 (Fset_fontset_font): Use EQ to compare lisp objects.
2479
7c752c80
KR
24802000-04-05 Ken Raeburn <raeburn@gnu.org>
2481
c0333abc
KR
2482 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2483 a pointer that looks like a lisp object.
2484 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2485 zero, instead see whether it's an integer object, since they can't
2486 have intervals.
2487 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2488
7c752c80
KR
2489 * dispnew.c (allocate_matrices_for_frame_redisplay,
2490 direct_output_forward_char): Use X(U)INT and make_number as needed
2491 to convert between (unsigned) int values and lisp integers.
2492 * keyboard.c (read_key_sequence): Likewise.
2493 * lread.c (substitute_object_recurse): Likewise.
2494 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2495 * minibuf.c (do_completion, Fminibuffer_complete_word,
2496 Fminibuffer_completion_help): Likewise.
2497 * term.c (produce_special_glyphs): Likewise.
2498
2499 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2500 * print.c (print_preprocess, print_object): Likewise.
2501
2502 * search.c (compile_pattern): Use NILP when checking for nil.
2503
74e49b38
KR
2504 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2505 __OPTIMIZE__]: Provide a GNU C macro version that handles
2506 lisp-object unions.
2507 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2508 field, to better cope with ENABLE_CHECKING and calls that modify a
2509 Lisp_Object using its old value.
2510
685e5ed2
GM
25112000-04-04 Gerd Moellmann <gerd@gnu.org>
2512
c407c570
GM
2513 * window.c (compare_window_configurations): Signal an error
2514 if parameters C1 or C2 aren't window configurations.
2515
685e5ed2
GM
2516 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2517 AFTER_POTENTIAL_GC calls around calls to functions that can
2518 signal an error and thus invoke the debugger.
2519
587a49ab
GM
25202000-04-03 Gerd Moellmann <gerd@gnu.org>
2521
62f20204
GM
2522 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2523 an error if decoding fails.
2524
587a49ab
GM
2525 * keyboard.c (lispy_mouse_names): Variable removed.
2526 (Vlispy_mouse_stem): New variable.
2527 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2528 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2529 for any mouse button number. Increase size of mouse_syms and
2530 button_down_location as needed. Call modify_event_symbol with
2531 different arguments.
2532 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2533 Call modify_event_symbol with different arguments.
2534 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2535 for any button number. Call modify_event_symbol with different
2536 arguments.
2537 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2538 Accept a string for NAME_ALIST_OR_STEM.
2539
2540 * lisp.h (larger_vector): Add prototype.
2541
2542 * fns.c (larger_vector): Make externally visible.
2543
2544 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2545
2d1675e4
SM
25462000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2547
2548 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2549 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2550 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2551 we are between str1 and str2.
2552 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2553 (PATFETCH): Use `TRANSLATE'.
2554 (PATFETCH_RAW): Fetch multibyte char if applicable.
2555 (PATUNFETCH): Remove.
2556 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2557 When writing a char, write it directly into the pattern buffer rather
2558 than going needlessly through a temp char-array.
2559 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2560 multibyte magic and remove the useless `#ifdef emacs'.
2561 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2562 buffer.
2563
2564 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2565 conditional on `emacs'.
2566
2567 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2568
cc2d8c6b
KR
25692000-04-01 Ken Raeburn <raeburn@gnu.org>
2570
2571 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2572 non-union-type versions of XMARK and friends here, because XMARK
2573 and friends won't work on an integer field if NO_UNION_TYPE is not
2574 defined.
2575 (make_number): Define as a function if it's not defined as a
2576 macro.
2577
09654086
KR
2578 * composite.c (run_composite_function): Use NILP when checking for
2579 nil.
2580 (syms_of_composite): Delete local var NARGS, pass an int as first
2581 argument to Fmake_hash_table.
2582
2387b382
KR
2583 * editfns.c (text_property_stickiness): Use NILP to test
2584 Lisp_Object boolean value.
2585 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2586 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2587 problems reading from and changing the same lisp value in an
2588 XSETSTRING call.
2589
27660e89
GM
25902000-04-01 Gerd Moellmann <gerd@gnu.org>
2591
2592 * term.c (TN_no_color_video): New variable.
2593 (term_init): Intitialize TN_no_color_video.
2594 (enum no_color_bit): New enumeration.
2595 (MAY_USE_WITH_COLORS_P): New macro.
2596 (turn_on_face): Use it to determine if attributes may be used
2597 combined with colors.
2598
3578db3c
KR
25992000-04-01 Ken Raeburn <raeburn@gnu.org>
2600
2601 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2602 with int lvalues via casts; instead, just yield lisp object
2603 lvalues.
2604 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2605 proper accessor macros.
2606 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2607 (grow_mini_window): Fix typo getting int value of root->height.
2608
6fc556fd
KR
2609 * xdisp.c (compute_string_pos): Fix order of arguments to
2610 string_pos_nchars_ahead.
2611 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2612 count arg to variable-arg routines like Frun_hook_with_args and
2613 Fformat.
587a49ab
GM
2614 (back_to_previous_visible_line_start)
2615 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2616 fixed-arg routines like Fget_char_property and Fmake_string.
2617 (reconsider_clip_changes): Use XINT when comparing integer lisp
2618 objects, or passing them as int arguments.
587a49ab
GM
2619 (mark_window_display_accurate, insert_left_trunc_glyphs)
2620 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2621 storing or passing integer values as lisp objects.
2622 (set_cursor_from_row, highlight_trailing_whitespace): Use
2623 INTEGERP, not implicit test against zero, for glyph object.
2624 (try_window_id): Don't use make_number when we want an int value.
2625
2626 * xfaces.c (xlfd_symbolic_value): Make last argument a
2627 Lisp_Object, to be consistent with callers.
2628 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2629 (lface_hash): Apply XFASTINT to lisp values before folding in.
2630
2631 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2632 fill in window width and height. Pass an int, not a lisp object,
2633 as first arg to Finsert.
2634
6e7b2457
GM
26352000-04-01 Gerd Moellmann <gerd@gnu.org>
2636
610d841e
GM
2637 * xfaces.c (realize_basic_faces): Block input while realizing
2638 the faces.
2639
6e7b2457
GM
2640 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2641
2642 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2643
aa110c0c
GM
26442000-03-31 Gerd Moellmann <gerd@gnu.org>
2645
2646 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2647 or ASCII, handle case that per-char metric is null.
aa110c0c 2648
8801a864
KR
26492000-03-30 Ken Raeburn <raeburn@gnu.org>
2650
c6129d7e
KR
2651 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2652
8801a864
KR
2653 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2654 XSUBR, XBUFFER): Verify correct object type before returning
2655 pointer, using eassert.
2656 * frame.h (XFRAME): Likewise.
2657
2658 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2659 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2660 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2661 type.
2662 * data.c (set_internal): Likewise.
2663 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2664 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2665 * fileio.c (auto_save_1): Likewise.
2666 * insdel.c (check_markers): Likewise.
2667 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2668 * undo.c (record_insert): Likewise.
2669 * vmsproc.c (child_sig): Likewise.
2670 * window.c (unshow_buffer, window_loop): Likewise.
2671 * xterm.c (x_erase_phys_cursor): Likewise.
2672
8e7af858
GM
26732000-03-30 Gerd Moellmann <gerd@gnu.org>
2674
2675 * xfns.c (free_image_cache): Free the cache structure itself
2676 last, after all its members have been freed.
2677
2678 * lisp.h (xstrdup): Add prototype.
2679
2680 * alloc.c (xstrdup): Moved here from xfaces.c.
2681 (allocating_for_lisp): Variable removed.
2682 (lisp_malloc): Block input around the calls to malloc and
2683 mem_insert.
2684
2685 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2686 of Fsymbol_value.
2687 (xstrdup): Moved to alloc.c.
2688
e0b8c689
KR
26892000-03-29 Ken Raeburn <raeburn@gnu.org>
2690
b96f9fb7
KR
2691 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2692
2693 * emacs.c (main): Fix sense of no-loadup test.
2694
e0b8c689
KR
2695 * config.in (ENABLE_CHECKING): Undef.
2696
2697 * lisp.h (struct interval): Replace "parent" field with a union of
2698 interval pointer and Lisp_Object; add new bitfield to use as
2699 discriminant. Change other flag fields to bitfields.
2700 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2701 is defined and the supplied test fails, print a message and
2702 abort.
2703 (eassert): New macro. Use CHECK to provide an assert-like
2704 facility.
2705
2706 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2707 pointers; abort if the value looks like a lisp object.
2708 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2709 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2710 Modify for new interval parent definition.
2711
2712 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2713 UNMARK_BALANCE_INTERVALS): Update references that need an
2714 addressable lisp object in the interval structure.
2715 (die): New function.
2716 (suppress_checking): New variable.
2717
2718 * intervals.c (interval_start_pos): Just return 0 if there's no
2719 parent object.
2720
f83c5440
GM
27212000-03-29 Gerd Moellmann <gerd@gnu.org>
2722
2723 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2724 and earlier Emacs versions.
2725
2726 * keyboard.c (Ftop_level): Cancel busy-cursor.
2727
2728 * eval.c (call_debugger): Cancel busy-cursor.
2729
fdce64ff
KH
27302000-03-29 Kenichi Handa <handa@etl.go.jp>
2731
2732 * search.c (Freplace_match): Adjust multibyteness of the current
2733 buffer and NEWTEXT. Free allocated memory before signaling an
2734 error.
2735
f6a3f532
SM
27362000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2737
2738 * regex.c (analyse_first): New function obtained by ripping out most
2739 of re_compile_fastmap and generalizing it a little bit so that it
2740 can also just return whether a given (sub)pattern can match the empty
2741 string or not.
2742 (regex_compile): Use `analyse_first' to decide whether the loop-check
2743 needs to be done or not for *, +, *? and +? (the loop check is costly
2744 for non-greedy repetition).
2745 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2746
e9b309ac
DL
27472000-03-28 Dave Love <fx@gnu.org>
2748
bb15bd9a
DL
2749 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2750 alpha.
2751
e9b309ac
DL
2752 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2753
ed0767d8
SM
27542000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2755
2756 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2757 an expression.
2758 (enum re_opcode_t): Update description of succeed_n.
2759 (PATFETCH): Always define.
2760 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2761 operators, char classes, shy-groups and intervals).
2762 Optimize special cases of intervals so as to only use succeed_n and
2763 jump_n when really needed.
2764 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2765 that we don't have to handle the special cases any more.
2766 Simplify on_failure_jump handling as well.
2767
e11e7e46
JR
27682000-03-28 Jason Rumney <jasonr@gnu.org>
2769
2770 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2771
88faab89
GM
27722000-03-27 Gerd Moellmann <gerd@gnu.org>
2773
182ff242
GM
2774 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2775
2776 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2777
182ff242
GM
2778 * alloc.c (mark_maybe_object): New function.
2779 (mark_memory): Use it.
2780 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2781 (setjmp_tested_p, longjmp_done): New variables.
2782 (test_setjmp): New function.
2783 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2784 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2785
c1005d06
GM
2786 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2787 to DEC_TEXT_POS and INC_TEXT_POS.
2788
2789 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2790 with parameter MULTIBYTE_P.
2791
427ec082 2792 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2793 MULTIBYTE_P.
2794
7439e5b9 2795 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2796 buffers because it looks for multibyte character byte sequences
2797 which don't exist in unibyte text.
7439e5b9 2798
d9c545da
GM
2799 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2800
11fd416e 2801 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2802 [DEBUG_X_COLORS]: New functions.
2803 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2804
2805 * xfns.c (x_set_cursor_color): Get color reference counts right.
2806
2807 * xterm.c (x_copy_color): New function.
2808 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2809
2810 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2811 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2812 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2813 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2814 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2815 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2816 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2817 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2818 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2819 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2820
11fd416e
GM
2821 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2822 names for handling per-buffer variables.
d9c545da
GM
2823
2824 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2825 instead of MAX_BUFFER_LOCAL_VARS.
2826 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2827
2828 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2829
88faab89
GM
2830 * xfns.c (x_specified_cursor_type): New function.
2831 (x_set_cursor_type): Use it.
2832
2833 * buffer.h (struct buffer): Add cursor_type.
2834
d80f42b7
SM
28352000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2836
2837 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2838 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2839 opcode.
d80f42b7
SM
2840 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2841 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2842 executing it as well as when popping it off the stack to find infinite
2843 loops in non-greedy repetition operators.
2844
89e80928
GM
28452000-03-26 Gerd Moellmann <gerd@gnu.org>
2846
3d4ff2dd
GM
2847 * doc.c (Qfunction_documentation): New variable.
2848 (syms_of_doc): Initialize Qfunction_documentation.
2849 (Fdocumentation): If FUNCTION is a symbol with non-nil
2850 `function-documentation' property, return a documentation derived
2851 from that.
2852
bd96bd79
GM
2853 * buffer.c (syms_of_buffer): Add default-cursor-type.
2854 (init_buffer_once): Don't let cursor_type have a local value
2855 in every buffer.
2856
19d1bc27
GM
2857 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2858 on buffer-local value of cursor_type.
2859 (x_draw_bar_cursor): Add parameter WIDTH.
2860
2861 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2862 (init_buffer_once): Set default cursor_type value to t.
2863 Mark cursor_type as local everywhere.
2864 (syms_of_buffer): New per-buffer variable cursor-type.
2865
89e80928
GM
2866 * buffer.h (struct buffer): Remove member local_var_flags,
2867 add local_flags.
2868 (MAX_BUFFER_LOCAL_VARS): New macro.
2869 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2870 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2871 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2872 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2873
2874 * print.c (print_object): Use new macros for per-buffer
2875 variables.
2876
2877 * category.c (Fset_category_table): Use new macros for per-buffer
2878 variables.
2879
2880 * buffer.c (buffer_permanent_local_flags): Make a char array.
2881 (max_buffer_local_idx): New variable.
2882 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2883 for new handling of per-buffer variables.
2884 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2885 (init_buffer_once): Initialize per-buffer vars differently.
2886 Set max_buffer_local_idx.
2887
2888 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2889 variables.
2890
2891 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2892 variables.
2893
2894 * data.c (do_symval_forwarding, store_symval_forwarding)
2895 (find_symbol_value, set_internal, default_value, Fset_default)
2896 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2897 per-buffer variables.
2898
2899 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2900
9a0dd3dc
GM
29012000-03-24 Gerd Moellmann <gerd@gnu.org>
2902
b68c375f
GM
2903 * xterm.c (x_term_init): Unblock input around call1 of
2904 Qvendor_specific_keysyms.
2905
9a0dd3dc
GM
2906 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2907 (find_defun_start): Consider an open parenthesis in column 0
2908 a defun start only if open_paren_in_column_0_is_defun_start is set.
2909 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2910
7973e637
SM
29112000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2912
2913 * eval.c (Fautoload): Add entry in load-history (if after dump).
2914 * lread.c (load-history): Update docstring.
2915
39210e90
GM
29162000-03-24 Gerd Moellmann <gerd@gnu.org>
2917
2918 * indent.c (Fvertical_motion): Always use the current buffer.
2919 Temporarily change the window's buffer, if necessary.
2920
72db3ab5
GM
29212000-03-23 Gerd Moellmann <gerd@gnu.org>
2922
2923 * xterm.c (fast_find_position): Make sure not to consider rows
2924 not visible in the window.
2925
990b2375
SM
29262000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2927
2928 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2929 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2930
ff4df011
JR
29312000-03-22 Jason Rumney <jasonr@gnu.org>
2932
2933 * w32menu.c (single_submenu): Set help string to NULL if none.
2934 (w32_menu_show): Set help string correctly.
2935 (add-menu-item): Set help string in MIIM_DATA for menu item.
2936 Load SetMenuItemInfoA explicitly.
2937 (w32_menu_display_help): New function.
427ec082 2938
ff4df011
JR
2939 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2940 (QCdata): Moved to xdisp.c.
2941
2942 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2943 (Vw32_charset_to_codepage_alist): Removed.
2944 (Vw32_charset_info_alist): New variable.
2945 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2946 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2947 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2948 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2949 with TODO comment.
2950 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2951 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2952 Define Vw32_charset_info_alist and w32_charset symbols.
2953
29542000-03-22 Jason Rumney <jasonr@gnu.org>
2955
2956 * makefile.nt (w32bdf.obj): Update dependencies.
2957
2958 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2959
2960 * w32fns.c: Include fontset.h after dispextern.h.
2961 (Fx_create_frame): Do not create fontset.
2962 (w32_load_system_font): Doc fix.
2963 (Fx_close_connection): Free full_name if it is not shared.
2964
2965 * w32term.c: Include fontset.h after dispextern.h.
2966 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2967 updated.
2968 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2969 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2970 (w32_font_is_double_byte): New function, needs body.
2971 (x_append_glyph): Set glyph->glyph_not_available_p.
2972 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2973 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2974 character, convert it to a unibyte character.
2975 (struct glyph_string): Delete member `charset'.
2976 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2977 calculating it is found.
2978 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2979 the case that per char metric is not available correctly.
2980 (x_fill_glyph_string): Handle the case that the specific glyph is
2981 not available correctly.
2982 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2983 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2984 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2985 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2986 fontset. Don't call FS_LOAD_FONT.
2987
439d5cb4
KR
29882000-03-22 Ken Raeburn <raeburn@gnu.org>
2989
2990 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2991 (INT_LISPLIKE): New macro.
2992 (NULL_INTERVAL_P): Use it.
2993 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2994 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2995 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2996
2997 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2998 explicit references to "parent" field of struct interval and
2999 associated unclean type conversions.
3000 * intervals.c (create_root_interval, root_interval, rotate_right,
3001 rotate_left, balance_possible_root_interval, split_interval_right,
3002 split_interval_left, interval_start_pos, find_interval,
3003 next_interval, previous_interval, update_interval,
3004 adjust_intervals_for_insertion, delete_node, delete_interval,
3005 adjust_intervals_for_deletion, merge_interval_right,
3006 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3007 copy_intervals_to_string): Likewise.
3008 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3009 Likewise.
3010 * syntax.c (update_syntax_table): Likewise.
3011
3012 * intervals.c (reproduce_tree_obj): New function, like
3013 reproduce_tree but takes a Lisp_Object for the parent. Declare
3014 with prototype.
3015 (graft_intervals_into_buffer): Use it when appropriate.
3016 (reproduce_tree): Declare with prototype.
3017 (balance_possible_root_interval): Check that the parent is a lisp
3018 object before trying to examine its type.
3019
ee1c5b21
GM
30202000-03-22 Gerd Moellmann <gerd@gnu.org>
3021
3022 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3023 as strings only if both are known to be strings.
3024
3025 * s/openbsd.h (LIBS_TERMCAP): Undef.
3026
1fb352e0
SM
30272000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3028
3029 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3030 definitions for non-Emacs compilation.
3031 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3032 outside of `#ifdef emacs'.
3033 (print_partial_compiled_pattern): Update.
3034 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3035 (re_compile_fastmap): Merge handling of charset and charset_not (for
3036 emacs and non-emacs compilation as well).
3037 Similarly for (not)categoryspec and (not)syntaxspec.
3038 Don't use the fastmap when reaching `anychar' since the added
3039 complexity is not justified.
3040 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3041 and (not)syntaxspec. Merge (not)categoryspec.
3042
fdaa1f77
KH
30432000-03-22 Kenichi Handa <handa@etl.go.jp>
3044
ff1a0d8e
KH
3045 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3046 FACE_FOR_CHAR): Define them differently for the configuration of
3047 --without-x.
fdaa1f77 3048
d152fb46
DL
30492000-03-21 Dave Love <fx@gnu.org>
3050
3051 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3052 doc string.
3053
d2cafc8c
GM
30542000-03-21 Gerd Moellmann <gerd@gnu.org>
3055
3056 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3057 (lface_fully_specified_p): Don't check contents of
3058 LFACE_FONT_INDEX because that attribute is optional.
3059 (realize_x_face): Remove now unwarranted xassert.
3060
9111d4b5
KH
30612000-03-21 Kenichi HANDA <handa@etl.go.jp>
3062
3063 The following changes are to make font selection based on
3064 characters, not charset. In addition, they recover fontset
3065 facilities while utilizing the new font selection mechanism.
3066
6c4bfdc0
KH
3067 * Makefile.in (fontset.o): Depend on dispextern.h.
3068
3069 * alloc.c (mark_face_cache): Don't mark face->registry.
3070
9111d4b5
KH
3071 * dispextern.h (struct glyph): New member glyph_not_available_p.
3072 Use 22 bits for face_id.
3073 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3074 (struct face): Delete member registry, new member ascii_face.
3075 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3076 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3077 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3078 (struct it): Delete member charset, new member
3079 glyph_not_available_p.
3080
3081 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3082 (struct fontset_info, struct fontset_data): Structs removed.
3083 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3084 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3085 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3086 (fs_free_face_fontset, fontset_font_pattern,
3087 face_suitable_for_char_p, face_for_char,
3088 make_fontset_for_ascii_face): Extern them.
3089 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3090 (FS_LOAD_FACE_FONT): New macro.
3091
3092 * fontset.c: All codes rewritten or adjusted for the change of
3093 fontset implementation. Now fontset is represented by char table.
3094 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3095 removed.
3096 (my_strcasecmp): Function removed.
3097 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3098 variables.
3099 (AREF, ASIZE): New macros.
3100 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3101 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3102 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3103 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3104 fontset_id_valid_p, font_family_registry, fontset_name,
3105 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3106 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3107 New functions.
3108 (fs_load_font): New arg FACE. Caller changed.
3109 (fs_query_fontset): Argument changed. Caller changed.
3110 (Fquery_fontset): call fs_query_fontset.
3111 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3112 Functions removed.
3113 (clear_fontset_elements, check_registry_encoding,
3114 check_fontset_name): New functions.
3115 (syms_of_fontset): Set char-table-extra-slots property of fontset
3116 to 3. Staticpro and initialize Vfontset_table and
3117 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3118
3119 * frame.h (struct frame): Member `fontset_data' removed.
3120 (FRAME_FONTSET_DATA): Macro removed.
3121
3122 * frame.c (make_frame): Don't allocate f->fontset_data.
3123 (Fdelete_frame): Don't free f->fontset_data.
3124
6c4bfdc0
KH
3125 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3126
9111d4b5
KH
3127 * xdisp.c (charset_at_position): Function removed.
3128 (init_iterator): Don't set member charset of struct `it'.
3129 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3130 next_element_from_display_vector, insert_left_trunc_glyphs):
3131 Likewise.
3132 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3133 FACE_FOR_CHARSET.
3134 (get_next_display_element, append_space,
3135 extend_face_to_end_of_line): Likewise.
3136
3137 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3138 Variables removed.
3139 (clear_font_table, frame_update_line_height, load_face_font):
3140 Adjusted for the change of fontset implementation.
3141 (load_face_fontset_font): Function removed.
3142 (pixel_point_size): New function.
3143 (font_list): Argument type changed. Caller changed.
3144 (LFACE_FONT): New macro.
3145 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3146 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3147 Lisp_Object. Determine the font name by actually loading a font
3148 by the specified pattern. Set LFACE_FONT (lface) to the specified
3149 pattern. Even if a font is not found, don't try alternatives.
3150 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3151 (set_font_frame_param): If `font' is specified in lface, use it.
3152 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3153 (lface_same_font_attributes_p): Likewise.
3154 (make_realized_face): Arguent changed. Caller changed. Set
3155 face->ascii_face to face itself.
3156 (free_realized_face): Free face->fontset if face is for ASCII.
3157 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3158 deduce_unibyte_registry, x_charset_registry): Functions removed.
3159 (free_realized_multibyte_face): New function.
3160 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3161 changed. Caller changed.
3162 (try_font_list): Argument type changed.
3163 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3164 (choose_face_font): Argument changed. Handle fontset properly.
3165 (choose_face_fontset_font): Function removed.
3166 (realize_default_face, realize_named_face): Don't remove the
3167 former face here.
3168 (realize_face): Argument changed. Caller changed. Remove face
3169 with the arg former_face_id in advance. Load font for the new
3170 face.
3171 (realize_x_face): Argument changed. Caller changed. For a
3172 multibyte character, share fontset with base_face. For a single
3173 byte character, make a new realized fontset. Don't load a font
3174 here.
3175 (realize_tty_face): Argument changed. Caller changed.
3176 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3177 (face_at_buffer_position): Don't check multibyte_p for returning
3178 DEFAULT_FACE_ID.
3179 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3180 FACE_SUITABLE_FOR_CHARSET_P.
3181 (syms_of_xfaces): Remove code for Qx_charset_registry and
3182 Vface_default_registry.
3183
6c4bfdc0
KH
3184 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3185 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3186 (x_per_char_metric): Don't try FONT->default_char. Even if
3187 pcm->width is zero, glyph bits may exist.
3188 (x_encode_char): Always initialize char2b->byte1.
3189 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3190 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3191 changed.
3192 (x_append_glyph): Set glyph->glyph_not_available_p.
3193 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3194 it->charset. Handle the case that per char metric is not
3195 available. If it->multibyte_p is zero and it->c is a multibyte
3196 character, convert it to a unibyte character.
3197 (struct glyph_string): Delete member `charset'.
3198 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3199 the case that per char metric is not available correctly.
3200 (x_fill_glyph_string): Handle the case that the specific glyph is
3201 not available correctly.
3202 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3203 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3204 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3205 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3206 fontset. Don't call FS_LOAD_FONT.
3207
3208 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3209 (x_create_tip_frame): Likewise.
3210 (Fx_close_connection): Free full_name of font_info.
3211
3212 * fns.c (optimize_sub_char_table): New function.
3213 (Foptimize_char_table): New function.
3214 (syms_of_fns): Defsubr Soptimize_char_table.
3215
b33dd3b0
GM
32162000-03-20 Gerd Moellmann <gerd@gnu.org>
3217
3218 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3219 only if buffer is displayed in some window.
3220
3221 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3222 (try_window_reusing_current_matrix): Don't call scroll run
3223 function if run's current and desired position are the same;
3224 this prevents cursor flickering.
3225
4e8a9132
SM
32262000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3227
3228 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3229
3230 * regex.c (RE_STRING_CHAR): New macro.
3231 (GET_CHAR_AFER_2): Remove.
3232 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3233 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3234 (print_partial_compiled_pattern, re_compile_fastmap)
3235 (re_match_2_internal): Remove on_failure_jump_exclusive.
3236 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3237 optimization only need to work for * (ie. can use of_keep_string_jump).
3238 Remove the special case for .*\n since it is now covered by the general
3239 optimization.
3240 (re_search_2): Don't bother with `room'.
3241 (skip_one_char): New function.
3242 (skip_noops): Simplify since `memory' is not needed any more.
3243 (mutually_exclusive_p): Restructure slightly to use `switch' and
3244 add handling for "all" remaining cases.
3245 (re_match_2_internal): Change on_failure_jump_smart to use
3246 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3247 rather than on_failure_jump_exclusive.
3248
2136fdd4
GM
32492000-03-19 Gerd Moellmann <gerd@gnu.org>
3250
3251 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3252 number of bits per RGB because it's everywhere used as the depth
3253 of the visual.
3254
3255 * term.c (calculate_costs): Remove code dealing with X frames.
3256
18e21ce8 32572000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3258
3259 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3260
d7b511c4
GM
32612000-03-18 Gerd Moellmann <gerd@gnu.org>
3262
3263 * lread.c (read_integer): Unread the last char not consumed.
3264
16b5d424
GM
32652000-03-17 Gerd Moellmann <gerd@gnu.org>
3266
3267 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3268 which are in the process of being deleted.
16b5d424 3269
1fa28578
GM
32702000-03-16 Gerd Moellmann <gerd@gnu.org>
3271
83488cce
GM
3272 * Makefile.in (mostlyclean): Add `*.core'.
3273 (clean): Add `bootstrap-emacs'.
3274
1fa28578
GM
3275 * lread.c (read_integer): New function.
3276 (read1): Support read syntax #o, #x, #b, #r.
3277
99633e97
SM
32782000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3279
1fa28578
GM
3280 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3281 make sure POINTER_TO_OFFSET gives the same value before and after
3282 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3283 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3284 (debug): Now only active if > 0 rather than if != 0.
3285 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3286 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3287 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3288 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3289 (store_op1, store_op2, insert_op1, insert_op2)
3290 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3291 (group_in_compile_stack): Move to after its arg's types are
3292 declared and add a prototype.
99633e97 3293 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3294 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3295 wrapper.
99633e97 3296 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3297 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3298 indentation of the greedy-op and shy-group code.
99633e97
SM
3299 (at_(beg|end)line_loc_p): Fix argument's types.
3300 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3301 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3302 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3303 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3304 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3305 QUIT unconditionally.
99633e97 3306
699238d9
GM
33072000-03-15 Gerd Moellmann <gerd@gnu.org>
3308
3309 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3310 a sole completion.
3311
3312 * process.c (send_process): Add a hint that the function
3313 can call Lisp code to its comment.
3314
3315 * lread.c (load_dangerous_libraries): New variable.
3316 (Vbytecomp_version_regexp): New variable.
3317 (safe_to_load_p): New function.
3318 (Fload): Handle files not compiled with Emacs specially.
3319 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3320
34e23e5a
GM
33212000-03-14 Gerd Moellmann <gerd@gnu.org>
3322
9c763cca
GM
3323 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3324
3325 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3326 support functions only if HAVE_X11R6_XIM is defined.
3327 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3328
3329 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3330
3331 * xfns.c (X_I18N_INHIBITED): Don't define.
3332 (create_frame_xic): Remove conditional compilation on
3333 X_I18N_INHIBITED.
3334 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3335
3336 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3337 (HAVE_X11R6_XIM): Define.
3338
3339 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3340
34e23e5a
GM
3341 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3342 If set, call XSynchronize.
3343
66f0296e
SM
33442000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3345
34e23e5a
GM
3346 * regex.c: Declare a new type `re_char' used throughout the code
3347 for the string char type. It's `const unsigned char' to match the
3348 rest of Emacs. Consistently make sure all pointers to strings use
3349 it and make sure all pointers into the pattern use `unsigned
3350 char'.
66f0296e 3351 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3352 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3353 code duplication.
66f0296e
SM
3354
3355 * charset.h (GET_CHAR_AFTER_2): Remove.
3356 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3357
854a025c
KR
33582000-03-12 Ken Raeburn <raeburn@gnu.org>
3359
3360 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3361 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3362 of them try to use backquotes.
3363
b9d2c7e2
DL
33642000-03-12 Dave Love <fx@gnu.org>
3365
3366 * unexelf.c: Restore changes of 1999-10-19.
3367 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3368 fix its type and alignment; copy it from current process.
3369
5e5dff44
GM
33702000-03-12 Gerd Moellmann <gerd@gnu.org>
3371
9b2f3c38
GM
3372 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3373 has been found. Fix bug not computing timer's predecessor.
3374
427ec082 3375 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3376 file name.
3377
e1cff360
GM
3378 * window.c (Fsave_window_excursion): Doc fix.
3379
5e5dff44
GM
3380 * xfns.c (x_defined_color): Rewritten to use
3381 x_allocate_nearest_color.
3382
e411ce4b
EZ
33832000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3384
3385 * msdos.c (vga_installed): New function, code moved from
3386 dos_set_window_size.
3387 (Qbar, Qcursor_type, outside_cursor): New variables.
3388 (syms_of_msdos): Intern and staticpro them.
3389 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3390 shape used outside Emacs when called for the first time.
3391 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3392 cursor shape used outside Emacs.
3393 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3394 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3395 type has changed.
3396 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3397 parameters specify the cursor. Make qreverse a global
3398 variable (renamed to Qreverse).
3399
80460654
GM
34002000-03-09 Gerd Moellmann <gerd@gnu.org>
3401
3402 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3403
95cd4c40
SM
34042000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3405
3406 This is a big redesign of failure-stack and register handling, prompted
3407 by bugs revealed when trying to add shy-groups. Overall, what happened
3408 is that loops are now structured a little differently, groups can be
3409 shy and the code is a little simpler.
3410
3411 * regex.h: Update the copyright.
3412 (RE_SHY_GROUPS): New value.
3413 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3414 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3415
80460654
GM
3416 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3417 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3418 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3419 for (start|stop)_memory since they now only take one argument (the
3420 second has becomes unnecessary).
3421 (print_partial_compiled_pattern): Adjust for changes in
3422 re_opcode_t.
3423 (print_compiled_pattern): Use %ld to printf long ints and flush to
3424 make debugging a little easier.
95cd4c40
SM
3425 (union fail_stack_elt): Make the integer unsigned.
3426 (struct fail_stack_type): Add a `frame' element.
3427 (INIT_FAIL_STACK): Init `frame' as well.
3428 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3429 (DEBUG_PUSH, DEBUG_POP): Remove.
3430 (NUM_REG_ITEMS): Remove.
3431 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3432 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3433 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3434 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3435 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3436 macros.
3437 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3438 address pushed is not the destination of the jump but the source
3439 of it instead.
95cd4c40
SM
3440 (NUM_FAILURE_ITEMS): Remove.
3441 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3442 registers before the actual failure point). Don't hardcode any
3443 meaning for str==NULL anymore.
95cd4c40 3444 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3445 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3446 Remove.
95cd4c40
SM
3447 (REG_UNSET_VALUE): Use NULL (why not?).
3448 (compile_range): Remove declaration since it doesn't exist.
3449 (struct compile_stack_elt_t): Remove inner_group_offset.
3450 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3451 (regex_grow_registers): Remove dead code.
3452 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3453 (regex_compile): Add shy-groups Change loops to use
3454 on_failure_jump_smart&jump instead of
3455 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3456 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3457 variable to me). Use `jump' instead of `jump_past_alt' and don't
3458 bother with push_dummy_failure in alternatives since it is now
3459 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3460 emacs' for (re)allocating the stack.
3461 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3462 from loop when bufp->can_be_null rather than jumping to `done'.
3463 Avoid jumping backwards so as to ensure termination. Use
3464 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3465 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3466 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3467 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3468 improve mutually_exclusive_p to handle ".+\n".
3469 (lowest_active_reg, highest_active_reg,
3470 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3471 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3472 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3473 variables. Push register (in `start_memory') on the stack rather
3474 than storing it in old_reg(start|end). Remove the cycle detection
3475 from `stop_memory', replaced by the use of on_failure_jump_loop
3476 for greedy loops. Add code for the new on_failure_jump_<foo>.
3477 Remove ad-hoc code in `on_failure_jump' to push more registers in
3478 the case of a loop. Take out code from `maybe_pop_jump' into
3479 separate functions and adapt it to the semantics of
3480 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3481 and push_dummy_failure. Remove dummy_failure handling and
3482 handling of `failures to jump to on_failure_jump' (this last one
3483 was already dead code, it seems).
3484 (group_match_null_string_p, alt_match_null_string_p)
3485 (common_op_match_null_string_p): Remove.
95cd4c40 3486
7397acc4
DL
34872000-03-08 Dave Love <fx@gnu.org>
3488
3489 * config.in: Don't depend on __STDC__ for volatile.
3490 Add POINTER_TYPE, PTR, PROTOTYPES.
3491
3492 * hftctl.c, strftime.c: Use PROTOTYPES.
3493 * eval.c (find_handler_clause): Likewise.
3494
3495 * mem-limits.h: Use POINTER_TYPE.
3496
3497 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3498 (memory_warnings): Declare using POINTER_TYPE.
3499
5e91ff9e
GM
35002000-03-08 Gerd Moellmann <gerd@gnu.org>
3501
feab4fba
GM
3502 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3503
25edb08f
GM
3504 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3505 collection.
3506
5e91ff9e
GM
3507 * xfns.c: Remove obsolete code in #if 0.
3508 (Fx_focus_frame): New function.
3509
a735b7e1
KH
35102000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3511
3512 * coding.c (coding_category_name): Add coding-category-utf-8,
3513 coding-category-utf-16-be, coding-category-utf-16-le.
3514 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3515 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3516 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3517 (detect_coding_utf_8): New function.
3518 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3519 UTF_16_LOW_SURROGATE_P): New macros.
3520 (detect_coding_utf_16): New function
3521 (detect_coding_mask): When priorities are specified, skip any
3522 categories that have `nil' coding-system. Fix bug of returning
3523 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3524 returns a mask not set in PRIORITIES.
3525 (detect_eol_type_in_2_octet_form): New function.
3526 (detect_eol): selects detect_eol_type_XXX to call according to
3527 cooding->category_idx.
3528 (detect_coding_system): Remove `nil' coding-system in the result.
3529 (Fupdate_coding_systems_internal): Update all coding-categories.
3530
3531 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3532 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3533 macros.
3534 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3535 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3536 CODING_CATEGORY_IDX_UTF_16_LE.
3537 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3538 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3539 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3540 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3541
9994cc69
GM
35422000-03-07 Gerd Moellmann <gerd@gnu.org>
3543
e9b4e5ff
GM
3544 * doc.c (Fdocumentation_property): If value is not a string,
3545 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3546
f7daf1e1
GM
3547 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3548 close the display with XtCloseDisplay. This caused a bus error
3549 on OpenWindows.
3550
9994cc69
GM
3551 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3552 complete but not unique.
3553
4336c705
GM
35542000-03-06 Gerd Moellmann <gerd@gnu.org>
3555
18bb0684
GM
3556 * process.c (send_process): Remove local variable `procname' that
3557 might become invalid when a GC happens. Instead, access the
3558 process name slot directly.
3559
4336c705
GM
3560 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3561 orig_height if set.
3562
3563 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3564 orig_height if set.
3565
515d0d0e
EZ
35662000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3567
3568 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3569 glyph matrices have been freed.
3570
100b3cbb
GM
35712000-03-05 Gerd Moellmann <gerd@gnu.org>
3572
50df5e5a 3573 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3574 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3575
3576 * xfns.c (QCdata): Moved to xdisp.c.
3577
3578 * xdisp.c (QCdata): Moved here from xfns.c.
3579 (syms_of_xdisp): Initialize QCdata.
3580
3581 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3582
3583 * window.c (coordinates_in_window): Use
3584 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3585 FRAME_INTERNAL_BORDER_WIDTH.
3586
100b3cbb 3587 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3588 it is obviously invalid.
100b3cbb
GM
3589
3590 * xterm.c (x_term_init): Create a colormap if not using the
3591 default visual.
3592
3593 * xterm.h (select_visual): Change prototype.
3594
3595 * xfns.c (select_visual): Rewritten. Recognize user-specified
3596 visual classes.
3597 (visual_classes): New variable.
3598
64d739c4
GM
35992000-03-04 Gerd Moellmann <gerd@gnu.org>
3600
3601 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3602 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3603 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3604 (x_decode_color): Don't handle allocation of white and black
3605 specially.
3606 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3607 XtNcolormap resources.
3608 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3609 (Fx_create_frame): Initialize color members of x_output structure.
3610 (xpm_load): Pass colormap to XPM lib.
3611
3612 * xfaces.c (x_free_colors): Access colormap of frame using
3613 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3614 when default colormap is used.
3615
3616 * xterm.c (x_term_init): Set Colormap member of x_display_info
3617 structure. Copy colormap if resource `privateColormap' is
3618 specified (PseudoColor only).
3619 (x_setup_relief_color): Access colormap of frame using
3620 FRAME_X_COLORMAP.
3621
3622 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3623 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3624
c3cee013
JR
36252000-03-04 Jason Rumney <jasonr@gnu.org>
3626
3627 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3628 other non-platform-specific equivalents.
64d739c4 3629 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3630 specific functions and macros as their w32 equivalents where
3631 non-platform-specifics are not available.
3632 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3633 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3634 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3635 (frame_update_line_height): Use macros to access f->output_data.
3636 (defined_color): Remove FIXME comments; fixed.
3637 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3638 into #ifdef blocks. Add WINDOWSNT blocks.
3639 (Fx_list_fonts): Use macros for accessing font data.
3640 (set_lface_from_font_name): Different default fonts for X and
3641 WINDOWSNT.
3642 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3643 scalable for backward compatibility.
64d739c4 3644 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3645 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3646
64d739c4 3647 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3648 syms_of_w32faces.
3649
3650 * makefile.nt (w32faces.obj): Remove.
3651 (xfaces.obj): Add.
3652
807cc41c
JR
36532000-03-03 Jason Rumney <jasonr@gnu.org>
3654
3655 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3656 correct parameters.
3657
0007072a
KR
36582000-03-03 Ken Raeburn <raeburn@gnu.org>
3659
3660 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3661 standard ELF definitions here if the system header does not.
3662
71a6ba55
GM
36632000-03-03 Gerd Moellmann <gerd@gnu.org>
3664
3665 * xterm.c (PER_CHAR_METRIC): Removed.
3666 (x_per_char_metric_1, x_default_char): New functions.
3667 (x_per_char_metric): If font's default char is invalid, return
3668 metrics of a suitably chosen usable default char.
3669 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3670 char, replace occurrences of unprintable chars with a suitably
3671 chosen usable default char.
71a6ba55 3672
900fa1f1
GM
36732000-03-02 Gerd Moellmann <gerd@gnu.org>
3674
42f55fe0
GM
3675 * xterm.c (note_mouse_highlight): Return quickly if frame's
3676 glyph matrices have been freed.
3677
3678 * dispnew.c (free_glyphs): Block input while freeing matrices.
3679
900fa1f1
GM
3680 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3681
3682 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3683 x_free_colors.
3684
3685 * dispextern.h (x_free_colors): Add prototype.
3686
3687 * xfaces.c (x_free_colors): New function.
3688 (unload_color, free_face_colors): Use it.
3689
2f950292
EZ
36902000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3691
3692 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3693
3694 * window.c [MSDOS]: Include msdos.h.
3695
54d04320
DL
36962000-03-02 Dave Love <fx@gnu.org>
3697
3698 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3699
3700 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3701 set C_OPTIMIZE_SWITCH for gcc.
3702
0ba93ac4
KH
37032000-03-02 Kenichi Handa <handa@etl.go.jp>
3704
3705 * coding.c (coding_save_composition): Be sure to allocate
3706 composition data area in coding even if there's no composition in
3707 the current run.
3708
a2bc11d4
JR
37092000-03-01 Jason Rumney <jasonr@gnu.org>
3710
3711 * w32term.c: Equivalent changes to those made to xterm.c on
3712 2000-02-25 and 2000-02-24.
3713
3714 * w32fns.c: Equivalent changes to those made to xfns.c on
3715 2000-02-25 and 2000-02-21.
3716
3717 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3718 correct line-end convention is followed.
3719
3720 * w32menu.c [HAVE_BOXES]: Remove #undef.
3721 (single_keymap_panes): Remove code for simulating checkmarks.
3722 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3723 Remove code for drawing simulated checkmarks.
3724 (w32_menu_show): make unibyte help string correctly.
3725 (add_menu_item): draw standard Windows checkmarks. Draw radio
3726 buttons as radio buttons if possible.
3727
72d19d75
GM
37282000-03-01 Gerd Moellmann <gerd@gnu.org>
3729
2df636f4
GM
3730 * sysdep.c (start_of_text): Don't define this function for NetBSD
3731 with ELF.
3732
427ec082 3733 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3734 Don't define.
3735 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3736 (LINKER): Don't undef if __NetBSD__ is defined.
3737
3738 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3739
3740 * fileio.c [__NetBSD__]: Define `unix'.
3741
72d19d75
GM
3742 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3743
ed4d0512
GM
37442000-02-29 Gerd Moellmann <gerd@gnu.org>
3745
50b1039f
GM
3746 * atimer.c (start_atimer): Don't abort when timers are stopped.
3747 (append_atimer_lists): New function.
3748 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3749 arbitrary lists of stopped and running atimers.
3750
ed4d0512
GM
3751 * atimer.c (cancel_atimer): Handle canceling an atimer when
3752 some timers are stopped.
3753
3754 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3755 after canceling it.
3756
3757 * fns.c (maybe_resize_hash_table): Handle case of new size
3758 coming out as being the same as old size.
3759
387023ee
JR
37602000-02-27 Jason Rumney <jasonr@gnu.org>
3761
3762 * makefile.nt: Add atimer.h to dependencies.
3763 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3764 * w32console.c: Only disable window system features for dispextern.h
3765 (initialize_w32_display): Build a display info for the console.
3766 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3767 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3768 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3769 as 2 button mice.
3770 * w32gui.h (struct W32FontStruct): Revert last change after change
3771 to xdisp.c.
3772 * w32menu.c (single_submenu): Set up help string.
3773 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3774 (w32_dialog_show): Set up help string.
3775 * w32term.c (w32_display_info_for_display): Remove unused function.
3776 (w32_draw_bitmap): Use pre-built bitmaps.
3777 (w32_initialize_display_info): New function to initialize parts of
3778 display info that are common to both GUI and console frames.
3779 (w32_term_init): Use w32_initialize_display_info. Do not set
3780 Vw32_num_mouse_buttons here, as it is not called for console
3781 frames. Build bitmaps for indicating truncated lines etc.
3782 (x_delete_display): Destroy pre-built bitmaps.
3783 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3784 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3785
4516715a
DL
37862000-02-27 Dave Love <fx@gnu.org>
3787
3788 * lisp.h: Add a bunch of prototypes.
3789
171ca836
KH
37902000-02-26 Kenichi Handa <handa@etl.go.jp>
3791
3792 * keyboard.c (read_char): Set `usec' correctly.
3793
4013921d
KH
37942000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3795
3796 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3797 `lambda', set reg[RRR] to the map index.
3798 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3799 reg[RRR] to 0. Otherwise, set it to -1.
3800
9244a058
GM
38012000-02-25 Gerd Moellmann <gerd@gnu.org>
3802
2df636f4 3803 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3804
18e21ce8 38052000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 3806
f43d79c1
GM
3807 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3808 and contains a `:', prepend `/:'.
3809
3810 * window.c (select_window_1): If selected_window is nil,
3811 don't "swap out" the buffer's point.
3812 (Fset_window_configuration): Set selected_window to nil
3813 before calling Fselect_window.
3814 (unshow_buffer): Don't set point in buffer from window's point
3815 if another more recently selected window also shows the buffer.
3816
bed0c171
GM
38172000-02-25 Gerd Moellmann <gerd@gnu.org>
3818
449c3c52
GM
3819 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3820
f5b58615
GM
3821 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3822 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3823 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3824 variables.
3825 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3826 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3827 (hide_busy_cursor): New functions.
3828 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3829
3830 * minibuf.c (read_minibuf): Cancel busy-cursor.
3831
3832 * keyboard.c (command_loop_1): Call start_busy_cursor before
3833 Fcommand_execute and cancel_busy_cursor after it.
3834 (timer_check): Remove busy-cursor code.
3835 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3836 cursor timer.
3837
3838 * process.c (wait_reading_process_input): Remove busy-cursor code.
3839
3840 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3841 Fx_hide_busy_cursor.
3842
3843 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3844 Remove prototyoes.
3845 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3846
3847 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3848
3849 * xterm.c (XTread_socket): Remove busy-cursor code.
3850
4eb8436f
GM
3851 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3852 (build_frame_matrix_from_leaf_window): Put code handling
3853 glyph row's not being a slice of a frame row in #if 0.
3854 (sync_window_with_frame_matrix_rows): New function.
3855 (frame_row_to_window): New function.
3856 (mirror_line_dance): Handle copies between windows.
3857
3cb65b0e
GM
3858 * lread.c (Fload): Use `xfree' instead of `free'.
3859 (init_obarray): Use `xmalloc' instead of `malloc'.
3860
bed0c171
GM
3861 * window.c (Fset_window_buffer): Set WINDOW to the window
3862 after decoding.
2add4349
GM
3863 (coordinates_in_window): Take frame's internal border width
3864 into account.
bed0c171 3865
42088c12
GM
38662000-02-24 Gerd Moellmann <gerd@gnu.org>
3867
3868 * xterm.c (x_display_and_set_cursor): Display cursor of
3869 non-selected windows depending on the setting of
3870 cursor_in_non_selected_windows.
3871
3872 * xdisp.c (cursor_in_non_selected_windows): New variable.
3873 (syms_of_xdisp): DEFVAR_BOOL it.
3874
d1e103b2
GM
38752000-02-23 Gerd Moellmann <gerd@gnu.org>
3876
723e779c
GM
3877 * data.c (Fstring_to_number): If number is greater than what
3878 fits into an integer, return a float.
3879
d1e103b2
GM
3880 * eval.c (specbind): Remove references to
3881 keyword_symbols_constant_flag.
3882
3883 * data.c (keyword_symbols_constant_flag): Removed.
3884 (Fmakunbound, set_internal, syms_of_data): Remove references to
3885 keyword_symbols_constant_flag.
3886
3887 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3888
214f877f
KH
38892000-02-23 Kenichi Handa <handa@etl.go.jp>
3890
3891 * syntax.c (multibyte_syntax_as_symbol): New variable.
3892 (syms_of_syntax): Declare it as a Lisp variable.
3893 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3894 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3895 nonzero, treat all multibyte characters as symbol.
42088c12 3896 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3897 characters.
3898
130adcb7
EZ
38992000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3900
3cb65b0e 3901 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 3902 a deleted frame.
130adcb7 3903
17cbbf95
GM
39042000-02-21 Gerd Moellmann <gerd@gnu.org>
3905
3906 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3907
3908 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3909 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3910
beb0bc36
DL
39112000-02-21 Dave Love <fx@gnu.org>
3912
3913 * frame.c (Vmouse_position_function): New variable.
3914 (Fmouse_position): Use it.
3915 (syms_of_frame): Install it.
3916
3917 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3918
1d92afcd
GM
39192000-02-20 Gerd Moellmann <gerd@gnu.org>
3920
3921 * fileio.c (Finsert_file_contents): Unbind the binding of
3922 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3923
3924 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3925 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3926 (specbind, unbind_to): Handle most common case of non-constant
3927 symbol with trivial value specially.
3928
3929 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3930
18e21ce8 39312000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
3932
3933 * data.c (Fmake_variable_buffer_local): Doc fix.
3934 Init found_for_buffer to 0.
3935 (Fmake_variable_frame_local): If the variable has already
3936 been buffer-local, set the check_frame field.
3937
1d4311c3
EZ
39382000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3939
3940 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3941 produced for CODING_MODE_LAST_BLOCK requires.
3942
2dc95ddd
DL
39432000-02-18 Dave Love <fx@gnu.org>
3944
3945 * keyboard.c (echo_keystrokes): Remove declaration.
3946 (Vecho_keystrokes) New variable.
3947 (read_char, record_menu_key, read_key_sequence): Use it to allow
3948 use of float value.
3949 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3950
3951 * lread.c: Undef feature selection macros before defining.
3952
f0930f35
GM
39532000-02-18 Gerd Moellmann <gerd@gnu.org>
3954
3955 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3956 for symbols other than the symbol in question.
3957
e3d4de90
DL
39582000-02-17 Dave Love <fx@gnu.org>
3959
3960 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3961
0b378936
GM
39622000-02-17 Gerd Moellmann <gerd@gnu.org>
3963
d621caf7
GM
3964 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3965
0b378936
GM
3966 * alloc.c (enum mem_type): Compile unconditionally.
3967
3b451f74
EZ
39682000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3969
3970 * xfaces.c (tty_defined_color): Don't return faulire indication
3971 for unspecified-fg and unspecified-bg pseudo-colors.
3972
10689a01
GM
39732000-02-17 Gerd Moellmann <gerd@gnu.org>
3974
1216f5e4
GM
3975 * alloc.c (mark_object): Don't mark symbol names in pure space.
3976 (gc_sweep): Don't unmark symbol names in pure space.
3977
3978 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3979 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3980 [GC_MARK_STACK]: New defines.
427ec082 3981 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3982 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3983
3984 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3985
3986 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3987 allocate_buffer instead of xmalloc.
3988
3989 * alloc.c (toplevel): Include setjmp.h.
3990 (PURE_POINTER_P): New define.
3991 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3992 (Vdead) [GC_MARK_STACK]: New variable.
3993 (lisp_malloc): Add parameter TYPE, call mem_insert if
3994 GC_MARK_STACK is defined.
3995 (allocate_buffer): New function.
427ec082 3996 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3997 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3998 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3999 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4000 (MEM_NIL) [GC_MARK_STACK]: New define.
4001 (struct mem_node) [GC_MARK_STACK]: New structure.
4002 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4003 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4004 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4005 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4006 (mark_stack) [GC_MARK_STACK]: New functions.
4007 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4008 (clear_marks): Removed.
4009 (gc_sweep): Set free conses' car, free floats' type, free
4010 symbols' function to Vdead. Use lisp_free to free buffers.
4011 (init_alloc_once): Initialize Vdead.
4012 (survives_gc_p): Return non-zero for pure objects.
4013
4014 * alloc.c: Add comments throughout the file.
4015
2503c8b1
GM
4016 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4017 that unblocks alarms.
4018
8389e1e2
GM
4019 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4020 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4021 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4022
10689a01 4023 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4024
bfc17d18
KH
40252000-02-17 Kenichi Handa <handa@etl.go.jp>
4026
4a09dee0
KH
4027 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4028 avoid infinite error signaling. Allocate sufficient memory for
4029 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4030
2b927d02
SM
40312000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4032
4033 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4034 depends on the previous behavior.
4035
b49cb764
GM
40362000-02-16 Gerd Moellmann <gerd@gnu.org>
4037
4038 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4039
99e95407
GM
40402000-02-15 Gerd Moellmann <gerd@gnu.org>
4041
4042 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4043
4044 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4045 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4046 write(2).
4047
6ffd3cf7
RS
40482000-02-15 Richard M. Stallman <rms@gnu.org>
4049
4050 * data.c (set_internal): Don't make variable buffer-local
4051 if within a let-binding for the same buffer.
4052 (let_shadows_buffer_binding_p): New function.
4053
4054 * eval.c (specbind): For buffer-local value,
4055 record the current buffer also.
4056 (unbind_to): Cope with that change.
4057
cad53475
GM
40582000-02-15 Gerd Moellmann <gerd@gnu.org>
4059
4060 * window.c (Fsave_window_excursion): Doc fix.
4061
1aa963c8
SM
40622000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4063
4064 * syntax.c (back_comment): Make sure we only consider comment-starters
4065 of the relevant style and return -1 in case of a failure to find the
4066 beginning of the comment.
4067 (Fforward_comment): If back_comment fails, go back to the position just
4068 after the comment-end.
4069 (scan_lists): Add comment describing a very minor bug.
4070
b9b84fd3
SM
40712000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4072
4073 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4074 `completion-regexp-list' in the docstring.
4075
3a28db80
DL
40762000-02-14 Dave Love <fx@gnu.org>
4077
4078 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4079
fb4a568d
SM
40802000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4081
4082 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4083 to Emacs' syntax. Also fix the comment about set/not-set meanings
4084 since Emacs syntax is not the value 0 any more.
4085 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4086 since it's now part of RE_SYNTAX_EMACS.
4087
1063ebb5
DL
40882000-02-12 Dave Love <fx@gnu.org>
4089
4090 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4091 Alpha.
4092
fb07a302
GM
40932000-02-12 Gerd Moellmann <gerd@gnu.org>
4094
4095 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4096
aaf2320c
DL
40972000-02-12 Dave Love <fx@gnu.org>
4098
4099 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4100
4101 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4102 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4103 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4104
4105 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4106
4107 * s/nextstep.h: Don't define HAVE_ALLOCA.
4108
4109 * config.in: Add vfork bits.
4110
eedf8bde
GM
41112000-02-12 Gerd Moellmann <gerd@gnu.org>
4112
4113 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4114 unwind function to undo the effect of stopping atimers.
4115
4116 * keyboard.c (bind_polling_period): Stop all timers except
4117 poll_timer.
4118
4119 * atimer.c (stopped_atimers): New variable.
4120 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4121 New functions.
4122
4123 * atimer.h (stop_other_atimers, run_all_atimers)
4124 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4125
eedf8bde
GM
4126 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4127
8476c2f8
KR
41282000-02-11 Ken Raeburn <raeburn@gnu.org>
4129
4130 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4131 library may depend on jpeg.
4132 (atimer.o): Depends on atimer.c.
4133
0e85e4a3
KH
41342000-02-11 Kenichi Handa <handa@etl.go.jp>
4135
4136 * insdel.c (del_range_1): Call update_compositions.
4137 (del_range_both): Call update_compositions just once..
4138
97fa0cc8
DL
41392000-02-10 Dave Love <fx@gnu.org>
4140
4141 * xfns.c (create_frame_xic): Fix initialization of automatic
4142 aggregates for pcc.
4143
25566a3c
KH
41442000-02-09 Kenichi Handa <handa@etl.go.jp>
4145
4146 * ccl.c (CCL_MAKE_CHAR): New macro.
4147 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4148 registers by CCL_MAKE_CHAR before calling translate_char.
4149 <CCL_TranslateCharacterConstTbl> Likewise.
4150
69da54ba
DL
41512000-02-08 Dave Love <fx@gnu.org>
4152
4153 * lread.c (__EXTENSIONS__): Define.
4154
f7136ee8
GM
41552000-02-08 Gerd Moellmann <gerd@gnu.org>
4156
4157 * puresize.h (BASE_PURESIZE): Increase to 650000.
4158
7768790b
EZ
41592000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4160
4161 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4162 the help message.
4163
38fd211b
EZ
41642000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4165
4166 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4167 md, mh, mb, mr, and me to the fake termcap entry.
4168
66e4690f
KR
41692000-02-06 Ken Raeburn <raeburn@gnu.org>
4170
4171 * sound.c (sound_cleanup): Don't call device close routine if the
4172 function pointer is null.
4173
a75dfea0
AI
41742000-02-06 Andrew Innes <andrewi@gnu.org>
4175
4176 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4177 around image definitions and prototypes.
4178 (gamma_correct) [WINDOWSNT]: New prototype.
4179
4180 * w32term.c (x_make_frame_visible): Replace call to
4181 input_poll_signal with poll_for_input.
4182
4183 * window.c [WINDOWSNT]: Include w32term.h.
4184
4185 * xdisp.c [WINDOWSNT]: Include w32term.h.
4186
4187 * makefile.nt: Add dependencies on w32gui.h.
4188 (OBJ1): Include atimer.obj.
4189 ($(BLD)\atimer.obj): New dependency rule.
4190
4191 * w32.c (sigmask): New function (does nothing).
4192 (sigunblock): Ditto.
4193
4194 * frame.c [WINDOWSNT]: Include w32term.h.
4195
4196 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4197
4198 * lread.c (syms_of_lread): Fix literal newlines.
4199
4200 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4201 the string constant limit (2048 bytes) in MSVC.
4202 (main): Ditto.
4203
59ddecde
GM
42042000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4205
4206 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4207 area.
4208 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4209 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4210 dispatch the event.
4211
07590973
DL
42122000-02-04 Dave Love <fx@gnu.org>
4213
4214 * fileio.c: Remove some unused vars.
4215 (_GNU_SOURCE): Define (for euidaccess).
4216
4217 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4218
4219 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4220 gcpro1, gcpro2.
4221 (read_minibuf): Deal with allow_props correctly.
4222
649351f9
EZ
42232000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4224
4225 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4226
66e4690f 42272000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4228
4229 * search.c (compile_pattern): If a cache entry has a nil regexp,
4230 fill in that entry instead of clobbering a previously cached
4231 string regexp.
4232
66e4690f 42332000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4234
4235 * puresize.h (BASE_PURESIZE): Increase to 610000.
4236
d240a249
GM
42372000-02-02 Gerd Moellmann <gerd@gnu.org>
4238
4239 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4240 can GC.
4241
ca91fb26
KH
42422000-02-02 Kenichi Handa <handa@etl.go.jp>
4243
25660570
KH
4244 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4245 instead of incrementing ic directly.
4246 <CCL_WriteExprConst> Likewise.
4247 <ccl_set_expr>: Set ic to jump_address.
4248
ca91fb26
KH
4249 * fileio.c (e_write): Fix the handling of
4250 CODING_FINISH_INSUFFICIENT_SRC.
4251
2ede9689
DL
42522000-02-01 Dave Love <fx@gnu.org>
4253
4254 * editfns.c (Fpropertize): Doc fix.
4255
4256 * process.c (Fstart_process): Doc fix.
4257
4258 * eval.c: Fix various doc strings not to duplicate information
4259 from help-manyarg-func-alist.
4260
4261 * window.c (Fset_window_margins): Don't make interactive. Doc
4262 fix.
4263
4264 * doc.c (Vhelp_manyarg_func_alist): New variable.
4265 (Fdocumentation): Use it.
4266 (syms_of_doc): Define it.
4267
b6680a0e
GM
42682000-01-31 Gerd Moellmann <gerd@gnu.org>
4269
2cb750ba
GM
4270 * xterm.c (xim_open_dpy): Remove unused local variable.
4271
74e9213b
GM
4272 * emacs.c (USAGE): Use term `display options' instead of `X
4273 options'.
4274
4275 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4276 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4277
b6680a0e
GM
4278 * fns.c (sweep_weak_table): New function.
4279 (sweep_weak_hash_tables): Use it. Keep on marking until there
4280 is no more change.
4281
994c5afe
GM
42822000-01-30 Gerd Moellmann <gerd@gnu.org>
4283
4284 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4285 that XTread_socket does not crash by trying to call XNoOp on a
4286 closed display.
427ec082 4287
f00276e3
JR
42882000-01-30 Jason Rumney <jasonr@gnu.org>
4289
4290 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4291 Change selected_frame to SELECTED_FRAME ().
4292 (w32_console_mouse_position): Remove #ifndef MULE from around
4293 `insist' parameter.
4294
4295 * makefile.nt: Remove dosfns.obj.
4296
4297 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4298
4299 * w32fns.c (w32_defined_color): Check for valid frame before
4300 applying gamma correction. Eliminate dependency on frame elsewhere.
4301 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4302 (w32_to_x_font): Use resx and resy not height_in and width_in.
4303 (x_to_w32_font): Doc fix.
4304 (xlfd_strip_height): New function to strip and return font height.
4305 (w32_font_match): Compare height separately from rest of xlfd
4306 spec, using xlfd_strip_height.
4307
4308 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4309 width_in. Use w32_defined_color in place of defined_color.
4310
4311 * w32faces.c: Merge more of DOS and X specifics in preparation for
4312 merge with xfaces.c.
4313 (defined_color): Remove FIXME comment.
4314 (tty_color_name): Provide w32-specific function.
4315 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4316
4317 * w32console.c (turn_on_face, turn_off_face): Removed.
4318 (w32_face_attributes): New function.
4319 (Global_variables): Reduce scope where possible.
4320 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4321 fill attribute.
4322 (hl_mode): Don't modify text attributes.
4323 (write_glyphs): Don't do anything if len <= 0. Use
4324 w32_face_attributes to get attributes for drawing. Write
4325 terminating codes using char_attr_normal.
4326 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4327 (update_begin, update_end): Likewise.
4328 (vga_stdcolor_name): New function.
4329 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4330 (Fset_screen_color): Remove char_attr_reverse.
4331
b08e8bb2
GM
43322000-01-29 Gerd Moellmann <gerd@gnu.org>
4333
4334 * xfns.c (xic_set_preeditarea): Take window parameter and
4335 window-relative pixel-positions.
4336
4337 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4338 is its frame's selected window.
4339 (xim_instantiate_callback): Likewise.
4340
4341 * xfns.c (x_create_im): Removed.
4342 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4343 (supported_xim_styles): Renamed from supported_styles.
4344 (best_xim_style): Renamed from best_style.
4345 (create_frame_xic): Renamed from xic_create_frame.
4346 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4347
b08e8bb2
GM
43482000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4349
4350 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4351 our frames, call XFilterEvent with 2nd parameter `None'.
4352 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4353 returning XBufferOverflow.
4354 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4355 area.
4356 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4357 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4358 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4359 (xim_initialize, xim_close)
4360 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4361 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4362 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4363 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4364
4365 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4366 and `xim_styles'.
4367 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4368 `xic_style' and `xic_xfs'.
4369 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4370 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4371 (FRAME_XIM): Removed.
4372
4373 * xfns.c (supported_styles): New variable.
4374 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4375 (xic_create_xfontset, best_style, xic_create_frame)
4376 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4377 (xic_set_xfontset): New functions.
4378
142e109c
DL
43792000-01-28 Dave Love <fx@gnu.org>
4380
4381 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4382
4383 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4384
b02786f9
GM
43852000-01-28 Gerd Moellmann <gerd@gnu.org>
4386
d060bc9f
GM
4387 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4388 for *scratch* if it already existed.
4389
b02786f9
GM
4390 * emacs.c (USAGE): New macro.
4391 (main): Use it to display usage information.
4392
2c52d7e4
EZ
43932000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4394
4395 Support for the menu-help feature:
4396
4397 * msdos.h: Change prototypes of XMenuAddSelection and
4398 XMenuActivate.
4399
4400 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4401 part of the line to the termscript file.
4402 (IT_clear_to_end): Clear the entire line, not just its beginning.
4403 (menu_help_message, prev_menu_help_message): New variables.
4404 (IT_menu_make_room): Make room for the help_text member.
4405 (IT_menu_display): New argument disp_help; all callers changed.
4406 If disp_help is non-zero, store the help text of the active menu
4407 item in menu_help_message.
4408 (XMenuAddPane): Initialize the help_text member to NULL.
4409 (XMenuAddSelection): New argument help_text. Store it in the
4410 XMenu structure.
4411 (XMenuActivate): New argument help_callback. If the value of
4412 menu_help_message has changed since the last time, display the
4413 menu help message text while waiting for the mouse to move. Clear
4414 the echo area before exiting.
4415 (XMenuDestroy): Free the help_text member.
4416
ffe0bcd1
GM
44172000-01-27 Gerd Moellmann <gerd@gnu.org>
4418
4419 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4420 XMenuAddSelection. Pass help callback to XMenuActivate.
4421 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4422
50dbd23f
EZ
44232000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4424
4425 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4426 and EMACS_SET_USECS.
4427
f5941bf8
GM
44282000-01-26 Dave Love <fx@gnu.org>
4429
6c67ddee
DL
4430 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4431
f5941bf8
GM
4432 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4433 an error may be signalled.
4434
9e49c990
GM
44352000-01-26 Gerd Moellmann <gerd@gnu.org>
4436
fc3cb460
GM
4437 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4438 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4439
9e49c990
GM
4440 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4441
d0c037d8
GM
44422000-01-25 Gerd Moellmann <gerd@gnu.org>
4443
4444 * charset.c (Fstring): If there is a multibyte char among
4445 the args, always return a multibyte string.
4446
e12489f9
GM
44472000-01-25 Gerd Moellmann <gerd@gnu.org>
4448
4449 * sysdep.c (sys_select): Turn atimers off and on instead of
4450 recording and restoring old alarm handler
4451
4452 * process.c (toplevel): Include atimer.h.
4453 (create_process_1): Rewritten.
4454 (create_process): Use atimers instead of alarm.
4455 (wait_reading_process_input) [hpux]: Turn atimers off instead
4456 of turning off SIGALRM.
4457 (wait_reading_process_input): Turn off atimers instead off
4458 calling stop_polling.
4459
4460 * emacs.c (main): Call init_atimer.
4461
4462 * keyboard.c (toplevel): Include systime.h and atimer.h.
4463 (polling_for_input): Removed because unused.
4464 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4465 (poll_timer): New variable.
4466 (poll_for_input, poll_for_input_1): New functions.
4467 (start_polling, stop_polling): Rewritten.
4468
4469 * keyboard.h (polling_for_input): Removed.
427ec082 4470
e12489f9
GM
4471 * atimer.h, atimer.c: New files.
4472
4473 * Makefile.in (obj): Add atimer.o.
4474 (atimer.o): New target.
4475
4476 * blockinput.h (pending_atimers): Add extern declaration.
4477 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4478
4479 * lisp.h (popup_activated_flag): Add extern declaration.
4480
4481 * xmenu.c (popup_activated_flag): Make externally visible.
4482 (popup_activate_callback) [USE_MOTIF]: Increment
4483 popup_activated_flag.
4484 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4485
4486 * xterm.c (toplevel): Include atimer.h.
4487 (toolkit_scroll_bar_interaction): New variable.
4488 (Fxt_process_timeouts): Removed.
4489 (x_process_timeouts): New function.
4490 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4491 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4492 (x_make_frame_visible): Call poll_for_input_1 instead of
4493 input_poll_signal. Don't call alarm.
4494 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4495
1e5279b9
DL
44962000-01-24 Dave Love <fx@gnu.org>
4497
6c67ddee 4498 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4499 Don't use -cckr -- apparently not now necessary.
4500
edf6aeb8
EZ
45012000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4502
4503 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4504 screen boundary.
4505
9badad41
JR
45062000-01-23 Jason Rumney <jasonr@gnu.org>
4507
4508 * w32fns.c (w32_defined_color): Apply gamma correction before
4509 trying to map to the palette.
4510 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4511 to w32_clear_rect.
4512
4513 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4514 here. Callers changed to always pass real device context.
4515 (w32_draw_bitmap): Likewise.
4516 (w32_get_glyph_overhangs): Likewise.
4517 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4518 one.
4519 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4520 pfnSetScrollInfo and SetScrollRange.
4521 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4522 back into MULE characters after decoding them.
4523 (x_get_glyph_face_and_encoding): Likewise.
4524 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4525 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4526 (x_produce_glyphs): Calculate per char metrics for a character
4527 that we know exists in default font when font_not_found_p is true.
4528
63bd786b
JR
45292000-01-22 Jason Rumney <jasonr@gnu.org>
4530
4531 * makefile.nt (intervals.obj, composite.obj): New modules.
4532 (composite.h): Added as dependency where appropriate.
4533
4534 * w32gui.h (XGCValue): New struct for emulating X GCs.
4535
4536 * w32term.h (XCharStruct): New struct for emulating X.
4537
4538 * w32console.c (turn_on_face, turn_off_face): New functions.
4539 (change_line_highlight): New prototype for new redisplay.
4540 (write_glyphs): Support multibyte text. Support faces.
4541
4542 * w32faces.c: Complete rewrite for new redisplay based on new
4543 xfaces.c.
4544
4545 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4546 throughout. struct frame * in place of FRAME_PTR.
4547 Skeleton support for images, toolbars, tooltips from xfns.c.
4548 (Fx_create_frame): Use system default for default scroll bar
4549 width.
4550 (w32_get_arg): Renamed from x_get_arg.
4551 (Fx_file_dialog): New function.
4552 (w32_list_fonts): Check cache before asking system.
4553 (Vw32_enable_synthesized_fonts): New variable.
4554 (Vw32_enable_italics): Obsolete, removed.
4555
4556 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4557 Use SELECTED_FRAME macro.
4558
4559 * w32menu.c: Add skeleton support for help strings on menus.
4560 (add_menu_item): Native checkbox and radio support added, but not
4561 yet enabled due to bugs.
4562 (push_menu_item): Add parameters type, selection and help.
4563 Callers updated.
4564 Formatting changes to reduce unnecessary diffs with xmenu.c.
4565
4566 * w32select.c (Fw32_set_clipboard_data): Update call to
4567 find_charset_in_str.
4568
4569 * w32term.c: Complete rewrite for new redisplay based on new
4570 xterm.c with necessary sections merged back in from old w32term.c.
4571
6ffd3cf7 45722000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4573
4574 * data.c (set_internal): Further fix in same criterion.
4575
6ffd3cf7 45762000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4577
4578 * data.c (set_internal): Fix the criteria for whether
4579 to swap out the old cached binding.
4580
60af03f1
DL
45812000-01-19 Dave Love <fx@gnu.org>
4582
4583 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4584
f9be074f
KH
45852000-01-18 Kenichi Handa <handa@etl.go.jp>
4586
4587 * regex.c (re_compile_fastmap): While checking a range table for
4588 `charset', skip flag bits for a character class correctly.
4589
52b8dbf9
GM
45902000-01-17 Gerd Moellmann <gerd@gnu.org>
4591
d36100c9
GM
4592 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4593
52b8dbf9
GM
4594 * xfns.c (x_window): Call lw_create_widget with new parameter
4595 list.
4596
4597 * widget.c (EmacsFrameSetCharSize): Change size of children first
4598 because of problems with main window geometry management under
4599 Lesstif.
4600
4601 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4602 MENU_ITEMS_ITEM_.*.
4603 (MENU_ITEMS_ITEM_HELP): New enumerator.
4604 (push_menu_item): Add parameter HELP. Record help in menu_items.
4605 (single_menu_item, single_submenu, list_of_items): Call
4606 push_menu_item with new parameter.
4607 (single_submenu): Set help string in widget value.
4608 (menu_highlight_callback): New function.
4609 (set_frame_menubar): Call lw_create_widget with new
4610 parameter list.
4611 (xmenu_show, xdialog_show): Ditto.
4612
3139018f
GM
46132000-01-13 Gerd Moellmann <gerd@gnu.org>
4614
4615 * sound.c (Fplay_sound): Improve doc string.
4616
83c8f461
RS
46172000-01-11 Richard M. Stallman <rms@gnu.org>
4618
4619 * lisp.h (set_internal): Enter the new arg.
4620
4621 * eval.c (specbind): Record buffer-local variables specially,
4622 indicating which buffer's binding was saved.
4623 (unbind_to): Restore buffer-local variables specially
4624 in the proper buffer.
4625
4626 * data.c (set_internal): New arg BUF.
427ec082 4627
83c8f461
RS
4628 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4629 * data.c (Fset): Pass new arg to set_internal.
4630 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4631
1fab1775
GM
46322000-01-11 Gerd Moellmann <gerd@gnu.org>
4633
4634 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4635 xprintsym.
4636
83c8f461 46372000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4638
4639 * minibuf.c (Ftry_completion): Doc fix.
4640
7a85e4df
GM
46412000-01-11 Gerd Moellmann <gerd@gnu.org>
4642
4643 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4644 vector, too.
4645
a970dae4
AS
46462000-01-11 Andreas Schwab <schwab@suse.de>
4647
4648 * coding.c (code_convert_region): Initialize total_skip.
4649
c65d14ee
DL
46502000-01-08 Dave Love <fx@gnu.org>
4651
4652 * eval.c (Fuser_variable_p): Check customizability too.
4653
834938d2
GM
46542000-01-07 Gerd Moellmann <gerd@gnu.org>
4655
4656 * minibuf.c (Fcompleting_read): Doc fix.
4657
e0303cd6
GM
46582000-01-05 Gerd Moellmann <gerd@gnu.org>
4659
8a26744b
GM
4660 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4661 -L /usr/local/lib.
4662
e0303cd6
GM
4663 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4664 Check that input style is supported before trying to create an
4665 IC for it.
4666 (x_window): Call x_create_im.
427ec082 4667
2e471eb5
GM
46682000-01-04 Gerd Moellmann <gerd@gnu.org>
4669
560a7bd2
GM
4670 * xfns.c (current_gif_memory_src): New variable.
4671 (gif_load): Record the address of the current memory source
4672 in current_gif_memory_src.
4673 (gif_read_from_memory): Use current_gif_memory_src.
4674
f9ee84a3
GM
4675 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4676 macros statement form.
4677
d1299cde
GM
4678 * sound.c (struct sound): Renamed from struct sound_file.
4679 (struct sound): Add members `data' and `header_size'.
4680 (enum sound_attr): Add SOUND_DATA.
4681 (current_sound, current_sound_device): Variables renamed from
4682 sound_file and sound_device.
4683 (parse_sound): Parse :data.
4684 (parse_sound): Handle sound data in strings.
4685 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4686 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4687 needed header size.
4688 (wav_play, au_play): Play sounds from string data.
4689
2e471eb5
GM
4690 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4691
4692 * lisp.h: Add prototype for allocate_string_data.
4693
4694 * alloc.c (Fgarbage_collect): Return number of live and free
4695 strings.
4696
4697 * alloc.c (mark_buffer): Remove code in #if 0.
4698 (gc_sweep): Ditto.
4699 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4700 (strings_consed): New variable.
4701 (allocate_string): Set it.
4702 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4703 (Fmemory_use_counts): Return strings_consed. Use Flist.
4704
4705 * alloc.c: General cleanup in comments etc. Remove conditional
4706 compilation for `standalone'.
4707
4708 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4709
4710 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4711 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4712 (DONT_COPY_FLAG): Removed.
4713 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4714 (struct sdata, struct sblock): New
4715 (struct string_block): Rewritten.
4716 (STRINGS_IN_STRING_BLOCK): New macro.
4717 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4718 (large_sblocks, string_blocks, string_free_list): New variables.
4719 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4720 (init_strings): Rewritten.
4721 (allocate_string, allocate_string_data, compact_small_strings)
4722 (free_large_strings, sweep_strings): New functions.
4723 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4724 (struct string_block_head, current_string_block)
4725 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4726 (STRING_PAD): Removed.
4727 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4728 (Fgarbage_collect): Don't set mark bit in large strings.
4729 (mark_object): Mark strings differently. Mark symbol names
4730 differently.
4731 (survives_gc_p): Test marked strings differently.
427ec082 4732 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4733 symbol names.
4734 (compact_strings): Removed.
4735
42608ba8
EZ
47362000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4737
4738 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4739 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4740
e0a09e1a
KH
47412000-01-04 Kenichi Handa <handa@etl.go.jp>
4742
dd9f0750 4743 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4744 in a non-empty buffer.
dd9f0750 4745
3c0f3b15 4746 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4747
44cd3ae5
GM
47482000-01-03 Gerd Moellmann <gerd@gnu.org>
4749
4750 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4751 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4752
4753 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4754
c182a70f
EZ
47552000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4756
4757 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4758 need to test for MSDOS frames.
4759
24480d5b
EZ
47602000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4761
4762 * dosfns.c (unspecified_colors): Remove.
4763 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4764 unspecified_bg.
4765 (msdos_stdcolor_name): Return strings for unspecified fore- and
4766 back-ground colors.
4767
4768 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4769 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4770 (tty_color_name): Return Lisp strings for unspecified fore- and
4771 back-ground colors.
4772 (Finternal_set_lisp_face_attribute): Remove the special treatment
4773 for Qunspecified_{f,b}g.
4774 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4775 string.
4776
047f434a
GM
47772000-01-03 Gerd Moellmann <gerd@gnu.org>
4778
4779 * xdisp.c (reseat_at_next_visible_line_start): Position before
4780 newline only if ending up on a newline.
4781 (next_element_from_ellipsis): Return success. Handle case of
4782 displaying no ellipsis. Fix case of ellipsis defined in display
4783 table.
4784 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4785 returns 0.
4786
d684c676
EZ
47872000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4788
4789 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4790 (Fcolor_supported_p): Renamed from face-color-supported-p.
4791
5fe1d139
EZ
47922000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4793
4794 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4795 list of colors renamed to tty-defined-color-alist.
4796 (tty_color_name): Pass the frame to tty-color-by-index.
4797 (realize_tty_face): tty-color-alist is now a function which
4798 accepts the frame as argument.
4799
4800 * term.c (Ftty_display_color_p): Accept an optional argument
4801 FRAME.
4802
816be8b8
EZ
48032000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4804
4805 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4806 encode_terminal_code.
4807
b635321e
EZ
48082000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4809
4810 * dispnew.c (mode_line_string): Support termcap frames as well.
4811
9b784e96
GM
48122000-01-01 Gerd Moellmann <gerd@gnu.org>
4813
27189709
GM
4814 * syntax.c (Fforward_word): Undo previous change.
4815
4816 * editfns.c (Fconstrain_to_field): Don't constrain if
4817 inhibit-field-text-motion is non-nil.
4818 (Fline_beginning_position): Undo previous change.
4819 (Fline_end_position): Ditto.
4820
4821 * syntax.c (Fforward_word): Notice field boundaries only if
4822 inhibit-field-text-motion is nil.
4823
4824 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4825
4826 * editfns.c (Vinhibit_field_text_motion): New variable.
4827 (inhibit-field-text-motion): New DEFVAR_LISP.
4828 (Fline_beginning_position, Fline_end_position): Notice field
4829 boundaries only if inhibit-field-text-motion is nil.
4830
45158a91
GM
4831 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4832 All calls adjusted.
4833 (x_build_heuristic_mask): Likewise.
4834 (xbm_load_image_from_file): Change error output.
4835 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4836 (gif_load, gs_load, x_kill_gs_process): Ditto.
4837
9b784e96
GM
4838 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4839 color indices when accessing raster pixels.
63cec32f
GM
4840 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4841 one of :file or :data.
4842 (enum pbm_keyword_index): Add PBM_DATA.
4843 (pbm_format): Add :data.
4844 (pbm_image_p): Allow either :file or :data.
4845 (pbm_read_file): New function.
4846 (pbm_scan_number): Rewritten to read from string.
4847 (pbm_load): Support :data.
9b784e96 4848
5ad6a5fb
GM
48491999-12-31 Gerd Moellmann <gerd@gnu.org>
4850
4851 * xfns.c: New image functions adapted to Emacs conventions.
4852 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4853 variable `file'.
4854
63448a4d
WP
48551999-12-31 William M. Perry <wmperry@aventail.com>
4856
4857 * xfns.c (jpeg_format): Added the :data keyword
4858 (jpeg_image_p): JPEG is valid with :file _or_ :data
4859 (jpeg_memory_src): Defined new JPEG image source to read from a
4860 memory buffer.
4861 (jpeg_load): Pay attention to the :data keyword if specified.
4862 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4863 found.
4864 (png_format): Added the :data keyword
4865 (png_image_p): PNG is valid with :file _or_ :data
4866 (png_read_from_memory): New PNG read function to read from a
4867 memory buffer.
4868 (png_load): Pay attention to the :data keyword if specified. Uses
4869 png_set_read_fn() instead of png_init_io() if specified.
4870 (tiff_format): Added the :data keyword for TIFF images.
4871 (tiff_image_p): TIFF is valid with :file _or_ :data
4872 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4873 from a memory buffer.
4874 (tiff_load): Pay attention to the :data keyword if specified.
4875 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4876 (gif_format): Added the :data keyword
4877 (gif_image_p): GIF is valid with :file _or_ :data
4878 (gif_read_from_memory): New GIF input function to read from a
4879 memory buffer.
c65d14ee 4880 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4881 instead of DGifOpenFileName() if specified.
4882
c880678e
GM
48831999-12-31 Gerd Moellmann <gerd@gnu.org>
4884
4885 * xdisp.c (next_element_from_buffer): Change assertion at the end
4886 because it doesn't hold when there's an overlay string at the end
4887 from which we deliver an image.
4888
8ccb9a54
EZ
48891999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4890
4891 * msdos.c (IT_update_begin): Don't dereference members of struct
4892 window for deleted windows.
4893
12ce2351
GM
48941999-12-30 Gerd Moellmann <gerd@gnu.org>
4895
a915c648
GM
4896 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4897 a hook, and the hook has a non-nil `no-self-insert' property, let
4898 the return value of the hook specify whether an expansion took
4899 place. If it returns nil, no expansion has been performed.
4900
12ce2351
GM
4901 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4902 differently.
4903
04ee4f45
EZ
49041999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4905
4906 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4907
7f4bc0c3
EZ
49081999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4909
4910 * dispnew.c (mode_line_string): Support MS-DOS frames.
4911
dac204bc
GM
49121999-12-29 Gerd Moellmann <gerd@gnu.org>
4913
4914 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4915
7b712ad8
KH
49161999-12-29 Kenichi Handa <handa@etl.go.jp>
4917
4918 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4919 to signal_after_change.
4920
adb9900f
EZ
49211999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4922
41ad069b
EZ
4923 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4924 dimensions changed, invalidate the mouse highlight info.
4925 (disable_mouse_highlight, help_echo, previous_help_echo): New
4926 variables.
4927 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4928 (fast_find_position, IT_note_mode_line_highlight)
4929 (IT_note_mouse_highlight): New functions.
4930 (IT_update_begin): If the redisplay affects the window where the
4931 mouse highlight is, clear the highlight. If the frame where the
4932 highlight was displayed was killed, invalidate the highlight
4933 info.
4934 (IT_update_end): Reset the highlight flag. Reset the mouse
4935 highlight-defer flag.
4936 (IT_frame_up_to_date): New function, if mouse highlight was
4937 deferred due to GC, do it now.
4938 (internal_terminal_init): Initialize mouse-highlight related
4939 members of the_only_x_display. Assign IT_frame_up_to_date to
4940 frame_up_to_date_hook.
4941 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4942 help_echo changed value, generate a HELP_EVENT event.
4943 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4944
adb9900f
EZ
4945 * msdos.h (struct display_info): New.
4946 (struct x_output): Add the display_info member.
4947 (FRAME_X_DISPLAY_INFO): New macro.
4948
481b5054
GM
49491999-12-28 Gerd Moellmann <gerd@gnu.org>
4950
4951 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4952 if MODIFF > 1.
6448a6b3 4953 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4954
4955 * buffer.c (modify_overlay): Always compute unchanged info.
4956
a2882b0d
KH
49571999-12-27 Kenichi Handa <handa@etl.go.jp>
4958
4959 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4960
89ba5b5f
KH
49611999-12-27 Kenichi Handa <handa@etl.go.jp>
4962
4963 The following changes are to use more bits for face IDs.
4964
4965 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4966 lowest 8 bits are single byte character code, the bits above are
4967 face ID.
481b5054 4968 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4969 above.
481b5054
GM
4970 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4971 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4972
4973 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4974 of GLYPH_MASK_CHAR.
4975
4976 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4977 of GLYPH_MASK_CHAR.
4978
4979 * dispextern.h (struct glyph): Make face_id and padding_p the top
4980 level members. Change members in union `u'.
4981 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4982 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4983 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4984 (CHAR_GLYPH_PADDING_P): Likewise.
4985 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4986 characters.
4987
481b5054 4988 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4989 for the change of struct glyph.
4990 (line_draw_cost): Adjusted for the change of
4991 GLYPH_FROM_CHAR_GLYPH.
4992 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4993
4994 * term.c (encode_terminal_code): Adjusted for the change of struct
4995 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4996 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4997 change of struct glyph.
4998
4999 * xdisp.c: All codes adjusted for the change of struct glyph.
5000
5001 * xterm.c: All codes adjusted for the change of struct glyph.
5002
5bcd116c
KH
50031999-12-27 Kenichi Handa <handa@etl.go.jp>
5004
5005 * composite.h (struct composition): Change the order of declaring
5006 members to reduce the byte size of the structure.
5007
f21b06b7
GM
50081999-12-25 Gerd Moellmann <gerd@gnu.org>
5009
5010 * search.c (looking_at_1): Reset immediate_quit before modifying
5011 global data.
5012
e36557c9
KH
50131999-12-24 Kenichi Handa <handa@etl.go.jp>
5014
5015 * process.c (read_process_output): Fix the arg FROM to
5016 update_compositions.
5017
83c8f461 50181999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
5019
5020 * search.c (Freplace_match): For nonliteral replacement in buffer,
5021 construct all the new text first, then insert all at once.
5022
0b863bd9
DL
50231999-12-22 Dave Love <fx@gnu.org>
5024
5025 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5026
6d8e8ef3
GM
50271999-12-22 Gerd Moellmann <gerd@gnu.org>
5028
28d7281d
GM
5029 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5030 lead to size changes to after the X window has been created.
5031
e22ef6eb 5032 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
5033 variable in xassert.
5034
8affcced
KH
50351999-12-22 Kenichi Handa <handa@etl.go.jp>
5036
5037 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 5038 only when the frame is not for a window system.
8affcced 5039
f2be1146
GM
50401999-12-22 Gerd Moellmann <gerd@gnu.org>
5041
deca1348
GM
5042 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5043 redisplay after changing the multibyteness of a buffer.
5044
f2be1146
GM
5045 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5046 frame's X window to XFilterEvent instead of None because that's
5047 the X window for which the IC was created. This makes dead
5048 accents work when the pointer is not in Emacs' frame.
5049 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5050
a744a2ec
DL
50511999-12-20 Dave Love <fx@gnu.org>
5052
5053 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5054
9e6985ed
GM
50551999-12-19 Gerd Moellmann <gerd@gnu.org>
5056
5057 * eval.c (debugger_may_continue): New variable.
5058 (syms_of_eval): Add a DEFVAR_BOOL for it.
5059 (call_debugger): Bind it.
5060
3b620731
EZ
50611999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5062
5063 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5064 fp->tty_reverse_p is set, unless the computed colors are identical
5065 to frame colors. Print both original and computed colors to
5066 termscript file.
5067 (IT_write_glyphs): Track the changes in handling of composite
5068 characters.
5069 (IT_set_frame_parameters): Don't set frame colors from
5070 unspecified-fg and unspecified-bg pseudo-colors.
5071
0f9a51c4
DL
50721999-12-17 Dave Love <fx@gnu.org>
5073
5074 * data.c (Fkeywordp): New function.
5075 (syms_of_data): Install it.
5076
363e4e42
EZ
50771999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5078
5079 * xfaces.c (tty_defined_color): Fix last change.
5080
cfad01b4
GM
50811999-12-15 Gerd Moellmann <gerd@gnu.org>
5082
5083 * xdisp.c (redisplay_window) <optional new window start>: Check
5084 that window start is in [BEGV..ZV].
5085
f9d2fdc4
EZ
50861999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5087
5088 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5089 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5090
5091 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5092 (syms_of_xfaces): Initialize and staticpro them.
5093 (tty_defined_color): If the color name is unspecified-fg or
5094 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5095 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5096 (tty_color_name): If the color pixel value is either
5097 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5098 Qunspecified_fg or Qunspecified_bg, respectively.
5099 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5100 and Qunspecified_bg for foreground and background colors.
5101 (realize_default_face): If the foreground and background colors
5102 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5103 (realize_tty_face): By default, set the face colors to
5104 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5105 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5106 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5107 Reverse the colors if the default colors were reversed.
5108
5109 * dispnew.c (init_display): Initialize the frame pixels of the
5110 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5111 FACE_TTY_DEFAULT_BG_COLOR.
5112
5113 * term.c (turn_on_face): If the default fore- and background
5114 colors are reversed, enter inverse video mode. Don't send color
5115 escape sequences for unspecified foreground and background colors.
5116 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5117
5118 * dosfns.c (unspecified_colors): New variable.
5119 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5120 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5121 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5122 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5123 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5124 Qunspecified_bg, respectively.
5125
5126 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5127 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5128
e19539f1
KH
51291999-12-15 Kenichi Handa <handa@etl.go.jp>
5130
5131 * coding.c (code_convert_region): Fix the secoding arg to
5132 update_compositions.
5133
5ec14d3c
KH
51341999-12-15 Kenichi Handa <handa@etl.go.jp>
5135
5136 The following changes are for the new composition mechanism. We
5137 have deleted `composition' charset and composite characters,
5138 instead introduced a special text property `composition'.
5139
5140 * Makefile.in (INTERVAL_SRC): Include composite.h.
5141 (INTERVAL_OBJ): Include composite.o.
5142 (SOME_MACHINE_OBJECTS): Include composite.o.
5143 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5144 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5145 Depend on composite.h.
5146 (doc.o): Depend on charset.h.
5147 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5148 (composite.o): New target.
427ec082 5149
5ec14d3c
KH
5150 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5151
5152 * callproc.c (Fcall_process): Call code_convert_string to encode
5153 arguments. Use CODING_REQUIRE_DECODING to check if the process
5154 output should be decoded.
5155
5156 * casefiddle.c: Include composite.h.
5157 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5158 multibyte character. Adjusted for the change of CHAR_STRING.
5159 (casify_region): Likewise. Call update_compositions.
5160
5161 * category.h (CATEGORY_SET): Delete codes for a composite
5162 character.
5163
5164 * category.c (word_boundary_p): Delete codes for a composite
5165 character.
5166 (Fmake_category_table): New function.
5167 (syms_of_category): Defsubr it.
5168
5169 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5170 (ccl_driver): Delete codes for a composite character.
5171
5172 * charset.h: In this entry, just `Modified' means that codes for a
5173 composite character is deleted.
5174 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5175 (charset_composition) (MIN_CHAR_COMPOSITION)
5176 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5177 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5178 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5179 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5180 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5181 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5182 Modified.
5183 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5184 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5185 non_ascii_char_to_string.
5186 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5187 (STRING_CHAR_AND_LENGTH): Likewise.
5188 (FETCH_CHAR_ADVANCE): New macro.
5189 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5190 (MAX_MULTIBYTE_LENGTH): New macro.
5191 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5192 (find_charset_in_str): Argument adjusted.
5193 (CHAR_LEN): Modified.
427ec082 5194
5ec14d3c
KH
5195 * charset.c: In this entry, just `Modified' means that codes for a
5196 composite character is deleted.
5197 (Qcomposition) (leading_code_composition)
5198 (charset_composition) (min_composite_char) (cmpchar_table)
5199 (cmpchar_table_size) (n_cmpchars): Deleted.
5200 (SPLIT_COMPOSITE_SEQ): Deleted.
5201 (SPLIT_MULTIBYTE_SEQ): Modified.
5202 (char_to_string): Renamed from non_ascii_char_to_string.
5203 Modified.
5204 (string_to_char): Renamed from string_to_non_ascii_char.
5205 (split_string): Renamed from split_non_ascii_string.
5206 (char_printable_p) (Fsplit_char)
5207 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5208 (char_bytes) (Fchar_width) (strwidth): Modified.
5209 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5210 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5211 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5212 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5213 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5214 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5215 (Fcmpchar_cmp_count): Deleted.
5216 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5217 (init_charset_once): Modified.
5218 (syms_of_charset): Modified.
5219
5220 * cmds.c (internal_self_insert): Adjusted for the change of
5221 CHAR_STRING.
5222
5223 * coding.h (emacs_code_class_type): Delete the member
5224 EMACS_leading_code_composition.
5225 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5226 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5227 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5228 (COMPOSING_WITH_RULE_P): Macros deleted.
5229 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5230 macros.
5231 (struct composition_data): New structure.
5232 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5233 (struct coding_system): New members composition_rule_follows,
5234 cmp_data, cmp_data_start, cmp_data_index.
5235 (coding_save_composition) (coding_free_composition_data)
5236 (coding_adjust_composition_offset): Extern them.
5237
5238 * coding.c: Include composite.h.
5239 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5240 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5241 of multibyte code here.
5242 (DECODE_CHARACTER_DIMENSION2): Likewise.
5243 (detect_coding_emacs_mule): Change the case label from
5244 EMACS_leading_code_composition to 0x80.
5245 (detect_coding_iso2022): Handle new composition sequence.
5246 (DECODE_ISO_CHARACTER): Likewise.
5247 (check_composing_code): Deleted.
5248 (coding_allocate_composition_data): New function.
5249 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5250 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5251 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5252 (decode_coding_iso2022): Handle new composition sequence.
5253 (ENCODE_ISO_CHARACTER): Don't check composition here.
5254 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5255 (ENCODE_COMPOSITION_NO_RULE_START)
5256 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5257 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5258 (ENCODE_COMPOSITION_FAKE_START): New macro.
5259 (encode_coding_iso2022): Handle new composition sequence.
5260 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5261 (encode_coding_sjis_big5): Ignore composition.
5262 (setup_coding_system): Initialize new members of struct
5263 coding_system. Enable composition only when the coding system has
5264 `composition' property t.
5265 (coding_free_composition_data) (coding_adjust_composition_offset)
5266 (coding_save_composition) (coding_restore_composition): New
5267 functions.
5268 (code_convert_region): Call coding_save_composition for encoding
5269 and coding_allocate_composition_data for decoding. Don't skip
5270 ASCII characters if we handle composition on encoding. Call
5271 signal_after_change with Check_BORDER.
5272 (code_convert_string): Call coding_save_composition for encoding
5273 and coding_allocate_composition_data for decoding. Don't skip
5274 ASCII characters if we handle composition on encoding.
5275 (code_convert_string1): Set Vlast_coding_system_used after calling
5276 code_convert_string.
5277 (code_convert_string_norecord): Disable composition.
5278 (Fset_terminal_coding_system_internal): Likewise.
5279 (Fset_safe_terminal_coding_system_internal): Likewise.
5280 (Fset_keyboard_coding_system_internal): Likewise.
5281 (init_coding_once): Set emacs_code_class[0x80] to
5282 EMACS_invalid_code.
5283
5284 * composite.h: New file.
5285
5286 * composite.c: New file.
5287
5288 * data.c (Faref): Delete codes for a composite character..
5289 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5290
5291 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5292 (struct glyph): Add new sub-structure cmp to the union `u'.
5293 (enum display_element_type): New member IT_COMPOSITION.
5294 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5295 (struct it): New members cmp_id, cmp_len.
5296
5297 * dispnew.c (direct_output_forward_char): Check point moving into
5298 or out of a composition. If so, give up direct method.
5299
5300 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5301
5302 * editfns.c (Fchar_to_string): Adjusted for the change of
5303 CHAR_STRING.
5304 (general_insert_function): Likewise.
5305 (Finsert_char): Likewise.
5306 (Fsubst_char_in_region): Likewise. Call update_compositions.
5307 (Ftranslate_region): Call update_compositions.
5308 (Ftranspose_regions): Call update_compositions.
5309
5310 * emacs.c (main): Call syms_of_composite.
5311
5312 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5313 CHAR_STRING.
5314 (Finsert_file_contents): Set Vlast_coding_system_used before
5315 calling signal_after_change. Call update_compositions if some
5316 texts are inserted..
5317 (Fwrite_region): Adjusted for the change of a_write and e_write.
5318 (a_write): Argument changed. Work based on character position,
5319 not byte position.
5320 (e_write): Argument changed. Handle new way of composition.
5321
5322 * fns.c (Flength): The length of char-table is MAX_CHAR.
5323 (concat): Adjusted for the change of CHAR_STRING.
5324 (Ffillarray): Adjusted for the change of CHAR_STRING.
5325 (Fset_char_table_default): Delete codes for a composite character.
5326 (hash_put): Return hash index.
5327
5328 * fontset.h (struct font_info): New member vertical_centering.
5329 (Vvertical_centering_font_regexp): Extern it.
5330
5331 * fontset.c (Vvertical_centering_font_regexp): New variable.
5332 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5333 Set Vignore_relative_composition to nil.
5334 (fs_load_font): Initialize `vertical_centering' of struct
5335 font_info.
5336
5337 * indent.c (check_composition): New function.
5338 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5339 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5340 (current_column_1): Handle new way of composition.
5341 (Fmove_to_column): Likewise.
5342 (compute_motion): Likewise.
5343
5344 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5345 (insert_char): Likewise.
5346 (insert): Call update_compositions.
5347 (insert_and_inherit): Likewise.
5348 (insert_before_markers): Likewise.
5349 (insert_before_markers_and_inherit): Likewise.
5350 (insert_from_string): Likewise.
5351 (insert_from_string_before_markers): Likewise.
5352 (insert_from_buffer): Likewise.
5353 (replace_range): Likewise.
5354 (count_combining_composition): Deleted.
5355 (count_combining_before): Delete codes for a composite character.
5356 (count_combining_after): Likewise.
5357 (del_range_1): Call update_compositions.
5358 (del_range_byte): Likewise.
5359 (del_range_both): Likewise.
5360 (Fcombine_after_change_execute): Likewise.
5361
5362 * intervals.h: Include composite.h.
5363 (get_property_and_range): Extern it.
5364 (Vtext_property_default_nonsticky): Extern it.
427ec082 5365
5ec14d3c
KH
5366 * intervals.c (adjust_intervals_for_insertion): To check stickines
5367 of properties, pay attention to text-property-default-nonsticky.
5368 (merge_properties_sticky): Likewise.
5369 (get_property_and_range): New function.
5370
5371 * keyboard.c (Vdisable_point_adjustment): New variable.
5372 (Vglobal_disable_point_adjustment): New variable.
5373 (syms_of_keyboard): Declare them as Lisp variables.
5374 (command_loop_1): Check them and call adjust_point_for_property if
5375 necessary.
5376 (adjust_point_for_property): New function.
5377
5378 * keymap.c (push_key_description): Adjusted for the change of
5379 CHAR_STRING.
5380 (Ftext_char_description): Likewise.
5381
5382 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5383 (hash_put): Adjusted for the change of the definition.
5384 (signal_after_change): Likewise.
5385 (check_point_in_composition): Extern it.
5386
5387 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5388 Delete a code that handles an invalid too-long multibyte sequence
5389 because we are now sure that we never encounter with such a
5390 sequence.
5391 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5392 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5393 (init_obarray): Likewise.
5394 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5395
5396 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5397
5398 * process.c: Include composite.h.
5399 (read_process_output): Call update_compositions.
5400
5401 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5402
5403 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5404
5405 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5406 character.
5407
5408 * term.c (encode_terminal_code): Delete codes for a composite
5409 character. Adjusted for the change of CHAR_STRING.
5410 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5411 Delete codes for a composite character.
5412
5413 * textprop.c (Vtext_property_default_nonsticky): New variable
5414 (syms_of_textprop): Declare it as a Lisp variable.
5415
5416 * window.c (Frecenter): Clear all caches of compositions.
5417
5418 * xdisp.c (it_props): Add an entry for composition.
5419 (face_before_or_after_it_pos): For composition, check face of a
5420 character after the composition.
5421 (handle_composition_prop): New function.
5422 (get_next_display_element): Adjusted for the change of
5423 CHAR_STRING.
5424 (set_iterator_to_next): Handle the case that it->method ==
5425 next_element_from_composition.
5426 (next_element_from_composition): New function.
5427 (message_dolog): Adjusted for the change of CHAR_STRING.
5428 (set_message_1): Likewise.
5429 (check_point_in_composition): New function.
5430 (reconsider_clip_changes): If point moved into or out of
5431 composition, set b->clip_changed to 1 to force updating of the
5432 screen.
5433 (disp_char_vector): Delete codes for a composite character.
5434 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5435
5436 * xfaces.c (choose_face_fontset_font): Delete codes for a
5437 composite character.
5438 (realize_x_face): Likewise. Change a place to set local variable
5439 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5440
5441 * xfns.c: Include intervals.h.
5442 (syms_of_xfns): Make `display' property nonsticky by default.
5443
5444 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5445 for find_charset_in_str.
5446
5447 * xterm.h (struct x_output): Change member font_baseline to
5448 baseline_offset.
5449
5450 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5451 for composition.
5452 (x_append_composite_glyph): New function.
5453 (VCENTER_BASELINE_OFFSET): New macro.
5454 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5455 of struct it for the composition. Cache pixel offsets in the
5456 struct composition. Delete codes for a composite character.
5457 Handle Vignore_relative_composition in composition code.
5458 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5459 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5460 (x_compute_glyph_string_overhangs): Likewise.
5461 (x_get_glyph_overhangs): Delete codes for a composite character.
5462 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5463 (x_draw_glyph_string_background): Likewise. Delete codes for
5464 checking s->gidx for a composition.
5465 (x_draw_glyph_string_foreground): Delete code for a composite
5466 character.
5467 (x_draw_composite_glyph_string_foreground): New function.
5468 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5469 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5470 (struct work): Deleted.
5471 (x_fill_composite_glyph_string): Argument changed. Mostly
5472 rewritten for that.
5473 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5474 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5475 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5476 (BUILD_GLYPH_STRINGS): For composition, call
5477 BUILD_COMPOSITE_GLYPH_STRING.
5478 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5479 f->output_data.x->font_baseline.
5480
c3c60f13
GM
54811999-12-14 Gerd Moellmann <gerd@gnu.org>
5482
5483 * xterm.c (show_mouse_face): Don't use updated_area, use
5484 TEXT_AREA.
5485
83c8f461 54861999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5487
5488 * minibuf.c (Fall_completions): Doc fix.
5489
83c8f461 54901999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5491
5492 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5493 has been changed by the Lisp code.
5494
d8eccf12
GM
54951999-12-12 Gerd Moellmann <gerd@gnu.org>
5496
5497 * xfns.c: Indentation fixes.
5498
ae56feae
SM
54991999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5500
5501 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5502
dfa1c6ae
GM
55031999-12-10 Gerd Moellmann <gerd@gnu.org>
5504
5505 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5506 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5507
5508 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5509 to frame.h.
5510
ec18280f
SM
55111999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5512
5513 * keyboard.c (Qratio): New symbol.
5514 (scroll_bar_parts): Add `Qratio' to it.
5515 (syms_of_keyboard): Init `Qratio'.
5516 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5517 * xterm.c (#includes): Allow compilation with only Xaw.
5518 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5519 (xt_action_hook): Replace XAW3D by XAW.
5520 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5521 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5522 Determine epsilon dynamically and don't try to be too clever.
5523 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5524 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5525 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5526 scrollbar (using `ratio').
5527 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5528 scrollbar we have so as to set it up more optimally and to fix
5529 xaw3d_arrow_scroll and xaw3d_pick_top.
5530 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5531 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5532 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5533 is not ignored, using a major gross hack.
5534 (x_initialize): Init default values for xaw3d_arrow_scroll and
5535 xaw3d_pick_top.
5536
83b6d970
DL
55371999-12-09 Dave Love <fx@gnu.org>
5538
5539 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5540
3648c842
GM
55411999-12-08 Gerd Moellmann <gerd@gnu.org>
5542
5543 * eval.c: Remove conditional compilation on `standalone'.
5544 (call_debugger): When entering the debugger while redisplaying,
5545 reset redisplaying_p, and go back to the top-level if the debugger
5546 returns.
5547
05e71564
GM
55481999-12-07 Gerd Moellmann <gerd@gnu.org>
5549
5550 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5551 basic faces are realized before trying to use face `menu'.
5552
5553 * window.c (delete_window): Block input for the time window
5554 matrices are being changed.
5555
b46cd536
DL
55561999-12-07 Dave Love <fx@gnu.org>
5557
5558 * lread.c (Fintern_soft): Fix newlines in doc string.
5559
96acb1f7
GM
55601999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5561
5562 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5563 duplicate definition of ElfW.
5564 (find_section): Copied from unexsgi.c.
5565 (unexec): Use find_section. Adjust whitespace. Initialize
5566 new_data2_offset based on old_data, not sbss (this fixes a bug on
5567 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5568 Adjust test for presence of .mdebug section to the new return
5569 value of find_section.
427ec082 5570
96acb1f7
GM
55711999-12-07 Gerd Moellmann <gerd@gnu.org>
5572
5573 * unexelf.c: Merge changes from 20.5.
5574 (unexec): Handle .lit4 and .lit8 unconditionally.
5575
5576 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5577 unexsgi.o again.
427ec082 5578
96acb1f7
GM
5579 * m/iris5d.h (UNEXEC): Likewise.
5580
7dae4502
SM
55811999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5582
5583 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5584 (syms_of_editfns): Register it.
5585 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5586 (del_range_1, del_range_2): Add a ret_string argument to
5587 request that the deleted text be returned.
5588 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5589 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5590 * casefiddle.c (casify_region): Update del_range_1 call.
5591 * coding.c (code_convert_region): Update del_range_2 call.
5592 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5593
397e4fae
GM
55941999-12-06 Gerd Moellmann <gerd@gnu.org>
5595
5596 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5597
3d973f71
GM
55981999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5599
5600 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5601
740e985f
EZ
56021999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5603
5604 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5605
5606 * insdel.c (adjust_markers_for_delete): Fix last change.
5607
2d764c78
EZ
56081999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5609
5610 Changes for automatic remapping of X colors on terminal frames:
5611
5612 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5613 frames.
5614 (Vface_tty_color_alist): Remove.
5615 (tty_defined_color): New function.
5616 (defined_color): Rewrite to support any type of frame.
5617 (tty_color_name): New function.
5618 (face_color_supported_p, Fface_color_gray_p,
5619 Fface_color_supported_p): Support non-X frames.
5620 (load_color): Enclose the color name in quotes, in the log
5621 messages. Remove DOS-specific version of load_color.
5622 (realize_tty_face): Take the supported colors from
5623 tty-color-alist. Support translation of X colors to the closest
5624 tty color, for both MSDOS and tty frames.
5625 [MSDOS]: Don't invert face colors if they were taken from the
5626 frame colors.
5627 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5628
5629 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5630 Define a mostly empty surrogate.
5631 (tty_display): Declare.
5632
5633 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5634 tty_display.
5635 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5636 frames when the frame's param_alist includes 'reverse.
5637 (tty_display): Define.
5638 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5639 output_data.x member.
5640 (Fframe_parameters): Return foreground and background color names
5641 on tty frames as well, in addition to MSDOS frames.
5642
5643 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5644 selected_frame.
5645 (struct x_output): Remove unused members; document who uses each
5646 member.
5647 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5648 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5649 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5650 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5651 unused macro definintions.
5652
5653 * msdos.c (IT_set_frame_parameters): Don't call
5654 recompute_basic_faces, the next redisplay will, anyway.
5655 (x_current_display): Remove unused variable.
5656 Many functions: changes for Lisp_object selected_frame.
5657 (IT_set_face): If the tty_reverse_p flag is set for the face,
5658 reverse the foreground and background colors.
5659 (Fmsdos_remember_default_colors): New function.
5660 (syms_of_msdos): Defsubr it.
5661 (IT_set_frame_parameters): Use initial_screen_colors[] when
5662 creating a new frame. If the frame parameters include 'reverse,
5663 swap the foreground and background colors.
5664 (internal_terminal_init): Initialize initial_screen_colors to -1.
5665 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5666 cus-start.el.
5667
5668 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5669
5670 * xfns.c (x_defined_color): Rename from defined_color. All
5671 callers changed.
5672 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5673 all callers changed.
5674 (Fxw_color_values): Renamed from Fx_color_values; all callers
5675 changed.
5676 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5677 callers changed.
5678 (x_window_to_frame, x_any_window_to_frame,
5679 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5680 x_top_window_to_frame): Use !FRAME_X_P instead of
5681 f->output_data.nothing.
5682 * xterm.h (x_defined_color): Rename from defined_color.
5683
5684 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5685 f->output_data.nothing.
5686 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5687 all callers changed.
5688 (Fxw_color_values): Renamed from Fx_color_values; all callers
5689 changed.
5690 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5691 callers changed.
5692
5693 * dispextern.h (tty_color_name): Add prototype.
5694
5695 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5696 f->output_data.nothing.
5697 * w32menu.c (menubar_id_to_frame): Likewise.
5698 * w32term.h (w32_output): Declare.
5699
5700 * dosfns.c (Qmsdos_color_translate): Remove.
5701 (msdos_stdcolor_name): Now returns a Lisp_Object.
5702 * dosfns.h (Qmsdos_color_translate): Remove.
5703
5704 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5705
b3e5232e
KH
57061999-12-06 Kenichi Handa <handa@etl.go.jp>
5707
5708 * fileio.c (decide_coding_unwind): Renamed from
5709 set_auto_coding_unwind.
5710 (Finsert_file_contents): Make single unwind protect to call both
5711 Vset_auto_coding_function and Ffind_operation_coding_system.
5712
5713 * insdel.c (adjust_markers_for_delete): Make it non-static.
5714
db0e466c
SM
57151999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5716
5717 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5718 operators and handle them properly.
5719 * regex.h (RE_ALL_GREEDY): New option.
5720 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5721 sorting would put it.
5722 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5723 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5724
22afa6e8
DL
57251999-12-04 Dave Love <d.love@dl.ac.uk>
5726
5727 * m/arm.h: New file.
5728
40afb967
DL
57291999-12-03 Dave Love <fx@gnu.org>
5730
5731 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5732
ddf8eff5
GM
57331999-12-02 Gerd Moellmann <gerd@gnu.org>
5734
5735 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5736 for building with Motif.
5737
5738 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5739 unexelf.o.
427ec082 5740
ddf8eff5
GM
5741 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5742
fa09a82d
DL
57431999-12-01 Dave Love <fx@gnu.org>
5744
5745 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5746
ddf8eff5
GM
57471999-11-28 Gerd Moellmann <gerd@gnu.org>
5748
5749 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5750 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5751 macros.
5752
5753 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5754
fa09a82d
DL
57551999-11-28 eliz <eliz@dlpx1>
5756
5757 * emacs.c (synchronize_locale): Avoid compiler warnings about
5758 pointer type mismatch.
5759
f9632fc8
GM
57601999-11-28 Gerd Moellmann <gerd@gnu.org>
5761
717d0121
GM
5762 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5763 out of range position.
5764
427ec082 5765 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5766 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5767
59c65f1e
EZ
57681999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5769
613a8346
EZ
5770 * charset.c (Fmake_char_internal): Print the charset ID when
5771 signalling an error.
5772
59c65f1e
EZ
5773 * emacs.c (synchronize_locale): Avoid compiler warnings about
5774 pointer type mismatch.
5775
83c8f461 57761999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5777
5778 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5779
18df9369
GM
57801999-11-26 Gerd Moellmann <gerd@gnu.org>
5781
65a3ccf7
GM
5782 * puresize.h (BASE_PURESIZE): Increase to 550000.
5783
b3b98592
GM
5784 * textprop.c (set_text_properties): New function. Like
5785 Fset_text_properties, but with additional parameter
5786 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5787 changes.
5788 (Fset_text_properties): Use it.
5789
5790 * insdel.c (insert_1_both): Call set_text_properties with last
5791 parameter nil so that no after changes will be signaled.
5792
5793 * lisp.h: Add prototype for set_text_properties.
5794
18df9369
GM
5795 * xfaces.c (set_lface_from_font_name): Fix previous change.
5796 (recompute_basic_faces): Change assert to abort.
5797
71a8e74b
DL
57981999-11-25 Dave Love <fx@gnu.org>
5799
5800 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5801 (Fmember, Fdelq, Fdelete): Inline car.
5802 (Fy_or_n_p): Doc fix.
5803
bc6a5782
GM
58041999-11-25 Gerd Moellmann <gerd@gnu.org>
5805
3221576b 5806 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5807 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5808 is not set, try to use a reasonable default.
5809
bc6a5782
GM
5810 * dispnew.c (direct_output_for_insert): Set glyph row's
5811 displays_text_p flag. Correct window's window_end_vpos if
5812 necessary.
5813
0c8559bb
PE
58141999-11-25 Paul Eggert <eggert@twinsun.com>
5815
5816 * emacs.c (fixup_locale): Don't bother to record initial locale.
5817 (synchronize_locale): If the desired locale is nil,
5818 treat it as if it were the empty string,
5819 so that we set the locale from the environment.
5820
35737351
KH
58211999-11-25 Kenichi Handa <handa@etl.go.jp>
5822
5823 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5824 of the current buffer via Fset.
5825
5562b47f
DL
58261999-11-24 Dave Love <fx@gnu.org>
5827
5562b47f
DL
5828 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5829
5830 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5831
00da0e4a
GM
58321999-11-24 Gerd Moellmann <gerd@gnu.org>
5833
5834 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5835
5836 * emacs.c (PVEC_FLAG): New variable.
5837
b1775dc1
GM
58381999-11-23 Gerd Moellmann <gerd@gnu.org>
5839
5840 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5841 that fails on IBM PowerPC, AIX 4.2.
427ec082 5842
08de6200
EZ
58431999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5844
5845 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5846 string of mode-line-format. Remove the obsolete %t.
5847
02fda8ff
GM
58481999-11-22 Gerd Moellmann <gerd@gnu.org>
5849
f2fa858f
GM
5850 * dispnew.c (direct_output_for_insert): Increment glyph positions
5851 for glyphs from buffer text only.
5852
02fda8ff
GM
5853 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5854 (gdb_data_seg_bits): New variables.
427ec082 5855
02fda8ff
GM
5856 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5857 work on systems not allowing enumerators > INT_MAX, and it
5858 won't work if EMACS_INT is long long.
5859
1b0d24e7
PE
58601999-11-22 Paul Eggert <eggert@twinsun.com>
5861
5862 Port to SunOS 4.1.x again. Help out with Alpha port.
5863 Rename messages-locale to system-messages-locale,
5864 and likewise for time-locale.
427ec082 5865
1b0d24e7
PE
5866 * callproc.c (strerror): Remove decl.
5867 * fileio.c (strerror): Likewise.
5868 * process.c (strerror): Likewise.
5869 * emacs.c (strerror): Likewise.
5870 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5871 All uses changed.
5872 (Vprevious_system_messages_locale): Likewise, from
5873 Vprevious_messages_locale.
5874 (Vsystem_time_locale): Likewise, from Vtime_locale.
5875 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5876 (ABORT_RETURN_TYPE): New macro.
5877 (abort): Return type is now ABORT_RETURN_TYPE.
5878 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5879 defined.
5880 (syms_of_emacs): messages-locale -> system-messages-locale,
5881 previous-messages-locale -> previous-system-messages-locale,
5882 time-locale -> system-time-locale,
5883 previous-time-locale -> previous-system-time-locale.
5884
5885 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5886 (const): Do not define; that's config.h's job.
5887 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5888 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5889 (<stddef.h>): Include if STDC_HEADERS is defined.
5890 (FREE_RETURN_TYPE): New macro.
5891 (free): Return type is now FREE_RETURN_TYPE.
5892
5893 * lisp.h (synchronize_system_time_locale): Renamed from
5894 synchronize_time_locale. All uses changed.
5895 (synchronize_system_messages_locale): Likewise, from
5896 synchronize_messages_locale.
5897
5898 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5899 stdlib.h now does this.
5900
5901 * process.c (sys_siglist): Remove.
5902
5903 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5904 New macros.
5905
5906 * syntax.c (scan_sexps_forward): Use abort, not assert.
5907
5908 * sysdep.c (my_sys_siglist): New var.
5909 (sys_siglist): New macro. Remove old initialized vars of same name.
5910 (init_signals): Initialize sys_siglist.
5911
5912 * xfns.c (abort): Remove decl; stdlib.h now does this.
5913
0dcd5b54
DL
59141999-11-18 Dave Love <fx@gnu.org>
5915
946173ad
DL
5916 * filelock.c: Add forward declaration for get_boot_time_1.
5917
0dcd5b54
DL
5918 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5919
71447e8f
GM
59201999-11-18 Gerd Moellmann <gerd@gnu.org>
5921
5922 * buffer.h (struct buffer_text): Add comment about moving
5923 buffer text if REL_ALLOC is defined.
5924
eeedff63
KH
59251999-11-18 Kenichi Handa <handa@etl.go.jp>
5926
5927 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5928
5929 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5930 memory for push_key_description.
5931
5932 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5933 allocate memory for push_key_description.
5934 (describe_buffer_bindings): Likewise.
5935
5d7e4a2c
GM
59361999-11-17 Gerd Moellmann <gerd@gnu.org>
5937
5938 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5939 (Fx_hide_busy_cursor): Ditto.
5940
59411999-11-17 Marco Walther <walther@siemens-pyramid.com>
5942
5943 * unexsni.c (unexec): Handle .rel.dyn section.
5944
b5b41e02
DL
59451999-11-16 Dave Love <fx@gnu.org>
5946
5947 * doc.c (Fdocumentation): Remove gcpro here too.
5948
e35b6123
GM
59491999-11-16 Gerd Moellmann <gerd@gnu.org>
5950
5951 * keyboard.c (command_loop_1): Remove no_redisplay.
5952
83c8f461 59531999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5954
5955 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5956 in noninteractive.
5957
b05d3bee
GM
59581999-11-14 Gerd Moellmann <gerd@gnu.org>
5959
5bcfeb49
GM
5960 * xdisp.c (ensure_echo_area_buffers): New.
5961 (with_echo_area_buffer): Use it.
5962 (setup_echo_area_for_printing): Ditto.
5963
b05d3bee
GM
5964 * buffer.c (indicate-empty-lines): Doc-fix.
5965
9b2e6e4c
GM
59661999-11-12 Gerd Moellmann <gerd@gnu.org>
5967
e7f90eab
GM
5968 * term.c (term_init): If "op" isn't available, don't support color
5969 because we can't switch back to the default foreground and
5970 background.
5971
9b2e6e4c
GM
5972 * doc.c (Fdocumentation_property): Remove GCPRO because
5973 Fsubstitute_command_keys gcpro's the string.
5974
1bf21027
KH
59751999-11-12 Kenichi Handa <handa@etl.go.jp>
5976
5977 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5978
3bc6df53
GM
59791999-11-11 Gerd Moellmann <gerd@gnu.org>
5980
5981 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5982 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5983 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5984
35a5514b
GM
59851999-11-10 Gerd Moellmann <gerd@gnu.org>
5986
5987 * xfns.c (QCuser_data): Removed.
5988 (syms_of_xfns): Initialization of QCuser_data removed.
5989 (parse_image_spec): Don't handle :user-data specially. Allow
5990 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5991 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5992 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5993 parse_image_spec accordingly.
5994
83c8f461 59951999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5996
5997 * cmds.c (Fbeginning_of_line): Doc fix.
5998 (Fend_of_line): Doc fix.
5999
6000 * editfns.c (Fline_beginning_position): If N is not 1,
6001 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
6002
6003 * syntax.c (Fforward_word): Handle fields even if would have hit
6004 an edge of the buffer. Return nil if affected by fields.
6005
83c8f461 60061999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6007
6008 * editfns.c (preceding_pos): Function deleted.
6009 (text_property_stickiness): Decrement POS directly.
6010 Fix a confusion that used PT instead of POS.
6011
6012 * editfns.c (find_field): Properly handle the case
6013 of a field boundary where `field' inherits from neither side.
6014
6015 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6016 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6017
fa9aabf6
GM
60181999-11-08 Gerd Moellmann <gerd@gnu.org>
6019
6020 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6021 BEFORE_POTENTIAL_GC before DISCARD.
6022
4015b3c0
GM
60231999-11-07 Gerd Moellmann <gerd@gnu.org>
6024
033a5fa3
GM
6025 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6026
6027 * lisp.h: Add prototype for unmark_byte_stack.
6028
6029 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6030 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6031 XUNMARK.
6032
55b064bd
GM
6033 * xdisp.c (resize_mini_window): Fix computation of needed
6034 mini-window height.
6035
6036 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6037 compilation on USE_TEXT_PROPERTIES.
01e9b9df 6038
4015b3c0 6039 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 6040 locally there. Rearrange case statements so that those most
4015b3c0
GM
6041 frequently executed come first. Avoid goto's in frequently
6042 executed cases.
6043
fe512f27
GM
60441999-11-05 Gerd Moellmann <gerd@gnu.org>
6045
dd59e217
GM
6046 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6047 AFTER_POTENTIAL_GC around internal_catch.
6048
bcf28080
GM
6049 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6050 relocate_byte_pcs.
6051 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6052
6053 * eval.c (struct catchtag): Add member byte_stack.
6054 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 6055 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
6056 catchtag.
6057 (unwind_to_catch): Restore byte_stack_list from catchtag.
6058
6059 * lisp.h: Add prototypes for new functions in bytecode.c.
6060 Add extern declaration for byte_stack_list.
6061
6062 * bytecode.c (struct byte_stack): New.
6063 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6064 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6065 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6066 (HANDLE_RELOCATION): Removed.
6067 (Fbyte_code): Use byte_stack structures.
6068
4d59c34c
GM
6069 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6070
fe512f27
GM
6071 * buffer.c (syms_of_buffer): Extend documentation of
6072 mode-line-format.
6073
60b64cd6
GM
60741999-11-04 Gerd Moellmann <gerd@gnu.org>
6075
6076 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6077
6078 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6079 Ferase_field instead of Fdelete_field.
6080
b51b619b
GM
60811999-11-03 Gerd Moellmann <gerd@gnu.org>
6082
6083 * dispnew.c (Finternal_show_cursor): Change it to set the
6084 cursor on/off, not toggle its state.
6085 (Finternal_show_cursor_p): New.
6086 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6087
5865af0d
DL
60881999-11-03 Dave Love <fx@gnu.org>
6089
6090 * charset.c (split_non_ascii_string): Define return value.
6091
82a700f3
GM
60921999-11-03 Gerd Moellmann <gerd@gnu.org>
6093
edfef199
GM
6094 * minibuf.c (string_to_object): New.
6095 (read_minibuf_noninteractive): New.
6096 (read_minibuf): Call read_minibuf_noninteractive if
6097 noninteractive. Use string_to_object.
6098
82a700f3
GM
6099 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6100
b5540f0d
DL
61011999-11-02 Dave Love <fx@gnu.org>
6102
e69dcd60
DL
6103 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6104
827a1788
DL
6105 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6106 declared with glibc2.
b5540f0d 6107
a69a6e61
GM
61081999-11-02 Gerd Moellmann <gerd@gnu.org>
6109
6110 * lisp.h (QUIT): Give it statement form.
6111
87e21fbd
DL
61121999-11-02 Dave Love <fx@gnu.org>
6113
6114 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6115
1b335865
GM
61161999-11-02 Gerd Moellmann <gerd@gnu.org>
6117
9fb5e03d
GM
6118 * xfns.c (QCuser_data): New.
6119 (syms_of_xfns): Initialize QCuser_data.
6120 (parse_image_spec): Ignore :user-data DATA properties.
6121
1b335865
GM
6122 * xdisp.c (display_line): Set charpos of first glyph in blank
6123 lines not corresponding to any text to -1, even if no glyphs are
6124 filled in in that line.
6125
e76f1c44
GM
61261999-11-01 Gerd Moellmann <gerd@gnu.org>
6127
427ec082 6128 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
6129 png_get_sRGB in #ifdef.
6130
111259b4
GM
6131 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6132 (syms_of_display): Use the new name.
6133
dd5c96e8
GM
6134 * textprop.c (verify_interval_modification): Signal text-read-only
6135 instead of calling error.
6136
db8878fb
GM
6137 * data.c (Qtext_read_only): New built-in error.
6138 (syms_of_data): Initialize it.
6139
6140 * lisp.h: Add extern declaration for Qtext_read_only.
6141
e76f1c44
GM
6142 * syntax.c: Remove whitespace after open or in front of closing
6143 parentheses.
6144
83c8f461 61451999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6146
6147 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6148
7843e09c
GM
61491999-10-31 Gerd Moellmann <gerd@gnu.org>
6150
575ed805
GM
6151 * xdisp.c (resize_mini_window): Compute needed height differently.
6152
7843e09c
GM
6153 * fns.c (Flength): Unroll loop over lists.
6154
6155 * xdisp.c (append_space): Return non-zero if space was appended.
6156 (display_line): Set charpos of first glyph to -1 only if that
6157 glyph is the space added by append_glyph.
6158
83c8f461 61591999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6160
6161 * print.c (strout): Consider `noninteractive' and use stdout
6162 only when PRINTCHARFUN is t.
6163
6164 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6165 (gcpro_level): Declare it extern.
6166 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6167 Alternate definitions that set `level' and increment `gcpro_level'.
6168 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6169
6170 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6171 (init_eval) [DEBUG_GCPRO]: Initialize it.
6172 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6173 from remaining gcprolist.
6174
3636f7a3
KH
61751999-10-29 Kenichi Handa <handa@etl.go.jp>
6176
6177 * coding.c (code_convert_region): Update `dst' correctly.
6178
a2ad7096
GM
61791999-10-28 Gerd Moellmann <gerd@gnu.org>
6180
6181 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6182 (Frassoc): Rewritten.
6183
1e3196e8
GM
61841999-10-27 Noah Friedman <friedman@splode.com>
6185
6186 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6187 Define PTY_NAME_SPRINTF.
6188 Redefine PTY_TTY_NAME_SPRINTF.
6189 * config.in: Add undef for HAVE_DEV_PTMX.
6190
83c8f461 61911999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6192
6193 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6194 as arg to DEBUG_POP and DEBUG_PRINT.
6195
83c8f461 61961999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6197
6198 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6199 (Ffset): Call Qad_activate_internal.
6200 (syms_of_data): Initialize Qad_activate_internal.
6201
26922151
GM
62021999-10-27 Gerd Moellmann <gerd@gnu.org>
6203
6204 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6205 Vterminal_frame is selected and Vwindow_system is non-nil.
6206
67a5596f
GM
62071999-10-26 Gerd Moellmann <gerd@gnu.org>
6208
2bea706b
GM
6209 * xdisp.c (echo_area_display): Put previous change in #if 0.
6210
67a5596f
GM
6211 * emacs.c (standard_args): Add `file' as synonym for `visit',
6212 `execute' as synonym for `eval'.
6213 (main): Add new options to usage message.
6214
81dc5de5
GM
62151999-10-25 Gerd Moellmann <gerd@gnu.org>
6216
6217 * data.c (Qhash_table): New.
6218 (Ftype_of): Return it for hash tables.
6219 (syms_of_data): Initialize Qhash_table.
6220
83c8f461 62211999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6222
6223 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6224
66e4690f 62251999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6226
7539e11f
KR
6227 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6228 lisp.h.
6229
6230 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6231 Fbuffer_local_variables, Fother_buffer, record_buffer,
6232 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6233 swap_out_buffer_local_variables, overlays_at, overlays_in,
6234 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6235 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6236 Foverlay_put, report_overlay_modification, evaporate_overlays):
6237 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6238 references.
6239 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6240 swap_in_symval_forwarding, set_internal, default_value,
6241 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6242 Fmake_variable_frame_local, Flocal_variable_p,
6243 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6244 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6245 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6246 * emacs.c (main): Likewise.
6247 * fontset.c (fs_load_font, fs_register_fontset,
6248 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6249 Fnew_fontset, Fset_fontset_font): Likewise.
6250 * frame.c (do_switch_frame, next_frame, prev_frame,
6251 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6252 Likewise.
6253 * keyboard.c (read_char, help_char_p, event_to_kboard,
6254 kbd_buffer_get_event, timer_start_idle, timer_check,
6255 make_lispy_event, apply_modifiers, reorder_modifiers,
6256 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6257 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6258 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6259 Fcommand_execute, Fexecute_extended_command): Likewise.
6260 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6261 Fall_completions): Likewise.
6262 * window.c (Fset_window_margins): Likewise.
6263
6264 * callint.c (quotify_args): Don't explicitly use struct
6265 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6266
3a7093d8
KR
6267 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6268 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6269 if __ELF__ is defined.
6270
2a3d7146
GM
62711999-10-24 Gerd Moellmann <gerd@gnu.org>
6272
6273 * window.c (Fnext_window): Add a QUIT in the loop.
6274
8ac52782
GM
62751999-10-23 Gerd Moellmann <gerd@gnu.org>
6276
427ec082 6277 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6278 New targets.
6279
05f0d15a
DL
62801999-10-22 Dave Love <fx@gnu.org>
6281
6282 * emacs.c (main): Enable profiling conditional on __linux also.
6283
882fb0e6
GM
62841999-10-20 Gerd Moellmann <gerd@gnu.org>
6285
6286 * xrdb.c (x_load_resources): Set default resources for resource
6287 classes instead of for the specific Emacs.
6288
b5f5bc31
GM
62891999-10-19 Gerd Moellmann <gerd@gnu.org>
6290
66f4dd69
GM
6291 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6292 defines it that way.
427ec082 6293
b5f5bc31
GM
6294 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6295 if selected_frame is equal to Vterminal_frame.
6296
68c45bf0 62971999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6298
68c45bf0 6299 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6300
68c45bf0
PE
6301 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6302 when dumping, so that the dumped Emacs doesn't have stray locale info.
6303 (dired.o): Depend on systime.h.
6304 (editfns.o): Depend on coding.h.
6305
6306 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6307 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6308 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6309 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6310 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6311 Include <config.h> before any system include files.
6312
6313 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6314 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6315 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6316 xmenu.c, xterm.c:
6317 Do not include <stdlib.h>, as <config.h> does this now.
6318
6319 * callproc.c (Fcall_process):
6320 Synchronize messages locale before invoking strerror.
6321 Decode resulting string with locale-coding-system.
6322
6323 * coding.c (Vlocale_coding_system): New var.
6324 (syms_of_coding): Adjust to above change.
6325 (emacs_strerror): New function.
6326
6327 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6328
68c45bf0
PE
6329 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6330 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6331 HAVE_STRSIGNAL): New macros.
6332 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6333 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6334
6335 * dired.c: Include "systime.h".
6336 (Ffile_attributes): Do not cast s.st_size to int; this loses
6337 information if int is 32 bits but st_size and EMACS_INT are larger.
6338 Treat large device numbers like large inode numbers.
6339
6340 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6341
6342 * editfns.c: Include coding.h.
6343 (emacs_strftime): Remove decl.
6344 (emacs_strftimeu): New decl.
6345 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6346 Use emacs_strftimeu instead of emacs_strftime.
6347 (Fformat_time_string): Convert format string using
6348 Vlocale_coding_system, and convert result back. Synchronize time
6349 locale before invoking lower level function. Invoke
6350 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6351
68c45bf0
PE
6352 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6353 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6354 Vprevious_time_locale): New variables.
6355 (main): Invoke setlocale early, so that initial error messages are
6356 localized properly. But skip locale-setting if LC_ALL is "C".
6357 Fix up locale when it's safe to do so.
6358 (fixup_locale): Moved here from xterm.c.
6359 (synchronize_locale, synchronize_time_locale,
6360 synchronize_messages_locale): New functions.
6361 (syms_of_emacs): Accommodate above changes.
6362
6363 * fileio.c (report_file_error): Convert strerror output according
6364 to Vlocale_coding_system.
6365 (Finsert_file_contents): Check for arithmetic overflow in
6366 computations that depend on file size. Report IO errors
6367 with emacs_strerror, not strerror.
6368
6369 * fns.c (Fgethash): Declare dflt parameter.
6370
6371 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6372 is defined; that's config.h's job.
6373
6374 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6375 default these values to long, BITS_PER_LONG, and unsigned long.
6376 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6377 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6378 (code_convert_string_norecord, fixup_locale,
6379 synchronize_messages_locale, synchronize_time_locale,
6380 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6381 All Emacs callers of open, close, read, write changed to use
6382 emacs_open, emacs_close, emacs_read, emacs_write.
6383
6384 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6385 changed to file_tell.
6386 (saved_doc_string_position, prev_saved_doc_string_position): Now
6387 of type file_offset.
6388 (init_lread): Do not fix locale here; fixup_locale now does this.
6389
6390 * m/amdahl.h, s/usg5-4.h:
6391 (NSIG): Remove.
6392 (NSIG_MINIMUM): New macro.
6393
6394 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6395 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6396 s/umips.h, s/usg5-4.h:
6397 (SIGIO): Do not undef.
6398 (BROKEN_SIGIO): New macro.
6399
6400 * m/ustation.h:
6401 (SIGTSTP): Do not undef.
6402 (BROKEN_SIGTSTP): New macro.
6403
6404 * s/gnu-linux.h:
6405 (SIGPOLL, SIGURG): Do not undef.
6406 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6407
6408 * s/ptx4.h:
6409 (SIGINFO): Do not undef.
6410 (BROKEN_SIGINFO): New macros.
427ec082 6411
68c45bf0
PE
6412 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6413
6414 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6415 some Emacs-related changes merged.
6416
6417 * print.c (float_to_string): Prepend "-" to representation of a
6418 NaN if the NaN is negative.
6419
6420 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6421 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6422
68c45bf0
PE
6423 * process.c (status_message, sigchld_handler): Synchronize locale,
6424 then use strsignal istead of sys_siglist.
6425 * w32proc.c (sys_wait): Likewise.
427ec082 6426
68c45bf0
PE
6427 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6428 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6429 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6430 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6431 (open, close, read, write, INTERRUPTIBLE_OPEN,
6432 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6433
6434 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6435
6436 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6437 sys_open, open): Remove.
6438 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6439 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6440 macros are no longer used.
6441 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6442 (emacs_close): Renamed from sys_close.
6443 (emacs_read): Renamed from sys_read.
6444 (emacs_write): Renamed from sys_write.
6445 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6446 (dup2): Do not print error on failure; the real dup2 doesn't.
6447 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6448
6449 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6450 is defined.
6451 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6452 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6453 (strsignal): Declare if !HAVE_STRSIGNAL.
6454
6455 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6456 (ElfW): Define in terms of ElfExpandBitsW.
6457
6458 * w32proc.c (sys_siglist): Remove decl.
6459
6460 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6461 with ANSI C.
6462 (display_string): Declare face_string_pos arg.
6463
6464 * xfns.c (Fx_show_tip): Declare timeout param.
6465
6466 * xterm.c: No need to include locale.h.
6467 (x_alloc_lighter_color, x_setup_relief_color):
6468 Pass arg as double, not float, for compatibility with ANSI C.
6469 (fixup_locale): Move to emacs.c.
6470 (x_term_init): Do not setlocale or fixup locale; the main program
6471 does this now.
6472
2f0b74ea
DL
64731999-10-18 Dave Love <fx@gnu.org>
6474
6475 * doc.c (Fdocumentation_property): Gcpro `tem'.
6476
471aa4a0
KH
64771999-10-18 Kenichi Handa <handa@etl.go.jp>
6478
6479 * lread.c (Fload): Calculate bytes of filename correctly.
6480 (openp): Likewise.
6481
aca2020b
KH
64821999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6483
6484 * print.c (print_preprocess): In case print-circle is nil,
6485 add OBJ to Vprint_number_table only when OBJ is a symbol.
6486
1f5fe392 64871999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6488
6489 * coding.c (code_convert_string): Add record_unwind_protect to
6490 assure setting inhibit_pre_post_conversion back to zero. Take
6491 care of the multibyteness of the working buffer.
6492
6493 * coding.c (inhibit_pre_post_conversion): New variable.
6494 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6495 ignore post-read-conversion and pre-write-conversion property of
6496 the coding system.
6497 (code_convert_region_unwind): New function.
6498 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6499 running pre-write-conversion and post-read-conversion.
6500 (code_convert_string): Likewise.
6501
cd876a91
GM
65021999-10-17 Miles Bader <miles@gnu.org>
6503
6504 * editfns.c: Doc fix.
6505
65061999-10-17 Miles Bader <miles@gnu.org>
6507
6508 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6509 argument preconditions of find_before_next_newline in the case
6510 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6511 was indeed at the edge.
6512
65131999-10-17 Miles Bader <miles@gnu.org>
6514
6515 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6516 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6517
6518 * editfns.c (text_property_eq, text_property_stickiness): Don't
6519 use initializers for auto variables of type Lisp_Object.
6520 (find_field): Likewise. Use braces around nested ifs.
6521 (Fline_end_position): Store the raw eol in a variable, so that the
6522 final expression doesn't look so ugly.
6523 (Fconstrain_to_field): Doc fix.
6524 (preceding_pos): Renamed from `preceeding_pos'.
6525 (text_property_stickiness, find_field): Call preceding_pos,
6526 not preceeding_pos.
6527
65281999-10-17 Miles Bader <miles@gnu.org>
6529
6530 * editfns.c (Ffield_string_no_properties): New function.
6531 (text_property_stickiness, preceeding_pos): New functions.
6532 (Ffield_string): Remove PROPS parameter.
6533 (find_field): Add MERGE_AT_BOUNDARY parameter.
6534 Rewrite to use stickiness of `field' property to resolve
6535 ambiguous cases.
6536 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6537 (Fconstrain_to_field): Likewise.
6538 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6539 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6540 Supply new MERGE_AT_BOUNDARY argument to find_field.
6541 (Fline_beginning_position, Fline_end_position): Supply new
6542 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6543 Pass a value of Qt for the ONLY_IN_LINE argument to
6544 Fconstrain_to_field (only matters if N != 1).
6545 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6546 to Fconstrain_to_field.
6547
6548 * minibuf.c (Fminibuffer_complete_word): Use
6549 Ffield_beginning to find the prompt end.
6550
65511999-10-17 Miles Bader <miles@gnu.org>
6552
6553 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6554 behavior when NEW_POS is nil.
6555 (find_field): Use XSETFASTINT instead of make_number.
6556 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6557 input string by seeing where the field begins, instead of
6558 looking at text-properties.
6559
65601999-10-17 Miles Bader <miles@gnu.org>
6561
6562 * editfns.c (Qfield): New variable.
6563 (find_field, Ferase_field, Ffield_string,
6564 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6565 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6566 (make_buffer_string_both): Remove minibuffer-prompt hack.
6567 (syms_of_editfns): Initialize Qfield, and subr entries for
6568 field functions above.
6569 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6570 minibuf_save_list.
6571 Don't initialize minibuffer prompt length.
6572 Wrap prompt text-properties around the entire prompt.
6573 Add 'prompt text-property to prompt.
6574 Get final value with Ffield_string instead of make_buffer_string.
6575 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6576 minibuf_save_list.
6577 (do_completion): Get minibuffer input with Ffield_string
6578 instead of Fbuffer_string.
6579 Erase minibuffer input with Ferase_field instead of erase_buffer.
6580 (Fminibuffer_complete_and_exit): Likewise.
6581 Test whether buffer is empty by looking for the 'prompt text
6582 property at the end.
6583 Set prompt length by looking for the end of the prompt text property,
6584 and save prompt length for later use (since there is no longer a
6585 buffer variable to get it from).
6586 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6587 (syms_of_minibuf): Remove initializations of
6588 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6589 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6590 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6591 Don't initialize prompt_end_charpos field.
6592 * syntax.c (Fforward_word): Likewise.
6593 Constrain to any field.
6594
3f6f7508
GM
65951999-10-16 Gerd Moellmann <gerd@gnu.org>
6596
6597 * window.c (enum save_restore_action): New.
6598 (save_restore_orig_size): Change parameter list. Add
6599 functionality to check for valid orig_top and orig_height members
6600 in a window tree.
6601 (grow_mini_window): Call save_restore_orig_size with new parameter
6602 list.
6603 (shrink_mini_window): Restore old window sizes only if old
6604 size information is valid in all windows in a window tree.
427ec082 6605
06482119
GM
66061999-10-15 Gerd Moellmann <gerd@gnu.org>
6607
2710454d
GM
6608 * xmenu.c (set_frame_menubar): Don't call
6609 x_set_menu_resources_from_menu_face here.
6610 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6611
06482119
GM
6612 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6613
17fa2837
DL
66141999-10-14 Dave Love <fx@gnu.org>
6615
6616 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6617
45f93416
GM
66181999-10-14 Gerd Moellmann <gerd@gnu.org>
6619
6620 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6621 fails and h_errno is TRY_AGAIN.
6622
c765b723
DL
66231999-10-13 Dave Love <fx@gnu.org>
6624
6625 * filelock.c (lock_file): Move gcpro of `fn'.
6626
dace7f4e
GM
66271999-10-10 Gerd Moellmann <gerd@gnu.org>
6628
6629 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6630
83c8f461 66311999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6632
6633 * print.c (print): When removing objects from Vprint_number_table,
6634 only scan the newly added objects.
6635 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6636 unconditionally force it to stay in the table.
6637
85177c86
GM
66381999-10-09 Gerd Moellmann <gerd@gnu.org>
6639
6640 * xfns.c (prepare_image_for_display): Don't try to load image if
6641 loading it failed before.
6642 (lookup_image, prepare_image_for_display): Remember if loading the
6643 image failed.
6644 (xpm_load): Add missing UNBLOCK_INPUT.
6645
6646 * dispextern.h (struct image): New member load_failed_p.
6647
11e4de5d
SM
66481999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6649
f28eba7b 6650 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6651 in the docstring.
6652
f1da8f06
GM
66531999-10-08 Gerd Moellmann <gerd@gnu.org>
6654
6655 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6656 Don't call XSetInputFocus because that can generate additional
6657 FocusIn events.
427ec082 6658
c37bbd4f
GM
66591999-10-07 Jeffrey C Honig <jch@bsdi.com>
6660
6661 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6662
83c8f461 66631999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6664
6665 * process.c (wait_reading_process_input): When trying to suck
6666 input from one process, for accept-process-output,
6667 exit that loop if we get EAGAIN or EWOULDBLOCK.
6668
577d9e2f
GM
66691999-10-07 Gerd Moellmann <gerd@gnu.org>
6670
6671 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6672 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6673 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6674 Fpixmap_spec_p and Qpixmap_spec_p.
6675 (load_face_colors, check_lface_attrs,
6676 merge_face_vector_with_property,
6677 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6678 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6679 Fbitmap_spec_p.
6680
f5737ad2
GM
66811999-10-07 Gerd Moellmann <gerd@gnu.org>
6682
6683 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6684 MODE_LINE_FACE_ID.
6685
6686 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6687 (struct x_resources) [USE_X_TOOLKIT]: New.
6688 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6689 [USE_MOTIF]: New.
6690 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6691 [USE_LUCID]: New.
6692 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6693 (Qmenu): New.
6694 (syms_of_xfaces): Initialize Qmenu.
6695 (realize_basic_faces): Realize face `menu'.
6696 (resolve_face_name): New.
6697 (lface_from_face_name): Use it.
6698 (Finternal_set_lisp_face_attribute): Ditto.
6699 (Fpixmap_spec_p): Rewritten. Extend doc string.
6700
6701 * xmenu.c (set_frame_menubar, xmenu_show): Call
6702 x_set_menu_resources_from_menu_face.
6703
6704 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6705 (toplevel): Include X11/Intrinsic.h.
6706
6a1aa823
DL
67071999-10-03 Ken'ichi Handa <handa@gnu.org>
6708
6709 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6710 correctly.
6711
26901792
DL
67121999-09-30 Kenichi Handa <handa@etl.go.jp>
6713
6714 * category.c (modify_lower_category_set): Set default value of
6715 TABLE correctly.
6716
6717 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6718 size correctly.
6719
67201999-09-29 Gerd Moellmann <gerd@gnu.org>
6721
6722 * editfns.c (Fpropertize): Renamed from Fproperties.
6723
67241999-09-29 Gerd Moellmann <gerd@gnu.org>
6725
6726 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6727 frame that hasn't been initialized yet.
6728
83c8f461 67291999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6730
6731 * keymap.c (Fsingle_key_description): Make tem big enough.
6732 (describe_buffer_bindings): Make buf big enough.
6733
83c8f461 67341999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6735
6736 * intervals.c (get_local_map): Use indirect_function,
6737 not Findirect_function.
6738
26901792
DL
67391999-09-27 Dave Love <fx@gnu.org>
6740
6741 * cm.h: Remove unneeded declaration of ospeed.
6742
67431999-09-26 Gerd Moellmann <gerd@gnu.org>
6744
6745 * lisp.h (toplevel): Add prototype for
6746 next_single_char_property_change.
6747
6748 * textprop.c (next_single_char_property_change): New.
6749
6750 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6751 next_single_char_property_change.
6752
67531999-09-25 Gerd Moellmann <gerd@gnu.org>
6754
6755 * editfns.c (Fproperties): New.
6756 (syms_of_editfns): Defsubr it.
6757
6758 * xfns.c (lookup_image): Set image's timestamp because it's
6759 used when we look it up.
6760
67611999-09-23 Gerd Moellmann <gerd@gnu.org>
6762
6763 * window.c (enlarge_window): Add window parameter instead of using
6764 selected_window.
6765 (Fdisplay_buffer): Call it with window parameter instead of
6766 setting selected_window.
6767 (Fenlarge_window, Fshrink_window): Ditto.
6768 (shrink_mini_window): If there is no recorded height and position
6769 info, resize mini-window to height 1.
6770
6771 * xfns.c (image_error): Use add_to_log.
6772
6773 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6774 (load_face_font_or_fontset, load_color,
6775 merge_face_vector_with_property): Ditto.
6776
6777 * dispextern.h: Add prototype for add_to_log.
6778
6779 * xfaces.c (add_to_log): Move to xdisp.c.
6780
6781 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6782 parameter.
6783
67841999-09-23 Gerd Moellmann <gerd@gnu.org>
6785
6786 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6787 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6788
6789 * xdisp.c (resize_mini_window): Use grow_mini_window and
6790 shrink_mini_window.
6791
6792 * window.c (window_min_size): Add parameter ignore_fixed_p.
6793 (change_window_height): Call window_min_size with new parameter.
6794 (shrink_window_lowest_first, save_restore_orig_size,
6795 grow_mini_window, shrink_mini_window): New.
6796 (make_window, replace_window): Initialize orig_top and
6797 orig_height.
6798 (enlarge_window): Renamed from change_window_height. Make it
6799 static.
6800 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6801 enlarge_window instead of change_window_height.
6802
6803 * window.h (struct window): New members orig_top, orig_height.
6804 (toplevel): Add prototypes for grow_mini_window and
6805 shrink_mini_window. Remove prototype for change_window_height.
6806
68071999-09-21 Eli Zaretskii <eliz@gnu.org>
6808
6809 * frame.c (frame_name_fnn_p): Fix previous change.
6810
68111999-09-20 Gerd Moellmann <gerd@gnu.org>
6812
6813 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6814
6815 * dispnew.c (direct_output_for_insert): Cast arguments to
6816 safe_bcopy to char *.
6817
6818 * lread.c (readchar): Remove unused variables.
6819 (read_filtered_event, read1, Fmapatoms): Ditto.
6820 (toplevel): Include intervals.h.
6821
6822 * eval.c (Fsignal): Remove unused variables.
6823 (Fcommandp, do_autoload): Ditto.
6824
6825 * lisp.h: Add prototype for safe_bcopy, fatal.
6826
6827 * editfns.c (init_editfns): Remove unused variables.
6828 (Fgoto_char, Fchar_after, Fformat): Ditto.
6829 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6830
6831 * data.c (find_symbol_value): Remove unused variables.
6832 (Faref, Fstring_to_number): Ditto.
6833 (toplevel): Include stdio.h.
6834 (Fnumber_to_string): Cast XINT to long for %ld.
6835
6836 * casefiddle.c (casify_object): Remove unused variables.
6837 (casify_region): Ditto.
6838
427ec082 6839 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6840 conditinally compiled section in #ifdef.
6841 (toplevel): Include stdio.h.
6842
6843 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6844 keys_of_keymap, syms_of_keymap): Remove unused variables.
6845
68461999-09-20 Gerd Moellmann <gerd@gnu.org>
6847
6848 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6849 whose corresponding window rows have been disabled in
6850 try_window_id.
6851
68521999-09-20 Gerd Moellmann <gerd@gnu.org>
6853
6854 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6855 that window start is out of range.
6856 (handle_display_prop, handle_single_display_prop): Replace
6857 marginal area specifications like `left-margin' with `(margin
6858 left-margin)'.
6859 (Qmargin): New.
6860 (syms_of_xdisp): Initialize Qmargin.
6861
68621999-09-19 Gerd Moellmann <gerd@gnu.org>
6863
6864 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6865 describe_syntax, skip_chars): Remove unused variables.
6866 (back_comment, forw_comment): Add braces to if-statement with
6867 if-else as dependent statement.
6868
6869 * process.c (list_processes_1): Remove unused variables.
6870 (Fopen_network_stream, create_process): Add parentheses to
6871 conditional expressions.
6872 (create_process): Put declaration of sigchld in #if 0.
6873 (Fopen_network_stream): Removed unused variables.
6874 (Fopen_network_stream, wait_reading_process_input,
6875 wait_reading_process_input, send_process, send_process): Ditto.
6876 (toplevel): Add prototypes for set_waiting_for_input and
6877 keyboard_bit_set.
6878
6879 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6880
6881 * textprop.c (Fset_text_properties): Remove unused variables.
6882 (text_property_list, verify_interval_modification,
6883 interval_has_all_properties): Ditto.
6884
6885 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6886 (Fcall_process): Remove unused variable.
6887
6888 * keyboard.c (Frecursive_edit): Remove unused variable.
6889 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6890 timer_check, make_lispy_event, menu_bar_items,
6891 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6892 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6893 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6894 read_key_sequence): Ditto. Fread_key_sequence,
6895 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6896 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6897 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6898 (Fexecute_extended_command): Cast XINT to long for %ld.
6899 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6900 (toplevel): Include sys/types.h.
6901
6902 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6903 (toplevel): Add prototypes for stuff_char, and
6904 code_convert_string_norecord.
6905
69061999-09-19 Gerd Moellmann <gerd@gnu.org>
6907
6908 * buffer.h: Add prototype for r_re_alloc.
6909
6910 * insdel.c (copy_text): Removed unused variables.
6911 (count_combining_after, count_combining_after, insert_1_both,
6912 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6913 (adjust_after_replace, replace_range): Add parentheses to logical
6914 expressions. Remove unused variables.
6915 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6916 expression.
6917
6918 * alloc.c (Fgarbage_collect): Remove unused variable.
6919 (compact_strings): Add parentheses around assignments in
6920 conditional context.
6921 (toplevel): Put declaration of unused function clear_marks
6922 in #if 0 like its definition.
6923
6924 * lisp.h: Add prototype for shrink_regexp_cache,
6925 sweep_weak_hash_tables.
6926
69271999-09-19 Dave Love <fx@gnu.org>
6928
6929 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6930
6931 * doc.c (read_bytecode_char): Declare arg.
6932
6933 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6934 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6935
69361999-09-18 Richard Stallman <rms@gnu.org>
6937
6938 * xdisp.c (echo_area_display): Turn off code that returned
6939 without doing anything when using a terminal frame.
6940
83c8f461 69411999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6942
6943 * unexelf.c (unexec): Don't get confused by a short section
6944 just before the bss section.
6945
26901792
DL
69461999-09-16 Gerd Moellmann <gerd@gnu.org>
6947
6948 * emacs.c (main): Remove unused variables.
6949 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6950
6951 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6952 init_fileio_once, syms_of_sound, init_xfns, init_fns
6953 init_sound, check_message_stack.
6954
6955 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6956
6957 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6958 ambiguous else warning.
6959 (split_interval_left): Remove unused variables.
6960 (previous_interval, adjust_intervals_for_deletion,
6961 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6962 (icount, idepth, zero_length): Move into #if 0 section below
6963 original position where these are used.
6964
6965 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6966
6967 * buffer.c (Fkill_buffer): Remove unused variables.
6968 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6969 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6970 init_buffer_once, (syms_of_buffer): Ditto.
6971
6972 * xrdb.c (get_fallback): Remove unused variable.
6973 (x_load_resources): Ditto. Put local variable used for Motif only
6974 in #ifdef USE_MOTIF.
6975
69761999-09-16 Gerd Moellmann <gerd@gnu.org>
6977
6978 * minibuf.c (read_minibuf): Remove unused variables.
6979 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6980 (do_completion): Move assignment out of conditional context.
6981 (Fdisplay_completion_list): Add parentheses to conditional expression.
6982
6983 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6984
6985 * lisp.h: Add prototype for no_switch_window.
6986
6987 * window.c (Fset_window_buffer): Remove unused variables.
6988 (Fset_window_margins): Ditto.
6989
6990 * xdisp.c (resize_mini_window): Temporarily set the selected
6991 window's or Vminibuf_scroll_window's height to "fixed" around
6992 the call the change_window_height.
6993
6994 * window.c (window_fixed_size_p): Check window's height_fixed_p
6995 flag.
6996
6997 * window.h (struct window): New member height_fixed_p.
6998
6999 * dispnew.c (direct_output_forward_char): Don't use this method
7000 if showing a message or a message was just cleared because we
7001 might need to resize the mini-window.
7002
70031999-09-16 Gerd Moellmann <gerd@gnu.org>
7004
7005 * frame.c (Fdelete_frame): Correct local variable pointing to
7006 selected frame after selecting new frame.
7007
70081999-09-15 Richard Stallman <rms@gnu.org>
7009
7010 * puresize.h (BASE_PURESIZE): Increase to 525000.
7011
7012 * filelock.c (Vtemporary_file_directory): New variable.
7013 (syms_of_filelock): Set up Lisp variable.
7014
70151999-09-15 Gerd Moellmann <gerd@gnu.org>
7016
7017 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7018 (encode_terminal_code): Remove unused variables.
7019 (turn_off_face): Ditto.
7020 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7021
7022 * dispnew.c (update_frame_line): If writing whole desired line,
7023 don't clear to end of line if already at the end.
7024
70251999-09-15 Gerd Moellmann <gerd@gnu.org>
7026
7027 * xdisp.c (resize_mini_window): Don't report changed window
7028 height if it actually hasn't changed.
7029
427ec082 7030 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
7031 unused variables.
7032 (mark_shell_size_user_specified): Put in #if 0 because not used.
7033 (create_frame_gcs): Put in #if 0 because currently unused.
7034 (first_frame_p): Ditto.
7035
7036 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7037 single_submenu, update_frame_menubar, set_frame_menubar,
7038 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7039 variables.
7040
7041 * print.c (PRINTFULLP): Removed because it is no longer used and
7042 is misleading.
7043 (Ferror_message_string): Remove unused variables.
7044 (print_object): Cast argument of sprintf to long for `%ld'
7045 specifier. Remove unused variable.
7046
70471999-09-14 Gerd Moellmann <gerd@gnu.org>
7048
7049 * sound.c (Fplay_sound): Remove usused variables.
7050 (be2hs): Put in #if 0 because it's currently not used.
7051
70521999-09-14 Ken Raeburn <raeburn@gnu.org>
7053
7054 * print.c (Ferror_message_string, print_error_message,
7055 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7056 member access.
7057
70581999-09-14 Gerd Moellmann <gerd@gnu.org>
7059
7060 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7061
7062 * frame.c (Fnext_frame): Remove unused variable(s).
7063 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7064 (store_frame_param): Add parentheses to conditional expression.
7065 (Fmodify_frame_parameters): Remove unused variables.
7066 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7067 Ditto.
7068
7069 * xfns.c (x_set_background_color): Remove unused variable(s).
7070 (x_set_border_pixel): Ditto.
7071 (x_set_menu_bar_lines): Put local variable used only for
7072 non-toolkit case in #ifdef/#endif.
7073 (x_figure_window_size): Remove unused variable(s).
427ec082 7074 (x_figure_window_size, x_window, lookup_image,
26901792
DL
7075 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7076 png_load, jpeg_load, gif_load, x_create_tip_frame,
7077 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7078
7079 * xterm.c (x_scroll_bar_handle_click): Compile only if
7080 not USE_TOOLKIT_SCROLL_BARS.
7081 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7082
7083 * dispextern.h: Add prototypes for gamma_correct and
7084 x_kill_gs_process.
7085
7086 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7087 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7088 x_set_toolkit_scroll_bar_thumb): Ditto.
7089 (x_scroll_bar_create): Move local variable to the
7090 conditionally compiled section of code where it is used.
7091 (x_scroll_bar_create): Remove unused variable(s).
7092 (x_scroll_bar_remove, XTread_socket): Ditto.
7093 (XTread_socket) <ConfigureNotify>: Move variables used for
7094 non-toolkit case into conditionally compiled section of code.
7095
7096 * window.h (freeze_window_starts): Fix typo in prototype.
7097
7098 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7099 variable(s).
7100
7101 * lisp.h: Add prototype for debug_print.
7102
7103 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7104 to use do-while.
7105
7106 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7107 (Fchar_table_range, Fset_char_table_default, mapcar1,
7108 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7109
7110 * lisp.h: Add prototype for getloadavg.
7111
71121999-09-14 Andreas Schwab <schwab@gnu.org>
7113
7114 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7115
7116 * lisp.h: Declare close_file_unwind.
7117
71181999-09-14 Richard Stallman <rms@gnu.org>
7119
7120 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7121
71221999-09-13 Gerd Moellmann <gerd@gnu.org>
7123
7124 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7125 is always set correctly.
7126
71271999-09-13 Dave Love <fx@gnu.org>
7128
7129 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7130 declaration.
7131
71321999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7133
7134 * xdisp.c (QCfile): Move here from xfns.c.
7135 (syms_of_xdisp): Initialize it.
7136 (message2_nolog): Change for Lisp_Object selected_frame.
7137 (message3_nolog, message_with_string, message,
7138 setup_echo_area_for_printing, truncate_echo_area,
7139 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7140
71411999-09-13 Dave Love <fx@gnu.org>
7142
7143 * xterm.c: Don't continue #define args for benefit of old cc.
7144 (xt_action_hook): Indent #error for benefit of K&R cc.
7145
71461999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7147
7148 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7149 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7150 (XRINGBELL): Removed.
7151
71521999-09-13 Dave Love <fx@gnu.org>
7153
7154 * xfns.c (x_put_x_image): Make type consistent with declaration.
7155
7156 * fns.c (Fmake_hash_table): Fix string continuation.
7157
71581999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7159
7160 * xfns.c (QCfile): Moved to xdisp.c.
7161 (syms_of_xfns): Don't initialize QCfile.
7162 (check_x_frame): Change for Lisp_Object selected_frame.
7163 (check_x_display_info, x_get_resource_string): Ditto.
7164
71651999-09-13 Gerd Moellmann <gerd@gnu.org>
7166
7167 * minibuf.c (choose_minibuf_frame): Don't try to set the
7168 mini-buffer window's buffer, if the buffer is invalid.
7169
7170 * xfns.c (QCfile): Moved to xdisp.c.
7171 (syms_of_xfns): Don't initialize QCfile.
7172
7173 * xdisp.c (QCfile): Move here from xfns.c.
7174 (syms_of_xdisp): Initialize it.
7175
7176 * lisp.h (selected_frame): Add external declaration.
7177
7178 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7179 (Fx_store_cut_buffer_internal): Ditto.
7180 (Fx_rotate_cut_buffers_internal): Ditto.
7181
7182 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7183 selected_frame.
7184 (Finternal_set_lisp_face_attribute): Ditto.
7185 (Finternal_get_lisp_face_attribute): Ditto.
7186 (Finternal_lisp_face_empty_p): Ditto.
7187 (Fdump_face): Ditto.
7188
7189 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7190 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7191 set_terminal_window, set_scroll_region, reassert_line_highlight,
7192 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7193 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7194 encode_terminal_code, write_glyphs, term_init): Ditto.
7195
7196 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7197 (kbd_input_ast, read_input_waiting): Ditto.
7198
7199 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7200 selected_frame.
7201 (read_minibuf): Ditto.
7202
7203 * keyboard.c (command_loop_1): Change for Lisp_Object
7204 selected_frame.
7205 (cmd_error_internal, command_loop_1, read_char,
7206 kbd_buffer_get_event, read_avail_input,
7207 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7208 interrupt_signal, quit_throw_to_read_char): Ditto.
7209
7210 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7211 (Ffontset_info): DItto.
7212
7213 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7214
7215 * dispnew.c (selected_frame): Make it a Lisp_Object.
7216 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7217 (direct_output_for_insert, direct_output_forward_char,
7218 init_display): Ditto.
7219
7220 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7221 selected_frame.
7222 (set_internal): Ditto.
7223
7224 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7225 (record_buffer): Ditto.
7226
7227 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7228 (do_switch_frame): Change for Lisp_Object selected_frame.
7229 (Fselected_frame): Ditto.
7230 (Fframe_first_window): Use SELECTED_FRAME.
7231 (Fframe_root_window): Change for Lisp_Object selected_frame.
7232 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7233 Fprevious_frame, other_visible_frames, Fdelete_frame,
7234 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7235 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7236 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7237 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7238 Fset_frame_height, Fset_frame_width): Ditto.
7239
72401999-09-13 Gerd Moellmann <gerd@gnu.org>
7241
7242 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7243 (message3_nolog, message_with_string, message,
7244 setup_echo_area_for_printing, truncate_echo_area,
7245 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7246
7247 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7248 (Fx_popup_dialog): Ditto.
7249
7250 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7251 (check_x_display_info, x_get_resource_string): Ditto.
7252
7253 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7254 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7255 (XRINGBELL): Removed.
7256
7257 * window.c (Fminibuffer_window): Change for Lisp_Object
7258 selected_frame.
7259 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7260 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7261 Fcurrent_window_configuration, init_window_once): Ditto.
7262
7263 * frame.h (SELECTED_FRAME): New.
7264
72651999-09-12 Ken Raeburn <raeburn@gnu.org>
7266
7267 * category.c (word_boundary_p): Use XCAR and XCDR.
7268 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7269 Fregister_code_conversion_map): Likewise.
7270 * coding.c (setup_coding_system, detect_coding_system,
7271 Ffind_operation_coding_system, Fset_coding_priority_internal):
7272 Likewise.
7273 * doc.c (get_doc_string, Fdocumentation,
7274 store_function_docstring): Likewise.
7275 * editfns.c (save_restriction_restore): Likewise.
7276 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7277 skip_debugger, find_handler_clause, Fautoload, Fapply,
7278 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7279 Likewise.
7280 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7281 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7282 Fread_file_name): Likewise.
7283 * filelock.c (unlock_all_files): Likewise.
7284 * insdel.c (Fcombine_after_change_execute): Likewise.
7285 * intervals.c (adjust_intervals_for_insertion): Likewise.
7286 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7287 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7288 store_in_keymap, Fcopy_keymap, define_as_prefix,
7289 current_minor_maps, Faccessible_keymaps,
7290 accessible_keymaps_char_table, Fkey_description,
7291 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7292 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7293 describe_map): Likewise.
7294 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7295 read_list, init_lread): Likewise.
7296 * search.c (Fmatch_data): Likewise.
7297 * sunfns.c (Fsun_menu_internal): Likewise.
7298 * syntax.c (describe_syntax): Likewise.
7299 * undo.c (record_insert, record_delete, Fundo_boundary,
7300 truncate_undo_list): Likewise.
7301 * vmsproc.c (child_sig): Likewise.
7302
7303 * editfns.c (Fformat): Use XFLOAT_DATA.
7304
73051999-09-12 Gerd Moellmann <gerd@gnu.org>
7306
7307 * keyboard.c (command_loop_1): Resize mini-window to the
7308 exact size of a message displayed, if any.
7309
7310 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7311 to exact size if exact_p is non-zero.
7312 (display_echo_area_1): Call resize_mini_window with
7313 new parameter.
7314 (redisplay_internal): Ditto.
7315 (resize_echo_area_axactly): New.
7316
7317 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7318 new parameter.
7319
7320 * dispextern.h: Change prototype of resize_mini_window.
7321 Add prototype for resize_echo_area_axactly.
7322
7323 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7324 (syms_of_xfaces): Defsubr accordingly.
7325
7326 * xdisp.c (hscroll_window_tree): Choose cursor row from
7327 desired or current matrix.
7328 (redisplay_internal): Hscroll before updating.
7329
73301999-09-12 Gerd Moellmann <gerd@gnu.org>
7331
7332 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7333 of minibuffer_prompt_length.
7334
7335 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7336 of minibuffer_prompt_length.
7337 (read_minibuf_unwind): Ditto.
7338 (Fminibuffer_complete_and_exit): Ditto.
7339 (Fminibuffer_complete_word): Ditto.
7340 (Fminibuffer_prompt_end): Ditto.
7341
7342 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7343 of minibuffer_prompt_length.
7344 (Fline_beginning_position): Ditto.
7345
7346 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7347 of minibuffer_prompt_length.
7348 (Fmake_indirect_buffer): Ditto.
7349 (Fkill_buffer): Ditto.
7350 (Ferase_buffer): Ditto.
7351
7352 * buffer.h (prompt_end_charpos): Replaces
7353 minibuffer_prompt_length.
7354
427ec082 7355 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7356 without the prompt.
7357
7358 * editfns.c (make_buffer_string_both): Take out the code
7359 to handle mini-buffer prompts.
7360 (Fbuffer_string): Handle the prompt here, instead.
7361
7362 * xfaces.c (lface_from_face_name): Resolve face aliases.
7363 (Qmode_line): Replaces Qmodeline.
7364 (realize_basic_faces): Use Qmode_line.
7365 (syms_of_xfaces): Initialize Qmode_line.
7366
73671999-09-12 Gerd Moellmann <gerd@gnu.org>
7368
7369 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7370 current column after inserting prompt.
7371 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7372
7373 * xfaces.c (Qframe_update_face_colors): New.
7374 (syms_of_xfaces): Initialize call.
7375 (update_face_from_frame_parameter): Call that function when
7376 the frame's background changes.
7377
73781999-09-12 Richard Stallman <rms@gnu.org>
7379
7380 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7381
73821999-09-12 Ken Raeburn <raeburn@gnu.org>
7383
7384 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7385 mark_object, mark_buffer): Use XCAR and XCDR.
7386 * bytecode.c (Fbyte_code): Likewise.
7387 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7388 Likewise.
7389 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7390 getenv_internal): Likewise.
7391 * dired.c (file_name_completion): Likewise.
7392 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7393 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7394 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7395 * indent.c (Fcompute_motion): Likewise.
7396 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7397 list_processes_1, Fstart_process, Fopen_network_stream,
7398 wait_reading_process_input, read_process_output_call,
7399 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7400 status_notify, wait_reading_process_input): Likewise.
7401 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7402 extend_property_ranges): Likewise.
7403 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7404 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7405 x_report_frame_params, x_set_cursor_type, x_icon_type,
7406 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7407 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7408 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7409 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7410 x_display_info_for_name, Fx_display_list): Likewise.
7411 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7412 Fx_popup_menu, Fx_popup_dialog): Likewise.
7413 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7414 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7415 w32_term_init, x_delete_display): Likewise.
7416 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7417 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7418 x_top_window_to_frame, x_set_frame_parameters,
7419 x_report_frame_params, x_set_cursor_type, x_icon_type,
7420 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7421 Fx_display_list, x_create_tip_frame): Likewise.
7422 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7423 Fx_popup_menu, Fx_popup_dialog): Likewise.
7424 * xselect.c (x_own_selection, x_get_local_selection,
7425 x_handle_selection_request, x_handle_selection_clear,
7426 x_clear_frame_selections, wait_for_property_change_unwind,
7427 wait_for_property_change, x_handle_property_notify,
7428 copy_multiple_data, x_get_foreign_selection,
7429 lisp_data_to_selection_data, clean_local_selection_data,
7430 x_handle_selection_notify, Fx_get_selection_internal,
7431 x_disown_buffer_selections): Likewise.
7432 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7433 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7434 Likewise.
7435
7436 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7437 XFLOAT_DATA.
7438 * bytecode.c (Fbyte_code): Likewise.
7439 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7440 fmod_float): Likewise.
7441
74421999-09-11 Richard Stallman <rms@gnu.org>
7443
7444 * xdisp.c (run_window_scroll_functions): If hook functions switch
7445 buffers, switch back after.
7446
74471999-09-11 Ken Raeburn <raeburn@gnu.org>
7448
7449 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7450 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7451 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7452 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7453 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7454 XCDR.
7455 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7456 XCDR.
7457
74581999-09-10 Richard Stallman <rms@gnu.org>
7459
7460 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7461 not RevertToPointerRoot.
7462 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7463 Fix the code to clear around the scroll bar.
7464
74651999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7466
7467 * print.c: Support print-circle and related features.
7468 (Vprint_gensym_alist): Removed.
7469 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7470 Vprint_number_table): New variables.
7471 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7472 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7473 (print, print_preprocess, print_preprocess_string, print_object):
7474 New/modified functions with print-circle feature. Use
7475 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7476 (syms_of_print): Defined new Lisp variables `print-circle',
7477 `print-continuous-numbering', `print-number-table'.
7478
74791999-09-10 Gerd Moellmann <gerd@gnu.org>
7480
7481 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7482 as background color specification instead of an integer.
7483 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7484 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7485 (clear_image_cache, syms_of_xfns): Use it.
7486 (Qpostscript): Replaces Qghostscript.
7487 (gs_type): Use it.
7488 (gs_image_p): Ditto.
7489 (syms_of_xfns): Initialize Qpostscript.
7490
74911999-09-10 Richard Stallman <rms@gnu.org>
7492
7493 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7494
74951999-09-09 Richard Stallman <rms@gnu.org>
7496
7497 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7498
7499 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7500
75011999-09-09 Gerd Moellmann <gerd@gnu.org>
7502
7503 * fns.c (Fmakehash): Accept just one optional argument TEST.
7504
7505 * xfns.c (QCindex): New.
7506 (syms_of_xfns): Initialize QCindex.
7507 (gif_load): Use it instead of `:image'.
7508
75091999-09-09 Richard Stallman <rms@gnu.org>
7510
7511 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7512 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7513
75141999-09-08 Gerd Moellmann <gerd@gnu.org>
7515
7516 * xdisp.c (Qwhen): Replaces QCwhen.
7517 (syms_of_xdisp): Initialized it instead of QCwhen.
7518 (handle_single_display_prop): Use it instead of QCwhen.
7519
75201999-09-08 Ken'ichi Handa <handa@gnu.org>
7521
7522 * charset.c (translate_char): Reset MSBs of arguments of
7523 MAKE_CHAR.
7524 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7525
75261999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7527
7528 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7529
7530 * fns.c (Fbase64_decode_region): Don't place point outside of the
7531 current accessible portion.
7532
75331999-09-07 Richard Stallman <rms@gnu.org>
7534
7535 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7536 parent is an ancestor of SUBMAP; otherwise, add it as the
7537 ultimate ancestor.
7538
75391999-09-07 Gerd Moellmann <gerd@gnu.org>
7540
7541 * xdisp.c (handle_single_display_prop): Change conditional
7542 display property to `:when FORM . VALUE'.
7543
75441999-09-07 Richard Stallman <rms@gnu.org>
7545
7546 * fileio.c (Fwrite_region): Doc fix.
7547
75481999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7549
7550 * fileio.c (Qexcl): New variable.
7551 (report_file_error): Handle EEXIST specially.
7552 (Fwrite_region): Special handling for CONFIRM = `excl'.
7553 (syms_of_fileio): Initialize Qexcl.
7554
75551999-09-07 Gerd Moellmann <gerd@gnu.org>
7556
7557 * xfns.c (x_set_foreground_color): Call
7558 update_face_from_frame_parameter.
7559 (x_set_background_color): Ditto.
7560 (x_set_mouse_color): Ditto.
7561 (x_set_cursor_color): Ditto.
7562 (x_set_border_color): Ditto.
7563 (x_set_scroll_bar_foreground): Ditto.
7564 (x_set_scroll_bar_background): Ditto.
7565
7566 * xfaces.c (recompute_basic_faces): Clear face cache.
7567 (Finternal_set_lisp_face_attribute): Modify frame parameters
7568 if attributes of certain faces are changed.
7569 (update_face_from_frame_parameter): New.
7570
7571 * xfaces.c (realize_basic_faces): Realize new basic faces.
7572
7573 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7574 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7575
7576 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7577 (syms_of_xfaces): Intialize new symbols.
7578
7579 * fns.c (Fmakehash): Take one argument, test, make all the
7580 rest keyword arguments.
7581
7582 * window.c (Fset_window_margins): Make window the first argument.
7583 (set_window_buffer): Call Fset_window_margins with window as first
7584 argument.
7585
75861999-09-07 Gerd Moellmann <gerd@gnu.org>
7587
7588 * xfaces.c (Qfringe): Replaces Qmargin.
7589
75901999-09-07 Kenichi Handa <handa@etl.go.jp>
7591
7592 * charset.h: Lots of comments fixed.
7593 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7594 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7595
7596 * charset.c : Lots of comments fixed.
7597 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7598 (CHAR_COMPONENTS_VALID_P): Name changed from
7599 CHAR_COMPONENT_VALID_P. Caller changed.
7600
76011999-09-06 Richard Stallman <rms@gnu.org>
7602
7603 * insdel.c (syms_of_insdel): Define Lisp variable
7604 inhibit-modification-hooks.
7605
76061999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7607
7608 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7609 unexaix.c.
7610
7611 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7612
76131999-09-06 Dave Love <fx@gnu.org>
7614
7615 * unexaix.c: New version incorporating Michael Sperber's changes
7616 from XEmacs. Should solve problems on AIX 4.3.
7617
7618 * lread.c (Vbyte_boolean_vars): New variable.
7619 (defvar_bool, syms_of_lread): Use it.
7620
76211999-09-05 Richard Stallman <rms@gnu.org>
7622
7623 * minibuf.c (read_minibuf): Put all three properties on the
7624 same range, the whole prompt.
7625
76261999-09-05 Gerd Moellmann <gerd@gnu.org>
7627
7628 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7629 (Fplay_sound, syms_of_sound): Use it.
7630 (parse_sound): Allow float volume values in the range [0, 1].
7631 (Fplay_sound): Ditto.
7632
7633 * window.c (Fset_window_vscroll): Make window the first argument,
7634 amount to scroll the second. Take non-negative vscroll as
7635 argument.
7636 (Fwindow_vscroll): Return non-negative vscroll.
7637
7638 * xfns.c (Fx_show_tip): Improve documentation.
7639
76401999-09-05 Gerd Moellmann <gerd@gnu.org>
7641
7642 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7643 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7644 `top-line' and `top_line' to `header-line' and `header_line'.
7645 Likewise for similar spellings.
7646
76471999-09-05 Gerd Moellmann <gerd@gnu.org>
7648
7649 * xdisp.c (row_containing_pos): New.
7650 (try_window_id): Use it.
7651
7652 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7653 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7654 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7655 Likewise for upper-case etc.
7656
76571999-09-05 Gerd Moellmann <gerd@gnu.org>
7658
7659 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7660 Fix reference to renamed variable.
7661
76621999-09-04 Gerd Moellmann <gerd@gnu.org>
7663
7664 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7665 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7666 Qfixed_window_size.
7667 (syms_of_window): Ditto.
7668
7669 * fns.c (Fmakehash): Exchange optional test and size arguments.
7670
76711999-09-03 Gerd Moellmann <gerd@gnu.org>
7672
7673 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7674 under newly created scroll bar.
7675 (expose_window): If window is not yet fully initialized, do
7676 nothing. This can happen when toolkit scroll bars are used and a
7677 window is split. Reconfiguring the scroll bars will generate an
7678 expose for a newly created window.
7679
7680 * frame.h (struct frame): New member `gamma'.
7681
7682 * xfns.c: Include math.h. Add extern declaration for atof in case
7683 we don't see one.
7684 (Qscreen_gamma): New.
7685 (struct x_frame_parm_table): Add prototypes, add
7686 x_set_screen_gamma.
7687 (gamma_correct): New function.
7688 (defined_color): Call it.
7689 (x_set_screen_gamma): New.
7690 (x_set_title): Add parameter old_value.
7691 (RES_TYPE_FLOAT): New.
7692 (x_get_arg): Handle RES_TYPE_FLOAT.
7693 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7694 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7695 new prototype.
7696 (lookup_rgb_color): Ditto.
7697 (syms_of_xfns): Initialize Qscreen_gamma.
7698
7699 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7700 New. Allocate color for lwlib widgets.
7701 (x_alloc_nearest_color): Change parameter list include the
7702 frame on which to allocate colors. Gamma-correct colors.
7703 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7704 parameter list.
7705
7706 * xterm.h: Change protorype of x_alloc_nearest_color.
7707
77081999-09-03 Richard Stallman <rms@gnu.org>
7709
7710 * callproc.c: Delete the system-independent include of stdlib.h
7711 (leaving only the one in the WINDOWSNT conditional).
7712
77131999-09-03 Andrew Choi <choi@cs.hku.hk>
7714
7715 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7716 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7717
26901792
DL
7718 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7719 Window types and macros.
7720
7721 * frame.h: Do nothing if included a second time.
7722 (enum output_method): Add mac_output frame type.
7723 (union output_data): Add new alternative `mac'.
7724 (FRAME_MAC_P): New macro.
427ec082 7725
26901792
DL
7726 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7727 (syms_of_frame_1): Initialize Qmac.
7728 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7729 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7730 (Fmodify_frame_parameters) [macintosh]: Call
7731 mac_set_frame_parameter in macterm.c.
427ec082 7732
26901792
DL
7733 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7734 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7735
26901792
DL
7736 * make-docfiles.c: Correctly handle input files with Mac-style
7737 eol's.
427ec082 7738
26901792 7739 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7740
26901792
DL
7741 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7742 file of an X Window environment.
427ec082 7743
26901792
DL
7744 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7745 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7746
26901792
DL
7747 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7748 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7749 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7750 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7751 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7752 New functions, replacing POSIX features.
427ec082 7753
26901792
DL
7754 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7755 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7756 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7757
7758 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7759 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7760 (myPasswdDir, TempDirName, sys_siglist): New variables.
7761
7762 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7763 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7764 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7765 Define empty stubs so Emacs will link.
7766
77671999-09-03 Gerd Moellmann <gerd@gnu.org>
7768
7769 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7770
7771 * window.h: New member frozen_window_start_p.
7772
7773 * window.c (foreach_window, foreach_window_1): New.
7774 (freeze_window_start, freeze_window_starts): New.
7775 (make_window): Initialize frozen_window_start_p.
7776 (replace_window): Ditto.
7777 (Fset_window_point): Remove references to deleted variables.
7778 (Fset_window_start): Ditto.
7779
7780 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7781 resize_mini_initial_height): Removed.
7782 (syms_of_xdisp): Remove references to these variables.
7783 (resize_mini_window): Don't save window configuration, freeze
7784 window starts instead. Enlarge window until displaying an empty
7785 buffer, then shrink it. Make the function externally visible.
7786 (redisplay_window): Treat frozen window start like forced start,
7787 but accept point outside of the window.
7788
7789 * dispextern.h: Add function prototype for resize_mini_window.
7790
7791 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7792 reaching minibuf_level 0.
7793
7794 * lisp.h: Remove extern declarations for variables deleted from
7795 xdisp.c.
7796
7797 * dispnew.c (adjust_frame_glyphs): Remove reference to
7798 Vresize_mini_config.
7799
78001999-09-03 Gerd Moellmann <gerd@gnu.org>
7801
7802 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7803 to USE_TOOLKIT_SCROLL_BARS.
7804
7805 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7806 here.
7807 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7808 under newly created scroll bar. Put toolkit scroll bars in the
7809 middle of the area reserved for the scroll bar.
7810
78111999-09-03 Kenichi Handa <handa@etl.go.jp>
7812
7813 The following changes are for the new handling of mulitbyte
7814 sequence. Now, except for a composite character, no multibyte
7815 character in string/buffer has trailing garbage bytes. For
7816 instance, the length of string "\201\300\300" is now 2, the first
7817 character is Latin-1 A-grave, the second is raw \300.
7818
7819 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7820 are negative.
7821 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7822 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7823 (PARSE_COMPOSITE_SEQ): New macro.
7824 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7825 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7826 (CHAR_PRINTABLE_P): New macro.
7827 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7828 (STRING_CHAR_AND_LENGTH): Likewise.
7829 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7830 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7831 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7832
7833 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7834 (SPLIT_CHARACTER_SEQ): New macro.
7835 (SPLIT_MULTIBYTE_SEQ): New macro.
7836 (CHAR_COMPONENT_VALID_P): New macro.
7837 (non_ascii_char_to_string): Generate a multibyte sequence as far
7838 as possible.
7839 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7840 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7841 (split_non_ascii_string): Likewise.
7842 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7843 (char_printable_p): New function.
7844 (translate_char): Check character by NATNUMP instead of INTEGERP.
7845 (unibyte_char_to_multibyte): Call char_valid_p instead of
7846 VALID_MULTIBYTE_CHAR_P.
7847 (Fmake_char_internal): Check the arguments more rigidly.
7848 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7849 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7850 (Fmultibyte_char_to_unibyte): Check the validity of character by
7851 CHAR_VALID_P.
7852 (chars_in_text): Call multibyte_chars_in_text.
7853 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7854 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7855 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7856
7857 * data.c (Faset): Adjust the way to check byte-combining
7858 possibility for the new handling of multibyte sequence.
7859
7860 * editfns.c (Fsubst_char_in_region): Likewise.
7861
7862 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7863 (string_char_to_byte): Likewise.
7864 (string_byte_to_char): Likewise.
7865
7866 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7867 macro STRING_CHAR_AND_LENGTH. Caller changed.
7868
7869 * insdel.c (count_combining_composition): New function.
7870 (count_combining_before): Adjust the way to check byte-combining
7871 possibility for the new handling of multibyte sequence. Call
7872 count_combining_composition for a composite character.
7873 (count_combining_after): Likewise.
7874
7875 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7876 (print): Likewise.
7877
7878 * dispextern.h (struct it): Change the size of the member
7879 `ctl_chars'.
7880
7881 * xdisp.c (get_next_display_element): Display incomplete multibyte
7882 sequence (e.g. \222\300) by octal form.
7883
78841999-09-02 Gerd Moellmann <gerd@gnu.org>
7885
7886 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7887
7888 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7889 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7890
78911999-09-02 Gerd Moellmann <gerd@gnu.org>
7892
7893 * buffer.c (set_buffer_internal): Never set
7894 windows_or_buffers_changed.
7895
7896 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7897 if we have displayed to the bottom of the window.
7898
7899 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7900 in both directions. Extend documentation.
7901
79021999-09-01 Gerd Moellmann <gerd@gnu.org>
7903
7904 * minibuf.c (read_minibuf): Flush display after setting cursor to
7905 column 0.
7906
79071999-08-31 Gerd Moellmann <gerd@gnu.org>
7908
7909 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7910 already defined. This avoids a warning from buffer.c.
7911
79121999-08-30 Gerd Moellmann <gerd@gnu.org>
7913
7914 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7915 of both margins.
7916 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7917 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7918 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7919
7920 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7921 once instead of twice.
7922 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7923
7924 * xterm.c: Remove unused bitmaps.
7925 (continued_bits, continuation_bits, overlay_bits): Change images.
7926 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7927 instead of FRAME_X_FLAGS_AREA_WIDTH.
7928 (x_after_update_window_line): Ditto.
7929 (x_draw_bitmap): Likewise.
7930 (x_draw_row_bitmaps): Likewise.
7931 (x_draw_glyph_string_box): Likewise.
7932 (x_draw_glyphs): Likewise.
7933 (x_scroll_run): Likewise.
7934 (expose_window_tree): Likewise.
7935 (note_mode_line_highlight): Likewise.
7936 (XTset_vertical_scroll_bar): Likewise.
7937 (x_clip_to_row): Likewise.
7938 (x_set_window_size): Likewise.
7939
7940 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7941 of 2 * that value.
7942
7943 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7944 2 * that value.
7945 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7946 FRAME_FLAGS_AREA_WIDTH.
7947
7948 * window.c (coordinates_in_window): Use
7949 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7950 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7951 instead of twice.
7952
427ec082 7953 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7954 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7955 (EmacsFrameSetCharSize): Ditto.
7956
7957 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7958 instead of FRAME_FLAGS_AREA_WIDTH.
7959
7960 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7961 FRAME_FLAGS_AREA_COLS once.
7962 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7963 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7964
79651999-08-30 Gerd Moellmann <gerd@gnu.org>
7966
7967 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7968 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7969
79701999-08-30 Gerd Moellmann <gerd@gnu.org>
7971
7972 * fns.c (QCweakness): Replaces QCweak.
7973 (Fmake_hash_table): Ditto.
7974 (Fmakehash): Ditto.
7975 (syms_of_fns): Ditto.
7976
79771999-08-29 Richard Stallman <rms@gnu.org>
7978
7979 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7980
7981 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7982
7983 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7984 Add support for nested comments.
7985
d7d0dac0
SM
7986 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7987 Consolidate the forward comment code into the new `forw_comment'.
7988 (forw_comment): New subroutine. Added support for nested comments.
7989 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7990 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7991
79921999-08-28 Ken Raeburn <raeburn@gnu.org>
7993
7994 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7995 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7996 defined, to help detect code that uses knowledge of the Lisp
7997 internals that it shouldn't have.
7998 (XFLOAT_DATA): New macro.
7999
80001999-08-25 Gerd Moellmann <gerd@gnu.org>
8001
8002 * syntax.c (Fforward_word): If in a mini-buffer and moving
8003 backwards, stop in front of the prompt to prevent accidentially
8004 moving into the read-only prompt.
8005
8006 * window.c (Frecenter): Clear frame if called with nil or no arg.
8007
8008 * xdisp.c (resize_mini_window): Don't resize if
8009 Vmax_mini_window_height is nil. Otherwise, use a default if
8010 Vmax_mini_window_height is not ot a number.
8011 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8012
80131999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8014
8015 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8016 * m/iris4d.h: Use unexelf for IRIX 5.*.
8017 * m/iris5d.h: Use unexelf for IRIX 6.*.
8018 * unexsgi.c: Deleted.
8019
8020 * unexelf.c: Auto-detect .sbss section.
8021 (round_up): Make it static.
8022 (unexec): Declare alignment as Elf Word. Skip ``Program
8023 segment above .bss'' test on MIPS without .sbss.
8024 Copy sections .got and .sdata1 sections. Adjust offsets in
8025 sections .sdata, .lit4, .lit8, .got and .sdata1.
8026
80271999-08-25 Gerd Moellmann <gerd@gnu.org>
8028
8029 * xdisp.c (try_window_id): Remove typo.
8030
80311999-08-24 Gerd Moellmann <gerd@gnu.org>
8032
8033 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8034 unchanged text at the bottom when computing the cursor position.
8035 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8036 set.
8037
8038 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8039
80401999-08-24 Gerd Moellmann <gerd@gnu.org>
8041
8042 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8043 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8044 (syms_of_xfaces): Ditto.
8045
8046 * window.c (Fset_window_point): Reset Vresize_mini_config.
8047 (Fset_window_start): Ditto.
8048 (set_window_buffer): Ditto.
8049
8050 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8051
8052 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8053 before calling try_window.
8054 (echo_area_display): If height has changed, update other windows.
8055 (resize_mini_frame, resize_mini_initial_height): New.
8056 (resize_mini_window): Save/restore window configuration
8057 differently.
8058
427ec082 8059 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
8060 resize_mini_initial_height): Add extern declarations.
8061
8062 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8063 CANON_X_UNIT.
8064
8065 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8066 being redefined in jconfig.h.
8067
80681999-08-23 Ken'ichi Handa <handa@gnu.org>
8069
8070 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8071
80721999-08-22 Gerd Moellmann <gerd@gnu.org>
8073
8074 * alloc.c (mark_glyph_matrix): Mark strings only.
8075
8076 * xdisp.c (redisplay_internal): Clear garbaged frames after
8077 resizing mini-window.
8078
80791999-08-22 Gerd Moellmann <gerd@gnu.org>
8080
8081 * xdisp.c (unwind_with_echo_area_buffer): Use
8082 set_buffer_internal_1 instead of set_buffer_internal.
8083 (with_echo_area_buffer): Ditto.
8084
8085 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8086 only if buffer is displayed somewhere.
8087
8088 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8089
8090 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8091 (gap_right): Ditto.
8092 (modify_region): Ditto.
8093
8094 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8095
8096 * xdisp.c (Vresize_mini_config): New.
8097 (resize_mini_window): Use it to save restore original window
8098 configuration
8099 (syms_of_xdisp): Initialize it.
8100
8101 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8102
8103 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8104
8105 * xdisp.c (reconsider_clip_changes): New.
8106 (redisplay_internal, redisplay_window): Call it.
8107 (mark_window_display_accurate, redisplay_internal): Set current
8108 matrix' buffer, begv, zv.
8109
8110 * window.c (Fset_window_hscroll): Set
8111 prevent_redisplay_optimizations_p instead of clip_changed.
8112 (Fset_window_hscroll): Ditto.
8113 (temp_output_buffer_show): Ditto.
8114 (Fset_window_vscroll): Ditto.
8115
8116 * buffer.c (reset_buffer): Set clip_changed to 0 and
8117 prevent_redisplay_optimizations_p to 1.
8118 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8119
8120 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8121 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8122 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8123 END_UNCHANGED): New.
8124 (struct buffer_text): Add beg_unchanged, end_unchanged,
8125 unchanged_modified, overlay_unchanged_modified.
8126
8127 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8128 overlay_unchanged_modified): Removed.
8129 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8130 (unwind_with_echo_area_buffer): Don't restore them.
8131 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8132 (text_outside_line_unchanged_p, redisplay_internal,
8133 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8134 (redisplay_window): Let try_window_id be called if more than one
8135 window is displayed. Use/set buffer-specific beg/end_unchanged.
8136 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8137 try_window_id):
8138 Use buffer-specific beg/end_unchanged.
8139
8140 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8141 overlay_unchanged_modified): Remove extern declarations.
8142
8143 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8144 buffer.
8145
8146 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8147 (gap_right): Ditto.
8148 (adjust_after_replace): Likewise.
8149 (replace_range, del_range_2, modify_region): Likewise.
8150
8151 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8152 and unchanged_modified per buffer.
8153
8154 * coding.c (code_convert_region): Compute beg/end_unchanged per
8155 buffer.
8156
8157 * buffer.c (modify_overlay): Compute beg/end_unchanged
8158 per buffer.
427ec082 8159 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
8160 structure.
8161
81621999-08-22 Gerd Moellmann <gerd@gnu.org>
8163
8164 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8165
8166 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8167 (Qkey_value_weak): Removed.
8168 (make_hash_table): Use nil, `key', `value', t for weakness.
8169 (Fmake_hash_table): Ditto.
8170 (copy_hash_table): New.
8171 (Fcopy_hash_table): New.
8172
81731999-08-22 Gerd Moellmann <gerd@gnu.org>
8174
8175 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8176 new parameter.
26901792
DL
8177
81781999-08-21 Gerd Moellmann <gerd@gnu.org>
8179
8180 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8181 well.
427ec082 8182 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8183 have changed.
8184 (display_echo_area): Reset displayed echo_area_buffer to nil
8185 at the end if we're displaying a nil message.
8186
81871999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8188
26901792
DL
8189 * fns.c (hash_lookup): Test with EQ before calling key comparion
8190 function.
8191 (hash_remove): Ditto.
8192 (cmpfn_eq): Removed.
8193 (cmpfn_eql): Don't test with EQ.
8194 (cmpfn_equal): Ditto.
8195 (make_hash_table): Set comparison function for `eq' to null.
8196
8197 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8198 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8199
8200 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8201
8202 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8203 xterm.c: Call change_frame_size and do_pending_window_change with
8204 new parameter.
8205
8206 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8207 (change_frame_size): Ditto.
8208 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8209 and not called from a safe place.
8210 (window_change_signal): Call change_frame_size with new parameter.
8211
8212 * dispextern.h: Change prototypes for do_pending_window_change
8213 and change_frame_size.
8214
8215 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8216 window's buffers equals current_buffer; this is not the
26901792
DL
8217 case during echo area display.
8218
82191999-08-21 Gerd Moellmann <gerd@gnu.org>
8220
8221 * xdisp.c, minibuf.c: Remove conditional compilation on
8222 NO_PROMPT_IN_BUFFER.
8223
8224 * minibuf.c (Fminibuffer_prompt_end): New.
8225 (syms_of_minibuf): Defsubr it. Remove
8226 minibuffer-prompt-in-buffer.
8227 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8228 Extend documentation.
8229
8230 * xdisp.c (get_next_display_element): Display \r as ^M.
8231
8232 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8233 under scroll bar widget.
8234
82351999-08-21 Gerd Moellmann <gerd@gnu.org>
8236
8237 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8238 anywhere.
8239 (unwind_redisplay): Return nil.
8240 (clear_garbaged_frames): New.
8241 (redisplay_internal): Use it.
8242 (echo_area_display): Ditto.
8243 (resize_mini_window): Mew.
8244 (display_echo_area_1): Use it to resize echo area window.
8245 (redisplay_internal): Use it to resize active mini-window.
8246
8247 * dispextern.h, lisp.h: Add function prototypes.
8248
427ec082 8249 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8250 cursor_in_echo_area case only for a mini-window showing
8251 a message. Don't let cursor end up after the end of a row.
8252
8253 * xdisp.c (echo_area_glyphs, echo_area_message,
8254 echo_area_glyphs_length, previous_echo_glyphs,
8255 previous_echo_area_message, previous_echo_area_glyphs_length):
8256 Removed.
8257 (Vmessage_stack, echo_area_buffer, echo_buffer,
8258 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8259 (message2_nolog): Use set_message and clear_message.
8260 (message3): Rename parameter len to nbytes to make clear what
8261 it is.
8262 (message3_nolog): Ditto. Use set_message and clear_message.
8263 (update_echo_area): Rewritten.
8264 (with_echo_area_buffer): New.
8265 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8266 (setup_echo_area_for_printing): New.
8267 (display_echo_area, display_echo_area_1): New.
8268
8269 (current_message, current_message_1): New.
427ec082 8270 (push_message, restore_message, pop_message,
26901792
DL
8271 check_message_stack): New.
8272 (truncate_echo_area): Rewritten.
8273 (truncate_message_1): New.
8274 (set_message, set_message_1, clear_message): New.
8275 (echo_area_display): Rewritten.
8276 (redisplay_internal): Check for needed echo area update
8277 differently.
8278 (redisplay_preserve_echo_area): Rewritten.
427ec082 8279 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8280 message differently.
8281 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8282 Remove initialzation of removed variables.
8283 (init_xdisp): Remove references to removed variables.
8284
8285 * dispnew.c (adjust_frame_message_buffer): Removed references
8286 to echo_area_glyphs and previous_echo_glyphs.
8287 (direct_output_for_insert): Check for mini-window displaying
8288 echo area message differently.
8289 (update_frame): Likewise.
8290 (set_window_cursor_after_update): Likewise. In echo area,
8291 don't try to set cursor on rows that aren't enabled.
8292
8293 * print.c: Remove conditional compilation on `standalone'.
8294 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8295 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8296 longer used in that way.
8297 (PRINTDECLARE): Add multibyte.
8298 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8299 (printbufidx): Removed.
8300 (printchar, strout): Rewritten.
8301
8302 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8303 a struct kboard.
8304 (echo_kboard): New.
8305 (echo_now): Set echo_kboard to the current kboard.
8306 (cancel_echoing): Set echo_kboard to null.
8307 (cmd_error_internal): Use clear_message, remove references
8308 to echo_area_glyphs and echo_area_message.
8309 (command_loop_1): Check for echo area messages differently.
8310 (read_char): Likewise.
8311 (record_menu_key): Use clear_message.
8312 (Fexecute_extended_command): Check for echo area messages
8313 differently. Use push_message, restore_message, pop_message.
8314
8315 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8316 pop_message.
8317
8318 * emacs.c (shut_down_emacs): Call check_message_stack.
8319
8320 * lisp.h: Add function prototypes and extern declarations for
8321 new functions and variables.
8322
8323 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8324 pop_message.
8325
427ec082 8326 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8327 setting echo_area_glyphs.
8328 (Fminibuffer_completion_help): Ditto.
8329
8330 * editfns.c (Fcurrent_message): Rewritten.
8331
8332 * frame.c, window.h: Remove references to echo_area_glyphs
8333 and previous_echo_glyphs.
8334
83351999-08-21 Dave Love <fx@gnu.org>
8336
8337 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8338 * aix4-1.h: Likewise.
8339
8340 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8341
83421999-08-20 Gerd Moellmann <gerd@gnu.org>
8343
8344 * xfns.c: Remove tiff34 prefix from include.
8345
83461999-08-20 Dave Love <fx@gnu.org>
8347
8348 * cm.c: Revert previous change.
8349
83501999-08-19 Gerd Moellmann <gerd@gnu.org>
8351
8352 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8353 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8354
83551999-08-18 Dave Love <fx@gnu.org>
8356
8357 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8358 stdlib.h.
8359
8360 * doprnt.c: Use stdlib.h, unistd.h.
8361
8362 * config.in: Add HAVE_TERMCAP_H.
8363
8364 * cm.c: Use termcap.h.
8365
83661999-08-18 Gerd Moellmann <gerd@gnu.org>
8367
8368 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8369 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8370 cannot be created we will already have crashed earlier. Call
8371 lw_set_main_areas with a null menu-bar widget, so that we have
8372 a reasonable default.
8373 (Fx_create_frame): Rearranged so that Lisp errors during frame
8374 initialization cause less damage. Initialize menu bar widget
8375 here.
8376
83771999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8378
26901792
DL
8379 * dispnew.c (update_frame_line): Fix previous change. If writing
8380 whole line clear to end of frame.
8381
83821999-08-17 Gerd Moellmann <gerd@gnu.org>
8383
8384 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8385 and `right-bitmap-area' if position is in the bitmap areas. This
8386 avoids an error when clicking on the bitmap areas. Instead, they
8387 are currently treated like clicks inside the window.
8388 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8389 (Qleft_bitmap_area, Qright_bitmap_area): New.
8390 (syms_of_window): Initialize new symbols.
8391
8392 * dispnew.c (update_frame_line): If writing whole line,
8393 don't write trailing spaces unless we must.
8394
8395 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8396 (redisplay_internal): Register unwind_redisplay with
8397 register_unwind_protect.
8398 (try_window_reusing_current_matrix): If new start > old start,
8399 give up if start pos of first reusable row is not equal to new
8400 start.
8401
8402 * eval.c (Fsignal): Don't reset redisplaying_p here.
8403
8404 * xterm.c (expose_area): If row extends face to end of line,
8405 write the whole line.
8406
84071999-08-16 Gerd Moellmann <gerd@gnu.org>
8408
8409 * dispextern.h (struct it): Remove member
8410 show_trailing_whitespace_p.
8411
8412 * dispnew.c (direct_output_for_insert): Use
8413 Vshow_trailing_whitespace instead of former iterator member
8414 show_trailing_whitespace_p.
8415 (direct_output_forward_char): Don't do it if hightlighting
8416 trailing whitespace.
8417
8418 * xdisp.c (Qshow_trailing_whitespace): Removed.
8419 (Vshow_trailing_whitespace): Added.
8420 (init_iterator): Remove initialization code for
8421 show_trailing_whitespace_p.
8422 (redisplay_internal): Don't try cursor movement in this_line
8423 if showing trailing whitespace.
8424 (redisplay_window): Likewise for cursor movement in current
8425 matrix and try_window_id.
8426 (try_window_reusing_current_matrix): Likewise.
8427 (trailing_whitespace_p): Return 0 if trailing whitespace is
8428 in front of point.
8429 (display_line): Use Vshow_trailing_whitespace instead of
8430 former iterator member show_trailing_whitespace_p.
8431 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8432
84331999-08-16 Gerd Moellmann <gerd@gnu.org>
8434
8435 * window.c (Fpos_visible_in_window_p): Rewritten.
8436
8437 * xfaces.c (add_to_log): Renamed from display_message.
8438 Don't display messages in echo area.
8439
8440 * xterm.c (x_draw_glyph_string_box): Use the background width
8441 of the glyph string for the width of the box.
8442
84431999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8444
8445 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8446
84471999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8448
8449 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8450 background first, and then set other parameters that might
8451 depend upon their new values.
8452
84531999-08-15 Gerd Moellmann <gerd@gnu.org>
8454
8455 * xfaces.c (Vfont_list_limit): New.
8456 (syms_of_xfaces): Make it a user-variable.
8457 (DEFAULT_FONT_LIST_LIMIT): New.
8458 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8459 maximally that number of fonts, otherwise use
8460 DEFAULT_FONT_LIST_LIMIT.
427ec082 8461 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8462 until we have all fonts.
8463 (Fxfont_list): Additionally return the full names of fonts and
8464 their registry and encoding.
8465
427ec082 8466 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8467 Simplify clearing "under" scroll bar.
8468
8469 * window.c (Qfixed_window_size): New.
8470 (syms_of_window): Initialiaze it.
8471 (check_all_windows): Add return type void.
8472 (window_fixed_size_p): New. Return non-zero if window
8473 is fixed-size.
8474 (window_min_size_1): New.
8475 (window_min_size): Handle fixed-size windows.
8476 (size_window): New. Rewritten combination of set_window_height and
8477 set_window_width that handles fixed-size windows.
8478 (set_window_height): Call it.
8479 (set_window_width): Call it.
8480 (Fsplit_window): Give an error on attempt to split a fixed-size
8481 window.
8482 (change_window_height): Partly rewritten to handle fixed-size
8483 windows.
8484
84851999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8486
8487 * process.c (Fopen_network_stream): Fix previous change.
8488
84891999-08-13 Karl Heuer <kwzh@gnu.org>
8490
8491 * xdisp.c (line_number_display_limit_width): New var.
8492 (decode_mode_spec): Use it instead of hardcoded value.
8493 (syms_of_xdisp): Defvar it.
8494
84951999-08-13 Richard M. Stallman <rms@gnu.org>
8496
8497 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8498 (run_hook_with_args): Likewise.
8499
8500 * window.h (struct window): New field too_small_ok.
8501
427ec082 8502 * window.c (set_window_height, set_window_width):
26901792
DL
8503 If window starts out "too small", set its too_small_ok flag.
8504 If window's too_small_ok flag is set, don't delete it
8505 unless it is so small it would cause a crash.
8506
85071999-08-13 Gerd Moellmann <gerd@gnu.org>
8508
8509 * window.c (MINSIZE): Removed.
8510 (window_min_size): New.
8511 (set_window_height): Use window_min_size.
8512 (change_window_height): Ditto.
8513
85141999-08-12 Gerd Moellmann <gerd@gnu.org>
8515
8516 * indent.c (vmotion): Don't add in mini-buffer prompt width
8517 if prompts are inserted into mini-buffer.
8518
85191999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8520
8521 * config.in: Add HAVE_GETADDRINFO.
8522 * process.c (Fopen_network_stream): Use getaddrinfo.
8523
85241999-08-11 Gerd Moellmann <gerd@gnu.org>
8525
8526 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8527 glyphs to -1.
8528
8529 * xdisp.c (face_before_or_after_it_pos): If position after
8530 or before iterator's current position in the buffer is out
8531 of bounds, return the iterator's original face id.
8532
8533 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8534 just swap glyphs pointers between current and desired row.
8535 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8536 desired matrix method string to current matrix.
8537
85381999-08-11 Kenichi Handa <handa@etl.go.jp>
8539
8540 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8541
8542 * lread.c (read_escape): For Control modifier, pay attention to
8543 multibyte character.
8544 (read1): Likewise. Singal error or a multibyte character which
8545 has a modifer bit. Check validity of Shift modifer.
8546
8547 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8548 the same as Lisp reader.
8549
85501999-08-10 Richard M. Stallman <rms@gnu.org>
8551
8552 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8553
85541999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8555
8556 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8557
85581999-08-10 Eli Zaretskii <eliz@gnu.org>
8559
8560 * msdos.c (IT_set_face): Abort if the default face is not realized
8561 and cached.
8562 (IT_write_glyphs): Reset the screen face to the default face
8563 before writing glyphs.
8564
8565 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8566 colors from the frame here.
8567 (realize_tty_face) [MSDOS]: Do it here. Update the face
8568 attributes with the actual name of the color taken from the
8569 frame.
8570
8571 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8572 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8573
8574 * frame.c (Fframe_parameters): Swap foreground and background
8575 colors returned in frame parameters if the frame has reverse in
8576 its parameter alist.
8577 (Fmake_terminal_frame): Make a unique copy of face_alist for
8578 each frame.
8579
85801999-08-07 Richard Stallman <rms@gnu.org>
8581
8582 * buffer.c (Fprevious_overlay_change): Just return
8583 the answer obtained from overlays_at.
8584
8585 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8586 Use XpmCloseness and attrs.closeness instead.
8587
85881999-08-06 Richard Stallman <rms@gnu.org>
8589
8590 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8591
85921999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8593
427ec082 8594 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8595 Ffile_attributes_lessp): New functions.
8596 (Fdirectory_files): Use directory_files_internal.
8597 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8598 Ffile_attributes_lessp.
8599
8600 * w32.c (stat): Check for directory ending in separator when
8601 doing readdir fast path.
8602
8603 * w32fns.c (x_set_icon_type): Support setting frame icons.
8604 * w32term.c (x_bitmap_icon): New function.
8605 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8606
26901792
DL
86071999-08-06 Gerd Moellmann <gerd@gnu.org>
8608
8609 * xdisp.c (set_iterator_to_next): After delivering a character
8610 from a display vector, restore face and charset to what they were
8611 before the display vector was processed.
8612
86131999-08-06 Gerd Moellmann <gerd@gnu.org>
8614
8615 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8616 on_newline_p.
8617 (set_iterator_to_next): After delivering last char
427ec082 8618 from display vector, reseat on next visible line start if
26901792
DL
8619 dpvec_char_len < 0.
8620 (next_element_from_buffer): Set dpvec_char_len to -1 for
8621 selective display.
8622
86231999-08-06 Gerd Moellmann <gerd@gnu.org>
8624
8625 * xdisp.c (compute_line_metrics): If first line's physical ascent
8626 is larger than its logical ascent, use the physical ascent, and
8627 make the row taller. Set row's overlapping_p flag.
8628
8629 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8630 (direct_output_for_insert): Ditto.
8631
8632 * dispextern.h (struct glyph_row): Add overlapping_p.
8633
8634 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8635
8636 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8637 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8638
8639 * dispnew.c (direct_output_for_insert): Don't use this method if
8640 row is overlapped by others.
8641 (update_text_area): Write full line if current line is overlapped.
8642 (redraw_overlapped_rows): New.
8643 (update_window): Call it.
8644 (redraw_overlapping_rows): New.
8645 (update_window): Call it.
8646 (scrolling_window): Make sure overlapped_p flag in current rows is
8647 unchanged.
8648 (row_equal_p): Take rows overlapped_p flag into account.
8649
8650 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8651
8652 * xterm.c (x_fix_overlapping_area): New.
8653 (x_redisplay_interface): Add x_fix_overlapping_area.
8654
8655 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8656
86571999-08-06 Gerd Moellmann <gerd@gnu.org>
8658
8659 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8660 (struct glyph_string): Add member for_overlaps_p.
8661 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8662 of overlapping rows, clip to window bottom.
8663 (x_fill_glyph_string): Add parameter overlaps_p.
8664 (x_fill_composite_glyph_string): Ditto.
8665 (BUILD_GLYPH_STRINGS): Ditto.
8666 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8667 (x_draw_glyph_string): Don't draw anything but the foreground
8668 if glyph string draws row overlaps.
8669
8670 * dispnew.c (direct_output_for_insert): Don't use this
8671 optimization for rows that overlap others.
8672 (update_window_line): Return non-zero if display has changed.
8673 (update_text_area): Ditto.
8674 (update_window): Record if display has been changed.
8675
8676 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8677
8678 * dispextern.h (struct redisplay_interface): Add
8679 fix_overlapping_area.
8680
8681 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8682
8683 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8684
8685 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8686 ascent and descent.
8687 (x_produce_stretch_glyph): Ditto.
8688 (x_produce_glyphs): Ditto.
8689
8690 * xdisp.c (init_iterator): Reset physical line height info
8691 after producing special glyphs.
8692 (display_toolbar_line): Set physical line height info.
8693 (compute_line_metrics): Ditto.
8694 (display_line): Ditto.
8695 (display_string): Ditto.
8696
8697 * term.c (produce_glyphs): Set iterator's physical height
8698 information.
8699
8700 * dispnew.c (blank_row): Compute glyph row's physical height.
8701 (row_equal_p): Take physical row heights into account.
8702 (direct_output_for_insert): Ditto.
8703 (update_text_area): Ditto.
8704
8705 * dispextern.h (struct glyph_row): Add phys_ascent and
8706 phys_height.
8707 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8708 max_phys_descent.
8709
87101999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8711
8712 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8713 Fswitch_to_buffer.
8714 (no_switch_buffer): New function.
8715 (Fswitch_to_buffer): Call them. Don't get confused
8716 by "same-window" buffers in a dedicated frame.
8717
8718 * window.c (display-buffer): Don't get confused
8719 by "same-window" buffers in a dedicated frame.
8720
87211999-08-04 Andreas Schwab <schwab@gnu.org>
8722
8723 * insdel.c (insert_from_string_1): Check gap size against number
8724 of outgoing bytes, not incoming bytes.
8725
87261999-08-03 Tom Breton <tob@world.std.com>
8727
8728 * lread.c (read1): Added circular reading code to #N=.
8729 (SUBSTITUTE): New macro.
8730 (seen_list): New variable.
8731 (substitute_object_in_subtree): New function.
8732 (substitute_object_recurse): New function.
8733 (substitute_in_interval): New function.
8734
87351999-08-02 Eli Zaretskii <eliz@gnu.org>
8736
8737 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8738
8739 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8740 noninteractive, for termcap frames as well.
8741
8742 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8743 frames.
8744
87451999-08-01 Richard Stallman <rms@gnu.org>
8746
8747 * fns.c (internal_equal): Correct overlay comparison.
8748
83c8f461 87491999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8750
427ec082 8751 * xfns.c (x_set_internal_border_width):
26901792
DL
8752 Call do_pending_window_change. Don't block input, don't call XFlush.
8753 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8754 (x_set_scroll_bar_width, x_set_font): Likewise.
8755
8756 * frame.c (Fset_frame_height): Call do_pending_window_change.
8757 (Fset_frame_width, Fset_frame_size): Likewise.
8758
8759 * xterm.c (x_set_window_size): When calling change_frame_size,
8760 specify 1 for DELAY.
8761
8762 * widget.c (EmacsFrameSetCharSize): Don't call
8763 do_pending_window_change here.
8764
87651999-07-30 Dave Love <fx@gnu.org>
8766
8767 * config.in: Add HAVE_STDLIB_H.
8768
87691999-07-30 Richard M. Stallman <rms@gnu.org>
8770
8771 * process.c (create_process): Detect failure of `pipe'.
8772
87731999-07-30 Keisuke Nishida <kei@psn.net>
8774
8775 * alloc.c (allocate_vectorlike): Add missing increment.
8776
8777 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8778
8779 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8780 before calling indirect_function.
8781
87821999-07-30 Eli Zaretskii <eliz@gnu.org>
8783
8784 * dispextern.h (load_color, lookup_derived_face): Declare
8785 prototypes.
8786
8787 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8788 it will be done later.
8789
8790 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8791 init_frame_faces if non-interactive.
8792 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8793 array with a call to msdos_stdcolor_name. The font name is now
8794 "ms-dos", consistent with realize_tty_face.
8795
8796 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8797 MSDOS frame.
8798
8799 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8800 x_set_toolbar_lines.
8801
8802 * xfaces.c (load_color): Remove static from definition and remove
8803 prototype.
8804 [MSDOS]: Add a DOS-specific version of load_color.
8805 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8806 (lookup_derived_face): New function.
8807 (realize_default_face): Support MSDOS frames.
8808 [MSDOS]: If fore/background colors are unspecified, inherit them
8809 from the frame.
8810 (realize_face): Support MSDOS frames.
8811 (realize_tty_face): Support MSDOS frames.
8812 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8813 load_color to try to find a suitable approximation. If the face
8814 is inverse-video, swap the foreground and background colors.
8815
8816 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8817 functions.
8818
8819 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8820
8821 * msdos.h: Remove redundant declarations (most of them are now in
8822 dispextern.h).
8823
8824 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8825 Use default frame colors if the face doesn't specify them; invert
8826 the colors if highlight is ON.
8827 (IT_write_glyphs): Rewritten for the new redisplay engine.
8828 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8829 how the hook is called by term.c.
8830 (IT_copy_glyphs): New function, copies an area of the display in
8831 video RAM.
8832 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8833 redisplay now calls it even if char_ins_del_ok is zero.
8834 (IT_set_frame_parameters): Prototype changed. Calls the new
8835 load_color. Puts the new fore/background colors into the default
8836 face on current frame.
8837 (IT_menu_display): Rewritten to handle the new struct glyph
8838 instead of a char array.
8839 (XMenuActivate): Call lookup_derived_face to create and use
8840 special faces for the pop-up and drop-down menus.
8841
88421999-07-29 Gerd Moellmann <gerd@gnu.org>
8843
8844 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8845 XawScrollbarSetThumb if thumb parameters haven't changed because
8846 that function apparently isn't optimized for this case.
8847
88481999-07-29 Eli Zaretskii <eliz@gnu.org>
8849
8850 * msdos.c (getdefdir): Don't return failure indication when
8851 _fixpath sets errno to ENOSYS.
8852
88531999-07-28 Gerd Moellmann <gerd@gnu.org>
8854
8855 * xdisp.c (string_char_and_length): New. Use it everywhere
8856 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8857
88581999-07-28 Kenichi Handa <handa@etl.go.jp>
8859
8860 * fns.c (count_combining): New function.
8861 (struct textprop_rec): New structure.
8862 (concat): Copy text properties correctly when byte combining
8863 occurs.
8864
88651999-07-28 Gerd Moellmann <gerd@gnu.org>
8866
8867 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8868 if display is mono.
8869 (x_draw_row_bitmaps): If face has stipple, don't switch
8870 to foreground color for clearing areas, and set the fill style.
8871
8872 * xfaces.c (load_face_colors): Load background color if setting
8873 stipple, too.
427ec082 8874 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8875 FillStippled.
8876
88771999-07-26 Ken'ichi Handa <handa@gnu.org>
8878
8879 * xterm.c (x_find_ccl_program): Add casting.
8880
8881 * w32fns.c (w32_find_ccl_program): Add casting.
8882
88831999-07-27 Gerd Moellmann <gerd@gnu.org>
8884
8885 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8886
8887 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8888 because this will try to access a nonexisting widget.
8889
88901999-07-26 Markus Rost <rost@gnu.org>
8891
427ec082 8892 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8893 (Fputhash): Ditto.
8894 (Fremhash): Ditto.
8895
88961999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8897
26901792
DL
8898 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8899 value to frame width and height.
8900
8901 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8902 into account for full-width windows. Don't add scroll bar width
8903 to width of clip rect.
8904 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8905 (x_set_glyph_string_background_width): Add 1 to background width.
8906 (x_draw_glyphs): Take internal border into account for full-width
8907 lines.
8908
89091999-07-26 Richard M. Stallman <rms@gnu.org>
8910
8911 * xfns.c (x_set_mouse_color): Always unload the old color.
8912 Don't allow nil as color value.
427ec082 8913 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8914 Always unload the old color.
8915
8916 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8917
89181999-07-26 Karl Heuer <kwzh@gnu.org>
8919
8920 * fns.c (Fy_or_n_p): Doc fix.
8921
89221999-07-26 Kenichi Handa <handa@etl.go.jp>
8923
8924 * ccl.h (setup_ccl_program): The type is changed to `int'.
8925
8926 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8927 stored in the following CCL code. Adjusted for the change of
8928 Vccl_program_table.
8929 (resolve_symbol_ccl_program): Adjusted for the new style of
8930 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8931 is resolving failed.
8932 (ccl_get_compiled_code): New function.
8933 (setup_ccl_program): Function type changed from `void' to `int'.
8934 Resolve symbols in CCL_PROG.
8935 (Fccl_program_p): New function.
8936 (Fccl_execute): Get compiled CCL code by just calling
8937 setup_ccl_program.
8938 (Fccl_execute_on_string): Likewise.
8939 (Fregister_ccl_program): Adjusted for the change of
8940 Vccl_program_table.
8941
8942 * coding.c (setup_coding_system): Get compiled CCL code by just
8943 calling setup_ccl_program.
8944
8945 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8946 calling setup_ccl_program.
8947
8948 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8949 calling setup_ccl_program.
8950
89511999-07-23 Gerd Moellmann <gerd@gnu.org>
8952
8953 * xfaces.c (frame_update_line_height): Just use the height of the
8954 frame's fontset or font, instead of taking face fonts into
8955 account.
8956
8957 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8958
89591999-07-23 Richard M. Stallman <rms@gnu.org>
8960
8961 * window.c (Fsplit_window): For default size, round up for left window.
8962
89631999-07-21 Joe Ramey <ramey@ti.com>
8964
d7d0dac0 8965 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
8966 has returned -1 (lockfile exists but is not a symlink?).
8967
89681999-07-20 Gerd Moellmann <gerd@gnu.org>
8969
8970 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8971 because of a change in cursor_gc made in 20.4.
8972
89731999-07-19 Gerd Moellmann <gerd@gnu.org>
8974
8975 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8976 for YNegative, if using X toolkit.
8977
427ec082 8978 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8979 from positions returned.
8980
89811999-07-17 Gerd Moellmann <gerd@gnu.org>
8982
8983 * xrdb.c (x_load_resources): Set double-click time defaults
8984 for Motif list boxes from double-click-time.
8985
8986 * fns.c (Vhash_table_tests): Remvoed.
8987 (Qhash_table_test): New.
8988 (syms_of_fns): Initialize Qhash_table_test.
8989 (Fmake_hash_table): Look up user-defined tests in symbol prop
8990 `hash-table-test'.
8991 (Fdefine_hash_table_test): Store test and hash function as
8992 symbol prop `hash-table-test'.
8993 (make_hash_table): Add parameters user_test and user_hash.
8994
8995 * window.c (set_window_buffer): Set window margins for tty
8996 frames, too.
8997 (Fset_window_margins): Ditto.
8998
8999 * term.c (append_glyph): Use glyph area of iterator instead of
9000 always TEXT_AREA.
9001
9002 * dispnew.c (update_frame_1): Add left margin width to cursor
9003 hpos.
9004 (direct_output_for_insert): Ditto.
9005 (direct_output_forward_char): Ditto.
9006
9007 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
9008
9009 * dispextern.h (struct glyph_matrix): Add top_line_p.
9010
90111999-07-16 Gerd Moellmann <gerd@gnu.org>
9012
9013 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9014 instead.
9015
9016 * fns.c (cmpfn_eq): Add hash code parameters.
9017 (cmpfn_eql): Ditto.
9018 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9019 (cmpfn_user_defined): Likewise.
9020
90211999-07-15 Gerd Moellmann <gerd@gnu.org>
9022
9023 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9024
9025 * fns.c (maybe_resize_hash_table): Correct computation of
9026 index vector size.
9027 (make_hash_table): Ditto.
9028 (Fmakehash): New.
9029
9030 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9031
9032 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9033 (survives_gc_p): Make it externally visible.
9034 (mark_object): Ditto.
9035
9036 * fns.c (remove_hash_entry): Removed.
9037 (sweep_weak_hash_tables): New.
9038
9039 * print.c (print): Print more information about hash tables.
9040
9041 * xfns.c (image_spec_hash): Removed.
9042 (lookup_image): Use sxhash instead of image_spec_hash.
9043 (image_spec_equal_p): Removed.
9044 (lookup_image): Use Fequal instead of image_spec_equal_p.
9045
90461999-07-14 Gerd Moellmann <gerd@gnu.org>
9047
9048 * lisp.h (P_): Moved to top of file.
9049
9050 * fns.c (make_hash_table): Set new members.
9051
9052 * alloc.c (mark_object): Mark hash table's user_hash_function.
9053 Mark index vector for weak hash tables.
9054
9055 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9056 user_hash_function, cmpfn, and hashfn.
9057
9058 * fns.c (build_hash): Removed.
9059 (hash_test): Removed.
9060 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9061 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9062
90631999-07-13 Gerd Moellmann <gerd@gnu.org>
9064
9065 * alloc.c (survives_gc_p): New.
9066
9067 * print.c (print): Add hash table handling.
9068
9069 * alloc.c (mark_object): Add code to mark hash tables.
9070
9071 * lisp.h (GC_HASH_TABLE_P): New.
9072
9073 * emacs.c (main): Call init_fns.
9074
9075 * fns.c (init_fns): New.
9076
9077 * fns.c: Add hash table implementation.
9078
9079 * lisp.h (PVEC_HASH_TABLE): New.
9080 (struct Lisp_Hash_Table): New.
9081 (XHASH_TABLE): New.
9082 (XSET_HASH_TABLE): New.
9083 (HASH_TABLE_P): New.
9084 (CHECK_HASH_TABLE): New.
9085 (DEFAULT_HASH_SIZE): New.
9086 (DEFAULT_REHASH_THRESHOLD): New.
9087 (DEFAULT_REHASH_SIZE): New.
9088
9089 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9090 (x_write_glyphs): Compute overwritten cursor using real start
9091 and end positions of display.
9092 (x_insert_glyphs): Ditto.
9093
90941999-07-10 Gerd Moellmann <gerd@gnu.org>
9095
9096 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9097
9098 * dispnew.c (blank_row): Add y-position as parameter. Compute
9099 visible height.
9100
9101 * xdisp.c (next_element_from_string): Give padding spaces
9102 a position of -1.
9103
427ec082 9104 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
9105 marginals areas on tty frames in a future version.
9106 (allocate_matrices_for_frame_redisplay): Ditto.
9107
9108 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9109 to zero if number of glyphs in the row is <= 1.
9110
91111999-07-09 Gerd Moellmann <gerd@gnu.org>
9112
9113 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9114 into account.
9115
9116 * xdisp.c (handle_display_prop): Don't reset area if handing
9117 a property from a string that came from a `display' property.
9118 (handle_single_display_prop): Don't handle recursive `display'
9119 properties.
9120 (handle_single_display_prop): Handle some display property
9121 forms for terminal frames.
9122 (Qimage): Moved here from xfns.c.
9123
9124 * dispextern.h (struct it): New field string_from_display_prop_p.
9125
9126 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9127 line.
9128
91291999-07-08 Gerd Moellmann <gerd@gnu.org>
9130
9131 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9132
9133 * window.c (set_window_buffer): Set window's vscroll to zero.
9134
9135 * xdisp.c (QCwhen): New.
9136 (display_prop_end): New.
9137 (handle_single_display_prop): Use it.
9138 (debug_method_add): Print buffer name if tracing.
9139 (try_window_reusing_current_matrix): Compute visible height
9140 of reused rows. Fix cursor position calculation in case of
9141 top-line.
9142
9143 * dispextern.h (struct redisplay_interface): Add parameter
9144 cursor_on_p to update_window_end_hook.
9145
9146 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9147
91481999-07-07 Gerd Moellmann <gerd@gnu.org>
9149
427ec082 9150 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
9151 doesn't become negative when decrementing it.
9152
9153 * eval.c (Fsignal): Reset redisplaying_p to zero.
9154
9155 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9156 for window update.
9157 (try_window_id): Ditto.
9158
9159 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9160 (x_scroll_run): Ditto.
9161 (any_help_event_p): New.
9162 (x_initialize): Set it to zero.
9163 (XTread_socket): Clear help echo only if any_help_event_p.
9164
9165 * xdisp.c (init_iterator): Set top_line_p.
9166 (start_display): Use correct initial y if top-line is present.
9167 (make_cursor_line_fully_visible): Bug fixes for top-line.
9168 (try_scrolling): Ditto.
9169 (try_window_reusing_current_matrix): Ditto.
9170
9171 * dispextern.h (struct it): Add top_line_p.
9172
9173 * dispnew.c (shift_glyph_matrix): Move some computations out
9174 of the loop.
9175
427ec082 9176 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9177 XFLOATINT.
9178
91791999-07-06 Gerd Moellmann <gerd@gnu.org>
9180
9181 * dispnew.c (update_frame_1): When setting cursor in echo area,
9182 skip only over padding spaces at the end.
9183
9184 * xfaces.c (realize_tty_face): Set face's font_name field to
9185 "tty".
9186
9187 * term.c (update_end): Turn cursor on only if selected window's
9188 cursor_off_p flag is not set.
9189
91901999-07-05 Gerd Moellmann <gerd@gnu.org>
9191
9192 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9193 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9194 (TS_cursor_invisible): New.
9195 (term_init): Initialize TS_cursor_invisible.
9196 (tty_hide_cursor): New.
9197 (tty_show_cursor): New.
9198 (update_end): Show tty cursor.
9199 (update_begin): Hide tty cursor to prevent cursor flickering
9200 during redisplays triggered by timers (stealth fontification).
9201
9202 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9203
9204 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9205 in scroll bars.
9206 (x_handle_toolbar_click): Set modifier bits.
9207
92081999-07-04 Gerd Moellmann <gerd@gnu.org>
9209
9210 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9211 instead of a pointer to a volatile input_event.
427ec082 9212 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9213 declaration of local variable `sp'.
9214 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9215 to kbd_fetch_ptr.
9216
92171999-07-03 Gerd Moellmann <gerd@gnu.org>
9218
9219 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9220 only if buffer is modified. Return quickly if changes are
9221 above window start.
9222
92231999-07-02 Gerd Moellmann <gerd@gnu.org>
9224
9225 * dispextern.h (HSCROLL_WINDOWS): Removed.
9226
9227 * xdisp.c (mark_window_display_accurate): Don't set
9228 w->region_showing.
9229 (redisplay_internal): Don't call redraw_garbaged_frames.
9230
92311999-07-01 Gerd Moellmann <gerd@gnu.org>
9232
9233 * xdisp.c (echo_area_display): Don't display truncation marks
9234 for messages because 20.4 doesn't do it either.
9235 (redisplay_window): Case same window start. Instead of giving
9236 up when cursor is partially visible, make it fully visible.
9237 (mark_window_display_accurate): Some cleanup. Record window's
9238 last cursor information.
9239 (debug_method_add): Improved.
9240 (redisplay_internal): Record last cursor info only if not
9241 consider_all_windows_p.
9242
9243 * dispnew.c (update_window): Update top line after scrolling.
9244 (blank_row): Renamed from make_empty_enabled_row.
9245 (increment_glyph_row_buffer_positions): Increment positions
9246 in buffers, only.
9247
9248 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9249 string.
9250
92511999-06-30 Gerd Moellmann <gerd@gnu.org>
9252
9253 * dispnew.c (update_window): Check that updated row is visible.
9254
9255 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9256 top of window differently.
9257
9258 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9259 if region is showing.
9260
9261 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9262 avoiding matrix reallocation. Set window_vscroll in matrix.
9263
9264 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9265
26901792
DL
9266 * xdisp.c (debug_method_add): New.
9267 (debug_redisplay_method): Removed.
9268 (try_window_reusing_current_matrix): Handle case where old
9269 window start is the same as new window start.
9270
9271 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9272 an array instead of a pointer.
9273
26901792
DL
9274 * xfns.c (Fx_show_tip): Undo previous change.
9275
9276 * xterm.c (x_append_glyph): Clear glyph->u.val.
9277
9278 * dispextern.h (struct glyph): Increase size of face_id bit-field
9279 for CHAR_GLYPH to 12.
9280
92811999-06-29 Gerd Moellmann <gerd@gnu.org>
9282
9283 * xfaces.c (x_charset_registry): Make it externally visible.
9284
92851999-06-28 Gerd Moellmann <gerd@gnu.org>
9286
427ec082 9287 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9288 instead of WINDOW_WANTS_MODELINE_P.
9289
9290 * xterm.c (clear_mouse_face): Make externally visible.
9291
9292 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9293
9294 * xterm.c (expose_line): Handle exposure of top-lines.
9295
9296 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9297 if mouse_face_mouse_frame is null.
9298
9299 * xdisp.c (redisplay_window): If window is echo_area_window,
9300 and update_mode_line is set, update menubar and toolbar.
9301
9302 * dispnew.c (space_glyph): Set its charpos to -1.
9303 (update_frame_1): Ignore trailing padding spaces.
9304
9305 * xdisp.c (next_element_from_c_string): Set position of padding
9306 glyphs to -1.
9307
93081999-06-27 Gerd Moellmann <gerd@gnu.org>
9309
9310 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9311 XQueryColor.
9312
9313 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9314 (set_cursor_from_row): Skip over glyphs having a null object at
9315 the start of rows.
9316 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9317 glyphs.
9318 (handle_invisible_prop): Compute next change only when needed.
9319 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9320 line.
9321
93221999-06-26 Gerd Moellmann <gerd@gnu.org>
9323
9324 * xrdb.c (x_load_resources): Don't set resource for double-click
9325 time.
9326
9327 * xdisp.c (try_window_id): Return quickly if all changes are
9328 below the window's current matrix end.
9329
9330 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9331 parameter.
9332
9333 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9334 in desired not in current matrix.
9335 (try_window_reusing_current_matrix): Rotate matrices starting
9336 at start_vpos instead of 0.
9337
9338 * xterm.c (expose_window): Use window_text_bottom_y.
9339 (fast_find_position): Ditto.
9340
9341 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9342 (try_window_reusing_current_matrix): Ditto.
9343 (get_last_unchanged_at_beg_row): Ditto.
9344 (init_iterator): Ditto.
9345
9346 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9347 more row.
9348 (check_matrix_invariants): Use window_text_bottom_y.
9349 (update_window): Ditto.
9350 (scrolling_window): Ditto.
9351
9352 * xdisp.c (window_text_bottom_y): New.
9353
93541999-06-25 Gerd Moellmann <gerd@gnu.org>
9355
9356 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9357 clearing mouse face.
9358 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9359 event.xcrossing.focus is not set, and focus is in the menu bar,
9360 set focus frame as if event.xcrossing.focus were set.
9361
93621999-06-24 Gerd Moellmann <gerd@gnu.org>
9363
9364 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9365 * keyboard.c (make_lispy_movement): Ditto.
9366
9367 * window.c (coordinates_in_window): Return 4 if on top line.
9368 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9369
9370 * xdisp.c (window_box_height): Subtract top line height.
9371 (window_box): Add top line height to top y position if top line
9372 exists.
9373 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9374 the top line row of the window. Set initial y-position to
9375 window's top line height plus delta.
9376 (start_display): Choose start glyph row depending on whether
9377 window has a top line.
9378 (try_scrolling): Take top line height into account for aggressive
9379 scrolling.
9380 (compute_window_start_on_continuation_line): Take top line into
9381 account.
427ec082 9382 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9383 trigger a new redisplay.
9384 (try_window_reusing_current_matrix): Take top line into account.
9385 (find_last_row_displaying_text): Ditto.
9386 (get_last_unchanged_at_beg_row): DItto.
9387 (try_window_id): Ditto.
9388 (compute_line_metrics): Ditto.
9389
9390 * dispnew.c (shift_glyph_matrix): Compute visible row height
9391 taking top line of window into account.
9392 (update_window): Update top line. If scrolling_window detects
9393 that all rows are equal, only set cursor.
9394 (update_window_line): Call after_update_window_line_hook if
9395 mode_line_p flag of rows has changed.
9396 (scrolling_window): Add parameter top_line_p. Return -1 if
9397 all rows are equal.
9398 (mode_line_string): Add parameter mode_line_p. Handle strings
9399 in top lines.
9400
9401 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9402 (MATRIX_FIRST_TEXT_ROW): New.
9403 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9404 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9405 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9406 (MATRIX_TOP_LINE_HEIGHT): New.
9407 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9408 (CURRENT_TOP_LINE_HEIGHT): New.
9409 (DESIRED_TOP_LINE_HEIGHT): New.
9410 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9411 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9412 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9413 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9414
9415 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9416 lines.
9417 (x_draw_row_bitmaps): Take top line into account when clearing
9418 bitmap area.
9419 (x_estimate_mode_line_height): Replacement for
9420 x_frame_mode_line_height.
9421 (x_get_glyph_string_clip_rect): Take top line into account.
9422 (x_clear_end_of_line): Ditto.
9423 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9424 top lines.
9425 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9426 (x_erase_phys_cursor): Take top line into account.
9427
9428 * xdisp.c (window_box_height): Subtract top line height if
9429 window wants a top line.
9430 (display_mode_lines): New.
9431 (redisplay_window): Call it.
9432 (display_mode_line): Add parameters face_id and format.
9433
9434 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9435 (MATRIX_TOP_LINE_HEIGHT): New.
9436
9437 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9438
9439 * term.c (estimate_mode_line_height): Renamed from
9440 frame_mode_line_height. Add parameter face_id.
9441 (estimate_mode_line_height_hook): Renamed from
9442 frame_mode_line_height_hook.
9443 (produce_special_glyphs_hook): Removed.
9444 (produce_glyphs_hook): Removed.
9445
94461999-06-23 Gerd Moellmann <gerd@gnu.org>
9447
9448 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9449 (struct glyph_row): Add mode_line_p.
9450
9451 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9452 (Qtop_line): New.
9453 (syms_of_xfaces): Initialize Qtop_line.
9454
9455 * dispextern.h (TOP_LINE_FACE_ID): New.
9456
9457 * buffer.c (init_buffer_once): Set default for
9458 top_line_format to nil.
9459 (init_buffer_once): Init top_line_format.
9460 (default-top-line-format): New.
9461 (top-line-format): New buffer-local variable.
9462
9463 * buffer.h: Add top_line_format.
9464
9465 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9466
94671999-06-17 Dave Love <fx@gnu.org>
9468
9469 * xfns.c: Move the PNG section before the JPEG one to avoid
9470 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9471
26901792
DL
94721999-06-17 Gerd Moellmann <gerd@gnu.org>
9473
9474 * xfns.c (x_kill_gs_process): Don't free colors.
9475
94761999-06-17 Dave Love <fx@gnu.org>
9477
9478 * s/gnu-linux.h: Zap spurious ~.
9479
94801999-06-16 Gerd Moellmann <gerd@gnu.org>
9481
9482 * xfns.c (gif_load): Improve multi-image support.
9483
94841999-06-15 Gerd Moellmann <gerd@gnu.org>
9485
9486 * xfns.c (gif_load): Support multi-image files.
9487
9488 * Makefile.in (LIBGIF): Use libungif.
9489
9490 * configure.in (HAVE_GIF): Use libungif instead of libgif
9491 because the former doesn't contain patented compression code.
9492
9493 * xdisp.c (compute_window_start_on_continuation_line): Don't
9494 do it if line start is too far away from window start.
9495
94961999-06-14 Gerd Moellmann <gerd@gnu.org>
9497
9498 * buffer.c (init_buffer_once): Set buffer_local_flags for
9499 scroll_*_aggressively.
9500 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9501 (init_buffer_once): Set defaults for these variables.
9502 (syms_of_buffer): Add default-scroll-*-aggressively.
9503
9504 * buffer.h (scroll_up_aggressively): New.
9505 (scroll_down_aggressively): New.
9506
9507 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9508 a static PNG library.
9509
9510 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9511 in case it's a static library.
9512
9513 * Makefile.in (ctagsfiles): Split so that files starting
9514 with an `x' are found before files starting with `w32'.
9515 (ctagsfiles1): New.
9516 (ctagsfiles2): New.
9517 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9518
9519 * xdisp.c (compute_window_start_on_continuation_line): New.
9520 (redisplay_window): Use it.
9521 (INFINITY): New.
9522 (reseat_to_string): Use it.
9523 (hscroll_window_tree): Ditto.
9524 (compute_window_start_on_continuation_line): Ditto.
9525 (redisplay_window): Don't force display with a new window start.
9526
95271999-06-06 Gerd Moellmann <gerd@gnu.org>
9528
9529 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9530 if widget not present.
9531
9532 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9533
95341999-06-04 Gerd Moellmann <gerd@gnu.org>
9535
9536 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9537 value of realize_basic_faces.
9538 (load_face_font_or_fontset): Store full font name in face.
9539 (realize_default_face): Use full font name.
9540
26901792
DL
9541 * xterm.c (x_produce_glyphs): Set member char_to_display.
9542 (x_append_glyph): Store char_to_display in glyphs.
9543
9544 * dispextern.h (struct it): Add char_to_display.
9545
9546 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9547 if faces haven't been initialized.
9548 (Fx_create_frame): Call face-set-after-frame-default after
9549 faces have been initialized, and widget has been created.
9550
9551 * puresize.h (BASE_PURESIZE): Increased.
9552
95531999-06-01 Gerd Moellmann <gerd@gnu.org>
9554
9555 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9556 (Finternal_set_lisp_face_attribute): If frame is t when
9557 :font attribute is set, use the selected frame.
9558 (clear_face_cache): Add parameter clear_fonts_p.
9559 (Fclear_face_cache): Add optional parameter thorougly.
9560
9561 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9562 in table.
9563 (Fclear_face_cache): New.
9564 (choose_face_fontset_font): If fontset doesn't contain font
9565 pattern for the given charset, use CHARSET_ASCII.
9566 (Finternal_set_lisp_face_attribute): Fix handling of nil
9567 stipple attribute.
9568 (Finternal_set_lisp_face_attribute): Fix handling of changing
9569 font-related face attributes of the default face.
9570 (set_lface_from_font_name): Set only attributes that aren't
9571 specified.
9572
95731999-05-31 Gerd Moellmann <gerd@gnu.org>
9574
9575 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9576 font support.
9577 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9578 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9579 scalable fonts depending on the setting of SCALABLE_FONTS.
9580 (first_font_matching): List more than one font to find the
9581 first non-scalable matching font.
9582 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9583 depending on SCALABLE_FONTS.
9584 (better_font_p): New parameter compare_pt_p. If zero, don't
9585 compare point sizes of fonts.
9586 (exact_face_match_p) [SCALABLE_FONTS]: New.
9587 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9588 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9589 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9590 (syms_of_xfaces): Add scalable-fonts-allowed.
9591
95921999-05-26 Gerd Moellmann <gerd@gnu.org>
9593
9594 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9595 mask only if image contains simple transparency information.
9596 Otherwise, combine image with frame background color.
9597
9598 * configure.in (--with-png, HAVE_PNG): New.
9599
9600 * config.in (HAVE_PNG): New.
9601
9602 * Makefile.in: Add PNG library.
9603
9604 * xfns.c: Add PNG support.
9605
96061999-05-25 Gerd Moellmann <gerd@gnu.org>
9607
9608 * xdisp.c (init_xdisp): Initialize echo_area_message and
9609 previous_echo_area_message to nil.
9610
9611 * keyboard.c (read_char): Rename local variable echo_area_message
9612 because it shadows the global one.
9613
96141999-05-05 Gerd Moellmann <gerd@gnu.org>
9615
9616 * xterm.c (note_mode_line_highlight): Restructured.
9617
9618 * window.c (coordinates_in_window): Handle windows that don't have
9619 a mode line because their buffer's mode-line-format is nil.
9620 Recognize the mode line under x positions that correspond to
9621 flags areas and left scroll bar.
9622
96231999-05-02 Dave Love <fx@gnu.org>
9624
9625 * xterm.c (note_mouse_highlight): Separate help-echo processing
9626 from check on mouse-face so that it works generally.
9627
96281999-04-21 Gerd Moellmann <gerd@gnu.org>
9629
9630 * sound.c (Fplay_sound): Run hook play-sound-hook.
9631 (Qplay_sound_hook): New.
9632
96331999-04-20 Gerd Moellmann <gerd@gnu.org>
9634
9635 * xdisp.c (update_echo_area): Handle echo_area_message.
9636
96371999-04-19 Gerd Moellmann <gerd@gnu.org>
9638
9639 * editfns.c (Fmessage): Use message3.
9640
9641 * print.c (printchar): Set echo_area_message to nil.
9642 (strout): Ditto.
9643
9644 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9645 (Fminibuffer_completion_help): Ditto.
9646
9647 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9648 (command_loop_1): Test echo_areA_message.
9649 (read_char): Ditto.
9650 (record_menu_key): Set echo_area_message to nil.
9651 (Fexecute_extended_command): Test echo_area_message.
9652 (Fexecute_extended_command): Handle echo_area_message.
9653
9654 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9655 is set.
9656
9657 * editfns.c (Fcurrent_message): If echo_area_message is set,
9658 return a substring of that string.
9659
9660 * dispnew.c (direct_output_for_insert): Test echo_area_message
9661 in addition to echo_area_glyphs.
9662 (set_window_cursor_after_update): Ditto.
9663 (update_frame_1): Ditto.
9664
9665 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9666 old Lisp message string.
9667
9668 * xdisp.c (echo_area_message): New.
9669 (previous_echo_area_message): New.
9670 (syms_of_xdisp): Initialize and staticpro new variables.
9671 (echo_area_display): Display echo_area_message if set.
9672 (message2_nolog): Set echo_area_message and
9673 previous_echo_area_message.
9674 (echo_area_display): Set previous_echo_area_message.
9675 (redisplay_internal): Display echo area if echo_area_message
9676 or previous_echo_area_message are set.
9677 (redisplay_preserve_echo_area): Test/set echo_area_message and
9678 previous_echo_area_message.
9679 (redisplay_window): Test echo_area_message.
9680 (message3_nolog): New.
9681 (message3): New.
9682
9683 * editfns.c (Fformat): Add text properties to the result string
9684 from properties of the format string and properties of string
9685 arguments.
9686
9687 * textprop.c (text_property_list): New.
9688 (add_text_properties_from_list): New.
9689 (extend_property_ranges): New.
9690
96911999-03-29 Gerd Moellmann <gerd@gnu.org>
9692
9693 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9694 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9695 Use these symbols for the box face attribute instead of the
9696 removed ones.
9697
96981999-03-12 Gerd Moellmann <gerd@gnu.org>
9699
9700 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9701 Correct wrong test for slant.
9702
97031999-03-10 Gerd Moellmann <gerd@gnu.org>
9704
9705 * xfaces.c: Use `unspecified' for unspecified face attributes,
9706 use t and nil for on/off.
9707
97081999-03-06 Gerd Moellmann <gerd@gnu.org>
9709
9710 * buffer.c (syms_of_buffer): Extend doc string of
9711 mode-line-format.
9712
9713 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9714 (first_font_matching): New.
9715 (set_lface_from_font_name): Use it if font name is a pattern.
9716 (font_field_wildcard_p): Removed.
9717
9718 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9719 Recompute visible height of rows.
9720
9721 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9722 Don't accept non-strings for help-echo from overlays.
9723
97241999-03-04 Dave Love <fx@gnu.org>
9725
9726 * xterm.c (note_mouse_highlight): Check overlays for help-text
9727 property.
9728 (XTread_socket): Fix compiler warning.
427ec082 9729
26901792
DL
97301999-03-05 Gerd Moellmann <gerd@gnu.org>
9731
427ec082 9732 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9733 overlay to 10. Call overlays_at so that it doesn't try to
9734 extend the vector.
9735
9736 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9737 height.
9738
9739 * dispnew.c (row_equal_p): Compare visible row height, only.
9740 (update_text_area): Draw whole line if visible heights of
9741 rows differ.
9742 (update_window_line): Call after_update_window_line_hook
9743 if visible row height has changed.
9744
9745 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9746 (struct glyph_row): New member visible_height.
9747
9748 * xfaces.c (font_field_wildcard_p): New.
9749 (set_lface_from_font_name): Remove parameter force_p. Accept
9750 font names containing wildcards.
9751
97521999-03-04 Gerd Moellmann <gerd@gnu.org>
9753
9754 * xterm.c (x_after_update_window_line): Clear internal border
9755 when windows_or_buffers_changed.
9756
9757 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9758 buffer has a nil mode_line_format.
9759
97601999-03-03 Gerd Moellmann <gerd@gnu.org>
9761
9762 * xterm.c (x_setup_relief_colors): Use either background color
9763 or specified color.
9764
9765 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9766
9767 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9768
9769 * xterm.c (x_draw_box_rect): New.
9770 (x_draw_glyph_string_box): Renamed from
9771 x_draw_glyph_string_relief. Call x_draw_box_rect.
9772
9773 * xfns.c (QCrelief): New.
9774 (syms_of_xfns): Initialize it.
9775
9776 * dispextern.h (struct glyph): Rename left_shadow_p to
9777 left_box_line_p, right_shadow_p to right_box_line_p.
9778 (MAX_RELIEF_THICKNESS): Removed.
9779 (struct it): Rename members having `relief' in their names
9780 to contain `box' instead.
9781
9782 * xfaces.c (realize_x_face): Handle new box attribute values.
9783 (QCrelief, Qbox): Removed.
9784 (QCshadow, QCcolor, Qraised, Qsunken): New.
9785 (syms_of_xfaces): Initialize new symbols.
9786
97871999-03-02 Gerd Moellmann <gerd@gnu.org>
9788
9789 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9790
9791 * xfaces.c (LFACE_RELIEF): Removed.
9792 (merge_face_vector_with_property): Remove handling of `:relief'.
9793 (Finternal_set_lisp_face_attribute): Ditto.
9794 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9795 (Finternal_get_lisp_face_attribute): Ditto.
9796 (realize_default_face): Ditto.
9797 (lface_hash): Don't compute hash from relief.
9798
9799 * dispextern.h (struct face): Replace member `relief' by
9800 `box_line_width'. Add member `box'.
9801 (face_box_type): New.
9802
9803 * xterm.c (x_produce_glyphs): If face has overline, add overline
9804 thickness + 1 to ascent.
9805
98061999-03-01 Gerd Moellmann <gerd@gnu.org>
9807
9808 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9809 strike-through, and boxes.
9810 (x_draw_glyph_string_underline): Removed.
9811
9812 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9813 (Qoverline, Qstrike_through, Qbox): New.
9814 (syms_of_xfaces): Define these symbols.
9815 (check_lface_attrs): Add checks for overline, strike-through,
9816 and box.
9817 (Finternal_set_lisp_face_attribute): Set new attributes.
9818 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9819 (load_color): Handle new attributes.
9820 (realize_x_face): Ditto.
9821 (merge_face_vector_with_property): Ditto.
9822 (free_face_colors): Ditto.
9823 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9824 (Finternal_get_lisp_face_attribute): Ditto.
9825 (Finternal_lisp_face_attribute_values): Ditto.
9826
9827 * dispextern.h (lface_attribute_index): Add enumerators for
9828 overstrike, strike-through, and box.
9829 (struct face): Add members for overline, strike-through, and
9830 box.
9831
98321999-02-17 Dave Love <fx@gnu.org>
9833
9834 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9835 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9836 files.
9837
98381999-02-16 Gerd Moellmann <gerd@gnu.org>
9839
9840 * keyboard.c (toolbar_items): Call access_keymap with third
9841 parameter 1, so that we don't get inherited toolbar item
9842 definitions.
9843
9844 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9845 the window end vpos when in empty first line of window.
9846
98471999-02-15 Gerd Moellmann <gerd@gnu.org>
9848
9849 * xfaces.c (set_font_frame_param): New.
9850 (Finternal_set_lisp_face_attribute): Call it.
9851
9852Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9853
9854 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9855 Accept specifications of color for underline.
9856
98571999-02-13 Gerd Moellmann <gerd@gnu.org>
9858
9859 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9860 `frame' is t, operate on face defaults for new frames. If it
9861 is nil, operate on the selected frame.
9862
98631999-02-12 Gerd Moellmann <gerd@gnu.org>
9864
9865 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9866 (update_window): Put the call to check_matrix_invariants in #if 0.
9867
9868Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9869
9870 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9871 Remove definition of UNDERLINE_COLOR.
9872
9873Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9874
9875 * xfaces.c (free_face_colors): Free the color for underline.
9876
9877 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9878 to the GC.
9879
9880Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9881
9882 * dispextern.h (UNDERLINE_COLOR): Defined.
9883 (struct face): Added two new members.
9884 underline_color, underline_defaulted_p.
9885
427ec082 9886 * xfaces.c (merge_face_vector_with_property):
26901792 9887 (check_lface_attrs): Accept the string value for underline.
427ec082 9888 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9889
9890 * xfaces.c (load_color): Change the last argument type to enum
9891 lface_attribute_index from int. And addec code for underling coloring.
9892 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9893
26901792
DL
98941999-02-12 Gerd Moellmann <gerd@gnu.org>
9895
9896 * xfns.c (Fx_image_header): Removed.
9897
98981999-02-07 Gerd Moellmann <gerd@gnu.org>
9899
9900 * xterm.c: Don't include <bitmaps/gray>.
9901 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9902
9903 * xfns.c (Fx_image_header): Add missing `\n\'.
9904 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9905
99061999-02-01 Gerd Moellmann <gerd@gnu.org>
9907
9908 * xterm.c (x_scroll_bar_create): Set background pixel from
9909 specified scroll bar color.
9910 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9911
9912 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9913 (x_set_scroll_bar_background): Ditto.
9914
9915 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9916
9917 * xfns.c (x_default_scroll_bar_color_parameter): New.
9918 (Fx_create_frame): Call it.
9919
99201999-01-31 Gerd Moellmann <gerd@gnu.org>
9921
9922 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9923 values in x_output structure.
26901792
DL
9924 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9925 (syms_of_xfns): Initialize these symbols.
9926
9927 * xterm.h (struct x_output): Add scroll bar pixel colors.
9928
9929 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9930 (x_set_scroll_bar_foreground): New.
9931 (x_set_scroll_bar_background): New.
9932
26901792
DL
99331999-01-12 Gerd Moellmann <gerd@gnu.org>
9934
9935 * xdisp.c (handle_single_display_prop): New.
9936 (handle_display_prop): Call it.
9937 (handle_raise_prop): Removed.
9938 (handle_height_prop): Removed.
9939 (handle_space_width_prop): Removed.
9940 (handle_face_prop): Remove handling of raised text.
9941 (handle_display_prop): Do it here.
9942
9943 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9944 (RAISE_PROP_IDX): Removed.
9945 (HEIGHT_PROP_IDX): Removed.
9946 (SPACE_WIDTH_PROP_IDX): Removed.
9947
9948 * xdisp.c (Qdisplay): Replaces Qglyph.
9949 (handle_display_prop): Formerly handle_glyph_prop.
9950
99511999-01-11 Gerd Moellmann <gerd@gnu.org>
9952
9953 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9954 (handle_stop): Set position in display vector to -1. Don't
9955 check overlay strings when set up to deliver characters from a
9956 display vector.
9957 (set_iterator_to_next): At the end of a run of characters from a
9958 display vector, check whether the display vector display replaces
9959 the display of a character.
9960
99611999-01-05 Gerd Moellmann <gerd@gnu.org>
9962
9963 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9964 X window hasn't been created yet.
9965
99661998-12-06 Gerd Moellmann <gerd@gnu.org>
9967
9968 * sound.c: New.
9969
99701998-12-04 Gerd Moellmann <gerd@gnu.org>
9971
9972 * config.in (HAVE_SOUND): New.
9973
9974 * emacs.c (main): Call syms_of_sound and init_sound.
9975
9976 * Makefile.in (obj): Add sound.o.
9977
9978 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9979
9980 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9981 (HAVE_SYS_SOUNDCARD_H): New.
9982
99831998-12-03 Gerd Moellmann <gerd@gnu.org>
9984
9985 * buffer.h (struct buffer): indicate_empty_lines renamed from
9986 indicate_zv_lines.
9987
9988 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9989 (default-indicate-zv-lines): Likewise.
9990
9991 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9992 to indicate_empty_line_p.
9993
9994 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9995 to next_element_from_buffer.
9996
9997 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9998
9999 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
10000 and `N-'.
10001
10002 * xfns.c (xbm_scan): New.
10003 (xbm_read_hexint): Removed.
10004 (xbm_read_bitmap_file_data): Use xbm_scan.
10005
10006 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
10007
100081998-12-02 Gerd Moellmann <gerd@gnu.org>
10009
10010 * xfns.c (xbm_read_hexint): New.
10011 (xbm_read_bitmap_file_data): New.
10012 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10013 instead of XReadBitmapFileData.
10014
10015 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10016
10017 * xfaces.c (face_with_height): New.
10018
10019 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10020 (eval_form): Renamed from eval_mode_element.
10021 (handle_face_prop): Use it.
10022 (Qheight): Replaces Qsmaller.
10023 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 10024 (handle_face_prop): If iterator's font_height is not an
26901792
DL
10025 integer, evaluate it to get the font height to use.
10026
10027 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10028 (struct it): Use `font_height' instead of `smaller'.
10029
100301998-12-01 Gerd Moellmann <gerd@gnu.org>
10031
10032 * xdisp.c (reseat_1): New.
10033 (reseat): Call it.
10034 (move_it_vertically_backward): Ditto.
10035 (redisplay_window): Don't abort when cursor not found in recenter.
10036
100371998-11-30 Gerd Moellmann <gerd@gnu.org>
10038
10039 * xdisp.c (reseat_at_next_visible_line_start): When not
10040 currently delivering display elements from the current buffer,
10041 restore buffer position first.
10042 (init_from_display_pos): Don't set IT's position from the
10043 position passed to this function.
10044
100451998-11-28 Gerd Moellmann <gerd@gnu.org>
10046
10047 * config.in (PROTO): Removed.
10048
10049 * xterm.h: Change PROTO to P_.
10050
100511998-11-26 Gerd Moellmann <gerd@gnu.org>
10052
10053 * xterm.c (take_vertical_position_into_account): New.
10054 (x_produce_image_glyph): Call it.
10055 (x_produce_stretch_glyph): Ditto.
10056 (x_produce_glyphs): Ditto.
10057 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10058 (x_fill_composite_glyph_string): Ditto.
10059 (x_fill_image_glyph_string): Ditto.
10060 (x_fill_stretch_glyph_string): Ditto.
10061
10062 * xdisp.c (display_line): Always compute row height from
10063 max_ascent and max_descent.
10064
10065 * dispextern.h (struct glyph): Add voffset.
10066 (struct it): Replace height by descent, max_height by max_descent.
10067
10068 * xterm.c (x_append_glyph): Set voffset
10069 (x_append_stretch_glyph): Ditto.
10070 (x_produce_image_glyph): Ditto.
10071 (x_produce_glyphs): Take voffset into account.
10072 (x_produce_image_glyph): Ditto.
10073 (x_produce_stretch_glyph): Ditto.
10074
10075 * dispextern.h (struct it): Add voffset.
10076 * xdisp.c (push_it): Save voffset.
10077 (pop_it): Restore it.
10078
10079 * xdisp.c (it_props): Add entry for `raise'.
10080 (handle_raise_prop): New.
10081
10082 * dispextern.h (RAISE_PROP_IDX): New.
10083
10084 * xdisp.c (Qraise): New.
10085 (syms_of_xdisp): Define Qraised.
10086
10087 * xterm.c (x_scroll_bar_move): Clear to the left and right
10088 of toolkit scroll bars differently.
10089 (x_scroll_bar_move): Removed.
10090 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10091
10092 * dispextern.h: Make it compilable --with-x=no.
10093 * alloc.c: Ditto.
10094 * emacs.c: Ditto.
10095 * dispnew.c: Ditto.
10096 * keyboard.c: Ditto.
10097 * term.c: Ditto.
10098 * xdisp.c: Ditto.
10099 * xfaces.c: Ditto.
10100 * xfns.c: Ditto.
10101 * xmenu.c: Ditto.
10102
101031998-11-25 Gerd Moellmann <gerd@gnu.org>
10104
10105 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10106
101071998-11-24 Gerd Moellmann <gerd@gnu.org>
10108
10109 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10110 update slider size, only.
10111 (xm_scroll_callback): Set dragging member of the scroll bar.
10112 (xt_action_hook): Reset last_scroll_bar_part.
10113 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10114
26901792
DL
10115 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10116 window on newly created frames that don't have one.
10117
101181998-11-23 Gerd Moellmann <gerd@gnu.org>
10119
10120 * xdisp.c (restore_overlay_strings): Removed.
10121 (restore_dpvec): Removed.
10122 (init_from_display_pos): Inline both functions above.
10123
10124 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10125 (parse_image_spec): Handle it.
10126 (xbm_format): Use it.
10127 (xpm_format): Ditto.
10128 (pbm_format): Ditto.
10129 (jpeg_format): Ditto.
10130 (tiff_format): Ditto.
10131 (gif_format): Ditto.
10132 (gs_format): Ditto.
10133
10134 * xdisp.c (set_window_cursor): Removed.
10135 (redisplay_internal): Case cursor motion in cursor line of
10136 selected window; use set_cursor_from_row.
10137
101381998-11-22 Gerd Moellmann <gerd@gnu.org>
10139
10140 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10141 into account.
10142
101431998-11-21 Gerd Moellmann <gerd@gnu.org>
10144
10145 * xterm.c (expose_frame): Redraw menu bar window.
10146
10147 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10148 in menu item.
10149
10150 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10151 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10152
10153 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10154 to determine vertical_scroll_bar_extra.
10155 (EmacsFrameSetCharSize): Ditto.
10156 * xfns.c (x_figure_window_size): Ditto.
10157
10158 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10159 (x_draw_bitmap): Ditto.
10160
10161 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10162 * xfaces.c (realize_basic_faces): Realize it.
10163
101641998-11-20 Gerd Moellmann <gerd@gnu.org>
10165
10166 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10167 under LessTif Use the widget of the frame as parent for the
26901792
DL
10168 menu, again.
10169
101701998-11-19 Gerd Moellmann <gerd@gnu.org>
10171
10172 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10173 When EnterNotify, don't generate a mouse movement event if
10174 notification is from a busy-cursor child window.
10175
10176 * xterm.h (struct x_output): Add busy_window, remove cursor.
10177
10178 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10179 Use a transparent window to display the busy-cursor.
10180 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10181
101821998-11-17 Gerd Moellmann <gerd@gnu.org>
10183
10184 * xdisp.c (check_window_end): New, for debugging.
10185 (CHECK_WINDOW_END): New.
10186 (try_window_id): Use it.
10187
10188 * xterm.c (process_expose_from_menu): Return int.
10189
10190 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10191 TOOLBAR_EVENT events in last_nonmenu_event.
10192
101931998-11-16 Gerd Moellmann <gerd@gnu.org>
10194
10195 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10196 window end isn't reliable, so set window_end_valid to nil.
10197 (redisplay_internal): If overlay arrow has changed, set
10198 windows_or_buffers_changed to redisplay thoroughly.
10199
10200 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10201 necessary.
10202
10203 * xfns.c (file_dialog_cb): New.
10204 (Fx_file_dialog): New.
10205 * fileio.c (Fread_file_name): Call it.
10206
427ec082 10207 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10208 selection dialog.
10209
102101998-11-14 Gerd Moellmann <gerd@gnu.org>
10211
10212 * xterm.c (note_mouse_highlight): Don't highlight when popup
10213 is active.
10214
26901792
DL
10215 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10216 timer-event-handler. This busy cursor tends to be anoying if
10217 fontifying stealthily.
10218
10219 * dispnew.c (direct_output_for_insert): Give up if current row
10220 contains trailing whitespace.
10221
102221998-11-13 Gerd Moellmann <gerd@gnu.org>
10223
10224 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10225
10226 * xdisp.c (handle_fontified_prop): New.
10227 (Vfontification_functions): New.
10228 (Qfontification_functions): New.
10229 (it_props): Add handle_fontified_prop.
10230
102311998-11-12 Gerd Moellmann <gerd@gnu.org>
10232
10233 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10234 Otherwise, under LessTif, after the popup has gone, all button
10235 press events come in for the frame's widget, and release events
10236 come in for the edit_widget.
10237 * xterm.c (XTread_socket): Remove workaround for that problem.
10238 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10239 XmScrollBarSetValues.
10240 (SET_SAVED_MENU_EVENT): Give it statement form.
10241
26901792
DL
10242 * xfaces.c (display_message): If waiting_for_input, don't display
10243 the message.
10244
10245 * window.c (scroll_command): If not acting on current_buffer,
10246 make redisplay consider all windows.
10247
10248 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10249
10250 * xdisp.c (handle_glyph_prop): Set it->object for images to
10251 the object having the glyph property.
10252
10253 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10254 invisible.
10255
102561998-11-11 Gerd Moellmann <gerd@gnu.org>
10257
10258 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10259 (x_term_init): Create the gray pixmap.
10260 (x_setup_relief_color): Use it.
10261 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10262 internal border at the top of a frame.
10263 (x_init_glyph_string): Likewise.
427ec082 10264 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10265 full-width lines.
10266 (XTflash): Don't flash the toolbar window.
10267
10268 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10269 in case of ButtonPress events.
10270
102711998-11-10 Gerd Moellmann <gerd@gnu.org>
10272
10273 * xrdb.c (x_load_resources): Add grey background colors as
10274 defaults for menus, scroll bars, and dialogs.
10275
10276 * insdel.c (prepare_to_modify_buffer): Move setting
10277 windows_or_buffers_changed from modify_region here.
10278
10279 * xfns.c (Fx_show_tip): Inhibit redisplay.
10280 (Fx_hide_tip): Ditto.
10281 (Fx_image_header): New.
10282
102831998-11-09 Gerd Moellmann <gerd@gnu.org>
10284
10285 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10286 when clearing current window matrices.
10287
102881998-11-08 Gerd Moellmann <gerd@gnu.org>
10289
10290 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10291 position from a string position. Use the right end position
10292 if the property spans a whole overlay string.
10293
102941998-11-07 Gerd Moellmann <gerd@gnu.org>
10295
10296 * xmenu.c (menubar_selection_callback): Remove workaround for
10297 Lesstif not calling XmNpopdownCallback because it doesn't
10298 handle the case where users don't select any menu item.
10299
26901792
DL
10300 * insdel.c (modify_region): Set windows_or_buffers_changed.
10301
10302 * buffer.c (set_buffer_internal): Don't set
10303 windows_or_buffers_changed.
10304
26901792
DL
10305 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10306
26901792
DL
10307 * xmenu.c (menubar_selection_callback): Add workaround for
10308 Lesstif not calling XmNpopdownCallback.
10309
10310 * xdisp.c (eval_mode_element): New.
10311 (eval_mode_handler): New.
10312 (display_mode_element): Use eval_mode_element.
10313
10314 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10315 Remove code looking at text props of default value.
10316
10317 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10318
26901792
DL
103191998-11-06 Gerd Moellmann <gerd@gnu.org>
10320
427ec082 10321 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10322 BUTTON_TYPE_NONE.
10323 (single_submenu): Likewise for panes and menu items.
10324 (set_frame_menubar): Set button_type of menu bar to none.
10325 (xmenu_show): Likewise.
10326 (single_submenu): Set widget values selected slot.
10327 (xmenu_show): Likewise.
10328
26901792
DL
10329 * xmenu.c (push_menu_item): Add parameters `type' and
10330 `selected'. Store it in menu_items.
10331 (MENU_ITEMS_ITEM_TYPE): New.
10332 (MENU_ITEMS_ITEM_SELECTED): New.
10333 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10334
10335 * xfns.c (clear_image_cache): Get the current time, before
10336 doing anything.
10337 (cache_image): Set prev pointer of next image.
10338 (clear_image_cache): Clear current matrices if any image was
10339 freed.
10340
10341 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10342
10343 * xfns.c (x_set_cursor): New.
10344 (Fx_display_busy_cursor): New.
10345 (Fx_undisplay_busy_cursor): New.
10346
10347 * xterm.h (struct x_output): Add busy_cursor.
10348
10349 * xfns.c (Vx_busy_pointer_shape): New.
10350 (x_set_mouse_color): Create busy cursor.
10351
10352 * process.c (wait_reading_process_input): Show and hide busy
10353 cursor.
10354
10355 * keyboard.c (command_loop_1): Display busy cursor.
10356
10357 * eval.c (Fsignal): Hide busy cursor.
10358
10359 * buffer.c (set_buffer_internal): Don't set
10360 windows_or_buffers_changed.
10361
10362 * xterm.c (redo_mouse_highlight): New.
10363
103641998-11-04 Gerd Moellmann <gerd@gnu.org>
10365
26901792
DL
10366 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10367 (x_build_heuritic_mask): New.
10368 (lookup_image): Call it.
10369
10370 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10371 (previous_help_echo): New.
10372 (XTread_socket): Generate help event with nil message when
10373 leaving a region with help-echo.
10374 (note_mouse_highlight): Handle `help-echo' over text.
10375 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10376 CirculateRequest.
10377 (clear_mouse_face): Don't clear if tooltip is shown.
10378 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10379 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10380
10381 * keyboard.c (Vshow_help_function): New.
10382 (read_char): Use it.
10383
103841998-11-03 Gerd Moellmann <gerd@gnu.org>
10385
10386 * xfns.c (x_create_tip_frame): New.
10387 (Fx_show_tip): New.
10388 (Fx_hide_tip): New.
10389
427ec082 10390 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10391 a widget.
10392
10393 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10394 to full_width_p. Add internal_border_p.
10395
103961998-11-02 Gerd Moellmann <gerd@gnu.org>
10397
10398 * xterm.c (note_mode_line_highlight): Check the charpos of
10399 the glyph under the mouse pointer before accessing text
10400 properties at that position.
10401
104021998-11-01 Gerd Moellmann <gerd@gnu.org>
10403
10404 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10405
10406 * xdisp.c (auto-raise-toolbar-buttons): New.
10407 (build_desired_toolbar_string): Handle the flag.
10408 (toolbar-button-margin): New.
10409 (toolbar-button-relief): New.
10410 (build_desired_toolbar_string): Use margin and relief.
10411
10412 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10413 for FreeBSD.
10414 (note_mode_line_highlight): New.
10415 (note_mouse_highlight): Call it.
10416
104171998-10-31 Gerd Moellmann <gerd@gnu.org>
10418
10419 * s/freebsd.h (NARROWPROTO): New.
10420
10421 * xdisp.c (display_string): New parameter face_string.
10422 (display_mode_element): When displaying a symbol with a string
10423 value, use text properties from the symbol's default value, maybe.
10424
10425 * xrdb.c (x_load_resources): Add font defaults for menus and
10426 dialogs.
10427
104281998-10-30 Gerd Moellmann <gerd@gnu.org>
10429
10430 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10431
104321998-10-29 Gerd Moellmann <gerd@gnu.org>
10433
10434 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10435 produced for characters with codes < 32 under certain
10436 circumstances.
10437
10438 * xdisp.c (redisplay_window): Handle values of PT in front
10439 of invisible, intangible text.
427ec082 10440 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10441 displaying lines.
10442 (display_mode_element): Assign to glyphs written for a mode
10443 line spec `%x' as object the Lisp format string, as position
10444 the position of the `%' in that string.
10445 (display_string): If displaying a C string, optionally get
10446 the face to use from a Lisp string.
10447
10448 * xterm.c (expose_window_tree): Include mode line height.
10449
10450 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10451
104521998-10-27 Gerd Moellmann <gerd@gnu.org>
10453
10454 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10455 over mode line.
10456
104571998-10-26 Gerd Moellmann <gerd@gnu.org>
10458
10459 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10460
10461 * xdisp.c (redisplay_window): If mode line height has changed,
10462 arrange for a thorough immediate redisplay using the correct mode
10463 line height.
10464 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10465
10466 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10467 (CURRENT_MODE_LINE_HEIGHT): New.
10468 (DESIRED_MODE_LINE_HEIGHT): New.
10469
10470 * keyboard.c (make_lispy_event): Add string and string position
10471 info to mouse-click events.
10472 (read_key_sequence): Handle `local-map' property of mode line
10473 strings.
10474
10475 * keyboard.h (POSN_STRING): New.
10476
104771998-10-25 Gerd Moellmann <gerd@gnu.org>
10478
10479 * dispnew.c (mode_line_string): Mew.
10480
10481 * xterm.c (xt_action_hook): New.
10482 (x_create_toolkit_scroll_bar): Add action hook.
10483 (xm_scroll_callback): Implement dragging.
10484
10485 * keyboard.c (Qend_scroll): New.
10486 (scroll_bar_parts): Add it.
10487
10488 * termhooks.h (scroll_bar_end_scroll): New.
10489
10490 * xterm.c (XTread_socket): Bug fix.
10491
104921998-10-24 Gerd Moellmann <gerd@gnu.org>
10493
10494 * xdisp.c (redisplay_window): Finish scroll bars after
10495 redisplaying toolbar.
10496
10497 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10498 (syms_of_keyboard): Add Qbottom.
10499
10500 * termhooks.h (scroll_bar_to_top): New.
10501 (scroll_bar_to_bottom): New.
10502
10503 * xdisp.c (redisplay_window): Always resize toolbar window if
10504 auto_resize_toolbar_p is non-zero.
10505 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10506 (window_box): New.
10507 (window_box_height): New.
10508 (window_box_width): New.
10509 (window_box_left): New.
10510 (window_box_right): New.
10511 (window_box_edges): New.
10512
105131998-10-23 Gerd Moellmann <gerd@gnu.org>
10514
10515 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10516 XawScrollbarSetThumb in FreeBSD.
10517 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10518 to true.
10519
10520 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10521 is out of range.
10522
10523 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10524 (x_term_init): Initialize it.
10525
10526 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10527
10528 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10529 cursor.
10530
105311998-10-22 Gerd Moellmann <gerd@gnu.org>
10532
10533 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10534 differently when using toolkit scroll bars.
10535
10536 * xterm.c (x_send_scroll_bar_event): New.
10537 (x_scroll_bar_to_input_event): New.
10538 (xaw3d_scroll_callback): New.
10539 (xaw3d_jump_callback): New.
10540 (xm_scroll_callback): New.
10541 (x_toolkit_scroll_p): New.
10542 (XTread_socket): Handle scroll bar client message.
10543 (x_term_init): Initialize Xatom_Scrollbar.
10544 (x_scroll_bar_create): Set cursor.
10545 (xm_scroll_callback):
10546 (x_create_toolkit_scroll_bar): New.
10547 (x_set_toolkit_scroll_bar_thumb): New.
10548 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10549 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10550
10551 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10552
105531998-10-21 Gerd Moellmann <gerd@gnu.org>
10554
10555 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10556 (XTread_socket): Don't handle mouse button events for scroll bars
10557 if using toolkit scroll bars.
10558 (XTset_vertical_scroll_bar): Set thumb size and position for
10559 Athena scroll bar.
10560
10561 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10562
10563 * xterm.c (XTread_socket): Dispatch expose event to widget
10564 if using toolkit scroll bars.
10565 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10566 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10567 if using toolkit scroll bars.
10568 (x_scroll_bar_move): Handle tookit scroll bars.
10569
10570 * Makefile.in (LIBW): Use Xaw3d if present.
10571
10572 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10573 (HAVE_XAW3D): New.
427ec082 10574
26901792
DL
10575 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10576 (HAVE_XAW3D): New.
10577
427ec082 10578 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10579 right vertical scroll bar.
10580
105811998-10-20 Gerd Moellmann <gerd@gnu.org>
10582
10583 * xfns.c (xpm_load): Support reading XPM images from string
10584 buffers containing data in the same format as an XPM file.
10585 Support `:color-symbols'.
10586 (xpm_format): Add `:data'.
10587 (xpm_keyword_index): Add XPM_DATA.
10588 (syms_of_xfns): Add `:color-symbols'.
10589 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10590 (xpm_valid_color_symbols_p): New.
10591 (xpm_image_p): Call it.
10592
10593 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10594 attribute to the image if item is not enabled.
10595
10596 * xfns.c (x_laplace): New.
10597 (x_laplace_read_row): New.
10598 (x_laplace_write_row): New.
10599 (lookup_image): Handle common image attributes here. New
10600 attribute `:algorithm'.
10601
10602 * xfaces.c (clear_face_cache): Call clear_image_cache.
10603
10604 * xterm.c (x_inverted_image_mask): Removed.
10605 (x_draw_image_foreground_1): New.
10606 (x_draw_image_glyph_string): Draw images with mask to a temporary
10607 pixmap to reduce flickering.
10608
10609 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10610 (display_toolbar_line): Remove parameter `margin'.
10611
106121998-10-19 Gerd Moellmann <gerd@gnu.org>
10613
10614 * xdisp.c (toolbar_lines_needed): New.
10615 (auto-resize-toolbars): New.
10616
10617 * xfns.c (cache_image): Correct call to xrealloc.
10618
10619 * dispnew.c (Fset_toolbar_height): Removed.
10620
10621 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10622 FRAME_MENU_BAR_LINES.
10623
10624 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10625 instead of FRAME_MENU_BAR_LINES.
10626 (check_frame_size): Ditto.
10627
10628 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10629 instead of FRAME_MENU_BAR_LINES.
10630 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10631 (build_frame_matrix): Ditto.
10632 (change_frame_size_1): Ditto.
10633
10634 * frame.h (FRAME_TOOLBAR_LINES): New.
10635 (FRAME_TOP_MARGIN): New.
10636
10637 * window.c (struct save_window_data): Add frame_toolbar_lines.
10638 (Fset_window_configuration): Handle toolbar lines.
10639 (Fcurrent_window_configuration): Save toolbar lines.
10640
10641 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10642
10643 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10644
10645 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10646
10647 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10648 (x_set_toolbar_lines): New.
10649
10650 * keyboard.c (cmd_error_internal): Bug fix.
10651
10652 * xterm.c: Remove double include of syssignal.h.
10653
106541998-10-18 Gerd Moellmann <gerd@gnu.org>
10655
10656 * xterm.c (x_toolbar_item): New.
10657 (x_handle_toolbar_click): Use it.
10658 (note_toolbar_highlight): Use it.
10659
10660 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10661 and toolbar_items_vectors.
10662
10663 * xterm.c (help_echo): New.
10664 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10665 (x_set_glyph_string_gc): Handle them.
10666 (x_after_update_window_line): Don't do anything in pseudo-windows.
10667 (x_produce_image_glyph): Take image margin and face relief into
10668 account.
10669 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10670 (x_draw_glyph_string_background): Optimize case when face has
10671 relief.
10672 (x_setup_relief_color): Take frame instead of glyph string
10673 parameter.
10674 (x_draw_relief_rect): New.
10675 (x_draw_glyph_string_relief): Call it.
10676 (x_draw_image_glyph_string_foreground): Handle margin and image
10677 relief.
10678 (x_draw_image_glyph_string_background): Ditto.
10679 (expose_frame): Redraw toolbar window.
10680 (expose_window): Don't draw cursor for pseudo-windows.
10681 (x_y_to_hpos_vpos): Handle pseudo-windows.
10682 (frame_to_window_pixel_xy): New.
10683 (note_mouse_highlight): Call note_toolbar_highlight.
10684 (x_handle_toolbar_click): New.
10685 (note_toolbar_highlight): New.
10686 (show_mouse_face): Change int parameter `hl' to parameter of
10687 type enum draw_glyphs_face. Handle image highlighting.
10688 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10689 non-nil. Use x_handle_toolbar_click.
10690
10691 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10692
10693 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10694 IMAGE_BOOL_VALUE.
10695 (parse_image_spec): Handle them.
10696 (image_spec_value): Additional parameter found.
427ec082 10697 (free_image): Remove image from the vector `images' of the
26901792
DL
10698 image cache.
10699 (clear_image_cache): Additional parameter force_p.
10700 (Fclear_image_cache): New.
10701 (x_find_image_file): New.
10702 (xbm_load): Handle `:margin' and `:relief'. Use
10703 x_find_image_file.
10704 (xpm_load): Likewise.
10705 (pbm_load): Likewise.
10706 (jpeg_load): Likewise.
10707 (tiff_load): Likewise.
10708 (gif_load): Likewise.
10709
10710 * keyboard.c (Qhelp_echo): New symbol.
10711 (read_char): Handle `toolbar' and `help_echo' events.
10712 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10713 (make_lispy_event): Handle TOOLBAR_EVENT.
10714 (toolbar_items): New.
10715 (process_toolbar_item): New.
10716 (PROP): New.
10717 (init_toolbar_items): New.
10718 (append_toolbar_item): New.
10719 (read_char_x_menu_prompt): Handle `toolbar' event.
10720 (read_key_sequence): Ditto.
10721
10722 * xfaces.c (Qtoolbar): New.
10723 (realize_basic_faces): Realize `toolbar' face.
10724 (face_at_string_position): Remove parameter modeline_p, add
10725 base_face_id.
10726
10727 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10728 to read data.
10729
107301998-10-17 Gerd Moellmann <gerd@gnu.org>
10731
10732 * xdisp.c (init_iterator): Replace parameter modeline_p with
10733 base_face_id.
10734 (next_element_from_string): Call get_next_display_element
10735 recursively after handling text properties.
10736 (prepare_menu_bars): Call update_toolbar.
10737 (update_toolbar): New.
10738 (build_desired_toolbar_string): New.
10739 (display_toolbar_line): New.
10740 (redisplay_toolbar): New.
10741 (toolbar_item_info): New.
10742 (redisplay_window): Call redisplay_toolbar.
10743 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10744
10745 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10746 window.
10747 (clear_desired_matrices): Ditto.
10748 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10749 (free_glyphs): Free matrices of toolbar window.
10750 (update_frame): Update toolbar window.
10751 (change_frame_size_1): Take toolbar into account.
10752 (Fset_toolbar_height): New.
10753
10754 * dispextern.h (struct it): Remove member modeline_p, add
10755 base_face_id.
10756 (struct image): Add members relief and margin.
10757 (IMAGE_ASCENT): Include margin in height.
10758
107591998-10-14 Gerd Moellmann <gerd@gnu.org>
10760
10761 * xfns.c (Fclear_image_cache): New.
10762
10763 * xfaces.c (realize_basic_faces): Realize toolbar face.
10764 (face_at_string_position): Remove parameter modeline_p, add
10765 base_face_id.
10766
10767 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10768
107691998-10-13 Gerd Moellmann <gerd@gnu.org>
10770
10771 * keyboard.c (syms_of_keyboard): Intern `:help'.
10772
107731998-10-12 Gerd Moellmann <gerd@gnu.org>
10774
10775 * xterm.c (note_toolbar_highlight): New.
10776 (note_mouse_highlight): Call it.
10777
10778 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10779 (coordinates_in_window): Handle toolbar window.
10780
10781 * keyboard.c (toolbar_items): New.
10782 (process_toolbar_item): New.
10783 (parse_toolbar_item): New.
10784 (init_toolbar_items): New.
10785 (append_toolbar_item): New.
10786
10787 * dispextern.h (enum toolbar_item_idx): New.
10788 (enum toolbar_item_image): New.
10789
10790 * frame.h (struct frame): Add toolbar-related members.
10791
10792 * xfaces.c (face_at_string_position): Remove assertion that
10793 current_buffer == window's buffer. This is not the case when
10794 called for the toolbar window.
10795
10796 * frame.c (make_frame): Initialize toolbar members.
10797
10798 * alloc.c (mark_object): Mark toolbar data of frames.
10799
10800 * frame.h (struct frame): Add toolbar-related members
10801 toolbar_window, desired_toolbar_items, current_toolbar_items,
10802 desired_toolbar_string, current_toolbar_string,
10803 n_desired_toolbar_items, n_current_toolbar_items. Add
10804 window_height.
10805
10806 * xterm.c (x_after_update_window_line): Don't draw bitmap
10807 areas for pseudo-windows.
10808 (expose_frame): Handle toolbar window.
10809 (expose_window): Don't do cursor stuff for pseudo-windows.
10810
10811 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10812
108131998-10-11 Gerd Moellmann <gerd@gnu.org>
10814
10815 * frame.c (make_frame): Initialize toolbar_window.
10816
10817 * alloc.c (mark_object): Make the toolbar window.
10818
10819 * dispnew.c (update_frame): Update frame's toolbar_window.
10820 (clear_current_matrices): Likewise.
10821 (clear_desired_matrices): Likewise.
10822 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10823 (free_glyphs): Free the toolbar window and its matrices.
10824
10825 * frame.h (struct frame): Add toolbar_window.
10826
10827 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10828 with relief.
10829
108301998-10-10 Gerd Moellmann <gerd@gnu.org>
10831
427ec082 10832 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10833 window start is not in the range BEGV..ZV.
10834
108351998-10-09 Gerd Moellmann <gerd@gnu.org>
10836
10837 * xdisp.c (try_scrolling): Experimentally handle the case
10838 that scroll-preserve-screen-position is set to `always'.
10839
10840 * window.c (Vscroll_preserve_screen_position): Replacement for
10841 scroll_preserve_screen_position.
10842
108431998-10-08 Gerd Moellmann <gerd@gnu.org>
10844
10845 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10846 doesn't like it.
10847 * xdisp.c: Ditto.
10848
10849 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10850
108511998-10-06 Gerd Moellmann <gerd@gnu.org>
10852
427ec082 10853 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10854 i_byte when prompts are inserted into minibuffers.
10855
10856 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10857 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10858 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10859
108601998-10-04 Gerd Moellmann <gerd@gnu.org>
10861
10862 * xdisp.c (make_cursor_line_fully_visible): New.
10863 (try_scrolling): New.
10864 (redisplay_window): Move scrolling code to try_scrolling.
10865 (make_cursor_line_fully_visible): Handle case of window too small
10866 to show a single line.
10867 (redisplay_window): Case forced window start---use
10868 make_cursor_line_fully_visible.
10869 (redisplay_window): Case cursor movement via current matrix.
10870 If ending up on a partially visible line, make it fully visible
10871 instead of recentering.
10872 (try_scrolling): Additional parameter scroll_smoothly.
10873
10874 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10875
108761998-09-28 Gerd Moellmann <gerd@gnu.org>
10877
10878 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10879 instead of y-position for scroll-preserved-screen-position.
10880
108811998-09-07 Gerd Moellmann <gerd@gnu.org>
10882
10883 * dispnew.c (update_frame_line): If current row is not enabled,
10884 write the whole line.
10885
108861998-09-06 Gerd Moellmann <gerd@gnu.org>
10887
10888 * lisp.h (HAVE_FACES): Removed.
10889
10890 * dispextern.h (HAVE_FACES): Removed.
10891
10892 * config.in (HAVE_FACES): Removed.
10893
10894 * dispnew.c (HAVE_FACES): Removed.
10895
10896 * xdisp.c (HAVE_FACES): Removed.
10897
10898 * xfaces.c (HAVE_FACES): Removed.
10899
109001998-09-05 Gerd Moellmann <gerd@gnu.org>
10901
10902 * xdisp.c (init_iterator): If face_change_count is non-zero,
10903 free realized faces.
10904
10905 * xfaces.c (free_all_realized_faces): Make it externally visible.
10906 (Finternal_set_lisp_face_attribute): Increment
10907 windows_or_buffers_changed.
10908
10909 * dispnew.c (direct_output_for_insert): Give up if
10910 face_change_count is non-zero.
10911 (direct_output_forward_char): Ditto.
10912
10913 * xfaces.c (face_change_count): New.
10914
109151998-09-04 Gerd Moellmann <gerd@gnu.org>
10916
10917 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10918 of range.
10919
109201998-09-03 Gerd Moellmann <gerd@gnu.org>
10921
10922 * term.c (Ftty_display_color_p): New.
10923
109241998-09-02 Gerd Moellmann <gerd@gnu.org>
10925
10926 * xfaces.c (Ftty_defined_colors): New.
10927
10928 * xterm.c (x_produce_glyphs): Fix computation of
10929 contains_overlapping_glyphs_p for ASCII.
10930
10931 * dispnew.c (Fshow_cursor): Don't change cursor state while
10932 redisplaying.
10933 (direct_output_for_insert): If a glyph with lbearing or rbearing
10934 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10935
109361998-09-01 Gerd Moellmann <gerd@gnu.org>
10937
10938 * term.c (OUTPUT_IF): Make replacement text have statement form.
10939 (OUTPUT1_IF): Ditto.
10940 (TS_italic_mode, TS_end_italic_mode): Removed.
10941 (TS_bold_mode): Removed.
10942 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10943 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10944 (TS_enter_reverse_mode): New.
10945 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10946 (TN_magic_cookie_glitch_ul): New.
10947 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10948 (TS_exit_attribute_mode): New.
10949 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10950 (TS_set_foreground, TS_set_background): New.
10951 (reset_terminal_modes): Switch colors back to default.
10952 (write_glyphs): Turn face on before writing text, turn it off
10953 afterwards.
10954 (insert_glyphs): Ditto.
10955 (term_init): Initialize new terminal capability variables.
10956 (turn_on_face): Turn a face on.
10957 (turn_off_face): Turn a face off.
10958
10959 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10960 (GLYPH_CHAR): Ditto.
10961 (GLYPH_FACE): Ditto.
10962
10963 * xfaces.c (Vface_tty_color_alist): New.
10964 (face-register-tty-color): New.
10965 (face-clear-tty-colors): New.
10966
10967 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10968 (struct it): Remove member faces_p since we now always have faces.
10969
109701998-08-31 Gerd Moellmann <gerd@gnu.org>
10971
10972 * dispextern.h (struct face): Add tty appearance flags.
10973
10974 * xdisp.c (init_iterator): Always handle faces.
10975 (extend_face_to_end_of_line): Handle tty frames.
10976
10977 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10978 passed in.
10979
109801998-08-30 Gerd Moellmann <gerd@gnu.org>
10981
10982 * xfaces.c (realize_default_face): Use empty strings to indicate
10983 that the face should use the default foreground/background
427ec082 10984 color of the terminal. Fill font-related attributes with
26901792
DL
10985 appropriate values for tty frames.
10986
10987 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10988
10989 * xfaces.c (realize_default_face): If face `default' is not
10990 yet known, create it.
10991
10992 * frame.c (make_terminal_frame): Call init_frame_faces
10993 unconditionally.
10994
10995 * xfaces.c (init_frame_faces): Make it work for tty frames.
10996 (free_frame_faces): Ditto.
10997 (clear_face_cache): Ditto.
10998 (recompute_basic_faces): Ditto.
10999 (Fframe_face_alist): Ditto.
11000 (free_realized_face): Ditto.
11001 (prepare_face_for_display): Ditto.
11002 (clear_face_gcs): Ditto.
11003 (lookup_face): Ditto.
11004 (smaller_face): Ditto.
11005 (realize_default_face): Ditto.
11006 (realize_face): Ditto.
11007 (realize_face): Dispatch to functions depending on the frame type.
11008 (realize_x_face): X way of realizing faces.
11009 (realize_tty_face): TTY way of realizing faces.
11010
110111998-08-29 Gerd Moellmann <gerd@gnu.org>
11012
11013 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11014 compute it instead.
11015 (lookup_face): Remove local variable unibyte_registry.
11016
110171998-08-22 Gerd Moellmann <gerd@gnu.org>
11018
11019 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11020 1 pixel longer.
11021
427ec082 11022 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
11023 of face in buffer.
11024
11025 * editfns.c (make_buffer_string_both): If prompt in buffer,
11026 prevent start > end.
11027
11028 * indent.c (Fvertical_motion): Set current_buffer to window's
11029 buffer if it isn't already.
11030
110311998-08-21 Gerd Moellmann <gerd@gnu.org>
11032
11033 * dispextern.h (GLYPH_DEBUG): Use default 0.
11034
11035 * xdisp.c (it_props): New member `smaller'.
11036 (init_iterator): Initialize it.
11037 (Qsmaller): New.
11038 (push_it): Save value of `smaller' value on the stack.
11039 (pop_it): Restore `smaller' from the stack.
11040 (handle_smaller_prop): New.
11041 (handle_face_prop): Use `smaller' text property to select a
11042 suitable face.
11043
11044 * dispextern.h (SMALLER_PROP_IDX): New.
11045 (struct it): Add member `smaller'.
11046
11047 * xfaces.c (smaller_face): New.
11048
11049 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11050
11051 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11052 total pixel width of window differently.
11053
11054 * xdisp.c (init_iterator): Compute width of mode line differently.
11055
11056 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11057 of bitmap areas.
11058
11059 * window.c (Fsplit_window): Include width of bitmap areas in
11060 window width.
11061 (window_internal_width): Subtract width of bitmap areas from
11062 total width.
11063
110641998-08-18 Gerd Moellmann <gerd@gnu.org>
11065
11066 * xdisp.c: Functions reordered for better readability.
11067
11068 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11069 lbearing.
11070 (update_window_tree): Parameter no_scrolling_p removed.
11071 (update_single_window): Ditto.
11072
11073 * xterm.c (x_get_char_font_and_encoding): Renamed to
11074 x_get_char_face_and_encoding.
11075
11076 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11077 if end of current row reached.
11078
11079 * xterm.c (x_get_glyph_face_and_encoding): New.
11080 (x_get_glyph_overhangs): Call it.
11081
11082 * xdisp.c (Qshow_trailing_whitespace): New.
11083 (Qtrailing_whitespace): New.
11084 (enum prop_handled): New.
11085 (struct props, it_props): New.
11086 (next_overlay_change): New. Works like Fnext_overlay_change
11087 but doesn't use xmalloc.
11088 (handle_stop): Restructured.
11089 (face_before_or_after_it_pos): Case iteration over a string: fix
11090 handling of face before current position.
11091
110921998-08-16 Gerd Moellmann <gerd@gnu.org>
11093
11094 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11095 reallocation matrix if fonts_changed_p.
11096 (update_text_area): Handle glyphs with lbearing.
11097
110981998-08-14 Gerd Moellmann <gerd@gnu.org>
11099
11100 * xdisp.c (struct props): New.
11101 (it_props): New.
11102 (compute_prop_info): New.
11103 (handle_stop): New.
11104
11105 * textprop.c (validate_interval_range): Make it externally
11106 visible.
11107
11108 * dispnew.c (direct_output_for_insert): Remove calls
11109 to compute_stop_pos.
11110
11111 * dispextern.h (struct it): Remove check_charpos,
11112 next_overlay_pos. Add what_changes.
11113
111141998-08-10 Gerd Moellmann <gerd@gnu.org>
11115
11116 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11117
11118 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11119 face_default_registry instead.
11120
11121 * syntax.c (scan_sexps_forward): Set up syntax table before
11122 jumping to initial state label.
11123
111241998-08-09 Gerd Moellmann <gerd@gnu.org>
11125
11126 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11127 >= ZV specially.
11128
111291998-08-08 Gerd Moellmann <gerd@gnu.org>
11130
11131 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11132 ends up in partially visible row, try to scroll. Case forced
11133 window start---handle windows not tall enough to show a single
11134 line.
11135
11136 * window.h (struct window): Member dy renamed vscroll.
11137
11138 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11139 fonts.
11140 (x_draw_stretch_glyph_string): Set clipping if using GC that
11141 hasn't set it yet.
11142
11143 * xdisp.c (redisplay_window): Case forced window start -
11144 don't let cursor end on partially visible row. Use desired
11145 matrix to find a suitable PT if it doesn't appear.
11146 (decode_mode_spec): Merged with 20.2.97.
11147 (try_window_reusing_current_matrix): Give up if old or
11148 new display is vscrolled.
11149 (redisplay_window): Reset vscrolling if forced window start,
11150 or if recentering.
11151
111521998-08-06 Gerd Moellmann <gerd@gnu.org>
11153
11154 * xfaces.c (realize_default_face): Use the fontset name instead of
11155 the alias for the family attribute of the default face because we
11156 can't easily determine a good alias from fontset-alias-alist.
11157 (face_fontset): Use Fquery_fontset to find the fontset.
11158 (font_list): Additional pattern parameter.
11159 (try_font_list): Ditto.
11160 (set_lface_from_font_name): Set face family from font foundry
11161 and family.
11162 (font_list): If family contains a hyphen, build pattern differently.
11163
111641998-08-05 Gerd Moellmann <gerd@gnu.org>
11165
11166 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11167 changed instead of setting the frame garbaged.
11168
11169 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11170 all attribute values. This is wrong if values are unspecified,
11171 i.e. nil.
11172
11173 * xdisp.c (try_window_id): Give up if window start changed.
11174
11175 * xfaces.c (make_realized_face): Store registry as Lisp object.
11176 (load_face_font_or_fontset): Compute registry of a face
11177 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11178 possible.
11179
11180 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11181 differently.
11182
11183 * alloc.c (mark_face_cache): Mark the registry member of faces.
11184
11185 * dispextern.h (struct face): Make registry a Lisp string.
11186
111871998-08-04 Gerd Moellmann <gerd@gnu.org>
11188
11189 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11190 multibyte_p. Handle unibyte text.
11191 (x_append_glyph): Set the multibyte_p flag of glyphs.
11192 (x_produce_image_glyph): Ditto.
11193 (x_append_stretch_glyph): Ditto.
11194 (x_produce_glyphs): Handle unibyte text like ASCII.
11195
11196 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11197 stack.
11198 (pop_it): Restore it.
11199 (face_before_or_after_it_pos): Handle the case that the string or
11200 buffer is unibyte.
11201 (get_overlay_strings): Set the multibyte flag of the iterator if
11202 the new overlay string is multibyte.
11203 (get_glyph_property): Likewise.
11204 (get_next_display_element): Don't check for charset changes in
11205 unibyte text.
11206 (append_space): Compute face differently for unibyte text.
11207 (extend_face_to_end_of_line): Don't return quickly if face has
11208 stipple.
11209
11210 * xfaces.c (load_face_font_or_fontset): Store registry and
11211 encoding of the font in the registry member of the face.
11212 (make_realized_face): Additional parameter `registry'.
11213 (free_realized_face): Free the registry of a realized face.
11214 (face_suitable_for_charset_p): Function form of the macro
11215 with the same name in uppercase.
11216 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11217 (choose_face_font): New parameter unibyte_registry.
11218 (choose_face_fontset_font): Ditto.
11219 (realize_default_face): Remember the registry and encoding of
11220 the specified frame font in Vx_unibyte_registry_and_encoding.
11221 (face_at_buffer_position): Handle unibyte.
11222 (face_at_string_position): Likewise.
427ec082 11223 (realize_face): New parameter unibyte_registry.
26901792
DL
11224 (compute_char_face): Handle the unibyte case.
11225
11226 * dispextern.h (struct glyph): Add bit multibyte_p.
11227 (struct face): New member registry holding the registry and
11228 encoding of the X font of the face.
11229 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11230 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11231 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11232 text.
11233 (struct iterator_stack_entry): Add multibyte_p.
11234
11235 * xdisp.c (string_pos): Use string_char_to_byte.
11236 (char_charset): Removed.
11237
112381998-08-03 Gerd Moellmann <gerd@gnu.org>
11239
11240 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11241 rectangle for a block cursor over an image without a mask.
11242 (x_stretch_block_cursor): Added. Non-zero means don't draw
11243 a block cursor over a stretch as wide as that stretch.
11244 (x_draw_stretch_glyph_string): Use it.
11245 (x_draw_hollow_cursor): Ditto.
11246
11247 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11248 (read_minibuf): Add front-sticky text property for prompt.
11249
11250 * xdisp.c (char_charset): Return charset of a character,
11251 depending on whether or not multi-byte characters are enabled.
11252
11253 * xfaces.c (Fset_face_charset_registry): Removed.
11254 (x_charset_registry): Determine registry from charset plist.
11255
112561998-08-02 Gerd Moellmann <gerd@gnu.org>
11257
11258 * xdisp.c (get_next_display_element): Don't check for charset
11259 changes if multi-byte characters are not enabled.
427ec082 11260
26901792 11261 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11262 redisplay interface.
26901792
DL
11263 * keyboard.c (detect_input_pending_run_timers): Likewise.
11264
11265 * dispextern.h (produce_*glyphs_hook): Removed.
11266 * term.c (produce_*glyphs): Ditto.
11267 (cursor_to): Remove pixel position parameters.
11268
11269 * dispnew.c: Remove hooks for window-based redisplay, introduce
11270 a redisplay interface structure.
11271
11272 * xterm.c (x_per_char_metric): Return default char metrics if per
11273 char metric exists but contains a zero width. Adobe Courier seems
11274 to contain such characters.
11275
11276 * xdisp.c (compute_line_metrics): Compute the width of rows
11277 without stopping at glyphs with zero width.
11278
112791998-08-01 Gerd Moellmann <gerd@gnu.org>
11280
11281 * xdisp.c (display_mode_line): If nothing was displayed at all,
11282 display a space.
11283 (hscroll_window_tree): Don't subtract 1 from target point if equal
11284 to ZV and window is not the selected window.
11285
11286 * dispnew.c (check_matrix_invariants): Remove check for window
11287 start at BEGV or after newline. This happens in rare cases
11288 intentionally.
11289
112901998-07-31 Gerd Moellmann <gerd@gnu.org>
11291
11292 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11293 (syms_of_xfaces): Add Vface_default_registry.
11294 (x_charset_registry): Use it.
11295
11296 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11297 (redisplay_window): Use it.
11298
11299 * dispnew.c (update_text_area): Handle lbearing of deleted text
11300 by backing up one character.
11301
113021998-07-30 Gerd Moellmann <gerd@gnu.org>
11303
427ec082 11304 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11305 decide to do nothing.
11306
11307 * xfaces.c (face_at_string_position): Additional parameter
11308 mode_line_p. If non-zero, merge with the mode line face
11309 instead of the default face.
11310 * dispextern.h (struct it): Add mode_line_p.
11311 * xdisp.c (init_iterator): Set it.
11312 (compute_face_in_string): Use it.
11313 (face_before_or_after_it_pos): Handle strings.
11314 (get_next_display_element): Don't look for relief end in C strings.
11315 (next_element_from_string): Deliver string position instead of
11316 buffer position.
11317
11318 * xterm.c (x_flush): Flush X output buffer.
11319 (XTflash): Use it.
11320
11321 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11322 Allow strings as face names.
11323
11324 * xfns.c (forall_images_in_image_cache): Check that frame is
11325 alive.
11326
11327 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11328 it's also called from x_destroy_window. Since this function is
11329 called from X, freeing stuff allocated with xmalloc is dangerous
11330 here, anyway.
11331
11332 * xfaces.c (free_realized_faces): Don't clear current matrices
11333 of a frame being destroyed.
11334
427ec082 11335 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11336 Fset_window_buffer.
11337
11338 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11339 with an additional argument specifying whether or not hooks may
11340 be called.
11341 (Fset_window_buffer): Call it.
11342
11343 * dispnew.c (clear_desired_matrices): Check that frame has
11344 a valid root window before clearing matrices in the window tree.
11345 (clear_current_matrices): Ditto.
11346 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11347 vchild are valid windows if not nil.
11348
11349 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11350 for :inverse-video.
11351 (Finternal_set_lisp_face_attribute): Ditto.
11352 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11353 (Finternal_get_lisp_face_attribute): Ditto.
11354 (Finternal_lisp_face_attribute_values): Ditto.
11355 (syms_of_xfaces): Define the symbol `:reverse-video'.
11356
11357 * xdisp.c (get_glyph_property): Renamed from
11358 fill_iterator_from_glyph_property.
11359 (next_element_from_buffer): Handle case that no `glyph' property
11360 was found correctly.
11361 (display_line): Extend face to end of line only if we have faces.
11362
113631998-07-29 Gerd Moellmann <gerd@gnu.org>
11364
11365 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11366 additional window argument.
11367
11368 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11369 set_iterator_to_previous_visible_line_start.
11370 (reseat_at_next_visible_line_start): Likewise.
11371 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11372 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11373 (compute_face_in_buffer): Renamed from
11374 compute_face_at_iterator_position.
11375 (compute_face_in_string): Renamed from
11376 compute_face_at_iterator_string_position.
11377 (get_space_width): Renamed from get_iterator_space_width.
11378 (next_overlay_string): Renamed from
11379 set_iterator_to_next_overlay_string.
11380 (get_overlay_strings): Renamed from
11381 get_overlay_strings_at_iterator_position.
11382 (restore_overlay_strings): Renamed from
11383 setup_overlay_strings_from_glyph_pos.
11384 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11385 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11386 (init_to_row_start): Renamed from init_iterator_to_row_start.
11387 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11388
11389 * xterm.c: Merge with 20.2.97.
11390 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11391
11392 * dispextern.h (struct glyph): Replace text_pos position with
11393 simple charpos.
11394
11395 * xdisp.c (this_line_start_pos): Use struct text_pos.
11396 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11397 (enum move_it_result): Renamed from move_iterator_result.
11398 (string_pos_nchars_ahead): Compute text_pos in a string from a
11399 known text_pos plus a character delta.
11400 (string_pos): Compute text_pos in string from charpos.
11401 (c_string_pos): Likewise for a C string.
11402 (number_of_chars): Return number of characters in a possibly
11403 multi-byte C string.
11404 (check_it): Renamed from check_iterator. Check that charpos and
11405 bytepos are in sync.
11406 (push_it): Renamed from save_iterator_settings.
11407 (pop_it): Renamed from restore_iterator_settings.
11408 (move_it_.*): Renamed from move_iterator_.*.
11409 (charset_at_position): Take charpos/bytepos into account.
11410 (back_to_previous_line_start): Set iterator to previous line start.
11411 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11412 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11413 move_iterator_previous_visible_line_start.
11414 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11415 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11416 Handle charpos/bytepos.
11417 (compute_face_at_iterator_position): Handle charpos/bytepos.
11418 (compute_face_at_iterator_string_position): Likewise.
11419 (get_iterator_space_width): Likewise.
11420 (load_overlay_strings): Likewise.
11421 (get_overlay_strings_at_iterator_position): Likewise.
11422 (reseat_iterator): Take a text_pos position argument.
11423 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11424 bytepos.
11425 (init_iterator): Take additional bytepos parameter.
11426 (reseat_iterator_to_string): Handle charpos/bytepos.
11427 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11428 (next_element_from_string): Handle charpos/bytepos.
11429 (next_element_from_c_string): Likewise.
11430 (fill_iterator_from_glyph_property): Likewise.
11431 (next_element_from_buffer): Likewise.
11432 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11433 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11434 (move_it_to): Likewise.
11435 (move_it_vertically_backward): Likewise.
11436 (move_it_vertically): Likewise.
11437 (move_it_by_lines): Likewise.
11438 (hscroll_window_tree): Likewise.
11439 (redisplay_internal): Likewise.
11440 (set_cursor_from_row): Likewise.
11441 (redisplay_window): Likewise.
11442 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11443 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11444 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11445 (try_window_id): Handle charpos/bytepos.
11446 (Ftrace_redisplay_toggle): Return Qnil.
11447 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11448 (insert_left_trunc_glyphs): Likewise.
11449
11450 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11451 do a real merge).
11452 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11453 (increment_glyph_row_buffer_positions): Ditto.
11454 (copy_glyph_row_contents): Ditto.
11455 (check_matrix_invariants): Add additional checks for charpos/
11456 bytepos consistency.
11457 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11458 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11459 `direction-reversed' in #if 0.
11460
11461 * xterm.h: Merge with 20.2.97.
427ec082 11462
26901792
DL
11463 * frame.h: Merge with 20.2.97.
11464
11465 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11466
11467 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11468 start.
11469 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11470 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11471 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11472 (struct it): Various members renamed from .*pos to .*charpos.
11473 (IT_CHARPOS): Access current buffer character position of an
11474 iterator.
11475 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11476 (IT_STRING_CHARPOS): Access current string character position of
11477 an iterator.
11478 (IT_STRING_BYTEPOS): Access current string byte position of
11479 an iterator.
11480 (globally): Add function prototypes from 20.2.97.
11481
11482 * everywhere: Use P_ instead of PROTO for function prototypes
11483 because everyone else seems to use P_.
11484
11485 * dispextern.h (struct text_pos): Structure describing a charpos/
11486 bytepos position in text.
11487 (BYTEPOS): Access the byte position part of a text_pos.
11488 (CHARPOS): Likewise for the character position.
11489 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11490 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11491 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11492 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11493 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11494 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11495 for buffer and string positions.
11496 (struct glyph): Use text_pos.
11497 (struct it): Renamed from display_iterator. Use text_pos.
11498
114991998-07-23 Gerd Moellmann <gerd@gnu.org>
11500
11501 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11502 pixmap.
11503
115041998-07-21 Gerd Moellmann <gerd@gnu.org>
11505
11506 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11507 * xterm.c (x_draw_row_bitmaps): Use it.
11508 * dispnew.c (row_equal_p): Ditto.
11509 (update_window_line): Ditto.
11510
11511 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11512 flag of images.
11513
11514 * dispextern.h (struct image): Removed member loading_failed_p.
11515 It's probably better to have the chance to try to load an image
11516 again.
11517
115181998-07-20 Gerd Moellmann <gerd@gnu.org>
11519
11520 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11521 at ZV if `indicate-zv-lines' is non-nil.
11522 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11523
11524 * dispnew.c (row_equal_p): Compare displays_text_p and
11525 ends_at_zv_p flags of rows.
11526 (update_window_line): Ditto.
11527
11528 * buffer.h (struct buffer): New member indicate_zv_lines.
11529
11530 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11531 (init_buffer_once): New variable `default-indicate-zv-lines'.
11532 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11533
11534 * xdisp.c (redisplay_window): Don't try moving the cursor
11535 if current glyph row w->last_cursor.vpos isn't enabled.
11536
11537 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11538
11539 * window.c (Fset_window_vscroll): Allow only negative scroll
11540 values. Others don't seem to make sense, and this way it's easy
11541 to restore a vscroll of zero.
11542
11543 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11544 allocated.
11545 (x_draw_image_glyph_string_background): Don't clip if pixmap
11546 could not be created.
11547
11548 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11549 be created.
11550 (xbm_load): Ditto.
11551 (gs_load): Ditto.
11552
11553 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11554 glyphs into account.
11555
11556 * xfaces.c (realize_default_face): Don't set font family of
11557 the default face from the fontset alias name for `fontset-startup'.
11558
11559 * xfns.c (gs_load): Pass frame's pixel foreground and background
11560 color to the Lisp loader.
11561
115621998-07-19 Gerd Moellmann <gerd@gnu.org>
11563
11564 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11565 libtiff34.
11566
11567 * configure.in (--with-tiff, HAVE_TIFF): Added.
11568
11569 * config.in (HAVE_TIFF): Added.
11570
11571 * Makefile.in (LIBTIFF): Added.
11572
11573 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11574
11575 * Makefile.in (LIBJPEG): Added.
11576
11577 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11578 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11579 jpeglib.h.
11580
427ec082 11581 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11582 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11583 configure must be run with `--x-includes=/usr/X11R6/include:
11584 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11585
115861998-07-18 Gerd Moellmann <gerd@gnu.org>
11587
11588 * config.in (HAVE_JPEG): Added.
11589
11590 * xfns.c (ct_init): Initialize color table used to map RGB colors
11591 from images to X pixel colors.
11592 (ct_free): Free color table.
11593 (ct_lookup): Look an RGB color up.
11594 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11595 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11596 image specification.
11597 (pbm_scan_number): Scan a decimal ASCII number from a file.
11598 (pbm_load): Load a PPM image.
11599
11600 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11601 necessary. Take canonical character units as parameter.
11602 (Fwindow_vscroll): Return canonical character units.
11603
11604 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11605 w->dy to display height for which glyph rows must be allocated.
11606
116071998-07-17 Gerd Moellmann <gerd@gnu.org>
11608
11609 * xfaces.c (face_at_string_position): Merge in region face
11610 so that it won't overwrite the font in the region.
11611 (face_at_buffer_position): Ditto.
11612 (realize_basic_faces): Don't realize region face.
11613
11614 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11615
11616 * xterm.c (x_set_glyph_string_background_width): Don't let
11617 cursor face extend to end of line.
11618
11619 * xdisp.c (append_space): If adding space of default face,
11620 make sure glyph ist produced with right face.
11621
11622 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11623 background color of a glyph string.
11624 (x_draw_glyph_string_background): Call it.
11625 (x_draw_glyph_string_bg_rect): Ditto.
11626 (x_draw_stretch_glyph_string): Ditto.
11627
116281998-07-15 Gerd Moellmann <gerd@gnu.org>
11629
11630 * xdisp.c (init_iterator): Initialize it->current_y to the
11631 window's vscroll w->dy.
11632
11633 * window.c (Fwindow_vscroll): Return number of pixels window
11634 is vscrolled smoothly.
11635 (Fset_window_vscroll): Set the number.
11636
11637 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11638 to_pos in truncated part of a line.
11639
116401998-07-14 Gerd Moellmann <gerd@gnu.org>
11641
11642 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11643 doesn't fit on the line, truncate it, despite truncate_lines nil.
11644 (display_line): Ditto.
11645
11646 * xfns.c: Experimental support for Ghostscript images.
11647
11648 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11649 (XTread_socket): React on events from Ghostscript.
11650 (expose_frame): If width or height are zero, redraw entire frame.
11651 (XTread_socket): Call expose_frame after receiving event from
11652 Ghostscript.
11653
11654 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11655 for Ghostscript support.
11656
11657 * xdisp.c (redisplay_internal): Return quickly if called
11658 recursively.
11659
11660 * alloc.c (NSTATICS): Increased to 1024.
11661
116621998-07-08 Gerd Moellmann <gerd@gnu.org>
11663
11664 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11665 iterator's glyph row.
11666 (x_produce_stretch_glyph): Call it.
11667 (x_produce_glyphs): Handle `space-width' property; call
11668 x_append_stretch_glyph.
11669
11670 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11671 property.
11672 (get_iterator_space_width): Determine value of `space-width'
11673 property at iterator's position.
11674 (reseat_iterator): Call it.
11675 (next_element_from_string): Ditto.
11676 (next_element_from_buffer): Ditto.
11677 (init_iterator): Initialize space_width of iterator.
11678 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11679 moved, but cursor blinks.
11680 (redisplay_internal): Set w->last_cursor_off_p after update.
11681
11682 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11683 (struct display_iterator): Add new member space_width.
11684
11685 * window.h (struct window): Add last_cursor_off_p.
11686
116871998-07-07 Gerd Moellmann <gerd@gnu.org>
11688
11689 * Saved.
11690
11691 * window.c (Fpos_visible_in_window_p): Case window not up to
11692 date---return nil if iterator hasn't reached position.
11693
116941998-07-06 Gerd Moellmann <gerd@gnu.org>
11695
11696 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11697 overlays have changed.
11698 (redisplay_window): Case cursor movement. Don't try it if
11699 last_cursor.vpos is out of range.
11700
11701 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11702 way, the display optimization for the line containing the cursor
11703 is used more frequently, esp. when we have a blinking cursor.
11704 (display_line): Don't set this_line_.* variables.
11705
11706 * xterm.c (x_redraw_cursor): Removed.
11707 (x_display_and_set_cursor): Set cursor type depending on
11708 cursor_off_p flag of window.
11709
11710 * dispnew.c (redraw_cursor_hook): Removed.
11711 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11712 member of the selected window.
11713
11714 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11715
11716 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11717 Return glyph area under x/y.
11718 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11719
11720 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11721 after redisplaying.
11722
117231998-07-05 Gerd Moellmann <gerd@gnu.org>
11724
11725 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11726 are all outside of a line of text.
11727 (redisplay_internal): Use it.
11728
117291998-06-30 Gerd Moellmann <gerd@gnu.org>
11730
11731 * xdisp.c (next_element_from_buffer): After skipping over
11732 invisible text, look for the `glyph' property.
11733 (set_iterator_stop_pos): Ignore check positions in front
11734 of an iterator's current position.
11735
11736 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11737 anymore or which are marked as not having valid contents.
11738
11739 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11740 realized faces if new attribute value is equal to old value.
11741
117421998-06-29 Gerd Moellmann <gerd@gnu.org>
11743
11744 * xfaces.c (Finternal_make_lisp_face): Increment
11745 lface_id_to_name_size when lface_id_to_name is reallocated.
11746
117471998-06-27 Gerd Moellmann <gerd@gnu.org>
11748
11749 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11750 as minimum of endpos and overlay_pos.
11751 (load_overlay_strings): Set next_overlay_pos of iterator to
11752 -1 if we don't have to check for more overlay strings.
11753
117541998-05-09 Gerd Moellmann <gerd@gnu.org>
11755
11756 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11757 do anything if iterator is at ZV because scan_buffer doesn't
11758 work otherwise.
11759
11760 * xterm.c (x_encode_char): Inline it.
11761 (x_get_char_font_and_encoding): Simplified.
11762 (x_per_char_metric): Inline it.
11763
11764 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11765
11766 * xdisp.c (get_next_display_element): Check for end of relief
11767 face moved here from next_element_from_buffer.
11768
11769 * xterm.c (x_produce_image_glyph): Add relief thickness.
11770 (x_produce_stretch_glyph): Ditto.
11771
117721998-05-08 Gerd Moellmann <gerd@gnu.org>
11773
11774 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11775 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11776
11777 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11778 from a glyph property.
11779 (x_produce_glyphs): Use it.
11780
11781 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11782
427ec082 11783 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11784 in text area.
11785 (x_produce_glyphs): Ditto.
11786
427ec082 11787 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11788 marginal areas.
11789
427ec082 11790 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11791 background of an image glyph string.
427ec082 11792 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11793 the background of a glyph string.
11794 (x_draw_image_glyph_string_foreground): Draw the foreground of
11795 an image glyph string.
11796 (x_inverted_image_mask): Return the inverted mask of an image.
11797
11798 * xfns.c (x_draw_image): Removed.
11799
11800 * dispextern.h (struct image_type): Remove drawing function.
11801
11802 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11803
11804 * xdisp.c (get_next_display_element): In marginal areas, translate
11805 newlines, tabs, etc. like normal control characters.
11806
11807 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11808 and color.
11809 (free_realized_faces): Set frame garbaged.
11810
11811 * xfaces.c (syms_of_xfaces): Add defsubr for
11812 internal-lisp-face-attribute-values.
11813
118141998-05-07 Gerd Moellmann <gerd@gnu.org>
11815
11816 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11817 full.
11818 (x_produce_image_glyph): Set IT->nglyphs to 1.
11819 (x_draw_image_glyph_string): Use inverted mask to draw background.
11820
11821 * dispextern.h (struct image_type): Additional clipping rect
11822 parameters for drawing functions.
11823
427ec082 11824 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11825 a glyph string.
11826 (x_draw_image_glyph_string): Use it and pass the rect to the
11827 image drawing function.
11828
11829 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11830 first character with `glyph' property as image position. Set
11831 iterator back to that position as long as the image hasn't been
11832 consumed with set_iterator_to_next.
11833 (set_cursor_from_row): Accept when glyph with given position is
11834 not found in the row. Set cursor x to end of line in that case,
11835 so that we can hscroll.
11836 (redisplay_internal): Correct computation of delta by which
11837 positions have changed in redisplay optimization for cursor
11838 row of selected window.
11839
11840 * xdisp.c (display_line): Remove start_pos.
427ec082 11841 (display_line): Fix bug preventing display optimization for
26901792
DL
11842 cursor line of selected window.
11843 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11844 instead.
11845
11846 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11847 (update_text_area): Take glyph pixel width into account
11848 when trying to find a resync point.
11849 (row_equal_p): Compare glyphs in all areas.
11850
118511998-05-06 Gerd Moellmann <gerd@gnu.org>
11852
11853 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11854
11855 * dispextern.h (struct glyph_row): Use unsigned hash value.
11856
11857 * xdisp.c (display_line): Simplified and made faster by setting
11858 the cursor with set_cursor_from_row.
11859 (set_cursor_from_row): Handle rows of desired matrix.
11860
118611998-05-05 Gerd Moellmann <gerd@gnu.org>
11862
11863 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11864 with type != CHAR_GLYPH.
11865 (fill_iterator_from_glyph_property): Return void. Set
11866 method to next_element_from_image.
11867 (next_element_from_image): Dummy function for delivering a
11868 single image id.
11869 (set_iterator_to_next): Add method next_element_from_image.
11870 (redisplay_window): When recentering, and cursor vpos is -1
11871 after display, assume middle of window is in first line displayed
11872 in window, and display again.
427ec082 11873 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11874 the position of the first character having the glyph property.
11875
11876 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11877 * xfns.c (x_draw_image): Use it.
11878 * xterm.c (x_produce_image_glyph): Use it.
11879
11880 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11881
11882 * Makefile.in: Extraneous #define of LIBXPM removed.
11883
11884 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11885 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11886 stretch glyph.
11887 (x_compute_glyph_string_overhangs): Compute overhangs only
11888 for text glyph strings.
11889 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11890 (x_draw_glyph_string): Call it.
11891
11892 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11893 (struct glyph): Add sub-structure for stretchable glyphs.
11894 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11895
11896 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11897 #ifdef HAVE_FACES.
11898
11899 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11900
11901 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11902 setup_iterator_from_glyph_property. Don't do it for terminal
11903 frames.
11904
11905 * xterm.c (x_produce_image_glyph): Produce glyph for image
11906 that can't be loaded.
11907
11908 * xfns.c (lookup_image): If image can't be loaded, set its
11909 width and height so that we can draw a rectangle.
11910 (x_draw_image): Draw a rectangle for images that don't have
11911 a pixmap.
11912 (make_image): Set hash value.
11913 (image_spec_equal_p): Use image_spec_value.
11914
11915 * xterm.c (expose_frame): Don't try to redraw if basic faces
11916 haven't benn realized yet.
427ec082 11917 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11918 is not as tall as row.
11919
119201998-05-04 Gerd Moellmann <gerd@gnu.org>
11921
11922 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11923 (LIBX)[HAVE_X11]: Add LIBXPM.
11924
11925 * xfns.c (xpm_image_p): Implementation of image type functions
11926 for XPM.
11927 (xpm_load): Ditto.
11928
11929 * dispextern.h (struct image): Add mask pixmap for XPM.
11930
11931 * xfns.c (x_draw_image): Handle images with masks.
11932
11933 * configure.in: --with-xpm added. Code detecting -lXpm added.
11934
11935 * config.in: Add HAVE_XPM.
11936
11937 * xfns.c (xbm_draw): Removed.
11938 (x_draw_image): Default implementation for drawing images.
11939 (xbm_keyword_index): Remove XBM_DEPTH.
11940 (xbm_format): Remove `:depth'.
11941 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11942 (xbm_load_image_from_file): Added for the same reason.
26901792 11943
427ec082 11944 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11945 glyph string.
11946 (x_draw_image_glyph_string): Pass ybase to image draw function.
11947
11948 * xfns.c (make_image): Set default baseline.
11949
11950 * xterm.c (x_produce_image_glyph): Compute ascent of image
11951 from its height and baseline percentage.
11952
11953 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11954 (xbm_format): Add description for `:baseline'.
11955 (xbm_image_spec_from_file): Add keywords from original spec to
11956 result.
11957 (xbm_load): Set baseline of image.
11958 (xbm_image_p): Check range for baseline.
11959
11960 * dispextern.h (struct image): Add member baseline.
11961
11962 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11963
11964 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11965
11966 * xdisp.c (get_next_display_element): Do character translations
11967 only if delivering characters.
11968
119691998-05-03 Gerd Moellmann <gerd@gnu.org>
11970
427ec082 11971 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11972 DISP_CHARACTER.
11973
11974 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11975 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11976
119771998-05-02 Gerd Moellmann <gerd@gnu.org>
11978
11979 * xfns.c (prepare_image_for_display): Set image timestamp.
11980 (clear_image_cache): Clear images if image's timestamp +
11981 Vimage_eviction_seconds is > now.
11982 (syms_of_xfns): New variables image-eviction-seconds, and
11983 image-types.
11984 (add_image_format): Add to image-types.
11985 (xbm_load): Support new image spec format.
11986 (x_alloc_image_color): Allocate a color for an image.
11987
11988 * dispextern.h (struct image): Add timestamp.
11989
11990 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11991 vectors of bool-vectors.
11992 (xbm_lisp_object_from_file): Build new format image spec.
11993
119941998-05-01 Gerd Moellmann <gerd@gnu.org>
11995
11996 * xfaces.c (init_frame_faces): Initialize image cache.
11997 (free_frame_faces): Free it.
11998
11999 * xterm.c (x_delete_display): Don't free image cache.
12000
12001 * emacs.c (main): Call init_xfns.
12002
120031998-04-30 Gerd Moellmann <gerd@gnu.org>
12004
12005 * alloc.c (mark_object): Mark objects in image cache.
12006
427ec082 12007 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
12008 widget_store_internal_border_width.
12009
12010 * widget.c (widget_store_internal_border): Return void.
12011
12012 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12013 void.
12014 (init_x_parm_symbols): Return void.
12015 (x_report_frame_params): Ditto.
12016 (x_set_border_pixel): Ditto.
12017 (syms_of_xfns): Ditto.
12018 (x_destroy_all_bitmaps): Use xfree instead of free.
12019
12020 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12021
12022 * xterm.c (x_term_init): Initialize image_cache of display info.
12023 (x_delete_display): Free image cache.
12024
12025 * xterm.h (struct x_display_info): Add image_cache.
12026
12027 * xfns.c (make_image_cache): Allocate a new image cache.
12028 (free_image_cache): Free an image cache.
12029 (make_image): Allocate an image.
12030 (free_image): Free an image.
12031
12032 * dispextern.h (struct image): Structure describing an image.
12033 (struct image_cache): Structure describing an image cache.
12034
120351998-04-29 Gerd Moellmann <gerd@gnu.org>
12036
12037 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12038 non-zero if iterator is filled with something to return.
12039 (next_element_from_buffer): Immediately return if
12040 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12041 (next_element_from_string): Likewise.
12042
12043 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12044
12045 * dispextern.h (struct glyph): Add pixmap_id.
12046 (display_element_type): Add DISP_PIXMAP.
12047
12048 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12049 malloc/free.
12050
12051 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12052 (clear_face_cache): Call it.
12053
12054 * xterm.c (x_query_font): Don't look at empty font table slots.
12055 (x_compute_min_glyph_bounds): Likewise.
12056 (x_term_init): Initialize font_table to null.
12057 (x_load_font): Change allocation of font_info structures so
12058 that it is possible to free fonts.
12059
427ec082 12060 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
12061 Only free fonts from filled font table entries.
12062
12063 * xfaces.c (best_matching_font): Support use of scalable fonts.
12064 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12065
12066 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12067 and resy.
12068 * xterm.c (x_term_init): Compute resx and resy.
12069
12070 * xfaces.c (split_font_name): Don't reject scalable fonts.
12071
427ec082 12072 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
12073 in #if 0.
12074
12075 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12076 point size cannot be determined.
12077
12078 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12079 width over all fonts on a frame.
12080 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12081 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12082 macros.
12083
12084 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12085 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12086 (x_load_font): Use x_compute_min_char_bounds.
12087
12088 * xterm.h (struct x_display_info): New members smallest_char_width
12089 and smallest_font_height.
12090
120911998-04-28 Gerd Moellmann <gerd@gnu.org>
12092
12093 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12094 the same name if GC of face is zero.
12095
12096 * dispextern.h (struct face): Member non_ascii_gc removed.
12097
12098 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 12099 for characters < 0177 in default face. Prepare face for
26901792
DL
12100 display before returning it.
12101 (x_produce_glyphs): Use it->charset.
12102 (x_get_char_font_and_encoding): Simplified.
12103 (x_encode_char): Remove parameter `font'.
12104
12105 * xfaces.c (choose_face_font): If registry from charset symbol
12106 doesn't contain a `-', make it a pattern by appending "*-*".
12107
12108 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12109 glyph_check_pos computation to character boundary.
12110
121111998-04-27 Gerd Moellmann <gerd@gnu.org>
12112
12113 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12114
12115 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12116 ASCII face for a given Lisp face id.
12117
12118 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12119 account.
427ec082 12120 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
12121 new position is < original position.
12122 (check_iterator_glyph_property): Handle glyph property in strings.
12123 (next_element_from_string): Call above function.
12124 (next_element_from_display_vector): Handle faces in glyphs.
12125 (get_next_display_element): Set face_id of glyphs for
12126 control chars to zero.
12127
12128 * Makefile.in (term.o): Add dependency on dispextern.h.
12129
12130 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12131 (display_line): Handle marginal areas.
12132 (move_iterator_in_display_line_to): Likewise.
12133
12134 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12135
12136 * xfaces.c (face_at_buffer_position): Don't merge with nil
12137 text property.
12138 (face_at_string_position): Ditto.
12139
12140 * dispextern.h (struct display_iterator): Use a stack of saved
12141 values instead of saving check positions etc. individually.
12142
12143 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12144 maybe pop the iterator's stack.
12145 (save_iterator_settings): Push a value on iterator's stack.
12146 (get_overlay_strings_at_iterator_position): Use it.
12147 (restore_iterator_settings): Pop the stack.
12148 (set_iterator_to_next_overlay_string): Use it.
12149
12150 * xfaces.c (try_font_list): Use alternative font families.
12151
121521998-04-26 Gerd Moellmann <gerd@gnu.org>
12153
12154 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12155 font selection matches fonts.
12156 (Fface_font_sort_order): Return the font sort order.
12157 (best_matching_font): Find best matching font based on sort order.
12158 (cmp_font_names): Sort by given sort order.
12159
12160 * dispextern.h (struct display_iterator): New member faces_p.
12161 * xdisp.c (init_iterator): Initialize it->faces_p.
12162 (compute_face_at_iterator_string_position): Use it.
12163 (compute_face_at_iterator_position): Use it.
12164 (init_iterator): Use it.
12165 (display_mode_line): Ditto.
12166
12167 * xdisp.c (get_next_display_element): Put code choosing a face
12168 when the charset changes in #ifdef HAVE_FACES.
12169
427ec082 12170 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12171 lookup_face_for_charset.
12172
12173 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12174 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12175
121761998-04-25 Gerd Moellmann <gerd@gnu.org>
12177
12178 * xfaces.c (best_matching_font): Return the name of the best
12179 matching font in an array of font_name structures.
12180 (choose_face_font): Use it.
12181 (choose_face_fontset_font): Use it.
12182 (find_best_weight_font): If final font found has same weight as
12183 the font we started with, return the original font because it is a
12184 better match for the resolution of the display.
12185 (find_best_slant_font): Likewise.
12186 (merge_face_vector_with_property): Check more invalid attribute
12187 values.
12188 (lface_suitable_for_charset_p): Replaced by a macro with the same
12189 name in upper-case.
12190
121911998-04-24 Gerd Moellmann <gerd@gnu.org>
12192
12193 * dispextern.h (struct face): Member
12194 fontset_chosen_for_realization_p removed.
12195
12196 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12197 end of the collision list, so that we find more specific faces
12198 first.
12199 (lookup_face_for_charset): Look up a new face if face->fontset >=
12200 0, and charset != CHARSET_COMPOSITION.
12201
12202 * xfaces.c (split_font_name): Return zero if point size of font
12203 couldn't be computed.
12204 (realize_default_face): Use ASCII font of a fontset to determine
12205 font-related attributes of the default face.
12206 (face_fontset): Return fontset id for face family.
12207 (font_list): Additional parameter font_pattern. If non-nil,
12208 return fonts matching that pattern.
12209
122101998-04-23 Gerd Moellmann <gerd@gnu.org>
12211
12212 * xfaces.c (choose_face_fontset): If new fontset cannot be
12213 constructed, or fontset name cannot be split, return the id of the
12214 standard fontset.
12215
12216 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12217 When Emacs starts, it may be called for the initial frame which
12218 isn't an X frame.
12219
12220 * dispextern.h (struct face): New members foreground_defaulted_p,
12221 background_defaulted_p.
12222 (struct face): Members `mask' and `cache' removed.
12223
12224 * xfaces.c (load_color): Set them.
12225 (free_face_colors): Check them.
427ec082 12226 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12227 font unknown.
12228
12229 * xfaces.c (free_font): Removed.
12230 (load_face_font_or_fontset): Renamed from load_font.
12231 (load_face_font_or_fontset): Use message2 instead of signalling.
12232 (load_color): Likewise.
12233 (load_pixmap): Likewise.
12234
12235 * xterm.h (struct x_display_info): Add screen_dpi.
12236 * xterm.c (x_term_init): Initialize it.
12237 * xfaces.c (xlfd_point_size): Use it.
12238 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12239 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12240 similar to that of the frame appear first in the result.
12241
12242 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12243 is set for the face to cache, add it to the end of the collision
12244 list.
12245 (try_font_list): If fonts for given family and registry cannot
12246 be found, first try to keep the registry, and choose a different
12247 family.
12248 (choose_face_font): Allow nfonts == 0.
12249 (try_font_list): Give up if no font matches given registry.
12250
122511998-04-22 Gerd Moellmann <gerd@gnu.org>
12252
12253 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12254 font info id of the face.
12255
12256 * xfaces.c (load_font): Set font_info_id.
12257 (realize_face): Ditto.
12258
12259 * dispextern.h (struct face): Change member font_info to
12260 font_info_id.
12261
12262 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12263 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12264
12265 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12266 isn't ASCII, get the ASCII face before adding a space.
12267 (append_space): Likewise.
12268 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12269 to -1 so that it will compute the right face for the truncation
12270 glyphs.
12271
12272 * xfaces.c (realize_face): Set
12273 face->fontset_chosen_for_realization_p.
12274 (lookup_face_for_charset): If fontset wasn't specified originally
12275 and new charset != CHARSET_COMPOSITION, get a new face for that
12276 charset.
12277
12278 * dispextern.h (struct face): New member
12279 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12280 realize_face has chosen a fontset to display composite characters
12281 for a Lisp face not specifying a fontset.
12282
12283 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12284 face and line already filled here. Don't do anything if current
12285 face hasn't a relief or has a background equal to the frame
12286 background.
12287
12288 * xfaces.c (split_font_name): Additional parameter numeric_p.
12289 Don't compute numeric values if it is non-zero.
12290 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12291 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12292 font whose name cannot be split into fields.
12293
122941998-04-21 Gerd Moellmann <gerd@gnu.org>
12295
427ec082 12296 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12297 possibly using less restrictive patterns.
12298 (choose_face_font): Use it.
12299
12300 * xterm.c (x_get_char_font_and_encoding): For charset !=
12301 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12302
12303 * dispextern.h (struct face): New member font_info.
12304
12305 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12306 specifying a fontset as well as those not having a fontset.
12307 (free_font): Make it empty.
12308 (realize_face): Use changed load_font.
12309
12310 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12311 fit for charset, get the right one.
12312
12313 * xfaces.c (load_font): Take frame and name parameter, return
12314 font.
12315 (free_font): Likewise.
12316 (split_font_name): Compute numeric values for height, swidth etc.
12317 (cmp_font_names): Use them.
12318 (find_best_width_font): Ditto.
12319 (find_best_height_font): Ditto.
12320 (find_best_weight_font): Ditto.
12321 (find_best_slant_font): Ditto.
12322 (lface_hash): Add weight, slant, swidth and relief to hash value.
12323 (lface_equal_p): Make it faster.
12324 (lface_from_symbol): Use assq_no_quit.
12325 (Fnote_default_face_changed): Removed.
12326 (cmp_font_names): Use strcmp instead of xstricmp.
12327 (face_charset_registries): Removed.
12328
123291998-04-20 Gerd Moellmann <gerd@gnu.org>
12330
12331 * frame.h (CHECK_FRAME): Give this macro a statement form.
12332 (CHECK_LIVE_FRAME): Ditto.
12333
12334 * xfaces.c (find_best_width_font): Find the best matching font
12335 for a given width.
12336 (find_best_height_font): Likewise for height.
12337 (find_best_weight_font): Likewise for weight.
12338 (find_best_slant_font): Likewise for slant.
12339 (choose_face_font): Use them.
12340 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12341 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12342 global face attributes.
12343
12344 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12345 Lisp face attributes.
12346
123471998-04-19 Gerd Moellmann <gerd@gnu.org>
12348
12349 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12350 and :italic for compatibility.
12351 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12352 :bold and :italic. Handle boolean resource values for
26901792
DL
12353 :underline and :italic.
12354
12355 * xfns.c (display_x_get_resource): Make it externally visible.
12356
12357 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12358 If that frame is non-null, return the frame-local face.
12359 (Finternal_make_lisp_face): Additional frame argument.
12360 (lface_attributes): Get face attributes from global and frame-local
12361 definitions.
12362 (Finternal_lisp_face_equal_p): Additional frame argument.
12363 (merge_lisp_face_vector_with_property): Ditto.
12364 (Frealize_basic_faces): Removed.
12365 (Finternal_get_lisp_face_attribute): Additional frame argument.
12366 (Finternal_lisp_face_p): Ditto.
12367 (load_color) [MSDOS]: Removed because it isn't clear how
12368 to do this for MS-DOS.
12369
12370 * xfaces.c (lface_from_symbol): Get global face definition
12371 from face-global-alist.
12372
12373 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12374 as values for :underline and :inverse-video.
12375 (Finternal_set_lisp_face_attribute): Allow nil values.
12376
123771998-04-17 Gerd Moellmann <gerd@gnu.org>
12378
12379 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12380
12381 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12382 (Finternal_make_lisp_face): Add new face to Vall_faces.
12383
12384 * xdisp.c (echo_area_display): Remove code recomputing faces.
12385 (redisplay_internal): Ditto.
12386 (init_iterator): Do it here.
12387
12388 * xfaces.c (choose_face_font): Check that swidth doesn't change
12389 for subusequent attributes.
12390 (xlfd_point_size): Return int.
12391
12392 * xdisp.c (redisplay_internal, echo_area-display): If realized
12393 faces have been cleared, call recompute_basic_faces.
12394
12395 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12396 face_attributes_changed_p.
427ec082 12397 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12398 all frames.
12399 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12400
12401 * xdisp.c (redisplay_internal): If face attributes have been
12402 changed since the last redisplay, recompute basic faces.
12403 (echo_area_display): Ditto.
12404
12405 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12406
12407 * xfaces.c (min_char_bounds): If face cache not yet present,
12408 don't try to get font dimensions from faces.
12409
12410 * xterm.c (x_frame_mode_line_height): If face cache not present
12411 set, return default height.
12412
12413 * alloc.c (mark_face_cache): Check for null faces. Correct
12414 index bug.
12415
12416 * dispextern.h (struct face): Renamed from struct rface. Member
12417 underline renamed underline_p. Make it a bit-field.
12418
12419 * xfaces.c (init_frame_faces): Allocate face cache.
12420 (free_frame_faces): Free face cache.
12421 (recompute_basic_faces): Realize basic faces only if face cache is
12422 allocated, i.e. after init_frame_faces has been called.
12423
12424 * frame.c (make_frame): Initialze face cache with null.
12425
12426 * xfaces.c (same_size_fonts): Removed.
12427
427ec082 12428 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12429 s->gc != 0.
12430 (x_set_mouse_face_gc): Ditto.
12431 (x_set_mode_line_face_gc): Ditto.
12432
427ec082
SS
12433 * xfaces.c (realize_default_face): Return int. Value is
12434 zero if frame params don't contain enough information to
26901792
DL
12435 realize the default face.
12436 (realize_basic_faces): Ditto.
12437 (init_frame_faces): Realize basic faces.
12438
12439 * xfns.c (x_set_font): First store real font name in frame
12440 parameters, then call recompute_basic_faces.
12441
12442 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12443
124441998-04-16 Gerd Moellmann <gerd@gnu.org>
12445
12446 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12447
12448 * xfns.c (Fx_face_fixed_p): Removed.
12449 (Fx_list_fonts): Moved to xfaces.c.
12450
12451 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12452 face_at_buffer_position. Parameter charset removed; always
12453 compute face for CHARSET_ASCII.
12454 (face_at_string_position): Renamed from
12455 compute_face_at_string_pos. Parameter charset removed; always
12456 compute for CHARSET_ASCII.
427ec082 12457 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12458 face_cache.
12459 (lookup_face): Ditto.
12460 (compute_char_face): Renamed from compute_glyph_face.
12461
12462 * xdisp.c (init_iterator): Initialize charset member.
12463 (reseat_iterator_to_string): Ditto.
12464 (get_charset_at_buffer_position): Determine charset at
12465 buffer position in current_buffer.
12466 (reseat_iterator): Call above function.
12467 (compute_face_at_iterator_position): Call
12468 compute_face_at_buffer_pos.
12469 (compute_face_at_iterator_string_position): Call
12470 compute_face_at_string_pos.
12471 (get_face_from_id): Removed.
12472 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12473 Call get_charset_at_buffer_position.
12474 (reseat_iterator): Determine face if charset at pos differs
12475 from iterator's charset.
12476 (reseat_iterator_to_glyph_pos): Removed.
12477
12478 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12479 Determine charset from buffer position.
12480 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12481 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12482
12483 * dispextern.h (struct display_iterator): Add member charset.
12484
124851998-04-15 Gerd Moellmann <gerd@gnu.org>
12486
12487 * xfaces.c (compute_char_face): Removed.
12488
12489 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12490 with new parameter list.
12491
12492 * xfaces.c (region_face): Removed.
12493 (allocate_face): Removed.
12494 (copy_face): Ditto.
12495 (face_eql): Removed.
12496 (intern_face): Removed.
12497 (clear_face_cache): Removed.
12498 (load_font): Ditto.
12499 (unload_font): Ditto.
12500 (load_color): Ditto.
12501 (unload_color): Ditto.
12502 (new_computed_face): Ditto.
12503 (intern_computed_face): Ditto.
12504 (ensure_face_ready): Ditto.
12505 (merge_faces): Ditto.
12506 (compute_base_face): Ditto.
12507 (merge_face_list): Ditto.
12508 (Fmake_face_internal): Removed.
12509 (Fset_face_attribute_internal): Ditto.
12510 (face_name_id_number): Removed.
12511 (Fframe_face_alist): Ditto.
12512 (Fset_frame_face_alist): Ditto.
12513 (Finternal_next_face_id): Ditto.
12514
12515 * xterm.h (struct x_output): Remove computed_faces, and
12516 param_faces. Remove macros accessing them.
12517
12518 * xfaces.c: Entirely new face implementation added.
12519
125201998-04-11 Gerd Moellmann <gerd@gnu.org>
12521
12522 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12523 `charpos'.
12524
125251998-04-10 Gerd Moellmann <gerd@gnu.org>
12526
12527 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12528 scroll bar window to reduce flickering. Clear entire height.
12529
12530 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12531 current_x and hpos to zero after moving to previous line
12532 start.
12533
125341998-04-03 Gerd Moellmann <gerd@gnu.org>
12535
12536 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12537
12538 * xfaces.c (xlfd_point_size): Compute relative point size of
12539 fonts from font and frame resolution.
12540 (sort_fonts): New function to sort fonts, temporarily setting
12541 font_frame to the frame in effect.
12542 (xlfd_point_size): Take additional frame parameter to be able
12543 to get at the display's resolution.
12544
12545 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12546 BLACK_PIX_DEFAULT.
12547 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12548 screen of display.
12549
125501998-03-31 Gerd Moellmann <gerd@gnu.org>
12551
12552 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12553
12554 * fontset.h: Add external declarations for Vfontset_alias_alist
12555 and Vglobal_fontset_alist.
12556
12557 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12558 (realize_default_face): If frame parameters contain an artificial
12559 font name naming a fontset, set the family of the default face to
12560 the fontset name given by the registry.
12561
12562 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12563
125641998-03-22 Gerd Moellmann <gerd@gnu.org>
12565
12566 * alloc.c (mark_object): Add function prototype. Add cast to
12567 Lisp_Object pointer in call to mark_object for symbol names
12568 because this otherwise gives a warning from gcc 2.8.1.
12569 (mark_face_cache): Mark Lisp objects in realized faces.
12570
125711998-03-19 Gerd Moellmann <gerd@gnu.org>
12572
12573 * frame.h (struct frame): Add member face_cache.
12574
12575 * alloc.c (mark_object): Mark face cache.
12576 (mark_face_cache): Mark Lisp faces in face cache of frame.
12577
12578 * frame.c (make_frame): Initialize face_cache.
12579 (Fdelete_frame): Free it.
12580
125811998-03-18 Gerd Moellmann <gerd@gnu.org>
12582
12583 * xfaces.c: Very first skeleton of functions for face realization,
12584 face merging, face cache etc.
12585
12586 * dispextern.h (struct rface): Realized faces. Will replace
12587 struct face when tested.
12588 (struct face_cache): Realized face caches.
12589
12590 * xdisp.c (init_iterator): Initialize area member of display
12591 iterator.
12592
125931998-03-17 Gerd Moellmann <gerd@gnu.org>
12594
12595 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12596
12597 * dispextern.h (struct display_iterator): New member area.
12598
12599 * xterm.c (note_overwritten_text_cursor): Note when the text
12600 cursor of a window is overwritten.
12601
12602 * xdisp.c (set_cursor_from_row): If PT is not found in the
12603 row, display the cursor at the start of the row.
12604
12605 * dispnew.c (direct_output_forward_char): Call
12606 set_cursor_from_row.
12607
12608 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12609 position is not in an overlay string, set iterator's position and
12610 method explicitly so.
427ec082 12611 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12612 Make it externally visible.
12613 (redisplay_window): Call set_cursor_from_row so that there is only
12614 one place where the cursor position is calculated from a current
12615 row.
12616
12617 * dispextern.h (struct display_iterator): New member
12618 overlay_strings_at_end_processed_p.
12619
12620 * xdisp.c (check_iterator): Perform sanity checks on
12621 display_iterators.
12622 (next_element_from_buffer): Check for overlay strings at ZV.
12623
126241998-03-16 Gerd Moellmann <gerd@gnu.org>
12625
12626 * buffer.c (init_buffer_once): Add left_margin_width and
12627 right_margin_width to buffer_local_flags.
12628
12629 * dispnew.c (margin_glyphs_to_reserve): Function computing
12630 number of glyphs to reserve for a marginal area.
12631 (adjust_glyph_matrix): Call it.
12632 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12633 is not alive.
12634
12635 * window.c (Fset_window_margins): Allow floats.
12636
12637 * buffer.c (syms_of_buffer): Add buffer-local variables
12638 left-margin-width and right-margin-width. Add defaults
12639 default-left-margin-width and default-right-margin-width.
12640
12641 * buffer.h (struct buffer): New members left_margin_width
12642 and right_margin_width.
12643
12644 * window.c (Fset_window_margins): Make window the last and
12645 optional argument.
12646
12647 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12648 flag no_marginal_areas_p differently.
12649 (x_clear_end_of_line): Ditto.
12650 (x_draw_glyph_string_relief): Compute width of relief differently
12651 for rows with flag no_marginal_areas_p.
12652
12653 * dispnew.c (update_window_line): Update marginal areas only
12654 for rows that don't have no_marginal_areas_p set.
12655
12656 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12657 (display_menu_bar): Ditto.
12658
12659 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12660
12661 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12662 marginal areas in window-based redisplay.
12663
12664 * dispextern.h (struct glyph_matrix): New members
12665 left_margin_glyphs and right_margin_glyphs.
12666
126671998-03-15 Gerd Moellmann <gerd@gnu.org>
12668
12669 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12670
12671 * charset.c (non_ascii_char_to_string): Use char type parameters
12672 because the function is used that way from outside. Use unsigned
12673 char internally.
12674
12675 * window.c (change_window_height): Return void.
12676 (make_dummy_parent): Return void.
12677 (init_window_once): Return void.
12678 (syms_of_window): Ditto.
12679 (keys_of_window): Ditto.
12680 (delete_window): Correct return with and without value.
12681
12682 * buffer.c (record_buffer): Return void.
12683
12684 * marker.c (unchain_marker): Return void.
12685
12686 * window.c (unshow_buffer): Return void.
12687 (replace_window): Ditto.
12688 (delete_window): Ditto.
12689
12690 * term.c (delete_glyphs_hook): Void return type.
12691 (ring_bell_hook): Ditto.
12692 (set_terminal_window_hook): Ditto.
12693
12694 * sysdep.c (init_sigio): Return void.
12695
12696 * xterm.c (x_set_window_size): Return void.
12697 (x_calc_absolute_position): Ditto.
12698 (x_set_offset): Ditto.
12699 (x_focus_on_frame): Ditto.
12700 (x_unfocus_frame): Ditto.
12701 (x_make_frame_visible): Ditto.
12702 (x_make_frame_invisible): Ditto.
12703 (x_iconify_frame): Ditto.
12704 (x_destroy_window): Ditto.
12705 (x_wm_set_window_state): Ditto.
12706 (x_wm_set_icon_pixmap): Ditto.
12707 (x_wm_set_icon_position): Ditto.
12708 (x_initialize): Ditto.
12709 (x_error_quitter): Ditto.
12710 (x_destroy_window): Use xfree instead of free.
12711
12712 * keyboard.c (clear_waiting_for_input): Return void.
12713
12714 * xterm.c (x_wm_set_size_hint): Return void.
12715 (x_raise_frame): Ditto.
12716 (refreshicon): Ditto.
12717 (x_error_catcher): Ditto.
12718 (x_clear_errors): Ditto.
12719
12720 * keyboard.c (record_asynch_buffer_change): Return void.
12721
bb6677a8
GM
12722 The first line of the following paragraph was garbled for an
12723 unknown reason. It couldn't be fully reconstructed.
178c5d9c 12724
bb6677a8 12725 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12726 (x_lower_frame): Ditto.
12727 (x_scroll_bar_clear): Ditto.
12728 (XTflash): Add default case in switch for -Wall.
12729 (construct_mouse_click): Return Qnil.
12730 (cancel_mouse_face): Return void.
12731 (x_queue_event): Use xmalloc instead of malloc.
12732 (x_unqueue_events): Use xfree instead of free.
12733
12734 * ccl.c (ccl_driver): Return int.
12735
12736 * keyboard.c (stop_polling): Return void.
12737 (start_polling): Ditto.
12738
12739 * term.c (keys): Add braces in initializer list for -Wall.
12740
12741 * sysdep.c (tabs_safe_p): Return int.
12742 (init_baud_rate): Return void.
12743
12744 * xterm.c (x_draw_bitmap): Add default case.
12745 (x_setup_relief_colors): Use DefaultScreen instead of
12746 DefaultScreenOfDisplay.
12747 (x_delete_glyphs): Return void.
12748 (construct_menu_click): Put in #if 0 because it isn't called.
12749
12750 * xdisp.c (load_overlay_strings): Remove extraneous argument
12751 in call to qsort.
12752 (get_overlay_arrow_glyph_row): Add missing return value.
12753
12754 * window.c (set_window_height): Return void.
12755 (set_window_width): Ditto.
12756
12757 * sysdep.c (request_sigio): Return void.
12758 (unrequest_sigio): Ditto.
12759 (get_frame_size): Ditto.
12760
12761 * scroll.c (scroll_cost): Return int.
12762 (do_line_insertion_deletion_costs): Return void.
12763
12764 * frame.c (Fdelete_frame): Use xfree instead of free.
12765
12766 * fileio.c (report_file_error): Return void.
12767
12768 * dispnew.c: Make compilable with -Wall.
12769 * term.c: Ditto.
12770
12771 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12772
127731998-03-14 Gerd Moellmann <gerd@gnu.org>
12774
12775 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12776 increased.
12777 (x_setup_relief_color): Free color only for appropriate visual
12778 classes.
12779
12780 * xterm.c (expose_window): Fix calculation of intersection of mode
12781 line rectangle with exposed rectangle.
12782
12783 * xdisp.c (redisplay_window): Don't do cursor movement based
12784 on current matrix if w->last_point is not valid.
12785
127861998-03-09 Gerd Moellmann <gerd@gnu.org>
12787
12788 * xterm.c (expose_line): Redraw mode line and menu lines
12789 differently because they reach into the scroll bar area.
12790
12791 * xdisp.c (redisplay_window): If redisplaying with same window
12792 start, don't accept cursor on partially visible line.
12793
127941998-03-08 Gerd Moellmann <gerd@gnu.org>
12795
12796 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12797 for wider mode lines.
12798 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12799
12800 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12801 scroll bar width for mode lines.
12802
12803 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12804 vertical scroll bar width in width calculation so that we can
12805 display mode lines wider.
12806
12807 * xdisp.c (redisplay_window): Restore buffers before returning
12808 when fonts have changed.
12809
12810 * dispnew.c (update_window): Mark invisible rows in the current
12811 matrix invalid.
12812
12813 * xdisp.c (try_window_id): Force update of first row displayed
12814 at window end.
12815 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12816
128171998-03-05 Gerd Moellmann <gerd@gnu.org>
12818
12819 * dispextern.h (struct glyph_row): Member max_ascent renamed
12820 ascent. Member max_descent replaced by height.
12821 (struct display_iterator): Member max_descent replaced by height.
12822 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12823
12824 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12825 class makes it unnecessary or dangerous.
12826
12827 * xdisp.c (redisplay_window): Case only point has changed, and
12828 point has moved forward. Move forward over overlay strings.
12829 (display_line): Don't set cursor if first glyph from PT is part of
12830 a continuation line.
12831
128321998-02-21 Gerd Moellmann <gerd@gnu.org>
12833
12834 * xdisp.c (start_display): When computing continuation lines
12835 width, add current_x to the continuation lines width because
12836 move_iterator_to will stop in front of the buffer position moved
12837 to.
12838
128391998-02-20 Gerd Moellmann <gerd@gnu.org>
12840
12841 * xdisp.c (redisplay_window): Don't try try_window_id if
12842 windows_or_buffers_changed.
12843
12844 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12845 determine a color.
12846 (x_setup_relief_color): Allocate/ change one relief.
12847 (x_setup_relief_colors): Call above function.
12848
12849 * xterm.h (struct relief): New structure type holding relief info:
12850 GCs, colors, and whether colors are allocated.
12851
427ec082 12852 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12853 produces the same color, try adding a delta to RGB values.
12854 (x_setup_relief_colors): Free color cells.
12855
427ec082 12856 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12857 black_relief_pixel holding the foreground colors allocated for
12858 relief GCs. New members white_allocated_p, black_allocated_p.
12859
12860 * xterm.c (x_scroll_run): Don't set updated_window to null.
12861 This resets updated_window when called from scrolling_window.
12862
12863 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12864
26901792
DL
12865 * xterm.c (x_scroll_run): Additional window parameter. Set
12866 and reset updated_window.
12867
12868 * dispnew.c (line_dance_hook): Additional window parameter.
12869
12870 * xdisp.c (try_window_reusing_current_matrix): Don't call
12871 update_window_begin/end here. The end function would display the
12872 cursor on a wrong position and the additional functionality of
12873 update_window_begin is not needed anyway. Just set
12874 updated_window.
12875 (try_window_id): Ditto.
12876
12877 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12878 Don't redraw cursor during redisplay.
12879
12880 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12881
12882 * xdisp.c (redisplay_window): For window-based redisplay, alway
12883 try try_window_id.
12884
12885 * xterm.c (struct glyph_string): New member two_byte_p that is
12886 non-zero if 16-bit drawing functions must be used.
12887 (x_fill_composite_glyph_string): Set it.
12888 (x_fill_glyph_string): Set it.
12889 (x_draw_glyph_string_foreground): Use it.
12890 (x_draw_vertical_border): Make line 1 pixel less tall.
12891 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12892 side by 1 pixel if window is not right-most hasn't vertical scroll
12893 bars.
12894 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12895 out of bounds.
12896 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12897 hl == DRAW_CURSOR.
12898
12899 * xdisp.c (start_display): Check that window start is at line
12900 start if GLYPH_DEBUG != 0.
12901
12902 * window.c (window_scroll_pixel_based): Move assertion to
12903 start_display.
12904
129051998-02-19 Gerd Moellmann <gerd@gnu.org>
12906
427ec082 12907 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12908 frame hasn't the focus.
12909
12910 * window.c (make_window): Initialize dy.
12911 (replace_window): Ditto.
12912
12913 * window.h (window): New member dy specifying the amount by which
12914 a window is scrolled "smoothly".
12915
12916 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12917 y-position because it can be negative.
26901792
DL
12918 (x_draw_row_bitmaps): Don't clear with negative y-position like
12919 above.
12920 (x_clear_end_of_line): Same theme as above.
12921
12922 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12923 exact match exists, the nearest existing color. Patterned after
12924 defined_color.
12925 (x_alloc_lighter_color): Allocate a color that is lighter or
12926 darker than a given color by a specified factor.
427ec082 12927 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12928 the background color of a glyph string face.
12929 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12930
12931 * xfns.c (x_make_gc): Don't allocate relief GCs.
12932 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12933 (setup_frame_gcs): Don't change relief GCs.
12934
12935 * xterm.h (struct x_output): New member relief_background giving
12936 the background pixel color for which relief GCs can be used.
12937 Set by x_setup_relief_colors.
12938
12939 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12940 for mode and menu lines.
12941
12942 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12943
12944 * dispnew.c (direct_output_for_insert): Call
12945 set_next_iterator_stop_pos after having changed it2.endpos.
12946
129471998-02-17 Gerd Moellmann <gerd@gnu.org>
12948
12949 * dispnew.c (update_window): Work on selected_window, only.
12950
12951 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12952 hpos is >= number of glyphs in the cursor row.
12953
12954 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12955 called.
12956
129571998-02-16 Gerd Moellmann <gerd@gnu.org>
12958
12959 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12960 and menu lines.
12961
12962 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12963 enough glyphs to display a mode line or menu line which draws over
12964 flags areas.
12965
12966 * xterm.c (XTset_vertical_scroll_bar): Use
12967 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12968 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12969 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12970 or menu.
12971 (x_set_glyph_string_clipping): Set clipping differently if drawing
12972 a mode line or menu line.
12973
12974 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12975
12976 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12977 menu lines.
12978 (x_scroll_bar_create): Don't clear flags areas.
12979 (x_draw_row_bitmaps): Clear visible row height, only.
12980
12981 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12982
129831998-02-15 Gerd Moellmann <gerd@gnu.org>
12984
12985 * dispnew.c (direct_output_for_insert): When checking for tabs in
12986 the line, set it2.endpos to ZV.
427ec082 12987
26901792
DL
12988 * window.h (struct window): New member cursor_off_p.
12989 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12990 for X.
12991 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12992 be called to display or erase the cursor.
12993 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12994 or selected_window.
12995
12996 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12997
12998 * dispnew.c (update_window_line): Special handling of inverse
12999 lines in #if 0 removed.
13000
13001 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
13002 (x_insert_glyphs): Renamed from XTinsert_glyphs.
13003 (x_clear_frame): Renamed from XTclear_frame.
13004 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
13005 (x_ins_del_lines): Renamed from XTins_del_lines.
13006 (x_change_line_height): Renamed from XTchange_line_height.
13007 (x_delete_glyphs): Renamed from XTdelete_glyphs.
13008 (x_clear_cursor): Renamed from clear_cursor.
13009 (x_update_begin): Renamed from XTupdate_begin.
13010 (x_update_end): Renamed from XTupdate_end.
13011 (x_update_window_begin): Renamed from XTupdate_window_begin.
13012 (x_update_window_end): Renamed from XTupdate_window_end.
13013 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13014 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13015 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13016 (x_produce_special_glyphs): Implementation in #if 0 removed.
13017
13018 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13019 flag in the dump.
13020
13021 * dispnew.c (update_text_area): Handling of glyphs with pixel
13022 width zero removed. Decrement desired stop pos if desired row
13023 fills its line.
13024
13025 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13026 width zero removed.
13027 (BUILD_GLYPH_STRINGS): Set glyph string flag
13028 extends_to_end_of_line_p based on row's flag fill_line_p and face
13029 background and stipple. Make sure it works for composite characters.
13030
13031 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13032 fill_line_p. For window-based redisplay, add a space only if
13033 the row is empty so that we know the face to draw.
13034
13035 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13036 means draw the face of the last glyph in the text area to the
13037 right end of the text area.
13038
13039 * xdisp.c (init_iterator): Show region in window mini-buffer
13040 window refers to.
13041
427ec082 13042 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
13043 region_showing_p removed. Test for region_beg > 0 instead.
13044
13045 * dispnew.c (update_text_area): Clear to end of line if cursor is
13046 beyond the end of the desired line. Necessary because we don't
13047 have a phys_cursor_glyph with which to erase the cursor. We don't
13048 have one because this method of drawing a cursor doesn't work with
13049 lbearing/rbearing.
13050
13051 * xterm.c (XTinsert_glyphs): Block input.
13052
130531998-02-14 Gerd Moellmann <gerd@gnu.org>
13054
13055 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13056 glyph strings.
13057 (x_draw_glyph_string_background): Fill background with background
13058 pixel for the first glyph of a composite character.
13059
13060 * xdisp.c (try_window): Change return type to int. Value is zero
13061 if fonts were loaded during redisplay.
13062 (redisplay_window): Return if fonts have been loaded during
13063 redisplay.
13064 (append_space): New parameter default_face_p.
13065
130661998-02-13 Gerd Moellmann <gerd@gnu.org>
13067
13068 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13069 don't let a partially visible line in a current matrix stay
13070 enabled.
13071
130721998-02-09 Gerd Moellmann <gerd@gnu.org>
13073
13074 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13075 in #if PROMPT_IN_BUFFER.
13076
13077 * xdisp.c (display_line): If row ends in ZV, make the space
13078 that is added to place the cursor on it appear in default face.
13079
427ec082 13080 * xterm.c (expose_area): New function redrawing a single
26901792
DL
13081 glyph row area.
13082 (expose_line): Use it to redraw all areas of a row.
13083
13084 * dispextern.h (move_operation_enum): New enum
13085 move_operation_enum.
13086
13087 * window.c (window_scroll_pixel_based): Remove now unnecessary
13088 code that made sure that it->current_y doesn't become negative.
13089
13090 * xdisp.c (move_iterator_in_display_line_to): New parameter
13091 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13092 (move_iterator_to): Ditto.
13093
13094 * dispextern.h (struct glyph_matrix): New member window_width.
13095
13096 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13097 case of changing window height.
13098
13099 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 13100 border to the left.
26901792
DL
13101
13102 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13103 says this aspect of Emacs is currently redesigned.
13104
13105 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13106 have to draw a vertical border.
13107
13108 * window.c (window_scroll_pixel_based): When scrolling down by
13109 screen-fulls, make sure it.current_y doesn't get negative because
13110 this would confuse move_iterator_vertically.
13111
13112 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13113 the case continuation lines are involved.
13114 (try_window_id): Don't set the cursor into scroll margins.
13115
131161998-02-08 Gerd Moellmann <gerd@gnu.org>
13117
13118 * xterm.c (x_append_glyph): Don't compute left_overhang and
13119 right_overhang.
13120 (XTproduce_glyphs): left_overhang and right_overhang removed.
13121 Set it->glyph_row->contains_overlapping_glyphs_p.
13122
13123 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13124 and right_overhang removed.
13125
13126 * dispextern.h (struct glyph_row): New member
13127 contains_overlapping_glyphs_p used to optimize glyph drawing.
13128 (struct display_iterator): left_overhang and right_overhang
13129 removed.
13130 (struct glyph): Ditto.
13131
13132 * xterm.c (x_draw_relief): Removed.
13133 (x_draw_bitmap): Renamed from draw_bitmap.
13134 (x_draw_glyphs): Completely new implementation of draw_glyphs
13135 capable of handling arbitrary lbearing and rbearing values.
13136 Several sub-functions not mentioned here.
13137
131381998-01-30 Gerd Moellmann <gerd@gnu.org>
13139
13140 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 13141 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
13142 other cases.
13143 (draw_glyphs): Move start to the left and end to the right if they
427ec082 13144 overlap with previous or following characters.
26901792 13145 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 13146 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
13147 character under the cursor would be invisible.
13148 (x_draw_bar_cursor): Don't draw over previous character if it
13149 has right_overhang.
13150
13151 * window.c (get_phys_cursor_glyph): Return the glyph under a
13152 window's physical cursor.
427ec082 13153
26901792
DL
13154 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13155 (x_draw_bar_cursor): Ditto.
13156 (x_erase_phys_cursor): Ditto.
13157 (x_phys_cursor_in_rect_p): Ditto.
13158 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13159
13160 * window.c (make_window): Remove reference to phys_cursor_glyph.
13161 (replace_window): Ditto.
13162
13163 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13164 now always a glyph present for placing the cursor on it in
26901792
DL
13165 each glyph row, even at the end of a line.
13166
13167 * xdisp.c (append_space): Function to add a space to an iterators
13168 glyph row.
13169 (display_line): Add spaces at the end of lines that are used to
13170 place the cursor on them.
13171 (compute_line_metrics): If row consists of a space only that was
427ec082 13172 added to place the cursor on it, use that space's height as the
26901792
DL
13173 line height.
13174
131751998-01-29 Gerd Moellmann <gerd@gnu.org>
13176
13177 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13178 glyphs.
13179
131801998-01-28 Gerd Moellmann <gerd@gnu.org>
13181
13182 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13183 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13184
13185 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13186 right_overhang.
26901792
DL
13187 (struct display_iterator): Ditto.
13188
13189 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13190 glyphs have different ascent or descent than original row.
13191
13192 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13193 row->max_descent only if unknown.
13194 (display_line): Compute row->max_ascent and row->max_descent.
13195 (display_string): Ditto.
13196
13197 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13198 phys_cursor_descent.
26901792
DL
13199
13200 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13201 (x_draw_hollow_cursor): Ditto.
13202 (x_erase_phys_cursor): Ditto.
13203 (x_display_and_set_cursor): Set them.
13204 (x_append_glyph): Don't set glyph members that were removed.
13205
13206 * dispextern.h (struct glyph): Members ascent, descent,
13207 contributes_to_line_height_p removed.
13208
132091998-01-25 Gerd Moellmann <gerd@gnu.org>
13210
13211 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13212 names for face ids of frame default face and mode line face.
13213
13214 * xdisp.c (compute_face_at_iterator_string_position): If
13215 displaying a mode line use MODE_LINE_FACE_ID instead of
13216 DEFAULT_FACE_ID.
13217
13218 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13219 (display_string): Ditto, additional parameter lisp_string.
13220 (display_line): Call display_string with Lisp mini-buffer prompt
13221 string.
13222 (display_menu_bar): Call display_string with Lisp string.
13223 (display_mode_element): Ditto.
13224 (next_element_from_string): Make it work for non-overlay Lisp
13225 strings with field width and precision.
13226
13227 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13228 PROMPT_IN_BUFFER.
13229
13230 * xfaces.c (compute_string_char_face): Fix face computation
13231 for overlay strings.
13232
13233 * xdisp.c (struct overlay_entry): Add member after_string_p.
13234 (load_overlay_strings): Simplify.
13235
13236 * window.c (delete_window): Defer glyph matrix adjustment.
13237 (Fsplit_window): Ditto.
13238 (change_window_height): Ditto.
13239 (Fset_window_configuration): Ditto.
13240 (Fset_window_margins): Ditto.
13241 * frame.c (set_menu_bar_lines): Ditto.
13242 (Fmake_terminal_frame): Ditto.
13243 * dispnew.c (change_frame_size_1): Ditto.
13244
132451998-01-24 Gerd Moellmann <gerd@gnu.org>
13246
13247 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13248
427ec082 13249 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13250 position has overlay strings.
13251
13252 * xdisp.c (display_line): Don't set cursor if row ends in middle
13253 of overlay string.
13254 (Fdump_redisplay_state): Print complete row start and end
13255 position.
13256 (redisplay_window): Cursor movement when matrix hasn't changed---
13257 if PT < last_point, maybe move forward if row ends at PT and
13258 in middle of char.
13259
13260 * minibuf.c (read_minibuf): Save the value of
13261 minibuffer_prompt_length in minibuf_save_list.
13262 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13263
13264 * xdisp.c (redisplay_window): Add assertion for cursor movement
13265 case, PT < last_point.
13266 (move_iterator_in_display_line_to): If to_pos specified, move
13267 over before-strings.
13268
13269 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13270 start.string_index > 0.
13271
13272 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13273 is set. Retry redisplay if fonts_changed_p is set before update.
13274
13275 * xterm.c (x_load_font): Set fonts_changed_p.
13276
13277 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13278
13279 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13280
13281 * xdisp.c (try_window): Check fonts_changed_p.
13282 (try_window_reusing_current_matrix): Ditto.
13283 (try_window_id): Ditto.
13284
13285 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13286 (fonts_changed_p): Flag indicating a font change since the last
13287 glyph matrix adjustment.
13288
13289 * xterm.c (x_per_char_metric): Use font->max_bounds as
13290 char metric of the font's default char if the default char
13291 hasn't per char metric itself.
13292
13293 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13294 for font change.
13295 (min_char_bounds): Check face->font != NULL.
427ec082 13296 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13297 case of invalid min_bounds contents.
13298 (min_char_bounds): Call font_min_bounds.
13299
133001998-01-22 Gerd Moellmann <gerd@gnu.org>
13301
13302 * xdisp.c (start_display): Don't set it->prompt_width if
13303 PROMPT_IN_BUFFER.
13304 (move_iterator_in_display_line_to): Ditto.
13305 (display_line): Don't display prompt via display_string if
13306 PROMPT_IN_BUFFER.
13307
13308 * minibuf.c (Fminibuffer_prompt_width): Return value from
13309 current_buffer if PROMPT_IN_BUFFER.
427ec082 13310 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13311 mini-buffer and make it read-only.
13312 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13313 minibuffer_prompt_length instead of BEGV.
13314 (Fminibuffer_complete_word): Ditto.
13315 (Fminibuffer_complete_word): Ditto.
13316
13317 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13318 is less than mini-buffer prompt width, use prompt width as start.
13319
13320 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13321 position is less than mini-buffer prompt width, use the prompt
13322 width as start.
13323
13324 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13325 end of prompt if applied to a mini-buffer and BEG reached.
13326
133271998-01-21 Gerd Moellmann <gerd@gnu.org>
13328
13329 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13330 length to start position.
13331
13332 * buffer.c (Fget_buffer_create): Initialize
13333 minibuffer_prompt_length.
13334 (Fmake_indirect_buffer): Ditto.
13335 (Fkill_buffer): Ditto.
13336
13337 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13338 if PROMPT_IN_BUFFER.
13339
133401998-01-19 Gerd Moellmann <gerd@gnu.org>
13341
13342 * xdisp.c (next_element_from_string): Make it work for arbitrary
13343 Lisp strings.
13344 (set_iterator_to_next): Advance to next overlay string only
13345 if it->string is an overlay string.
13346
13347 * dispextern.h (struct display_iterator):
13348 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13349
427ec082 13350 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13351 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13352
13353 * xdisp.c (next_element_from_string): Renamed from
13354 next_element_from_overlay_string.
427ec082 13355 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13356 compute_face_at_iterator_overlay_string_position.
13357
13358 * dispextern.h (struct display_iterator): Member overlay_string
13359 renamed string.
13360
13361 * xdisp.c (next_element_from_c_string): Renamed from
13362 next_element_from_string.
13363
13364 * dispextern.h (struct glyph_pos): Reversed meaning of
13365 overlay_string_index and string_index.
13366
13367 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13368 this function always return the first character of an overlay
13369 string.
13370
133711998-01-18 Gerd Moellmann <gerd@gnu.org>
13372
13373 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13374 forced or new pos > next_invisible_check_pos.
13375 (redisplay_window): Don't try same window start if PT < window
13376 start.
13377 (move_iterator_vertically): Bug fix satisfying post-condition
13378 when ZV is reached and no newline in front.
13379 (move_iterator_vertically_backward): New implementation.
13380 (move_iterator_vertically_backward): Bug fixes.
13381
13382 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13383 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13384 (adjust_glyphs_for_font_change): Always adjust.
13385
13386 * dispnew.c (struct dim): Use int.
13387
13388 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13389 (allocate_face): Initialize it.
13390 (load_font): Use XLoadQueryFont again instead of x_load_font.
13391 (unload_font): Use XFreeFont again.
13392 (min_char_bounds): Iterate over fonts of faces. Use frame's
13393 font sizes as default. Remove parameter except_last_font_p.
13394
13395 * dispextern.h (struct face): Add font_name.
13396
133971998-01-17 Gerd Moellmann <gerd@gnu.org>
13398
13399 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13400 to start of line if ending at ZV and no newline in front.
13401 (move_iterator_to): If to_y specified, always first move to x = 0,
13402 so that move stops at line start instead of line end. This is
13403 probably what callers would expect to happen.
13404
13405 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13406 can handle different line heights.
13407 (window_scroll_line_based): Formerly window_scroll.
13408 (window_scroll): Call both.
13409
13410 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13411 (move_iterator_in_display_line_to): Ditto.
13412 (display_line): Ditto.
13413
13414 * minibuf.c (read_minibuf): Conditionally insert prompt into
13415 buffer instead of handling prompts specially. Change other
13416 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13417
13418 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13419 upper window. Optimize calls to xrealloc if same width.
13420
13421 * xdisp.c (redisplay_window): Don't use
13422 try_window_reusing_current_matrix if window scroll functions
13423 exist.
13424
13425 * dispextern.h (struct display_iterator): Member
13426 redisplay_end_trigger_p removed.
13427
13428 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13429 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13430
134311998-01-16 Gerd Moellmann <gerd@gnu.org>
13432
13433 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13434 nil. Optimize truncate-lines t and moving backward.
13435 (move_iterator_to_previous_visible_line_start): Contains the heart
13436 of the previous set_iterator_to_previous_visible_line_end. Don't
13437 reseat the iterator. Used by move_iterator_by_lines.
13438 (set_iterator_to_previous_visible_line_start): Call function
13439 above.
13440 (move_iterator_in_display_line_to): Check TO_POS before doing
13441 anything else. Otherwise to_pos == PT would move to x of PT+1.
13442
13443 * indent.c (Fvertical_motion): Use display_iterator.
13444
13445 * xdisp.c (move_iterator_by_lines): New function moving by screen
13446 lines.
13447 (redisplay_window): Use it.
13448 (move_iterator_to): Correct branch of to_vpos specified.
13449 (move_iterator_vertically_backward): Increment nlines after having
13450 backed up over some lines because the last line was not backed up
13451 over.
13452 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13453 calculate it->vpos and it->current_y relative to this row.
427ec082 13454 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13455 have a big effect and it is complex.
13456 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13457
134581998-01-15 Gerd Moellmann <gerd@gnu.org>
13459
13460 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13461 join nicely. Lines with widths > 2 don't join nicely under X.
13462 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13463 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13464 width 1; remove references to relief_gc_line_width.
13465 * xfns.c (x_make_gc): Ditto.
13466
13467 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13468 if relief changes.
13469 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13470 to get a relief because they can be negative.
13471
13472 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13473 positions are for the middle of lines under X.
13474
13475 * xdisp.c (try_window_id): Always search for the cursor by setting
13476 w->cursor.vpos = -1. Search in unchanged rows at the top and
13477 bottom if cursor not found in displayed lines.
427ec082 13478 (display_mode_line): First extend face, then set right shadow
26901792
DL
13479 flag. Otherwise the wrong glyph gets the right shadow.
13480
13481 * dispnew.c (direct_output_for_insert): Give up if line contains
13482 a tab. The number of spaces inserted for a tab changes if we
13483 insert glyphs in front of it.
13484
13485 * xterm.c (x_list_fonts): Changes undone because the Lisp
13486 implementation for make-face-smaller, make-face-larger, and
13487 make-face-fixed can do without them.
13488
13489 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13490 inserted.
13491
13492 * xdisp.c (try_window_id): First compute beg_unchanged, then
13493 compare with window start pos.
13494
13495 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13496 fixed-width font.
13497 (syms_of_xfns): defsubr for x-face-fixed-p.
13498
13499 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13500 enabled, don't do anything because this row will be newly drawn
13501 anyway and because we can additionally no longer determine the row
13502 height.
13503
13504 * xdisp.c (display_line): Bug fix cursor positioning.
13505
13506 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13507 removed. x-list-fonts.c is now obsolete.
13508 (Qfixed, Qvariable): Moved here from xfaces.c.
13509
135101998-01-14 Gerd Moellmann <gerd@gnu.org>
13511
13512 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13513 FETCH_BYTE for truncated lines.
13514 (display_line): Set cursor differently.
13515 (display_line): Fixed bug setting last_pos_on_this_line wrong
13516 for truncated lines.
13517
13518 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13519 redisplay.
13520
13521 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13522
13523 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13524 assertion that character dimensions are not zero.
13525
13526 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13527 input is blocked.
13528
13529 * xdisp.c (decode_mode_spec): Faster implementation of line number
13530 display.
13531
13532 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13533 bitmaps if bitmaps don't fill the entire area.
13534 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13535
427ec082 13536 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13537 pixel height of flags bitmaps.
13538
13539 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13540 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13541
13542 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13543 in pixels of a flags area of a frame.
13544 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13545 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13546 occupied by a flags area.
13547
135481998-01-13 Gerd Moellmann <gerd@gnu.org>
13549
13550 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13551 window_end_valid.
13552
13553 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13554 GLYPH_DEBUG != 0.
13555
13556 * xdisp.c (display_line): Correct wrong calculation of row->x for
13557 the case of nglyphs == 1.
13558 (hscroll_window_tree): Renamed from hscroll_windows.
13559 (hscroll_windows): New function calling hscroll_window_tree that
13560 clears desired matrices on a frame when hscroll has been changed.
13561 (redisplay_p): Global flag set during redisplay.
13562 (redisplay_internal): Set and clear redisplay_p.
13563
13564 * xfaces.c (min_char_bounds): Add assertion that width and height
13565 are not zero at the end. Initialize *height and *width to -1,
13566 instead of using BITS_PER_SHORT. If font has min_bounds.width
13567 zero, use its max_bounds.width.
13568
13569 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13570 width and height.
13571
135721998-01-12 Gerd Moellmann <gerd@acm.org>
13573
13574 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13575 changed. Don't clear desired matrices.
13576
13577 * xdisp.c (hscroll_windows): Compute pt after setting
13578 current_buffer.
13579 (redisplay_window): Don't do cursor movement based on current
13580 matrix if just_this_one_p is zero.
13581
13582 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13583 specifying that fixed-width, variable-width fonts or both
26901792
DL
13584 should be returned.
13585
13586 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13587 (syms_of_xfaces): Initialize them.
13588
13589 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13590 cached information.
13591
135921998-01-11 Gerd Moellmann <gerd@acm.org>
13593
13594 * xdisp.c (display_mode_line): Extend face to end of line.
13595
13596 * xdisp.c (echo_area_display): Don't call display_string with
13597 echo_area_glyphs_length == 0 which would mean infinite precision.
13598 (redisplay_internal): Adjust window_end_vpos if necessary.
13599
136001998-01-07 Gerd Moellmann <gerd@acm.org>
13601
13602 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13603
136041998-01-05 Gerd Moellmann <gerd@acm.org>
13605
13606 * xdisp.c (get_row_start_continuation_line_width): Removed.
13607 (init_iterator_to_row_start): Set it.current_x from row.
13608 (try_window_id): Set it.continuation_lines_width directly from
13609 row.
13610
13611 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13612 selected_window.
13613 (hscroll_windows): Center cursor in window.
13614 (hscroll_windows): Call move_iterator_in_display_line_to.
13615
136161998-01-04 Gerd Moellmann <gerd@acm.org>
13617
13618 * xdisp.c (hscroll_windows): Check hscroll < 0.
13619 (redisplay_window): Allow quick cursor movement if overlay arrow
13620 but frame uses window-based redisplay.
13621 (display_line): Take special case for nglyphs == 1 out of #if 0.
13622 (display_line): Set row->ends_at_zv_p after the loop displaying
13623 glyphs because ZV can be in truncated text.
13624 (hscroll_windows): Use init_iterator_to_row_start.
13625
13626 * dispnew.c (scrolling_window): Calculation of overlapping
13627 runs fixed.
13628 (row_equal_p): Compare continued_p and continuation_line_p.
13629
136301998-01-02 Gerd Moellmann <gerd@acm.org>
13631
13632 * xterm.c (x_get_mode_line_face_gc): Renamed from
13633 x_get_modeline_face_gc.
13634
13635 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13636 buffer position to look for text properties.
13637 (get_face_from_cursor_pos): Use it.
13638 (compute_face_at_iterator_position): Use it.
13639 (next_element_from_buffer): Use it.
13640
13641 * dispnew.c (scrolling_window): Decrement run's y-position
13642 when extending it backwards.
13643
13644 * xterm.c (do_line_dance): Don't ever copy more than window height.
13645
136461998-01-01 Gerd Moellmann <gerd@acm.org>
13647
13648 * xdisp.c (redisplay_window): Cursor motion in unchanged
13649 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13650 (init_iterator_to_next_row_start): Special handling of lines
13651 ending in middle of char removed.
13652 (hscroll_windows): Hscroll windows only if window_end_valid is not
13653 nil.
13654 (try_window_reusing_current_matrix): Call hscroll_windows.
13655 (init_iterator_to_row_start): Initialize iterator for display
13656 starting at a position given by a glyph_row->start.
13657 (redisplay_window): Don't use vmotion because it gives wrong
13658 results if lines are continued and variable width fonts are used.
13659
427ec082 13660 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13661 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13662 the middle of a character.
427ec082 13663 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13664 the middle of a character.
13665
13666 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13667 it.
13668 (next_element_from_display_vector): Use it->dpvec_index.
13669 (reseat_iterator): Reset it.
13670 (init_iterator): Reset it.
13671 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13672 it->pos.dpvec_index from a glyph_pos structure.
13673 (init_iterator_from_glyph_pos): Call the function above.
13674 (reseat_iterator_to_glyph_pos): Ditto.
13675
13676 * dispnew.c (direct_output_forward_char): Don't use this method at
13677 overlay boundaries or near invisible text.
13678 (direct_output_forward_char): Step through glyph row to find
13679 cursor position.
13680
427ec082 13681 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13682 frame font if line height differs from font height.
13683
13684 * xdisp.c (set_iterator_to_next): Renamed from
13685 move_iterator_forward to avoid confusion with other move_.*
13686 functions.
13687
13688 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13689
136901997-12-31 Gerd Moellmann <gerd@acm.org>
13691
13692 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13693 same naming convention as for other GC functions.
13694 (draw_glyphs): Don't fill background when drawing a cursor and
13695 font height is less than line height.
13696
136971997-12-30 Gerd Moellmann <gerd@acm.org>
13698
13699 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13700 init_iterator_.*.
13701
13702 * xdisp.c (move_iterator_forward): Restore it->len from
13703 it->dpvec_char_len if dpend reached.
13704 (get_next_display_element): Don't consume translated char
13705 prematurely.
13706 (display_line): Don't set this_.* variables if row is continued.
13707 (start_display): Move to start of continuation line if ending
13708 up at end of continued line.
13709
13710 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13711
13712 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13713 checking TO_X and continuation lines.
13714 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13715 of a continued line, don't consider this line as unchanged because
13716 it may no longer be continued.
13717
137181997-12-29 Gerd Moellmann <gerd@acm.org>
13719
13720 * xdisp.c (try_window_id): Catch the case that moving over
13721 continuation lines moves first_unchanged_at_end_row to a row not
13722 displaying text.
13723
13724 * dispextern.h (struct glyph_row): New member
13725 continuation_lines_width. Member continuation_line_p removed.
427ec082 13726 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13727 continuation line.
13728 * xdisp.c (display_line): Set row->continuation_lines_width.
13729 (get_row_start_continuation_line_width): Set continuation lines
13730 width of iterator from continuation lines width of glyph row.
13731 (get_row_start_continuation_line_width): Make it inline.
13732 (set_window_cursor): Make it inline.
13733 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13734 (Fdump_redisplay_state): Ditto.
427ec082 13735
26901792
DL
13736 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13737 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13738
13739 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13740 after determining the continuation lines width for
13741 last_unchanged_at_beg_row.
13742
13743 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13744
13745 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13746 which support faces.
13747 (init_display_iterator): Ditto.
13748 (move_iterator_via_matrix): Skip over truncation glyph at the row
13749 start on terminal frames.
13750 (hscroll_windows): Choose hscroll margin differently for window
13751 system and terminal frames.
13752
137531997-12-28 Gerd Moellmann <gerd@acm.org>
13754
13755 * xdisp.c (hscroll_windows): Change hscroll of windows.
13756 (redisplay_internal): Call it.
13757
427ec082 13758 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13759 doesn't fit completely on the line.
13760 (direct_output_forward_char): Give up for non-ASCII chars.
13761 (direct_output_forward_char): Set redisplay_performed_directly_p.
13762
13763 * dispextern.h (struct display_iterator): Make first_visible_x
13764 and last_visible_x ints; this is for very long truncated lines.
13765
13766 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13767 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13768 positioning problems with the mouse.
13769 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13770 >= it->last_visible_x instead of >.
13771 (display_line): Ditto.
13772
13773 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13774 loaded.
13775 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13776 non-ASCII chars differently. Always produce 1 glyph for composite
13777 chars. If font not found, use CHARSET_WIDTH to calculate width of
13778 non-ASCII chars.
13779 (x_get_char_font_and_encoding): Return null if font could not be
13780 loaded. Reset font to null if fontset could not be loaded.
13781 (draw_glyphs): Fill background if font not found.
13782 (draw_glyphs): Unused parameter just_foreground_p removed. New
13783 parameter composite_glyph.
13784 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13785 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13786 draw_glyphs when calling it recursively for composite chars.
13787
137881997-12-27 Gerd Moellmann <gerd@acm.org>
13789
13790 * xterm.c: Patches from handa.etl.go.jp integrated.
13791 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13792 find a font_info.
13793
13794 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13795 for nglyphs == 1.
13796
13797 * xterm.c (x_draw_relief): Draw relief lines.
13798 (draw_glyphs): Call x_draw_relief.
13799
138001997-12-26 Gerd Moellmann <gerd@acm.org>
13801
13802 * xfns.c (x_make_gc): Create relief GC's.
13803
13804 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13805 (setup_frame_gcs): Initialize them.
13806 (EmacsFrameDestroy): Free them.
13807
427ec082 13808 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13809 last_unchanged_at_beg_row is continued or a continuation line.
13810 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13811 (redisplay_window): Case point has changed, and it has not
26901792
DL
13812 moved off the frame. Don't increment row if PT equals the row
13813 end if the row ends in ZV.
13814
13815 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13816 (expose_line): Call it.
13817 (x_after_update_window_line): Call it.
13818
13819 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13820 reached.
13821
13822 * xterm.c (x_after_update_window_line): Draw continuation line
13823 bitmap.
13824
13825 * dispnew.c (update_window_line): Call
13826 after_update_window_line_hook when row's continuation_line_p
13827 changes.
13828
13829 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13830
13831 * xdisp.c (display_line): Handle continued lines on window system
13832 frames differently since continuation glyphs are not displayed.
13833 (move_iterator_in_display_line_to): Ditto.
13834 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13835 into account.
13836 (move_iterator_vertically_backward): Handle dy == 0 specially.
13837 (redisplay_window): Catch the case of small windows when
13838 recentering where moving back window_height/2 moves us beyond the
13839 top of the display area of the window.
13840
138411997-12-18 Gerd Moellmann <gerd@acm.org>
13842
13843 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13844 dvpos removed.
13845
138461997-12-17 Gerd Moellmann <gerd@acm.org>
13847
13848 * dispnew.c (direct_output_forward_char): Correct new cursor
13849 x-position.
13850
138511997-12-16 Gerd Moellmann <gerd@acm.org>
13852
13853 * xterm.c (x_after_update_window_line): Remove unused parameters.
13854 (XTclear_end_of_line): Clear to display_height instead of
13855 display_height - 1.
13856
13857 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13858 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13859 rows have different y-positions, or different height.
13860
138611997-12-14 Gerd Moellmann <gerd@acm.org>
13862
13863 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13864
13865 * window.c (coordinates_in_window): Call frame_mode_line_height.
13866
13867 * xterm.c (x_draw_3d_border): Removed.
13868 (x_draw_row_borders): Removed.
13869
13870 * dispnew.c (update_window): References to
13871 FRAME_MODE_LINE_BORDER_WIDTH removed.
13872
13873 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13874 (FRAME_MODE_LINE_HEIGHT): Removed.
13875
13876 * xterm.c (draw_3d_borders_p): Removed.
13877 (draw_glyphs): Ditto.
13878 (XTwrite_glyphs): Ditto.
13879 (expose_line): Ditto.
13880 (x_initialize): Ditto.
13881
13882 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13883 frame_mode_line_height.
13884
13885 * term.c (frame_mode_line_height): Get the pixel height of a
13886 frame's mode line.
13887 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13888 versions.
13889
26901792
DL
13890 * xterm.c (x_initialize): Set the hook.
13891 (XTframe_mode_line_height): X version of frame_mode_line_height.
13892
13893 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13894 output buffer.
13895 (display_string): Don't add right truncation mark if line ends in
13896 padding space.
13897 (init_display_iterator): If called with modeline_p non-zero, set
13898 face_id to 1, which is the id of the mode line face.
13899
13900 * keyboard.c (cmd_error_internal): Write to stderr if selected
13901 frame is Vterminal_frame under X. This is the case when a font
13902 cannot be loaded when Emacs starts. Replace test for
13903 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13904
13905 * xfaces.c (compute_overlay_string_char_face): Compute the
13906 face of a character in an overlay string.
13907 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13908 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13909 Use it.
13910
13911 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13912 set_iterator_to_next_overlay.
13913 (struct overlay_entry): Structure used to sort overlay strings.
13914 (compare_overlay_entries): Compare overlay strings.
13915 (load_iterator_with_overlay_strings): Load a chunk of overlay
13916 strings.
13917 (get_overlay_strings_at_iterator_position): Call it.
13918 (next_element_from_overlay_string): Set it->object to the overlay
13919 string. Prepare for setting it->position to a string position.
13920 (get_overlay_strings_at_iterator_position): Renamed from
13921 get_overlays_at_iterator_position.
13922 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13923 chunks of overlay strings.
13924 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13925
13926 * dispextern.h (struct display_iterator): New vector
13927 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13928 overlays and n_overlays.
13929 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13930 renamed to string_index.
13931
139321997-12-13 Gerd Moellmann <gerd@acm.org>
13933
13934 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13935 when allocating a vector.
13936 (release_iterator): Removed.
13937 (restore_iterator): Removed.
13938 (copy_iterator): Removed.
13939
139401997-12-08 Gerd Moellmann <gerd@acm.org>
13941
13942 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13943 clearing a mini-buffer window that is not active.
13944 (redisplay_window): Do not scroll one line too early when last
13945 window line is completely visible.
13946 (init_display_iterator): Leave some room to display the cursor
13947 after the last glyph on a continued line.
13948
13949 * xterm.h (struct x_output): trunc_area_extra renamed
13950 flags_areas_extra.
13951 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13952
13953 * dispnew.c (update_window_line): Call
13954 after_update_window_line_hook when current row is not enabled
13955 which is the case after a frame has been cleared.
13956
13957 * xdisp.c (display_mode_line): Reset row flags for truncation
13958 on right side for the mode line.
13959
13960 * xterm.c (bitmap_type): Type of bitmap to display in flags
13961 area of frame.
13962 (x_after_update_window_line): Use the enum.
13963 (draw_bitmap): Ditto.
13964
139651997-12-07 Gerd Moellmann <gerd@acm.org>
13966
13967 * xterm.c (x_clip_to_row): Include width of both flag areas.
13968 (do_line_dance): Ditto.
13969 (expose_window_tree): Ditto.
13970 * dispnew.c (update_window_line): Call
13971 after_update_window_line_hook for right truncation and continuation.
13972 * xdisp.c (init_display_iterator): Don't subtract width of
13973 continuation glyphs for window-based redisplay.
13974 * xterm.c (draw_bitmap): Draw continuation bitmap.
13975 * widget.c (set_frame_size): Double trunc_area_extra.
13976 (EmacsFrameSetCharSize): Ditto.
13977 * xfns.c (x_figure_window_size): Ditto.
13978 * xterm.c (x_set_window_size): Ditto.
13979 (x_after_update_window_line): Draw right truncation mark.
13980
13981 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13982
13983 * window.h: Include blocker around dispextern.h removed.
13984
13985 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13986
26901792
DL
13987 * dispextern.h (struct display_iterator): Former ovstr made a
13988 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13989 next_ovstr_invisble_check_pos; check at these positions for
13990 face changes and changes in invisible text property.
13991 (struct glyph_pos): Former ovlen now overlay_string_index.
13992
13993 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13994 overlay_string.
13995 (set_iterator_to_next_overlay_string): Set overlay_string and
13996 pos.overlay_string_index.
13997 (get_overlays_at_iterator_position): Use overlay_string and
13998 overlay_string_index.
13999 (next_element_from_overlay_string): Use overlay_string and
14000 overlay_string_index.
14001 (move_iterator_forward): Increment overlay_string_index.
14002 (try_window_id): Use overlay_string and overlay_string_index.
14003 (move_iterator_forward): At end of dpvec, maybe use method
14004 next_element_from_overlay_string for the case a character from an
14005 overlay string was translated via a display table.
14006 (reseat_iterator_to_string): Take a Lisp string.
14007 (display_string): Pass a Lisp string to reseat_iterator_to_string.
14008 (compute_face_at_iterator_overlay_string_position): Compute face
14009 based on text properties for an overlay string.
14010 (next_element_from_overlay_string): Check invisible and face text
14011 properties.
178c5d9c 14012
26901792
DL
14013 (set_iterator_to_next_overlay_string): Restore face id before
14014 overlay strings when no more overlay strings are found to return.
14015 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 14016
bb6677a8
GM
14017 A line in the following paragraph was garbled for an unknown
14018 reason. It couldn't be fully reconstructed.
178c5d9c 14019
bb6677a8 14020 (compute_base_face): Made public.
26901792
DL
14021 (merge_face_list): Ditto.
14022 (intern_computed_face): Ditto.
14023
427ec082 14024 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
14025 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14026 of row is > instead of >= last_y.
14027
14028 * buffer.h (overlays_at): Function prototype.
14029
14030 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14031 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14032
427ec082 14033 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
14034 memory of a display_iterator.
14035 (copy_iterator): Copy an iterator.
14036 (restore_iterator): Restore an iterator from a backup copy.
14037 (global): Use the functions above.
14038 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14039 * dispnew.c (direct_output_for_insert): Call release_iterator.
14040
14041 * dispextern.h (struct display_iterator): Allocate overlays
14042 vector dynamically.
14043
140441997-12-06 Gerd Moellmann <gerd@acm.org>
14045
14046 * Makefile.in (window.o): Depends on dispextern.h.
14047
14048 * buffer.c (overlays_at): Make it work when extending vectors
14049 and an initial vector of zero size.
14050
14051 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14052 from set_cursor_to_previous_visible_line_end.
14053 (set_iterator_to_next_visible_line_start): Renamed from
14054 set_cursor_to_next_visible_line_end.
14055 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14056 (compute_face_at_iterator_position): Renamed from
14057 compute_cursor_face.
14058 (set_iterator_to_next_overlay_string): Renamed from
14059 cursor_to_next_overlay_string.
14060 (get_overlays_at_iterator_position): Renamed from
14061 get_overlays_for_cursor.
14062 (reseat_iterator): Renamed from reseat_cursor.
14063 (setup_iterator_overlays_from_glyph_pos): Renamed from
14064 setup_overlays_from_pos.
14065 (init_string_iterator): Renamed from init_string_cursor.
14066 (get_next_display_element): Renamed from next_display_element.
14067 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 14068 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
14069 dynamically.
14070
14071 * xdisp.c: display_cursor renamed display_iterator.
14072 * dispextern.h: Ditto.
14073 * dispnew.c: Ditto.
14074
140751997-12-01 Gerd Moellmann <gerd@acm.org>
14076
14077 * window.c (mark_window_cursors_off): Function comment added.
14078 (window_topmost_p, window_rightmost_p): Removed because not used.
14079
140801997-11-30 Gerd Moellmann <gerd@acm.org>
14081
14082 * emacs.c (main): Function prototypes removed in profiling code.
14083 Use safe_bcopy as start of text.
14084
14085 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14086 mirrored_make_current -> make_current.
14087
14088 * xdisp.c: (store_frame_title_char): New function to store a
14089 single character for the frame title with re-allocation of
14090 frame_title_buf.
14091 (init_xdisp): Intialize frame_title_.* variables to null.
14092
14093 * dispnew.c (quit_error_check): Removed.
14094
14095 * eval.c (Fsignal): Call to quit_error_check removed.
14096 * keyboard.c (quit_throw_to_read_char): Ditto.
14097
140981997-11-23 Gerd Moellmann <gerd@acm.org>
14099
14100 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14101 to mean a zero relief.
14102
26901792
DL
141031997-11-19 Gerd Moellmann <gerd@acm.org>
14104
14105 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14106 unconditionally.
14107 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14108 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14109 (check_glyph_memory): Define function body unconditionally.
14110
141111997-11-17 Gerd Moellmann <gerd@acm.org>
14112
14113 * dispnew.c (scrolling_window): Alternative version of this
14114 function removed.
14115
141161997-11-16 Gerd Moellmann <gerd@acm.org>
14117
14118 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14119 of height CANON_Y_UNIT.
14120 * dispextern.h: Prototype for that function.
427ec082 14121 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
14122 produce empty rows. Use make_empty_enabled_row instead.
14123
14124 * dispnew.c (scrolling_window): New version using diff-like
14125 algorithm activated.
427ec082 14126
26901792
DL
141271997-11-15 Gerd Moellmann <gerd@acm.org>
14128
14129 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14130 (clear_desired_matrices): Ditto.
14131 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14132 for menu_bar_window.
14133
14134 * alloc.c (mark_object): Mark menu_bar_window of frames.
14135
14136 * xterm.c (XTupdate_window_end): Don't display cursor if
14137 pseudo_window_p.
14138
14139 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14140 set mini_p.
14141 (update_window): Don't set cursor if pseudo_window_p.
14142
14143 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14144
14145 * window.h (struct window): New flag pseudo_window_p set to
14146 1 for windows that aren't really part of the window tree, like
14147 menu_bar_window's of frames.
14148 * window.c (make_window): Initialize it.
14149 (replace_window): Ditto.
14150 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14151
14152 * frame.c (make_frame): Initialize menu_bar_window to nil.
14153
14154 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14155 FACE_RELIEF
14156
14157 * xfaces.c (copy_face): shadow_thickness -> relief.
14158 (face_eql): Ditto.
14159 (merge_faces): Ditto.
14160 (compute_base_face): Ditto.
14161 (Fset_face_attribute_internal): Ditto.
14162 * dispextern.h (struct face): Ditto.
14163
14164 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14165 it is non-nil.
14166
14167 * xdisp.c (display_menu_bar): Display the menu bar in
14168 f->menu_bar_window if appropriate.
14169 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14170
14171 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14172 dummy window and window matrices for f->menu_bar_window.
14173 (free_glyphs): Free the dummy window and its glyph matrices.
14174
14175 * frame.h (struct frame): New member menu_bar_window.
14176
141771997-11-09 Gerd Moellmann <gerd@acm.org>
14178
14179 * dispnew.c (scrolling_window): New version with diff-like
14180 algorithm.
14181
14182 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14183 old_start always start displaying at start of
14184 first_row_to_display. The previous scheme failed if the last row
14185 was fully visible.
14186
14187 * dispnew.c (update_window): Remove cost calculations. Remove
14188 redundant preempt_count calculations.
14189
14190 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14191 differently.
14192
14193 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14194
427ec082 14195 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14196 WITH_MARGINAL_AREAS is defined.
14197
427ec082 14198 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14199 removed.
14200
14201 * dispnew.c (scrolling): Call line_hash_code because hash values
14202 are not set in the frame matrix.
14203
14204 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14205 (redisplay_window): Check line_ins_del_ok before calling
14206 try_window_id.
14207 (try_window_reusing_current_matrix): Give up for terminal frames
14208 if window is not full width or we cannot insert/delete lines.
14209 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14210 frames.
14211
14212 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14213 Lisp_Object to mark_object.
14214
14215 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14216 window rows have the same glyph pointers.
14217 (try_window_id): Call it.
14218
14219 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14220 a glyph matrix.
14221 (mark_object): Call it.
14222
14223 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14224 truncations.
14225 (display_line): Ditto.
14226 (display_line): Ditto for DISP_CONTINUATION.
14227 (display_line): Truncation on right: test current_x >
14228 last_visible_x.
14229 (skip_in_display_line_to): Ditto.
14230 (skip_via_matrix): Stop skipping in glyph row at face extending
14231 glyphs or at padding spaces.
14232
14233 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14234
14235 * xdisp.c (display_line): Use glyph->object == 0 for padding
14236 glyphs.
14237 (redisplay_window): Don't let cursor move over padding
14238 spaces.
14239
14240 * dispextern.h (struct glyph): Fix comment for object.
14241
142421997-11-08 Gerd Moellmann <gerd@acm.org>
14243
14244 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14245 has a mode line.
14246 * xdisp.c (redisplay_window): Use it.
14247 (display_mode_line): Check that window wants mode line.
14248
142491997-11-03 Gerd Moellmann <gerd@acm.org>
14250
14251 * xdisp.c (display_menu_bar): Enable menu bar rows.
14252
14253 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14254 (x_erase_phys_cursor): Ditto.
14255 (x_draw_bar_cursor): Ditto.
14256
142571997-11-02 Gerd Moellmann <gerd@acm.org>
14258
14259 * dispnew.c (update_marginal_area): Update a marginal area.
14260 (update_text_area): Update text area.
14261 (update_window_line): Call both.
14262
14263 * xterm.c (XTclear_end_of_line): Translate coordinates area
14264 dependent.
14265
14266 * dispnew.c (updated_area): Row area being updated in
14267 update_window_line.
14268 (update_window_line): Set it.
14269 (update_marginal_area): Clear to end of line if not in text area.
14270
14271 * window.c (Fset_window_margins): Increment
14272 windows_or_buffer_changed. Adjust glyphs.
14273
14274 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14275 area X coordinates to frame coordinates.
427ec082 14276 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14277 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14278 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14279
14280 * xterm.c (draw_glyphs): Use text area width as display width.
14281
14282 * xdisp.c (init_display_info): Subtract widths of marginal areas
14283 from last_visible_x.
14284
14285 * alloc.c (mark_object): Mark objects in glyphs only if they are
14286 overlays. Mark only if current_matrix != 0. Activate the code.
14287
14288 * window.c (Fset_window_margins): Set margins.
14289 (Fwindow_margins): Return margin area widths.
14290 (syms_of_window): Add defsubr's.
14291
14292 * window.h (struct window): left_margin_width, right_margin_width.
14293
14294 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14295 and cols.
14296
14297 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14298 truncation/overlay arrow area.
14299 (struct frame): trunc_area_pixel_width, and _cols.
14300
14301 * window.c (Fsplit_window): Use it.
14302
14303 * window.c (Fsplit_window): Set cursor vpos to -1 after
14304 splitting.
14305 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14306 split windows.
14307
14308 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14309 of bounds cursor positions.
26901792
DL
14310
14311 * xdisp.c (redisplay_internal): Check that after cursor motion
14312 within line, PT is on same line.
14313
14314 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14315 FRAME_TRUNC_WIDTH.
14316
14317 * xterm.h (struct x_output): trunc_area_extra.
14318 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14319 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14320 * widget.c (set_frame_size): Set it.
14321 (EmacsFrameSetCharSize): Ditto.
14322 * xfns.c (x_figure_window_size): Ditto.
14323 * xterm.c (x_set_window_size): Ditto.
14324
14325 * dispnew.c (check_matrix_invariants): First try to check window
14326 ends (in #if 0).
14327
14328 * xdisp.c (try_window_reusing_current_matrix): Try window
14329 redisplay with different window start.
14330
143311997-11-01 Gerd Moellmann <gerd@acm.org>
14332
14333 * window.c (make_window): Set window_end_pos/vpos.
14334 (Fsplit_window): Zero last_cursor, window_end_valid.
14335 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14336
14337 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14338
143391997-10-31 Gerd Moellmann <gerd@acm.org>
14340
14341 * window.c (make_window): Initialize last_cursor.
14342 (replace_window): Ditto.
14343
143441997-10-29 Gerd Moellmann <gerd@acm.org>
14345
14346 * window.h: New member last_cursor.
14347 * dispnew.c (direct_output_for_insert): Set it.
14348 (direct_output_forward_char): Ditto.
14349 * xdisp.c (redisplay_internal): Ditto.
14350
143511997-10-28 Gerd Moellmann <gerd@acm.org>
14352
14353 * xdisp.c (redisplay_internal): Optimization 1 change partially
14354 reverted. Check this again later.
14355 (skip_via_matrix): Remove redundent test for
427ec082 14356 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14357
143581997-10-27 Gerd Moellmann <gerd@acm.org>
14359
14360 * dispnew.c (update_window_line): Call
14361 after_update_window_line_hook only for interesting constellations.
14362 (free_glyph_matrix): Fix memory leak.
14363
14364 * window.h: Include blocker WINDOW_H_INCLUDED, include
14365 dispextern.h.
14366 (struct window): phys_cursor_glyph as struct glyph. * window.c
14367 (make_window): Initialize it.
427ec082 14368 (replace_window): Ditto.
26901792
DL
14369 * dispnew.c (free_window_matrices): Remove freeing of
14370 phys_cursor_glyph.
14371 (check_matrix_invariants): Renamed from check_current_matrix_...
14372 * xterm.c: All references to phys_cursor_glyph changed.
14373
14374 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14375
14376 * xfaces.c: Comment update.
14377
14378 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14379 pointer. Remove phys_cursor_ascent, descent, etc.
14380 * dispnew.c (free_window_matrices): Free it.
14381 * window.c (make_window): Allocate it.
14382 (replace_window): Ditto.
14383 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14384 (x_display_and_set_cursor): Fill it.
14385 (x_phys_cursor_in_rect_p): Use it.
14386 (x_draw_hollow_cursor): Ditto.
14387 (x_draw_bar_cursor): Ditto.
14388 (x_erase_phys_cursor): Ditto.
14389
14390 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14391
14392 * xterm.c (XTget_display_info): Handle 3D facess.
14393 (draw_glyphs): Ditto.
14394
14395 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14396
14397 * xfaces.c (Fset_face_attribute_internal): New face attribute
14398 shadow-thickness.
14399 (copy_face): Handle shadow_thickness.
14400 (face_eql): Ditto.
14401 (merge_faces): Ditto.
14402 (compute_base_face): Ditto.
14403
14404 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14405 (struct display_info): Ditto.
14406 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14407 * xdisp.c (compute_cursor_face): Set it.
14408 (advance_display_cursor): Clear it.
14409
14410 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14411 (init_string_cursor): Init face_id to zero.
14412
14413 * dispextern.h (struct face): New member shadow_thickness.
14414
427ec082 14415 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14416 search to 100.
14417
14418 * dispnew.c (update_window_line): Try to resynch with current line
14419 to prevent mode line flickering.
14420
144211997-10-26 Gerd Moellmann <gerd@acm.org>
14422
427ec082 14423 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14424 on cursor_in_echo_area >= 0.
14425
14426 * xdisp.c (echo_area_display): Clear desired matrix before
14427 displaying into it.
14428 (display_menu_bar): Clear glyph row instead of hoping it is not
14429 enabled. This is safer.
14430
14431 * dispnew.c (check_current_matrix_invariants): Check only
14432 visible rows.
14433
14434 * xdisp.c (try_window_id): Handle window end setting in case of
14435 display to end of window, but only non-text lines displayed.
14436
14437 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14438 (check_current_matrix_invariants): Check used counts.
14439
14440 * Revisiob v114.
14441
14442 * dispnew.c (scrolling): Use hash codes from rows.
14443
14444 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14445
14446 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14447
144481997-10-25 Gerd Moellmann <gerd@acm.org>
14449
14450 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14451 * dispnew.c (update_window): Use it.
14452 (clear_glyph_matrix): Clear it.
14453 * xdisp.c (try_window_id): Set it.
14454
14455 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14456
14457 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14458
14459 * dispextern.h: More comments etc.
14460
144611997-10-24 Gerd Moellmann <gerd@acm.org>
14462
14463 * dispnew.c (set_window_cursor_after_update): Set cursor
14464 for cursor_in_echo_area == 0 to (0, 0).
14465
14466 * dispextern.h (struct glyph_row): New flags continuation_line_p
14467 and displays_text_p.
14468 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14469 * xdisp.c (display_line): Set them.
14470 (try_window_id): Move to start of continuation line to find out
14471 continuation_line_width.
14472 (first_unchanged_current_row): Don't retract row if continued,
14473 truncated etc.
14474
14475 * xterm.c: Map X coordinates.
14476
144771997-10-23 Gerd Moellmann <gerd@acm.org>
14478
14479 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14480 left text.
14481
14482 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14483
14484 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14485
f28eba7b 14486 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14487
14488 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14489
14490 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14491 Set this to functions to be called before/after window updates.
14492 (direct_output_for_insert): Call them.
14493 (update_window): Ditto.
14494 (update_frame): Call update_begin/ update_end for windows.
14495
14496 * xterm.c (XTupdate_window_begin): Called before window updates.
14497 (XTupdate_end): Called after window updates.
14498 (x_initialize): Set hooks to above.
14499
14500 * xdisp.c (init_display_info): Initialize c and len of
14501 display_info.
14502
14503 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14504 fonts more than once.
14505
145061997-10-22 Gerd Moellmann <gerd@acm.org>
14507
14508 * xdisp.c (display_line): Handle most common case of current_x <
14509 last_visible_x separately.
14510
14511 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14512
14513 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14514 so that face extending space doesn't compare equal to normal space
14515 with same face.
14516
14517 * xdisp.c (display_line): Make sure we have a position for
14518 a line end in an otherwise blank line if face is extended.
14519
14520 * dispnew.c (direct_output_for_insert): Increment row end position.
14521
427ec082 14522 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14523 window_end_pos.
14524
14525 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14526
14527 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14528
14529 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14530 start and end positions in rows.
14531 (increment_glyph_row_buffer_positions): Stop adjusting at
14532 glyphs with positions <= 0.
14533
14534 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14535 position including position in overlay.
26901792
DL
14536 (struct glyph_row): Use it for start and end positions.
14537 (struct display_cursor): Use it.
14538 * xdisp.c: Use it.
14539 (display_line): Set row start and end positions.
14540
14541 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14542 assignment.
14543
145441997-10-21 Gerd Moellmann <gerd@acm.org>
14545
14546 * dispnew.c (update_window): Add scrolling_window again. It's
14547 necessary for scroll_step != 0.
14548
14549 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14550 scrolling.
14551
14552 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14553
14554 * xterm.c (XTupdate_end): Flush only for messages.
14555
14556 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14557 first_unchanged_row.
14558
14559 * xterm.c (XTupdate_end): Flush if miniwindow.
14560
14561 * dispnew.c (matrix_row_last_pos): New function.
14562 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14563 Large comment moved to xdisp.c.
26901792
DL
14564
14565 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14566 (skip_via_matrix): Check window_end_valid instead of
14567 display_completed.
14568
14569 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14570 (update_window): scrolling_window commented out. It has negative
14571 effect most of the time.
14572
14573 * xdisp.c (try_window_id): Correct parameters to
14574 scroll_glyph_matrix_range.
14575
427ec082 14576 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14577
14578 * window.h: Comments for window_end_pos/vpos.
14579
f28eba7b 14580 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14581 of the window in which we are skipping.
14582
14583 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14584
14585 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14586 reached.
14587
145881997-10-20 Gerd Moellmann <gerd@acm.org>
14589
14590 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14591 a face extending glyph.
14592
427ec082 14593 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14594 (set_cursor_from_row): Set cursor position from a glyph row.
14595
14596 * dispnew.c (update_window_line): Write entire line if hash
14597 codes of lines differ.
14598
14599 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14600 if glyph row has an infinite width glyph at its end.
14601
14602 * xdisp.c (last_unchanged_current_row): Respect partially visible
14603 lines when looking for the last row displaying text.
14604 (try_window_id): Handle partially visible lines better.
14605
146061997-10-19 Gerd Moellmann <gerd@acm.org>
14607
14608 * dispnew.c (update_window): Remove unused variable.
14609 (update_window_line): Simplified.
14610
14611 * xterm.c (x_get_char_font_and_encoding): Handle most common
14612 case at the beginning.
14613
14614 * xdisp.c (advance_display_cursor): Dispatch on method and
14615 order if statements by expected call frequency. Fixed unclosed
14616 comment.
14617
14618 * xdisp.c (try_window_id): New implementation.
14619
14620 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14621 rows displaying a line end, only.
14622
146231997-10-18 Gerd Moellmann <gerd@acm.org>
14624
14625 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14626
146271997-10-14 Gerd Moellmann <gerd@acm.org>
14628
14629 * xdisp.c (display_line): Mark empty lines not corresponding to
14630 text with position -1.
14631
14632 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14633 not within window matrix bounds.
14634
14635 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14636 (struct display_info): NGLYPHS_TO_IGNORE removed.
14637 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14638 * term.c: Ditto.
14639 * xterm.c: Ditto.
14640
14641 * xdisp.c (init_display_cursor): Set it.
14642 (display_line): Use it to set W->REGION_SHOWING.
14643
14644 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14645
14646 * region-cache.h: functino prototypes with PROTO.
14647
14648 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14649
14650 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14651 a position.
14652
427ec082 14653 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14654 rectangle based on minimum character bounds.
14655
f28eba7b 14656 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14657 glyph position calculations.
14658 (make_lispy_movement): Use buffer_posn_from_coords and window
14659 relative coordinates.
14660
14661 * xterm.c (construct_mouse_click): Remove #if 0 case.
14662
14663 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14664 given row.
14665
427ec082
SS
14666 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14667 date.
26901792
DL
14668 (skip_to): Use it.
14669 (redisplay_window): Remove code skipping using current matrix.
14670
146711997-10-13 Gerd Moellmann <gerd@acm.org>
14672
14673 * xdisp.c (redisplay_window): Use available current matrix to
14674 skip faster when only point is moved withing the window.
14675
427ec082 14676 * intervals.c: Include stdio.h.
26901792
DL
14677 (find_interval): Trace to stderr to catch some nasty error
14678 that did not yet occur again with tracing.
14679 (set_point): Ditto.
14680
14681 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14682 cursor positioning on partially visible lines.
14683 (set_window_cursor_after_update): Ditto.
14684
f28eba7b 14685 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14686
14687 * window.h (struct window): start_y removed.
14688
14689 * window.c (make_window): start_y removed.
14690 (replace_window): Ditto.
14691
427ec082 14692 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14693 descent values of the last line processed by skip_to.
14694 (redisplay_window): Use them.
14695 (skip_to): Set them.
14696
14697 * dispextern.h (struct display_cursor): New member METHOD.
14698
14699 * xdisp.c: Use function member METHOD.
14700
14701 * xdisp.c (set_next_stop_pos): Determine next position at which to
14702 check for face properties, invisible text properties, and overlays.
14703 (compute_cursor_face): Use it.
14704 (get_overlays_for_cursor): Ditto.
14705 (reseat_cursor): Ditto.
14706 (next_display_element): Ditto.
14707
14708Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14709
14710 * termhooks.h: Some hooks with prototypes.
14711
14712 * term.c: Some hooks with function prototypes.
427ec082 14713
26901792
DL
14714 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14715 computing face if possible.
14716
14717 * xdisp.c (next_display_element): Use face from glyph from display
14718 table only if != 0.
14719
14720 * emacs.c: FreeBSD headers for profiling removed.
14721
427ec082
SS
14722 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14723 display cursor, use DEC_POS instread.
26901792
DL
14724
14725 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14726 all fonts are in the font table.
26901792
DL
14727 (unload_font): Don't XFreeFont.
14728
14729 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14730 row height.
14731
14732 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14733 (x_erase_phys_cursor): Clear only visible part of row.
14734 (x_draw_bar_cursor): Set clipping.
14735 (x_draw_hollow_cursor): Ditto.
14736 (x_display_and_set_cursor): Remove clipping.
14737 (expose_window_tree): Take trunc border into account.
14738 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14739 (expose_window): Use it.
14740
14741 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14742 current_x already beyond max_x.
26901792
DL
14743 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14744 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14745 last_visible_x.
26901792
DL
14746
14747 * scroll.c (scrolling_window_1): Removed.
14748
14749 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14750 based on redisplay method used.
14751 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14752 based redisplay.
14753 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14754 window based redisplay.
14755
14756 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14757 on data structures.
14758
14759 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14760 Handle own storage for purely window based redisplay.
14761 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14762 allocate_matrices.
26901792
DL
14763 (allocate_matrices_for_window_redisplay): Ditto.
14764
14765 * dispextern.h (struct glyph_matrix): window_top_y,
14766 window_height.
14767
14768 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14769 and optimize some common cases of window changes.
14770
14771 * emacs.c (main): Remove own profiling code because 0.95 now
14772 has it in.
14773
14774Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14775
d7d0dac0 14776 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
14777 (expose_window): Draw vertical border.
14778 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14779 don't do anything.
14780
14781 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14782 for non full width windows only if not window redisplay.
14783
14784 * dispnew.c (update_window_tree): Or paused_p return of called
14785 functions.
14786
14787 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14788 of window.
14789
14790 * window.c (Fset_window_configuration): adjust_glyphs being
14791 called twice.
14792 (Fset_window_configuration): Set frame garbaged if not all
14793 leaf windows reused.
14794
147951997-08-21 Gerd Moellmann <gerd@acm.org>
14796
14797 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14798 that rows should really be cleared. Used for current matrices.
14799
d7d0dac0
SM
14800 * dispnew.c (scrolling_window): Bug fix.
14801 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
14802
14803 * dispextern.h (struct run): Remove current_vpos.
14804
14805 * xterm.c (do_line_dance): Only one parameter.
14806
f28eba7b 14807 * xdisp.c (display_line): Set continued_p.
26901792
DL
14808
14809 * dispextern.h (struct glyph_row): New flag continued_p.
14810 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14811 (struct glyph_row):
26901792
DL
14812
14813Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14814
14815 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14816 when calling skip_to for continued lines.
14817
14818 * dispnew.c (change_frame_size_1): Set frame garbaged.
14819
14820 * xterm.c (expose_window): Check enabled_p of rows.
14821
14822 * xdisp.c (redisplay_internal): Compare line heights before and
14823 now for redisplay optimization 2 (hit).
14824 (display_line): Set this_line_pixel_height.
14825
14826 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14827 value.
14828 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14829 (do_line_dance): Simplified and pixel corrected.
14830
14831 * dispnew.c (scrolling_window): Simplified.
14832
14833 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14834
14835 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14836 to mode line row->x.
14837
14838Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14839
14840 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14841 override font of face.
14842 (draw_glyphs): Correct return value.
14843 (XTclear_end_of_line): Compare differently with output cursor
14844 position.
14845 (x_draw_hollow_cursor): 2 parameters, window and row.
14846
14847 * dispnew.c (update_window_line): If rows have different height
14848 or y, write entire line.
14849
f28eba7b 14850 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14851 of info struct.
14852
427ec082 14853 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14854 frame_update_line_height.
14855 (merge_faces): Don't use default font if new font has different
14856 size.
14857
14858Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14859
14860 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 14861 unknown. Some fonts have min_width zero.
26901792 14862 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 14863 line if face is merely extended to that point.
26901792 14864 (draw_glyphs): Don't assume background is filled if
d7d0dac0 14865 just_foreground_p but extending to end of line.
26901792
DL
14866
14867 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14868 for partially visible last lines.
14869 (x_clip_to_row): Ditto.
14870 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14871 display_height since line_height is really a line distance.
14872 (x_display_and_set_cursor): If cursor on padding glyph, use
14873 min_bounds pixel width.
14874
14875Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14876
14877 * xterm.c (x_clip_to_row): Height value was 1 too large.
14878 (XTclear_end_of_line): Clip to display area.
14879
14880 * xfns.c (x_figure_window_sizes): Add trunc border width
14881 to frame pixel width.
14882
14883 * xdisp.c (next_display_element): Don't display overlay strings
14884 within invisible text.
427ec082 14885 (skip_vertically_backward): Skip display lines.
26901792
DL
14886
14887Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14888
14889 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14890
14891 * xdisp.c (next_display_element): Next invisible
14892 text check position computed differently.
14893
14894 * dispextern.h (struct display_cursor): last_invisible_text_pos
14895 and display_ellipsis_for_invisible_p removed.
14896
14897 * xdisp.c (next_display_element): Set last_invisible_text_pos
14898 to the last position at which invisible text was found. Don't
14899 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14900 dpvec for `...' due to invisible text directly.
26901792
DL
14901 (redisplay_internal): Don't assert that cursor is at PT after
14902 skip_to. It may be in invisible text.
14903
427ec082 14904 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14905 x_y_to_hpos_vpos.
14906
427ec082 14907 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14908 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14909 checking for invisible text.
14910
14911 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14912
14913 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14914
d7d0dac0 14915 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
14916 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14917
14918 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14919 Removed.
14920
14921 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14922
14923 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14924 pixel coordinates.
14925 (note_mouse_highlight): Use it.
14926
14927 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14928 under a window system.
14929
427ec082 14930 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14931 necessary.
427ec082 14932 (update_window_line): Add width of face padding glyph to
26901792
DL
14933 displayed widths of rows.
14934
14935 * xterm.c (x_display_and_set_cursor): Set clipping after
14936 erasing cursor.
427ec082
SS
14937
14938 * window.c (Fset_window_configuration): Free only those
26901792
DL
14939 window matrices not reused.
14940 (get_leaf_windows): Build vector of leaf windows.
14941 Corrupted archive restored from v77.
14942
f28eba7b 14943 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14944 like display_line does.
14945
14946 * xdisp.c (display_mode_line): Don't hscroll mode line.
14947
14948 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14949 windows.
14950 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14951 garbage between mode lines when splitting windows horiz.
14952
14953 * dispnew.c (direct_output_for_insert): Bug fix.
14954
14955 * dispextern.h (struct display_cursor): New member string_length.
14956
14957 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14958 (init_string_cursor): Take precision and field_width
26901792
DL
14959 (display_string): Use string cursor, skip over invisible text.
14960
14961Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14962
14963 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14964 (x_display_and_set_cursor): Call it.
14965 (draw_glyphs): Call it
14966 (draw_bitmap): Call it.
14967
427ec082 14968 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14969 (allocate_leaf_matrix): Return flags.
14970 (row_equal_p): Compare enabled_p.
14971
14972 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14973 for type == -1.
14974
14975 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14976 (draw_glyphs): Clip height one pixel taller.
26901792 14977
427ec082 14978 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14979 mini window.
14980
f28eba7b 14981 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14982
427ec082
SS
14983 * xdisp.c (echo_area_display): Call update_single_window if
14984 possible.
26901792
DL
14985
14986 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14987 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14988 (update_single_window): Update a single window like update_frame
14989 does for all windows.
427ec082 14990 (update_window, update_window_tree): Additional argument
26901792
DL
14991 no_scrolling_p.
14992 (update_frame): Pass no_scrolling_p to update_window_tree.
14993 (update_window): Don't call scrolling_window if no_scrolling_p.
14994
14995 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14996 Erase under hollow cursor.
14997 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14998 not enabled. Draw bar cursor 1 pixel smaller.
14999
f28eba7b 15000 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
15001 since update will follow soon.
15002
15003 * xdisp.c (echo_area_display): Unitialized variable.
15004
f28eba7b 15005 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
15006 overlay arrow bitmap.
15007
f28eba7b 15008 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 15009 up to the final \n as part of the line for cursor positioning.
26901792 15010
f28eba7b
SM
15011 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15012 (x_after_update_window_line): Clear trunc marks.
26901792
DL
15013
15014 * xterm.h (FRAME_X_TRUNC_WIDTH).
15015
f28eba7b 15016 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
15017 of a window reserved for truncation mark.
15018
427ec082 15019 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
15020
15021 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 15022 hook.
26901792
DL
15023
15024 * xdisp.c (display_line): Set overlay_arrow_p in row.
15025
15026 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15027
15028 * xterm.c (x_after_update_window_line): Draw truncation marks.
15029
15030 * xdisp.c (display_line): Insert truncation for lines with
15031 current_x > 0.
15032
15033 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15034 Correct y by 1.
15035 (x_display_cursor): Use default font width if width not
427ec082 15036 known.
26901792 15037
f28eba7b 15038 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
15039
15040 * dispnew.c (set_window_cursor_after_update): Don't assume
15041 all rows are enabled.
15042
15043 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15044 of cursor.pos.
15045 (skip_in_display_line_to): Check cursor.position after call to
15046 next_display_element.
15047
427ec082 15048 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
15049 buffer position.
15050
15051 * xdisp.c (display_line): Set row->y here.
15052 (skip_in_display_line_to): Test for to_pos after all glyphs
15053 have been added to hpos so that hpos is at the end of all
15054 glyphs for to_pos.
15055 (start_display): Remove assertion.
15056
d7d0dac0 15057 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
15058 (update_window): Don't set row->y here.
15059
15060 * xdisp.c (next_display_element): Don't translate control chars
15061 from display table entries.
15062
427ec082 15063 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
15064 update end to prevent cursor flickering. Revert changes to
15065 setting cursor.endpos.
15066
15067Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15068
15069 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15070 to PT because this prevents multi-byte characters from being
15071 recognized.
15072
427ec082
SS
15073 * xdisp.c (skip_to, display_line): Advance cursor at end of
15074 truncated line.
26901792
DL
15075
15076 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15077 replaced by XRectangle.
15078
d7d0dac0 15079 * dispnew.c (scrolling_window): New method.
26901792
DL
15080
15081 * xterm.c (do_line_dance): New implementation, new method.
427ec082 15082
26901792
DL
15083 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15084 visible part of line.
15085
15086 * dispnew.c (update_window_line): Fill inverse video lines
15087 with infinite width space.
15088 (update_window): Handle completely empty matrices.
15089 (set_window_cursor_after_update): Bug fix.
15090
427ec082 15091 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
15092
15093 * dispnew.c (update_window_line): Don't ignore spaces, don't
15094 fill with spaces.
15095
15096 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15097 the first glyph having width 0.
15098
15099 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 15100 a glyph that extends to the end of the line.
26901792
DL
15101
15102 * xdisp.c (display_line): Insert one padding glyph
15103
15104 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15105 amount from info.current_x.
15106 (display_line): Ditto.
15107
15108 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15109 (change_frame_size_1): Correct cursor.x if frame gets too small.
15110 (update_window_line): Start at row->x.
15111
15112 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15113 in xdisp.c).
15114
15115 * xterm.c (set_output_cursor): Use window relative X/Y.
15116 (global): Use window relative output cursor x/y.
15117 (draw_glyphs): Remove y param. Pass window relative x/y.
15118
15119 * dispnew.c (update_window): Start rows at start_y.
15120 (update_window): Don't try scrolling because it wouldn't work
15121 with variable height lines, anyway.
15122
15123 * dispextern.h (struct glyph_row): Remove shift_left_by,
15124 add x.
15125
15126 * window.h: (struct window): New member start_y.
15127
15128 * window.c (replace_window): Initialize start_y.
15129 (make_window): Ditto.
15130
15131Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15132
15133 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 15134 the mode line.
26901792 15135
427ec082
SS
15136 * dispnew.c (update_window): Take mode line border into
15137 account.
26901792
DL
15138
15139 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 15140 of border around mode line.
26901792
DL
15141
15142 * xterm.c (x_draw_row_borders): Bug fix.
15143 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15144 drawing functions.
15145
15146 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 15147 around modeline instead of inverting it.
26901792 15148
427ec082 15149 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
15150
15151 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15152 window relative pixel coordinates as arguments.
15153
15154 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15155 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15156 COORDS mit new arguments.
15157
15158Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15159
15160 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15161 DISPLAY_LINE.
26901792
DL
15162
15163 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15164 pixel coords.
15165 (make_lispy_movement): Same.
15166
15167 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15168 with new parameter meaning.
15169
15170 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15171 from canon units to pixels.
15172 (coordinates_in_window): Pixel based.
15173 (Fcoordinates_in_window_p): Convert result pixel values back
15174 to canonical units.
15175
15176 * window.h: phys_cursor_ascent + descent instead of height.
15177
15178 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15179 chars with charset width 1.
26901792
DL
15180
15181 * dispnew.c (direct_output_for_insert): Set updated_row.
15182
15183Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15184
15185 * dispextern.h (struct glyph): Padding flag removed.
15186
15187Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15188
15189 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15190
15191 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15192
15193 * dispnew.c (update_window_line): Use pixels.
15194
15195 * xdisp.c (compute_line_metrics): Correct pixel_width by
15196 shift_left_by.
15197
15198 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15199 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15200 glyph_row -> right_to_left_p. Change references to it.
15201
15202Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15203
15204 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15205
15206 * xterm.c (XTinsert_glyphs): Implement it.
15207
15208 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15209 of a call from DIRECT_OUTPUT_FOR_INSERT.
15210
15211 * window.h (struct cursor_pos): Keeps both matrix positions
15212 and pixel positions.
15213 (struct window): Use it.
15214
15215 * dispnew.c (direct_output_for_insert): New version.
15216
15217 * xdisp.c (redisplay_internal): Don't do anything if it has
15218 already be done directly.
15219
15220 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15221 for any character.
15222
15223Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15224
15225 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15226
15227Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15228
15229 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15230 (struct glyph): ASCENT, DESCENT.
15231 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15232 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15233
15234 * xterm.c (XTget_display_info): Correct tab computation.
15235
15236 * term.c (get_display_info): Correct tab computation.
15237
15238 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15239 Renamed from CHAR_CURSOR.
15240
15241Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15242
15243 * xdisp.c (display_text_line): Mostly pixel oriented.
15244
15245 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15246
15247 * term.c (append_intermediate_glyph): Generate padding glyphs.
15248
15249 * xdisp.c (display_text_line): More into final direction.
15250
15251 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15252 (XTget_char_info): Use tabs as multiples of spaces.
15253
15254 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15255 Use tabs as multiples of spaces.
15256
15257 * dispextern.h (struct char_info ): WHAT field.
15258
15259 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15260 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15261
15262Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15263
15264 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15265 value.
15266 (init_char_info): Initialize with glyph row.
15267
15268 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15269
15270 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15271
15272 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15273 glyphs.
15274
15275 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15276 moved to xdisp.c.
15277
15278 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15279
15280 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15281 generation.
15282 (XTget_char_info): Ditto.
15283
15284 * term.c (get_char_info): Intermediate glyph generation.
15285 (append_intermediate_glyph): Ditto.
15286
15287Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15288
427ec082 15289 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15290 CHAR_CURSOR.
15291 (init_char_cursor): Initialize a CHAR_CURSOR.
15292 (get_char_and_advance): Get next character to display.
15293
15294 * dispextern.h (struct char_cursor): Cursor for iterating over
15295 display text of CURRENT_BUFFER.
15296
15297Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15298
15299 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15300
15301 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15302 New member MAX_PIXEL_HEIGHT.
15303
15304 * xterm.c (x_per_char_metric): Get per character metrics.
15305 (XTget_char_info): More cases covered.
15306
15307 * term.c (get_char_and_info): Get next character and character
15308 display information.
15309 (get_char_info): Get character display information.
15310
15311 * dispextern.h: Character display information.
15312
427ec082 15313 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15314 encode character.
15315 (XTget_char_info): Get display information about a character.
15316
15317Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15318
15319 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15320 zero if window is mini-window.
15321
15322 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15323 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15324
427ec082 15325 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15326 (clear_glyph_row): Clear pixel height.
15327 (update_window): Use PIXEL_HEIGHT.
15328
15329 * xdisp.c (display_string): Set row pixel height temporarily.
15330 (display_text_line): Ditto.
15331
427ec082 15332 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15333 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15334
427ec082 15335 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15336 line in default font.
15337 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15338 in default font.
15339 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15340
15341 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15342 in pixels.
15343
15344 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15345
15346 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15347 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15348 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15349 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15350 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15351 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15352 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15353 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15354 pixel values related to windows.
15355
15356Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15357
15358 * xterm.c (XTflash): Flash last line of frame.
15359
15360 * dispextern.h (cursor_in_echo_area): Extern declaration.
15361
15362 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15363 freezes stem from 16-bit functions.
26901792
DL
15364
15365 * xterm.c (x_display_and_set_cursor): Don't display hollow
15366 cursor in mini windows.
15367
15368 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15369 (make_window): Ditto.
15370
15371 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15372 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15373 and X_DISPLAY_BAR_CURSOR.
15374 (x_display_cursor): Use it.
15375 (x_update_window_cursor): Use it.
15376
15377 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15378 selected.
26901792
DL
15379
15380 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15381 of X and Y to denote matrix positions.
15382 (x_display_cursor): Ditto.
15383
15384 * dispnew.c (scrolling_window): Scrolling for windows.
15385
15386Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15387
15388 * dispnew.c (build_frame_matrix): Work on windows with update
15389 flag set.
15390 (build_frame_matrix_from_window_tree): Ditto.
15391 (build_frame_matrix_from_leaf_window): Ditto.
15392
15393 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15394 building frame matrix.
427ec082 15395 (redisplay_internal): Set window update flags instead of
26901792
DL
15396 building frame matrix.
15397
15398 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15399 building frame matrix.
15400
15401 * window.c (make_window): Initialize new members.
15402 (replace_window): Ditto.
15403
15404 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15405 I don't believe this is really necessary.
15406
15407 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15408 border glyph once.
26901792
DL
15409
15410Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15411
427ec082 15412 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15413 window tree off.
15414
427ec082 15415 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15416 window matrix.
15417 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15418 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15419 (x_update_cursor): Work on windows.
15420 (x_display_bar_cursor): Ditto.
15421 (x_draw_single_glyph): Ditto.
15422
15423 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15424
15425 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15426 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15427 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15428 parameter.
26901792 15429
d7d0dac0 15430 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15431
15432 * window.c (window_rightmost_p, window_topmost_p): Based on
15433 window tree.
15434
15435 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15436 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15437
15438 * window.h: PHYS_CURSOR_.* added.
15439
15440 * frame.h (struct frame): Cursor information removed.
15441
15442 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15443 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15444
15445 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15446
15447 * window.c (window_internal_width): Scroll bars no longer
15448 part of window.
15449
d7d0dac0 15450 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15451
d7d0dac0 15452 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15453
15454 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15455 (redisplay_internal): Ditto.
15456 (redisplay_window): Ditto.
15457 (redisplay_window): Ditto.
15458 (display_text_line): Ditto.
15459 (display_mode_line): Ditto.
15460
15461 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15462
15463 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15464 (direct_output_for_insert): Ditto.
15465 (direct_output_forward_char): Ditto.
15466 (update_frame_1): Ditto.
15467
15468Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15469
15470 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15471 being updated.
26901792
DL
15472 (update_window): Set and clear it.
15473
15474 * dispnew.c (update_window_line, update_window, scrolling_window):
15475 First versions.
15476
15477 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15478 bar for window borders.
15479 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15480 with spaces.
15481 (fill_up_glyph_row_with_spaces): Call above function.
15482
15483 * xdisp.c (display_text_line): Don't add vertical bar for
15484 window borders.
15485 (display_string): Ditto.
15486
15487 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15488 (replace_window): Ditto.
15489
15490 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15491
15492 * xfns.c (Fx_contour_region): Use selected window cursor position.
15493 (Fx_uncontour_region): Ditto.
15494 (Fx_select_region): Ditto.
15495
15496 * frame.c (make_frame): Remove CURSOR_X/Y.
15497
15498 * xdisp.c (redisplay_internal): Use window cursor position.
15499
15500 * dispnew.c (update_frame_1): Use cursor position of selected
15501 window.
15502 (change_frame_size_1): Ditto.
15503
15504 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15505 (XTwrite_glyphs): Use cursor position of selected window.
15506
d7d0dac0 15507 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15508
15509 * dispnew.c (set_cursor_to): Set window cursor position.
15510 (direct_output_for_insert): Use window cursor position.
15511 (init_display): Don't use frame cursor position.
15512
15513 * window.h: CURSOR_VPOS/HPOS added.
15514
15515 * frame.h (struct frame): CURSOR_X/Y removed.
15516 (FRAME_CURSOR_X): Removed.
15517 (FRAME_CURSOR_Y): Ditto.
15518
15519 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15520 (direct_output_forward_char): Ditto.
15521
d7d0dac0 15522 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15523
15524 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15525
15526 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15527
15528Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15529
15530 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15531 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15532
15533 * dispextern.h: Changed function names.
15534
15535 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15536 < 2.
15537 (clear_window_matrices): Formerly two functions for desired
15538 and current matrix.
15539 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15540 (update_frame): Return return value from UPDATE_FRAME_1.
15541
15542Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15543
15544 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15545 LAST_TEXT_VPOS.
15546
15547 * frame.c (set_menu_bar_lines): Adjust matrices.
15548
15549 * dispnew.c (set_cursor_to): Set cursor position.
15550
15551 * minibuf.c (read_minibuf): Build frame matrix.
15552
15553 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15554 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15555 relative.
26901792
DL
15556 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15557 reason.
15558
427ec082 15559 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15560 menu bar.
15561 (clear_window_records): Clear window rows.
15562 (clear_frame_records): Clear window and frame rows.
15563 (clear_glyph_matrix): Set all rows of a matrix to empty.
15564
d7d0dac0
SM
15565 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15566 Update frame if set.
26901792
DL
15567 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15568 removed.
15569 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15570 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15571
15572 * dispnew.c (assign_row): Assign one glyph row to another.
15573 (mirrored_make_current): Use it.
15574 (mirror_make_current): Use it.
15575 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15576 used counters for the current glyph row.
427ec082 15577
26901792
DL
15578
15579Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15580
15581 * lisp.h: Prototype for SCAN_BUFFER.
15582
15583 * xdisp.c (redisplay_windows): Simplified.
15584
15585 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15586 with debug checks.
15587 (window_to_frame_hpos): Convert window to frame hpos with checks.
15588 (frame_to_window_vpos): Convert frame to window vpos with checks.
15589 (frame_to_window_hpos): Convert frame to window hpos with checks.
15590
15591 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15592
15593 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15594
15595 * xdisp.c (redisplay_internal): Another instance of
15596 DISPLAY_TEXT_LINE with window relative VPOS.
15597 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15598
15599 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15600 only.
15601
15602 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15603 (redisplay_internal): Ditto.
15604
15605 * dispnew.c (cancel_window_line): Use window matrix. Changed
15606 name to CANCEL_WINDOW_LINE.
15607
15608 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15609 relative VPOS.
15610
427ec082
SS
15611 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15612 to frame vpos.
26901792
DL
15613 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15614 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15615 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15616
15617 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15618 window relative VPOS.
15619 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15620 relative VPOS.
15621
15622 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15623 MATRIX_BUFFER_POSITIONS.
15624
15625 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15626
15627 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15628
427ec082 15629 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15630 matrix. Change name to scroll_full_width_window.
15631
15632 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15633 NONINTERACTIVE.
26901792
DL
15634
15635Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15636
15637 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15638 and window matrices.
26901792
DL
15639 (adjust_window_charstarts): Use window matrix.
15640 (cancel_my_columns): Use window matrix.
15641 (direct_output_for_insert): Use window matrix, only.
15642
15643 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15644 (display_string): Call display_glyphs.
15645 (display_menu_bar_string): Display a string in a menu bar line.
15646 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15647 (display_text_line): Use window matrix.
15648 (try_window): Use window relative positions.
15649
15650Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15651
15652 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15653 (0, 0).
26901792 15654 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15655 top-most windows.
26901792
DL
15656
15657 * window.h (WINDOW_TOPMOST_P): Added.
15658
15659 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15660 (redisplay_window): Ditto.
15661 (display_text_line): Ditto.
15662 (display_menu_bar): Ditto.
15663 (display_mode_line): Ditto.
15664 (display_mode_line): Use window matrix.
15665 (display_string): Use window matrix.
15666 (display_mode_element): Ditto.
15667 (echo_area_display): Don't display if frame has no pools yet.
15668 (echo_area_display): Work with window matrix for mini window.
15669 (redisplay_window): Use window marix for mini window.
15670 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15671 use that for DISPLAY_STRING.
26901792
DL
15672
15673 * dispextern.h: Prototype for prepare_desired_row.
15674
d7d0dac0 15675 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15676
15677 * dispnew.c (adjust_window_charstarts): Always allocate window
15678 matrices.
15679 (clear_glyph_row): Only reset used counters and flags.
15680
15681Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15682
15683 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15684 line is non-empty.
26901792
DL
15685 (realloc_glyph_pool): Don't add 1 to the pool size.
15686 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15687
15688 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15689 (line_draw_cost): Ditto.
15690 (update_line): Ditto.
15691 (update_line): Use SPACE_GLYPH.
15692 (count_blanks): Additional parameter LEN.
15693
15694 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15695 (display_text_line): Don't add null-glyph end marker.
15696 (display_string): Use SPACE_GLYPH.
15697 (display_string): Don't use null-glyph end marker.
15698
15699 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15700
15701 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15702 (fill_up_glyph_row_with_spaces): Ditto.
15703 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15704 rows, instead of null-glyphs.
15705 (direct_output_for_insert): Don't add null-glyph end marker.
15706
15707 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15708 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15709 (do_scrolling): Ditto.
15710
15711 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15712 frame matrix in window matrices.
26901792 15713 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15714 Maybe do corresponding assignments in window matrices.
26901792 15715 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15716 rows agree about glyph pointers.
26901792
DL
15717 (check_matrix_pointers): Ditto.
15718 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15719 maybe mirror the operation in window matrices.
26901792 15720 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15721 frame matrix row was made current.
26901792
DL
15722
15723Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15724
15725 * dispnew.c (check_matrix_pointer_lossage): Check against
15726 pointer lossage in matrices.
15727 (get_glyph_matrix_row): Removed.
15728
15729 * scroll.c (do_scrolling): Simplified.
15730 (do_direct_scrolling): Simplified.
15731 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15732 DO_.*SCROLLING.
427ec082 15733
26901792
DL
15734
15735 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15736 (rotate_vector): Removed.
15737 (rotate_pointers): Removed.
15738 (scroll_frame_lines): Simplified.
15739
15740Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15741
15742 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15743
15744 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15745 what the name says.
15746 (clear_glyph_row): Make a glyph row structure empty.
15747 (make_matrix_row_current): Make a glyph row current.
15748 (make_window_matrix_row_current): Perform analogous row swaps
15749 for window matrices.
15750 (update_line): Call make_matrix_row_current.
15751
15752Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15753
15754 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15755 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15756 INVERSE_P.
15757 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15758 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15759
15760 * all files: use above new names.
15761
15762 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15763 SCROLL_GLYPH_MATRIX.
26901792 15764 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15765 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15766 buffer positions in a glyph row.
15767 (increment_glyph_matrix_buffer_positions): Increment buffer
15768 positions in a range of rows.
15769 (scroll_glyph_matrix): Scroll a glyph matrix.
15770 (swap_glyphs_in_rows): Swap glyphs between rows.
15771 (swap_glyph_pointers): Swap pointers between rows.
15772 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15773 (init_display): Initialize SPACE_GLYPH.
15774 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15775 spaces.
26901792
DL
15776
15777Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15778
15779 * xterm.c (dumprectangle): Use vectors in glyph rows.
15780
15781 * xdisp.c (display_text_line): Use vectors in glyph rows.
15782 (display_string): Ditto.
15783
15784 * scroll.c (do_scrolling): Use vectors in glyph rows.
15785 (do_direct_scrolling): Ditto.
15786
15787 * alloc.c (mark_object): Use vectors in glyph rows.
15788 Mark for all frame types.
15789
15790 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15791 glyph rows.
15792 (get_glyph_matrix_row): Ditto.
15793 (matrix_row): Ditto.
15794 (rotate_pointers): Ditto.
15795 (scroll_frame_lines): Ditto.
15796 (preserve_other_columns): Ditto.
15797 (cancel_my_columns): Ditto.
15798 (update_line): Ditto.
15799 (direct_output_for_insert): Ditto.
15800
15801 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 15802 instead of individual members. Use a vector of used counters.
26901792
DL
15803 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15804 (MATRIX_ROW_GLYPH_START): Ditto.
15805 (MATRIX_ROW_GLYPH_END): Ditto.
15806 (MATRIX_ROW_USED): Ditto.
15807 (MATRIX_ROW_SET_USED): Ditto.
15808
15809 * dispnew.c (line_hash_code): Simplified.
15810
15811Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15812
15813 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15814 CHANGE_FRAME_SIZE_1
15815 (preserve_other_columns): Void return.
15816 (cancel_my_columns): Void return type.
15817 (scrolling): Int return type.
15818 (do_pending_window_change): Void return type.
15819 (change_frame_size): Ditto.
15820 (bitch_at_user): Ditto.
15821 (init_display): Ditto.
15822 (syms_of_display): Ditto.
15823
15824 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
15825 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15826 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15827 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15828 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15829 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15830 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 15831 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15832
26901792 15833 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 15834 void.
26901792
DL
15835 (cancel_line): Return void.
15836 (clear_frame_records): Return void.
427ec082 15837
26901792
DL
15838 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15839 (SET_CHAR_GLYPH): Fill a character glyph.
15840 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15841 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15842 glyph.
26901792
DL
15843 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15844 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15845 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15846 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15847 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15848 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15849 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15850 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15851 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15852
15853 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15854
15855 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 15856 come below CURRENT_MATRIX.
26901792
DL
15857
15858 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 15859 member CURRENT_MATRIX.
26901792
DL
15860
15861Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15862
15863 * scroll.c (do_scrolling): Change algorithm to use pointers.
15864 (do_direct_scrolling): Ditto.
15865
15866 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15867 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15868 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15869 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 15870 Returns 1 if pool changed.
26901792
DL
15871 (matrix_row): Additional check for lost pointers to glyph rows.
15872 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
15873 allocation should take place. Addtional parameter
15874 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 15875 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
15876 when window matrix changes. Additional parameter DIM_ONLY_P set
15877 to 1 to indicate that no allocation should take place.
26901792 15878 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 15879 matrices. Optimize frame redraws.
26901792
DL
15880 (free_glyphs): Free pools.
15881 (check_glyph_memory): Check pools not freed.
15882 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15883 (scroll_frame_lines): Change algorithm to use pointers.
15884 (update_line): Ditto.
15885
15886 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15887 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 15888 MATRIX.
26901792
DL
15889
15890Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15891
15892 * dispextern.h (struct glyph_pool): Replacement for former
15893 FRAME_GLYPH_MATRIX.
15894 (struct glyph_matrix): No longer contains sizes of allocated
15895 areas.
15896
15897 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15898 no glyph pools.
15899
15900 * frame.c (make_frame): Initialize pools.
15901
15902Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15903
427ec082 15904 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15905 line moving algorithm has no intermediate steps.
15906 (do_scrolling): Ditto.
15907
15908 * Makefile.in (alloc.o): Add dependency dispextern.h.
15909
15910 * alloc.c: Include dispextern.h for glyph definitions.
15911
15912 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15913 is legal, return 0 otherwise.
15914
15915 * window.h: Add comment that windows are marked specially.
15916
15917 * alloc.c (mark_object): Mark windows specially.
15918
15919
15920Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15921
15922 * dispextern.h (struct glyph): Add member OBJECT
15923 referencing a Lisp object from which a glyph was drawn.
15924 Member TEXT_POSITION renamed POSITION.
15925 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15926
15927 * alloc.c: Include dispextern.h
15928 (mark_object): Mark objects referenced from glyphs.
15929
f28eba7b 15930 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15931
15932 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15933 (do_scrolling): Ditto.
15934
427ec082 15935 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15936 DECODE_MODE_SPEC_BUFFER added.
15937
15938 * window.h: TEMP_MATRIX removed.
15939
15940 * scroll.c: OPHYS_LINES removed.
15941
15942 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15943 FRAME_PTR -> struct frame *.
15944
15945 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15946 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15947
15948 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15949 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15950
15951 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15952 (do_verify_charstarts): Removed.
15953
15954 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15955 (Fdelete_frame): Free glyphs.
15956 (make_frame): Initialize matrix fields in frame.
15957
f28eba7b 15958 * config.in (PROTO): Added.
26901792 15959
f28eba7b 15960 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15961
15962 * window.c (Fdelete_window): Free window matrices.
15963 (Fset_window_configuration): Ditto.
15964 (Fdelete_window): Adjust glyphs.
15965 (Fsplit_window): Ditto.
15966 (change_window_height): Ditto.
15967 (Fset_window_configuration): Ditto.
15968 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15969 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15970
15971 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15972
15973 * window.c: Include dispextern.h
15974
15975 * scroll.c (do_scrolling): Use new glyphs.
15976 (do_direct_scrolling): Ditto.
15977
15978 * xdisp.c: Some function prototypes.
15979 (redisplay_internal): Don't do anything if matrices not yet set.
15980 (redisplay_internal): Use new glyphs.
15981 (try_window_id): Ditto.
15982 (copy_part_of_rope): Ditto.
15983 (display_text_line): Ditto.
15984 (display_menu_bar): Ditto.
15985 (display_mode_line): Ditto.
15986 (display_string): Ditto.
15987
15988 * xterm.c: Prototypes for some local functions.
15989 (dumpglyphs): Use new glyphs.
15990 (XTwrite_glyphs): Ditto.
15991 (dumprectangle): Ditto.
15992 (note_mouse_highlight): Ditto.
15993 (fast_find_position): Ditto.
15994 (show_mouse_face): Ditto.
15995 (x_draw_single_glyph): Ditto.
15996 (x_display_bar_cursor): Ditto.
15997 (x_display_box_cursor): Ditto.
15998 (x_new_font): Adjust glyphs when font change.
15999
16000 * term.c (clear_end_of_line): Use new glyphs.
16001 (write_glyphs): Ditto.
16002 (insert_glyphs): Ditto.
16003
16004 * Makefile.in (term.o): term.c depends on dispextern.h
16005
16006 * term.c: Include dispextern.h
16007
16008 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 16009 removed, new inserted.
26901792
DL
16010 (line_hash_code): Use new glyphs.
16011 (line_draw_cost): Ditto
16012 (cancel_line): Ditto
16013 (clear_frame_records): Ditto.
16014 (init_desired_glyphs): Ditto.
16015 (get_display_line): Ditto
16016 (scroll_frame_lines): Ditto.
16017 (preserve_other_columns): Ditto.
16018 (adjust_window_charstarts): Ditto.
16019 (cancel_my_columns): Ditto.
16020 (direct_output_for_insert): Ditto.
16021 (update_frame): Ditto.
16022 (quit_error_check): Made empty.
16023 (scrolling): Use new glyphs.
16024 (count_blanks): Ditto.
16025 (count_match): Ditto.
16026 (update_line): Ditto.
16027 (init_display): Adjust glyphs initially.
16028 (change_frame_size_1): Adjust glyphs.
16029
16030 * dispextern.h: Old glyphs removed, new added.
16031
16032 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16033
16034 * xterm.h: Prototype for min_char_bounds.
16035
16036 * window.h (struct window): Remove old glyphs, add new.
16037
16038 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 16039
26901792
DL
160401999-07-20 Dave Love <fx@gnu.org>
16041
16042 * buffer.c (syms_of_buffer): Make
16043 default-enable-multibyte-characters a user variable.
16044
160451999-07-14 Richard Stallman <rms@gnu.org>
16046
16047 * Version 20.4 released.
16048
160491999-07-14 Richard Stallman <rms@gnu.org>
16050
16051 * filelock.c (lock_file): Do nothing if purifying.
16052
160531999-07-10 Richard Stallman <rms@gnu.org>
16054
16055 * xterm.c (x_display_bar_cursor): Use the cursor-color
16056 to display the bar, not the cursor foreground pixel.
16057
160581999-07-09 Andrew Innes <andrewi@gnu.org>
16059
16060 * w32console.c (w32_use_full_screen_buffer): New variable.
16061 (syms_of_ntterm): Register it.
16062 (initialize_w32_display): Set initial frame size accordingly,
16063 respecting the LINES and COLUMNS environment variables if set.
16064
16065 * w32inevt.c (w32_console_read_socket): Use it.
16066
160671999-07-07 Kenichi Handa <handa@etl.go.jp>
16068
16069 * callproc.c (Fcall_process): Decide coding system for decoding
16070 after we set to the target buffer. If the output goes to a
16071 unibyte buffer, suppress character code conversion.
16072
16073 * fileio.c (Finsert_file_contents): If reading into a unibyte
16074 buffer, suppress character code conversion.
16075
16076 * process.c (create_process): If the output goes to a unibyte
16077 buffer, suppress character code conversion.p
16078
160791999-07-07 Andreas Schwab <schwab@gnu.org>
16080
16081 * xdisp.c (line-number-display-limit): Doc fix.
16082
160831999-07-05 Richard Stallman <rms@gnu.org>
16084
16085 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16086 (Fcall_process_region): Likewise.
16087
160881999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16089
16090 * callproc.c (init_callproc): Set exec_directory if
16091 installation_directory is non-nil, without a test of exec_path.
16092
160931999-07-01 Andrew Innes <andrewi@gnu.org>
16094
16095 * w32xfns.c (drain_message_queue): New function.
16096
16097 * w32term.h (drain_message_queue): Add extern.
16098
16099 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16100 of WaitForMultipleObjects when user input is allowed, so we can
16101 handle incoming window messages. Call drain_message_queue when
16102 there are messages waiting; this ensures that windows created
16103 indirectly from the lisp thread get processed properly, and don't
16104 hang other applications by failing to respond to broadcasts.
16105
161061999-07-01 Andreas Schwab <schwab@gnu.org>
16107
16108 * callint.c (Fcall_interactively): Ignore first element of
16109 event-symbol-elements property.
16110
161111999-07-01 Richard Stallman <rms@gnu.org>
16112
16113 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16114
161151999-07-01 Kenichi Handa <handa@etl.go.jp>
16116
16117 * minibuf.c (read_minibuf): Set the multibyteness of the
16118 minibuffer before inserting `initial' string.
16119
161201999-06-30 Richard Stallman <rms@gnu.org>
16121
16122 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16123
161241999-06-29 Richard M. Stallman <rms@gnu.org>
16125
16126 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16127 Move the handling of MALLOC_CHECK_ envvar here.
16128 (main): Moved from here.
16129
161301999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16131
16132 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16133 function, assigned to the global __malloc_initialize_hook pointer.
16134 (main): Move malloc_set_state call into malloc_initialize_hook
16135 so that it happens as early as possible.
16136
161371999-06-27 Richard M. Stallman <rms@gnu.org>
16138
16139 * keyboard.c (read_key_sequence): Properly reinitialize
16140 fkey_map after translating thru Vkey_translation_map.
16141 After translating thru Vfunction_key_map, don't reset
16142 keytrans-start to 0.
16143
161441999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16145
16146 * w32.c (get_emacs_configuration): Use GetVersionEx to
16147 handle NT5.0 correctly. Include build number in configuration.
16148 w32heap.c (osinfo_cache): New variable.
16149 (cache_system_info): Initialize osinfo_cache.
16150 w32heap.h (osinfo_cache): Declare.
16151
161521999-06-24 Richard M. Stallman <rms@gnu.org>
16153
16154 * casefiddle.c (casify_object): Use make_multibyte_string
16155 if we casify a multibyte string.
16156
161571999-06-22 Ken'ichi Handa <handa@gnu.org>
16158
16159 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16160 del_range_byte instead of del_range_1, set `inserted' to the
16161 number of characters actually inserted.
16162
161631999-06-17 Dave Love <fx@gnu.org>
16164
16165 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16166
161671999-06-18 Paul Eggert <eggert@twinsun.com>
16168
16169 * filelock.c (BOOT_TIME_FILE): New macro.
16170 (get_boot_time): Use it instead of hardwiring the file name.
16171 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16172
161731999-06-17 Dave Love <fx@gnu.org>
16174
16175 * xdisp.c (invalid_eol_type): Make it unsigned.
16176
161771999-06-17 Karl Heuer <kwzh@gnu.org>
16178
16179 * process.c (send_process): Delete unsafe/redundant assignment.
16180
161811999-06-17 Jason Rumney <jasonr@gnu.org>
16182
16183 * w32term.c (dumprectangle): Handle wide characters properly.
16184
161851999-06-16 Andrew Innes <andrewi@gnu.org>
16186
16187 * s/ms-w32.h (strerror): Override the default implementation of
16188 strerror, so we can map winsock error codes.
16189
16190 * w32.c (sys_strerror): New function.
16191
16192 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16193
161941999-06-15 Ken'ichi Handa <handa@gnu.org>
16195
16196 * buffer.c (syms_of_buffer): Don't make
16197 enable-multibyte-characters customizable.
16198
161991999-06-15 Richard M. Stallman <rms@gnu.org>
16200
16201 * editfns.c (Fuser_full_name): Doc fix.
16202
162031999-06-14 Tak Ota <ota@atc.sel.sony.com>
16204
16205 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16206 (get_bitmap_with_cache): Check if CreateBitmap failed.
16207 Adjust cache size dynamically so cache is never larger than the
16208 system limit of GDI resources.
16209 Do cache clearing inline. Move global variables to local scope.
16210
16211
162121999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16213
16214 * unexsgi.c (unexec): Dump the .rodata section from memory
16215 under IRIX6.5 in order to be able to unexec with gcc.
16216
162171999-06-11 Greg Hudson <ghudson@MIT.EDU>
16218
16219 * indent.c (compute_motion): Fix boundary case.
16220
162211999-06-11 Jason Rumney <jasonr@altavista.net>
16222
16223 * w32term.c (cancel_mouse_face): New function. See equiv
16224 changes to xterm.c on 1996-10-31.
16225 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16226 (w32_read_socket): Use cancel_mouse_face.
16227 Update frame position when size is restored.
26901792
DL
16228
162291999-06-04 Richard M. Stallman <rms@gnu.org>
16230
16231 * lread.c (Vuser_init_file): New variable.
16232 (syms_of_lread): Set up Lisp variable.
16233 (Fload): Store the file name there, if var was t before.
16234
162351999-06-04 Paul Eggert <eggert@twinsun.com>
16236
16237 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16238 doesn't work if the system date is changed, or if the system
16239 is suspended. Look at the last-modified time of
16240 /var/run/random-seed instead.
16241
162421999-06-03 Ken'ichi Handa <handa@gnu.org>
16243
16244 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16245 japanese-jisx0208-1978 correctly.
16246
162471999-06-03 Andrew Innes <andrewi@gnu.org>
16248
16249 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16250 as possible to be dumped, for safety.
16251
162521999-06-02 Ken'ichi Handa <handa@gnu.org>
16253
16254 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16255 latin-jisx0201 correctly.
16256
162571999-05-26 Ken'ichi Handa <handa@gnu.org>
16258
16259 * charset.h (Vcharset_table): Comment fixed.
16260
162611999-05-24 Richard Stallman <rms@gnu.org>
16262
16263 * coding.c (syms_of_coding): Doc fix.
16264
16265 * buffer.c (syms_of_buffer): Doc fix.
16266
16267 * filelock.c (lock_if_free): After deleting a stale lock,
16268 try again to lock the file.
16269
162701999-05-22 Andrew Innes <andrewi@gnu.org>
16271
16272 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16273 console window size.
16274 (w32_console_read_socket): Call maybe_generate_resize_event
16275 whenever input events are received, since we don't get told when
16276 the window size changes (as opposed to the buffer size, which we
16277 don't care about).
16278
16279 * w32console.c (clear_frame): Remember that the window width might
16280 be smaller than the screen buffer width.
16281 (write_glyphs): Remove redundant variable attrs. Use
16282 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16283
162841999-05-20 Andrew Innes <andrewi@gnu.org>
16285
16286 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16287 loses focus.
16288
16289 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16290 frame loses focus, and that mouse button state is reset. Ditto
16291 when the menu bar is activated.
16292
162931999-05-18 Richard Stallman <rms@gnu.org>
16294
16295 * abbrev.c (Fdefine_abbrev): Doc fix.
16296
162971999-05-13 Paul Eggert <eggert@twinsun.com>
16298
16299 * filelock.c: Fix performance bug on hosts with large
16300 /var/adm/wtmp files with no boot records.
16301
16302 (boot_time_initialized): New var.
16303 (init_filelock): Initialize it.
16304 (get_boot_time): Use it, instead of nonzero boot_time,
16305 to test whether boot_time is initialized.
16306 Don't invoke utmp routines when dumping.
16307
16308 (get_boot_time): First, try to get the boot time from the
16309 current utmp file, as this can be much faster. Don't try to
16310 get the boot time from utmp and/or wtmp more than once.
16311
16312 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16313 New arg LATEST. All uses changed.
16314
163151999-05-15 Andrew Innes <andrewi@gnu.org>
16316
16317 * w32term.c (dumpglyphs): Use correct colours for drawing
16318 rectangles in place of missing fonts, and make them the right
16319 size.
16320
163211999-05-14 Dave Love <fx@gnu.org>
16322
16323 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16324 non-nil.
16325
163261999-05-11 Andrew Innes <andrewi@gnu.org>
16327
16328 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16329 definition.
16330 (w32_wnd_proc): Reinstall debugging output.
16331 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16332 (syms_of_w32fns): Reinstall new initializer for
16333 Vw32_phantom_key_code.
16334
16335 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16336 names for most non-European charsets, to cope with wildcards or
16337 missing spec dates.
16338 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16339 to avoid deadlock when activating the menu bar.
16340
163411999-05-10 Ken'ichi Handa <handa@gnu.org>
16342
16343 * search.c (boyer_moore): Get charset base value of `untranslated'
16344 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16345
163461999-05-10 Andreas Schwab <schwab@gnu.org>
16347
16348 * fileio.c (Fread_file_name): Correct handling of dollars in file
16349 names. Protect dollars in strings put on the file-name-history.
16350 Substitute homedir by `~' also in default_filename.
16351
16352 * xdisp.c (try_window_id): Fix computation of tab_offset when
16353 backing up over a character that is splitted across lines.
16354
163551999-05-08 Kenichi HANDA <handa@etl.go.jp>
16356
16357 * coding.c (code_convert_region): If eol format is inconsistent,
16358 change coding->symbol to the sibling coding system of Unix like
16359 eol format.
16360
163611999-05-09 Richard M. Stallman <rms@gnu.org>
16362
16363 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16364
16365 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16366
163671999-05-05 Andrew Innes <andrewi@gnu.org>
16368
16369 * w32fns.c (w32_strict_painting): New variable.
16370 (w32_wnd_proc): Use it to select repaint rules.
16371 (syms_of_w32fns): Defvar it.
16372
163731999-05-04 Andrew Innes <andrewi@gnu.org>
16374
16375 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16376 charsets to the standard Windows charset for Japanese.
16377
163781999-05-04 Ken'ichi Handa <handa@gnu.org>
16379
16380 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16381
16382 * ccl.h (struct ccl_program): New member stack_idx.
16383
16384 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16385 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16386 before returing.
16387 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16388
163891999-05-03 Jason Rumney <jasonr@altavista.net>
16390
16391 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16392
163931999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16394
16395 * dired.c (make_time): Make argument type be time_t.
16396
163971999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16398
16399 * msdos.c (unibyte_display_via_language_environment): Add extern.
16400
83c8f461 164011999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16402
16403 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16404 if unibyte_display_via_language_environment is set.
16405 (unibyte_display_via_language_environment):
16406 Variable moved from xfns.c and elsewhere.
16407 (syms_of_xfns): Set up Lisp var.
16408
16409 * xfns.c (unibyte_display_via_language_environment):
16410 Variable moved to xdisp.c.
16411 (syms_of_xfns): Don't set up Lisp var here.
16412
16413 * msdos.c (unibyte_display_via_language_environment):
16414 Variable moved to xdisp.c.
16415 (syms_of_msdos): Don't set up Lisp var here.
16416
16417 * w32fns.c (unibyte_display_via_language_environment):
16418 Variable moved to xdisp.c.
16419 (syms_of_w32fns): Don't set up Lisp var here.
16420
164211999-05-02 Andrew Innes <andrewi@gnu.org>
16422
16423 * s/ms-w32.h (HAVE_FSYNC): New macro.
16424 (fsync): Map to _commit.
16425 (ftruncate): Map to _chsize.
16426
16427 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16428 for ASCII, if enabled, to avoid memory allocation overhead for
16429 implicit Unicode conversion. Also, recognize that ASCII and
16430 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16431 already contains the Unicode characters in that case.
16432 (construct_drag_n_drop): Remove old code that was
16433 trashing the drop location.
16434
16435 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16436 nlines to encoding_buffer_size (real bug was in a ccl program in
16437 lisp/international/coding.el).
16438
16439 * w32reg.c (w32_get_string_resource): Check for name in current
16440 user area, and if not found look in the local machine area.
16441
16442 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16443 (Fw32_shell_execute): New function; used to support browse-url.
16444 (syms_of_w32fns): Register it.
16445 (w32_load_system_font): Force max width to be average
16446 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16447 slowdown.
16448 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16449 already defined.
16450 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16451
16452 * unexw32.c (get_section_info): Dump back the entire EMDATA
16453 section if we can put Emacs' initialized data in a separate
16454 section, otherwise use the my_begdata/my_edata method.
16455
16456 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16457
16458 * coding.c (decode_eol): Set produced/consumed values to zero if
16459 src_bytes is <= 0 on entry.
16460
164611999-05-02 Jason Rumney <jasonr@altavista.net>
16462
16463 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16464 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16465 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16466 field in frame.
16467 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16468 (dumprectangle): Take into account the width of a left-side
16469 scroll bar.
16470
16471 * w32proc.c (sys_kill): Attach to current foreground thread
16472 when grabbing focus; necessary on NT 5.0.
16473
16474 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16475 GetUpdateRect rather than BeginPaint.
16476 (w32_wnd_proc): Attach to current foreground thread
16477 when grabbing focus; necessary on NT 5.0.
16478 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16479 debugging display messages.
16480 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16481 false matching.
16482
164831999-05-02 Kenichi HANDA <handa@etl.go.jp>
16484
16485 * coding.c (setup_raw_text_coding_system): Call
16486 setup_coding_system to initialize the fields of struct
16487 coding_system correctly.
427ec082 16488
26901792
DL
164891999-04-26 Kenichi HANDA <handa@etl.go.jp>
16490
16491 * xterm.c (x_list_fonts): Fix previous change.
16492
164931999-04-26 Richard Stallman <rms@gnu.org>
16494
16495 * config.in (HAVE_LIBXP): Add #undef.
16496 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16497
164981999-04-12 Ken'ichi Handa <handa@gnu.org>
16499
16500 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16501 by them.
16502
165031999-04-12 Karl Heuer <kwzh@gnu.org>
16504
16505 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16506
165071999-04-11 Ken'ichi Handa <handa@gnu.org>
16508
16509 * fontset.c (Fset_fontset_font): Fix previous change.
16510
165111999-04-09 Ken'ichi Handa <handa@gnu.org>
16512
16513 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16514 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16515
165161999-04-08 Richard Stallman <rms@gnu.org>
16517
16518 * process.c (Faccept_process_output): Check validity of PROCESS.
16519
165201999-04-08 Eli Zaretskii <eliz@gnu.org>
16521
16522 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16523
165241999-04-07 Richard Stallman <rms@gnu.org>
16525
16526 * xfns.c (x_set_font): Fix error message.
16527
16528 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16529 (Fnew_fontset, Fset_fontset_font): Check for them here.
16530 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16531 Fix error message syntax.
16532
16533 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16534 from the base buffer.
16535 (Fset_buffer_multibyte): Copy new multibyte status
16536 into the buffer's indirect buffers.
16537
165381999-04-07 Ken'ichi Handa <handa@gnu.org>
16539
16540 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16541 tail.
16542
165431999-04-06 Richard Stallman <rms@gnu.org>
16544
16545 * dired.c (Ffile_attributes): Doc fix.
16546
16547 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16548 Convert 0200 to meta only in a unibyte string.
16549 (Fkey_description): Likewise.
16550
16551 * eval.c (do_autoload): Preserve match data.
16552
165531999-04-06 Kenichi HANDA <handa@etl.go.jp>
16554
16555 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16556 encode_coding to avoid carryover.
16557
16558 * coding.c: Add comments for decode_coding and encode_coding.
16559
16560 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16561 a composite character by skipping its leading code.
16562 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16563 correctly.
16564
16565 * coding.c: Add comments for decode_coding and encode_coding.
16566
16567 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16568 a composite character by skipping its leading code.
16569 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16570 correctly.
16571
165721999-04-06 Eli Zaretskii <eliz@gnu.org>
16573
16574 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16575 table was used.
16576 (jp_kbd_translate_table): Support C-\.
16577 (it_kbd_translate_table): Map `>' correctly.
16578 (it_keyboard): Add `>'.
16579
165801999-04-06 Richard Stallman <rms@gnu.org>
16581
16582 * intervals.c (graft_intervals_into_buffer): Turn off
16583 inhibit_modification_hooks around calling Fset_text_properties.
16584
165851999-04-05 Kenichi HANDA <handa@etl.go.jp>
16586
16587 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16588 glyphs.
16589
165901999-04-05 Eli Zaretskii <eliz@gnu.org>
16591
16592 * msdos.c (jp_kbd_translate_table): Fix last change.
16593
165941999-04-04 Eli Zaretskii <eliz@gnu.org>
16595
16596 * msdos.c (struct kbd_translate): New struct, for key translation
16597 tables private to certain national keyboard layouts.
16598 (struct dos_keyboard_map): Add a pointer to a private translation
16599 table.
16600 (jp_kbd_translate_table): Private table for the Japanese
16601 keyboard.
16602 (jp_keyboard): Japanese keyboard layout.
16603 (it_kbd_translate_table): Private table for the Italian keyboard.
16604 (it_keyboard): Use it_kbd_translate_table.
16605 (keyboard_layout_list): Add the Japanese keyboard.
16606 (dos_rawgetc): Use the keyboard-private translation table, if
16607 available.
16608 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16609
166101999-04-02 Kenichi HANDA <handa@etl.go.jp>
16611
16612 * xdisp.c (redisplay_window): When we call compute_motion with
16613 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16614 (display_text_line): Stop the loop for processing overlay strings
16615 when we reach the right edge of the window.
16616
83c8f461 166171999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16618
16619 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16620 let the data control whether string is unibyte.
16621
166221999-03-30 Richard M. Stallman <rms@gnu.org>
16623
16624 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16625 (pop_kbd_macro): Restore the saved real_this_command.
16626 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16627
166281999-03-26 Richard M. Stallman <rms@gnu.org>
16629
16630 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16631 if buffer-file-name is nil.
16632
166331999-03-25 Jason Rumney <jasonr@altavista.net>
16634
16635 * w32select.c (Fw32_set_clipboard_data): Take into account line
16636 ends when calculating clipboard storage needed for non-ASCII text.
16637
166381999-03-25 Andrew Innes <andrewi@gnu.org>
16639
16640 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16641 (epaths.h): Renamed from paths.h.
427ec082
SS
16642 (clean):
16643 ($(BLD)\filelock.obj):
16644 ($(BLD)\lread.obj):
26901792
DL
16645 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16646
166471999-03-23 Ken'ichi Handa <handa@gnu.org>
16648
16649 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16650 ENCODE_ISO_CHARACTER for the previous change on this macro.
16651
166521999-03-23 Kenichi Handa <handa@etl.go.jp>
16653
16654 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16655 eoltype correctly for backward compatibility.
16656
166571999-03-20 Kenichi HANDA <handa@etl.go.jp>
16658
16659 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16660 invalid, produce the buffer internal byte sequence without encoding.
16661
166621999-03-19 Karl Heuer <kwzh@gnu.org>
16663
16664 * editfns.c (Fformat): Accept %i format.
16665
166661999-03-17 Karl Heuer <kwzh@gnu.org>
16667
16668 * filelock.c (get_boot_time): Test tempname, not filename.
16669
166701999-03-17 Jason Rumney <jasonr@altavista.net>
16671
e5619f6b
JR
16672 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16673 speed display.
16674
16675 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16676 speed display.
16677 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16678 New functions.
16679 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16680 Use bitmap cache.
26901792
DL
16681
16682 * w32fns.c (enum_font_cb2): Set the font height to be the
16683 character height, not the cell height.
16684 (Fw32_select_font): Initialize font dialog with current default font.
16685 (Vw32_system_coding_system): New variable.
16686 (w32_strict_filenames): Add comment.
16687 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16688 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16689 (syms_of_w32fns): Add w32-system-coding-system.
16690
166911999-03-15 Richard M. Stallman <rms@gnu.org>
16692
16693 * xterm.c (XTread_socket) <ConfigureNotify>:
16694 If cursor pos is outside the new frame size, mark cursor as off.
16695
166961999-03-14 Ken'ichi Handa <handa@gnu.org>
16697
16698 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16699
16700 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16701 by them.
16702
167031999-03-14 Richard M. Stallman <rms@gnu.org>
16704
16705 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16706 at beginning.
16707
167081999-03-14 Jason Rumney <jasonr@altavista.net>
16709
16710 * w32fns.c (w32_strict_fontnames): New variable.
16711 (Fx_create_frame): Formatting fix.
16712 (w32_load_system_font): Keep trying to load non-existant font
16713 if w32_strict_fontnames is nil. Formatting fix.
16714 (syms_of_w32fns): Add w32-strict-fontnames.
16715
16716 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16717 (dumpglyphs): Formatting fixes.
16718
167191999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16720
16721 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16722
167231999-03-10 Karl Heuer <kwzh@gnu.org>
16724
16725 * puresize.h (BASE_PURESIZE): Increase to 505000.
16726
167271999-03-09 Richard M. Stallman <rms@gnu.org>
16728
16729 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16730
16731 * filelock.c (init_filelock): New function.
16732
167331999-03-09 Dave Love <fx@gnu.org>
16734
16735 * fileio.c (Ffile_directory_p): Doc fix.
16736
83c8f461 167371999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16738
16739 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16740
167411999-03-08 Richard M. Stallman <rms@gnu.org>
16742
16743 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16744 to only the part that uses get_boot_time_1.
16745
167461999-03-07 Dave Love <fx@gnu.org>
16747
16748 * fileio.c (Finsert_file_contents): Use xfree.
16749
167501999-03-06 Kenichi Handa <handa@etl.go.jp>
16751
16752 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16753 term.o, xselect.o): Depend on ccl.h.
16754
167551999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16756
16757 * makefile.nt: Remove common multiple file compilation commands.
16758
167591999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16760
16761 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16762 newlines added when the arg NO-LINE-BREAK is nil.
16763
167641999-03-04 Karl Heuer <kwzh@gnu.org>
16765
16766 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16767
16768 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16769
167701999-03-04 Dave Love <fx@gnu.org>
16771
16772 * term.c (term_init): Use xmalloc, not malloc.
16773
16774 * callproc.c (Fcall_process): Use xmalloc, xfree.
16775
167761999-03-03 Andreas Schwab <schwab@gnu.org>
16777
16778 * eval.c (Fdefconst): Doc fix.
16779
167801999-03-01 Kenichi Handa <handa@etl.go.jp>
16781
16782 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16783
167841999-03-01 Eli Zaretskii <eliz@gnu.org>
16785
16786 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16787
167881999-02-28 Richard M. Stallman <rms@gnu.org>
16789
16790 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16791
16792 * cmds.c (internal_self_insert): Calculate column properly
16793 in overwrite-of-tab case.
16794
167951999-02-27 Andreas Schwab <schwab@gnu.org>
16796
16797 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16798 malloc in glibc 2.1.
16799
168001999-02-26 Richard Stallman <rms@gnu.org>
16801
16802 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16803
16804 * epaths.in: Renamed from paths.in.
16805 This avoids a conflict with a system header file paths.h on GNU/Linux.
16806
16807 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16808 Use epaths.h istead of paths.h.
16809
168101999-02-26 Andreas Schwab <schwab@gnu.org>
16811
16812 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16813 malloc.
16814
168151999-02-25 Dave Love <fx@gnu.org>
16816
16817 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16818
168191999-02-25 Richard Stallman <rms@gnu.org>
16820
16821 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16822 (WTMP_FILE): Default definition in case not defined.
16823 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16824
26901792
DL
168251999-02-25 Ken'ichi Handa <handa@gnu.org>
16826
16827 * keymap.c (push_key_description): If enable-multibyte-characters
16828 is nil and C is single byte, push C as is.
16829
168301999-02-24 Kenichi Handa <handa@etl.go.jp>
16831
16832 * keymap.c (push_key_description): If enable-multibyte-characters
16833 is non-nil, try to convert unibyte character to multibyte. For
16834 invalid multibyte character, show all bits by octal form.
16835 (Fsingle_key_description): Check the validity of charset for a
16836 generic character.
16837
168381999-02-23 Richard M. Stallman <rms@gnu.org>
16839
16840 * fileio.c (Ffile_regular_p): Undo previous change.
16841
16842 * eval.c (Fdefconst): Doc fix.
16843
16844 * filelock.c (get_boot_time): Don't use BUFSIZ.
16845
168461999-02-22 Andrew Innes <andrewi@gnu.org>
16847
16848 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16849 (EXTRA_LINK): Do version test with strings.
16850
168511999-02-22 Andreas Schwab <schwab@gnu.org>
16852
16853 * fns.c (Fbase64_encode_string): Fix last change.
16854
16855 * termhooks.h (event_kind): Add user_signal.
16856
16857 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16858 (syms_of_keyboard): Initialize them.
16859 (lispy_user_signals): New variable.
16860 (make_lispy_event): Handle user_signal event type.
16861
16862 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16863 (syms_of_emacs): Don't initialize them.
16864 (handle_USR1_signal, handle_USR2_signal): Set event type to
16865 user_signal instead of non_ascii_keystroke, and use plain integers
16866 as code instead of Lisp symbols.
16867
168681999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16869
16870 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16871
168721999-02-21 Richard Stallman <rms@gnu.org>
16873
16874 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16875
16876 * print.c (print_error_message): Don't crash if (cdr data)
16877 is not a list.
16878
168791999-02-21 Eli Zaretskii <eliz@gnu.org>
16880
16881 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16882
168831999-02-20 Andrew Innes <andrewi@gnu.org>
16884
16885 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16886 run, since size can vary from run to run.
16887
16888 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16889 data is included, to enable profiling.
16890 ($(EMACS)): Map file not needed for emacs.exe.
16891
16892 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16893 as malloc before calling uninterrupt_malloc, for consistency.
16894 This also enables profiling to work on WINDOWSNT.
16895
168961999-02-18 Richard Stallman <rms@gnu.org>
16897
16898 * Makefile.in (emacs.o): Depend on termhooks.h.
16899 (filelock.o): Depend on systime.h.
16900
169011999-02-18 Ken'ichi Handa <handa@gnu.org>
16902
16903 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16904 (Fdecode_big5_char): Likewise.
16905
169061999-02-17 Richard Stallman <rms@gnu.org>
16907
16908 * insdel.c (adjust_markers_for_replace): When doing an insertion
16909 (replacing a region of zero length), handle markers at the
16910 insertion point properly.
16911
169121999-02-17 Andrew Innes <andrewi@gnu.org>
16913
16914 * w32fns.c (Vw32_quit_key): New variable.
16915 (post_character_message): Use it.
16916 (syms_of_w32fns): DEFVAR it.
16917
169181999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16919
16920 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16921
169221999-02-16 Richard Stallman <rms@gnu.org>
16923
16924 * filelock.c (within_one_second): New function.
16925 (current_lock_owner): Use that.
16926 (get_boot_time): Use /proc/uptime if available.
16927 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16928 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16929
26901792
DL
169301999-02-16 Richard Stallman <rms@gnu.org>
16931
16932 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16933 (syms_of_emacs): Init and staticpro them.
16934 (handle_USR1_signal): Don't run any code, just queue up an event.
16935 (handle_USR2_signal): Likewise.
16936
169371999-02-16 Eli Zaretskii <eliz@gnu.org>
16938
16939 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16940 an integer, return it as a float. Doc string fixed.
16941
169421999-02-16 Richard Stallman <rms@gnu.org>
16943
16944 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16945 (syms_of_emacs): Init and staticpro them.
16946 (handle_USR1_signal): Don't run any code, just queue up an event.
16947 (handle_USR2_signal): Likewise.
16948
169491999-02-15 Kenichi Handa <handa@etl.go.jp>
16950
16951 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16952 ASCII correctly. Signal error on invalid characters.
16953 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16954
169551999-02-15 Eli Zaretskii <eliz@gnu.org>
16956
16957 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16958 DOS box which doubles the reported size of text in the clipboard.
16959
169601999-02-15 Kenichi Handa <handa@etl.go.jp>
16961
16962 * coding.c (decode_coding_iso2022): Don't set
16963 coding->composed_chars to 0 here.
16964 (setup_coding_system): Set coding->composed_chars to 0 here.
16965
169661999-02-10 Richard Stallman <rms@gnu.org>
16967
16968 * fileio.c (Ffile_regular_p): Use lstat.
16969
169701999-02-09 Richard Stallman <rms@gnu.org>
16971
16972 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16973 (unexec): Test this instead of specific systems.
16974
16975 * m/macppc.h: New file.
16976
169771999-02-08 Dave Love <fx@gnu.org>
16978
16979 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16980
169811999-02-08 Ken'ichi Handa <handa@gnu.org>
16982
16983 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16984 should be set to coding->produced.
16985
169861999-02-07 Paul Fisher <rao@gnu.org>
16987
16988 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16989 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16990
169911999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16992
16993 * editfns.c (Fformat): Doc fix.
16994
169951999-02-06 Richard Stallman <rms@gnu.org>
16996
16997 * process.c (syms_of_process): defsubr it.
16998 (Fprocess_running_child_p): New function.
16999
170001999-02-05 Andrew Innes <andrewi@gnu.org>
17001
17002 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
17003 recording drop position.
17004
170051999-02-05 Ken'ichi Handa <handa@gnu.org>
17006
17007 * coding.c (encode_coding_iso2022): Before writing out an invalid
17008 code, reset graphic planes and registers if necessary.
17009
17010 * term.c (encode_terminal_code): Fix previous change.
17011
170121999-02-04 Eli Zaretskii <eliz@gnu.org>
17013
17014 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17015 static variables.
17016 (set_clipboard_data): Save a copy of the text we put into
17017 clipboard in last_clipboard_text.
17018 (get_clipboard_data): If the clipboard text is identical to what
17019 last_clipboard_text holds, pretend there's no data in the clipboard.
17020
170211999-02-03 Richard Stallman <rms@gnu.org>
17022
17023 * s/gnu.h (NLIST_STRUCT): Add #undef.
17024
170251999-02-03 Eli Zaretskii <eliz@gnu.org>
17026
17027 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17028 encoded, set its pointer and size as returned by encode_coding.
17029
170301999-02-02 Ken'ichi Handa <handa@gnu.org>
17031
17032 * fns.c (Fset_char_table_default): To handle the case that CH is
17033 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17034
170351999-02-02 Andrew Innes <andrewi@gnu.org>
17036
17037 * w32fns.c (syms_of_w32fns): Change default value of
17038 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17039 some mice works properly.
17040
170411999-02-02 Eli Zaretskii <eliz@gnu.org>
17042
17043 * w16select.c (set_clipboard_data): Correctly null-terminate the
17044 string to be put into the Windows clipboard. Use xbuf_addr.
17045
170461999-02-01 Richard Stallman <rms@gnu.org>
17047
17048 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17049
170501999-01-31 Richard Stallman <rms@gnu.org>
17051
17052 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17053 then don't send the signal if the shell owns the terminal.
17054 (Finterrupt_process): Doc change.
427ec082 17055
26901792
DL
170561999-01-31 Andrew Innes <andrewi@gnu.org>
17057
17058 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17059 (copy_executable_and_dump_data): Use it to ensure alignment slop
17060 is zeroed.
17061
170621999-01-30 Andrew Innes <andrewi@gnu.org>
17063
17064 * w32.c (init_environment): Change argv[0] to contain the full
17065 path to Emacs.
17066
17067 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17068
170691999-01-29 Ken'ichi Handa <handa@gnu.org>
17070
17071 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17072 returned by x_new_font (the resolved one) but use the font name
17073 set in the fontset specification.
17074 (x_load_font): For the height of font, if normarl ascent and
17075 descent value are larger than those in max_bounds field, use the
17076 former.
17077
170781999-01-28 Eli Zaretskii <eliz@gnu.org>
17079
17080 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17081
170821999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17083
17084 * makefile.nt: Use full path to temacs.exe when dumping.
17085
170861999-01-27 Jason Rumney <jasonr@altavista.net>
17087
17088 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17089 list was reliable.
17090 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17091 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17092 (w32_list_synthesized_fonts): New function.
17093 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17094 available instead of EnumFontFamilies. List synthesized fonts if
17095 Vw32_enable_italics is non-nil.
427ec082 17096
26901792
DL
170971999-01-27 Richard Stallman <rms@gnu.org>
17098
17099 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17100 Don't complain if ttcompat does not exist.
17101
17102 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17103
171041999-01-27 Andrew Innes <andrewi@gnu.org>
17105
17106 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17107 the lwindow, rwindow and apps keys could not be used as function
17108 keys, because they were being passed to TranslateMessage which
17109 ignores them. Also, key was being changed to SPC.
17110
17111 * makefile.nt: Do make version comparison as strings.
17112
171131999-01-27 Eli Zaretskii <eliz@gnu.org>
17114
17115 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17116 strings, not characters.
17117
17118 * coding.h: Likewise.
17119
17120 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17121 string.
17122
171231999-01-26 Dave Love <fx@gnu.org>
17124
17125 * emacs.c (main): Up-date copyright.
17126
171271999-01-25 Dave Love <fx@gnu.org>
17128
17129 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17130
171311999-01-25 Andreas Schwab <schwab@gnu.org>
17132
17133 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17134
171351999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17136
17137 * xfns.c (x_set_frame_parameters): gcpro as needed.
17138
17139 * window.c (Fset_window_point): If WINDOW is selected but the
17140 current buffer is not its buffer, don't use Fgoto_char.
17141
171421999-01-22 Richard M. Stallman <rms@gnu.org>
17143
17144 * syntax.c (scan_sexps_forward): Delete duplicate code
17145 to set prev_from_syntax, above start of main loop.
17146 At startinstring, check syntax when checking for a match.
17147
171481999-01-22 Jason Rumney <jasonr@altavista.net>
17149
17150 * w32bdf.c: New file.
17151 * w32bdf.h: New file.
17152 * makefile.nt: Add w32bdf.c and w32bdf.h.
17153
17154 * w32gui.h: Include w32bdf.h.
17155 (W32FontStruct) Add bdf element.
17156
17157 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17158 Support BDF fonts.
17159
17160 * w32term.c (W32_TEXTOUT): New macro.
17161 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17162 Simplify baseline calculation. Detect SJIS by font, not glyph.
17163 Call SetTextAlign.
17164 (syms_of_w32term): Remove "jisx0212-sjis" from
17165 w32-charset-to-codepage-alist.
17166 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17167 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17168
26901792
DL
17169 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17170 (x_destroy_bitmap): Returns void not int.
17171 (x_set_border_pixel): Returns void.
17172 (w32_load_bdf_font): New function.
17173 (w32_load_system_font): New function, was w32_load_font. List
17174 fonts before loading. Explicitly set encoding for SJIS fonts.
17175 Set default_ascent to 0 as comment indicates.
17176 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17177 (w32_unload_font): Support BDF fonts.
17178 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17179 Autodetect whether to use koi8-r instead of iso8859-5.
17180 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17181 Associate "ksc5601.1992" with JOHAB_CHARSET.
17182 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17183 (w32_to_x_font): Add resolution.
17184 (x_to_w32_font): Use font resolution to calculate height if supplied.
17185 (w32_font_match): Handle wildcards anywhere within field.
17186 (enumfont_t): Remove unused head pointer.
17187 (enum_font_cb2): Dereference elfLogFont.
17188 (w32_list_bdf_fonts): New function.
17189 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17190 valid frame. Remove MessageBox. Support BDF fonts.
17191 (Fw32_find_bdf_fonts): New function.
17192 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17193 Sw32_find_bdf_fonts.
17194
171951999-01-21 Andrew Innes <andrewi@gnu.org>
17196
17197 * makefile.nt (temacs): Use del to delete file, not rm.
17198
171991999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17200
17201 * keyboard.c (read_key_sequence): Fix previous change.
17202
17203 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17204 as the same. Treat "myname:0" as the same as those two.
17205
172061999-01-19 Jason Rumney <jasonr@altavista.net>
17207
17208 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17209 (w32_to_x_charset): Fix charset mappings.
17210
17211 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17212 (dumpglyphs): Move definitions out of block containing goto.
17213 Remove redundant code for BIG5.
17214 Use w32_codepage_for_font instead of
17215 w32_codepage_for_charset. Add cast to int where float
17216 operation is assigned to int.
17217 (Vw32_charset_to_codepage_alist): New variable.
17218 (w32_codepage_for_charset): Removed.
427ec082
SS
17219 (w32_codepage_for_font): New function, replacing
17220 w32_codepage_for_charset.
26901792
DL
17221 (syms_of_w32term): Add and initialize
17222 w32-charset-to-codepage-alist.
17223
172241999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17225
17226 * xselect.c (x_handle_selection_clear): Don't clear the
17227 selection if Emacs still owns it through a different display.
17228
172291999-01-17 Andrew Innes <andrewi@gnu.org>
17230
17231 * w32proc.c: (w32_executable_type): Relax the check to identify
17232 cygwin-compiled applications, because the exact dll name varies
17233 with release. Now only require the name to start "cygwin".
17234
17235 * w32heap.h: (ROUND_UP):
17236 (ROUND_DOWN): New macros.
17237 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17238 (init_heap): New extern.
17239 (data_region_size):
17240 (recreate_heap):
17241 (read_in_bss):
17242 (map_in_heap):
17243 (round_to_next):
17244 (w32_fatal_reload_error):
17245 (get_section_size): Obsolete externs removed.
17246
17247 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17248 current process.
17249 (round_to_next): Obsolete function removed.
17250 (preload_heap_section): New variable.
17251 (data_region_size): Obsolete variable removed.
17252 (allocate_heap): Modified to determine end of static heap section
17253 used during preload, and use that as initial base address for
17254 dynamic heap instead of hard-coded value.
17255 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17256 calls to commit or decommit pages when allocating from static heap
17257 section during preload.
17258 (recreate_heap): Obsolete function removed.
17259 (init_heap): New function to initialize internal sbrk heap
17260 variables. Uses static heap section during preload, otherwise
17261 calls allocate_heap to reserve a heap region dynamically.
17262 (round_heap): Use ROUND_UP macro instead of round_to_next.
17263
17264 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17265 static "bss" section is used for heap space during preload, and
17266 bss data is now written to the proper section area when dumping.
17267 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17268 (heap_index_in_executable): Obsolete variable removed.
17269 (data_section): New variable.
17270 (data_start_va): Renamed to data_start.
17271 (data_start_file): Obsolete variable removed.
17272 (bss_section):
17273 (extra_bss_size):
17274 (bss_section_static):
17275 (bss_start_static):
17276 (bss_size_static):
17277 (extra_bss_size_static):
17278 (heap_section): New variables.
17279 (_start): Remove code based on old unexec method. Call init_heap
17280 to initialize sbrk heap.
17281 (close_file_data): Update size of file when closing, so that
17282 unexec doesn't have to work out exact size in advance.
17283 (get_bss_info_from_map_file):
17284 (get_section_size): Obsolete functions removed.
17285 (rva_to_section): Fix minor bug, and add a work-around for a bug
17286 in very old linkers.
17287 (offset_to_section):
17288 (relocate_offset): New functions.
17289 (OFFSET_TO_RVA):
17290 (RVA_TO_OFFSET):
17291 (RVA_TO_SECTION_OFFSET):
17292 (PTR_TO_RVA):
17293 (PTR_TO_OFFSET):
17294 (OFFSET_TO_PTR): New macros.
17295 (get_section_info): Modify to support new unexec method;
17296 determines address ranges in process that need dumping, and COFF
17297 sections where data will be dumped. Allows for static and global
17298 bss data to be in separate ranges. No longer relies on knowledge
17299 of section names.
17300 (copy_executable_and_dump_data_section): Renamed
17301 copy_executable_and_dump_data. Completely rewritten to copy
17302 executable section by section, so that raw data areas can be
17303 expanded to hold dumped data as necessary. Allows for bss data to
17304 be in same section as initialized data. Reduces size of static
17305 heap section to that used during preload.
17306 (dump_bss_and_heap):
17307 (w32_fatal_reload_error):
17308 (read_in_bss):
17309 (map_in_heap): Obsolete functions removed.
17310 (unexec): Rounds off preload heap to nearest page rather than
17311 virtual allocation unit. Modified to match other changes.
17312
17313 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17314 data_region_size.
17315
17316 * makefile.nt: (TEMACS_TMP): New macro.
17317 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17318 processor to add static heap section in support of new unexec.
17319
17320 * lastfile.c: Include config.h to pick up data layout pragmas.
17321 [WINDOWSNT]: Remove explicit pragma.
17322
173231999-01-12 Kenichi Handa <handa@etl.go.jp>
17324
17325 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17326 correctly.
17327 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17328
173291999-01-11 Dave Love <fx@gnu.org>
17330
17331 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17332
173331999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17334
17335 * keyboard.c (read_key_sequence): In key-translation-map and
17336 function-key-map, handle symbol with array as fn def.
17337 In function-key-map, handle symbol with keymap as fn def,
17338 and autoloaded definitions.
427ec082 17339
26901792
DL
17340 * puresize.h (BASE_PURESIZE): Increment to 500000.
17341
17342 * print.c (Qtemp_buffer_setup_hook): New variable.
17343 (syms_of_print): Init and staticpro that.
17344 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17345
173461999-01-11 Kenichi Handa <handa@etl.go.jp>
17347
17348 * insdel.c (del_range_1): Call signal_after_change.
17349 (del_range_byte): Likewise.
17350 (del_range_both): Likewise.
17351 (del_range_2): Don't call signal_after_change.
17352
17353 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17354 Lisp code here.
17355
173561999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17357
17358 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17359 never run the debugger, and don't bother checking the args
17360 to see whether the debugger should be run.
17361
173621999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17363
17364 * keyboard.c (read_key_sequence):
17365 Tell get_keyelt to look handle autoloads.
17366 Handle symbols defined as keymaps, and autoloaded keymaps.
17367
173681999-01-06 Kenichi Handa <handa@etl.go.jp>
17369
17370 * search.c (search_buffer): Fix previous change.
17371
173721999-01-06 Eli Zaretskii <eliz@gnu.org>
17373
17374 * w16select.c (set_clipboard_data): Terminate the text with a null
17375 character. Don't allow to put binary data into the clipboard.
17376 Return zero in case of success, 1 or 2 otherwise.
17377 (get_clipboard_data): Only bail out if the null character is in
17378 the last 32-byte chunk of clipboard data
17379 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17380 they save binary data, print a message in the echo area saying the
17381 text was not put into the clipboard.
17382
17383 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17384
173851999-01-06 Andreas Schwab <schwab@gnu.org>
17386
17387 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17388 _BSD_SOURCE, the latter is always defined.
17389
173901999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17391
17392 * fns.c (Frequire): Don't fail to unbind bindings.
17393
173941999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17395
17396 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17397
17398 * charset.c (Ffind_charset_region): Fix doc typo.
17399
174001998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17401
17402 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17403 multibyte in unibyte buffers only.
17404
17405 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17406 and pass it to Fmake_sparse_keymap.
17407
174081998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17409
17410 * alloc.c (MMAP_MAX_AREAS): New macro.
17411 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17412 (init_alloc_once): Use that.
17413
17414 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17415
17416 * alloc.c (lisp_malloc, lisp_free): New functions.
17417 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17418 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17419 (n_interval_blocks, n_float_blocks): New variable.
17420 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17421 (n_marker_blocks, n_string_blocks): New variable.
17422 (init_intervals, make_interval): Set a count variable.
17423 Use lisp_malloc instead of setting allocating_for_lisp.
17424 (init_float, make_float, init_cons, Fcons): Likewise.
17425 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17426 (init_marker, allocate_misc, init_strings): Likewise.
17427 (make_uninit_multibyte_string): Likewise.
17428 (gc_sweep, compact_strings): Decrement the count variables.
17429
17430 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17431 into the old_..._hook variables.
17432
174331998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17434
17435 * keyboard.c: In each active map, for each menu bar item, use only
17436 the first submap.
17437 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17438 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17439 (syms_of_keyboard): Staticpro and init it.
17440
427ec082 17441 * xmenu.c (single_keymap_panes):
26901792
DL
17442
174431998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17444
17445 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17446 by complete_deferred_msg.
17447 (post_character_message): Cancel all deferred messages when
17448 quit_char is typed, in order to break out of potential deadlocks.
17449 (cancel_all_deferred_msgs): New function.
17450 (complete_deferred_msg): Don't abort if msg not found; may have
17451 been cancelled.
17452 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17453 (Fw32_send_sys_command): Wait for system command to
17454 complete before returning.
427ec082 17455
26901792
DL
17456 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17457 not set async_iconified flag though.
17458
17459 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17460 (create_child): Use it.
17461 (syms_of_ntproc): Defvar it. Also fix docstrings for
17462 w32-start-process-share-console and w32-start-process-show-window.
17463
17464 * unexw32.c (_start): Force system calls accessing unmounted
17465 devices to fail without prompting.
17466
174671998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17468
17469 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17470 even when starting the dumped Emacs.
17471
17472 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17473 (Fkey_description): Handle lists like vectors.
17474
174751998-12-21 Kenichi Handa <handa@etl.go.jp>
17476
17477 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17478 because of the change of the second argument of Fread_char.
17479
17480 * charset.c (Fcharset_after): Check range. If POS is out of
17481 range, return nil.
17482
17483 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17484
17485 * lread.c (Fread_char): Change the meaning of the second argument.
17486 (Fread_event): Likewise.
17487 (Fread_char_exclusive): Likewise.
17488
17489 * print.c (printchar): Fix previous change.
17490
17491 * process.c (read_process_output): Decide the multibyteness of
17492 string given to a process filter by a coding system used for
17493 decoding the process output.
17494
174951998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17496
17497 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17498 nonascii-translation-table.
17499 * msdos.c (IT_write_glyphs): Likewise.
17500 * fns.c (concat): Likewise.
17501 * charset.c (unibyte_char_to_multibyte): Likewise.
17502 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17503
175041998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17505
17506 * doc.c (Fdocumentation): Change the doc string for prefix
17507 commands to make it a complete sentence in one line.
17508
175091998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17510
17511 * s/irix6-5.h: New file.
17512 * s/irix6-0.h (IRIX6): Define this symbol.
17513 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17514 (bcopy, bcmp, bzero): Likewise.
17515 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17516 (C_SWITCH_MACHINE): New value for irix6.5.
17517
175181998-12-15 Richard Stallman <rms@gnu.org>
17519
17520 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17521 Do free malloc'd memory even in case of failure. Use xfree, not free.
17522 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17523 (base64_decode_1): Don't fail for short lines.
17524
17525 * print.c (printchar): Outputting multibyte characters
17526 to echo area always makes it multibyte.
17527
17528 * search.c (search_buffer): Don't use Boyer-Moore
17529 to search for an invalid multibyte code.
17530 In unibyte case, no need to check whether there are translations
17531 in more than one charset; just set charset_base to 0.
17532
175331998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17534
17535 * print.c (printchar): Cancel previous change.
17536
175371998-12-15 Kenichi Handa <handa@etl.go.jp>
17538
17539 * callproc.c: Include "ccl.h".
17540 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17541 bit in argument_coding.mode to tell encoding procedure to flush
17542 data. While encoding arguments, if argument_coding uses CCL
17543 program, initialize it again after encoding.
17544 (Fcall_process_region): Doc-string modified. Handle the case that
17545 NARGS is 3.
17546
17547 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17548 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17549 Set `ic' to the head of this command.
17550 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17551 code for an invalid code.
17552 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17553 based on VEC.
17554
17555 * charset.c (Qunknown): New variable.
17556 (init_charset_once): Intern and staticpro Qunknown. Initialize
17557 all elements of Vcharset_symbol_table to Qunknown.
17558 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17559 unibyte characters only. For an invalid composition sequence, set
17560 CHARSETS[1] to 1.
17561 (Ffind_charset_region): Call find_charset_in_str with an
17562 appropriate MULTIBYTE arg. If undefined charsets are found,
17563 include `unknown' is the return value.
17564 (Ffind_charset_string): Likewise.
17565 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17566 (str_cmpchar_id): Max composite character code should be less than
17567 GENERIC_COMPOSITION_CHAR.
17568
17569 * charset.h (find_charset_in_str): Update declaration.
17570
17571 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17572 final_char is invalid.
17573 (decode_coding): If coding->type is coding_type_ccl, call
17574 ccl_coding_driver even if SRC_BYTES is zero.
17575 (code_convert_region): Update `inserted' correctly after calling
17576 coding->post_read_conversion. Even after the code converter
17577 consumed all source text, call it once more if it is
17578 coding_type_ccl to flush out data.
17579
17580 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17581 CODING is handled by CCL program, call code_convert_region.
17582
17583 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17584 correctly.
17585 (string_byte_to_char): Likesize.
17586
17587 * print.c (printchar): When outputting a multibyte character to
17588 echo area, always set message_enable_multibyte to 1.
17589
17590 * process.c (read_process_output): If NBYTES is zero and
17591 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17592 and try decoding again.
17593 (Fprocess_send_eof): If the coding system of PROCESS
17594 requires flushing, call send_process with null-string at first.
17595
17596 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17597 with MULTIBYTE arg 0.
17598 * w32select.c (Fw32_set_clipboard_data): Likewise.
17599 * xselect.c (lisp_data_to_selection_data): Likewise.
17600
176011998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17602
17603 * search.c (Freplace_match): Set OPOINT clearly for the case
17604 where point is in the middle of the text to be replaced.
17605
17606 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17607 if compute_motion fails to advance at all, don't back it up.
17608
176091998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17610
17611 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17612
427ec082 17613 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17614
176151998-12-09 Richard Stallman <rms@gnu.org>
17616
17617 * insdel.c (insert_from_buffer_1): Properly count the size
17618 of output from conversion to multibyte even when input
17619 is split across the gap.
17620
176211998-12-09 Karl Heuer <kwzh@gnu.org>
17622
17623 * keyboard.c: Doc fixes.
17624
17625 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17626
176271998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17628
17629 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17630 characters, only convert CRLF to LF.
17631
176321998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17633
17634 * makefile.nt: Do string comparision of _NMAKE_VER.
17635
176361998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17637
17638 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17639 coding.h, and disptab.h
17640
17641 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17642 (syms_of_msdos): DEFVAR_LISP it.
17643 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17644 (internal_terminal_init): Set up insert_glyphs_hook and
17645 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17646 (unibyte_display_via_language_environment): New variable.
17647 (syms_of_msdos): Devfar it.
17648 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17649 Encode the character codes of the glyphs according to the
17650 terminal_coding in effect.
17651
176521998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17653
17654 * fns.c (Fstring_as_unibyte): Doc fix.
17655
176561998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17657
17658 * charset.h: Declare char_valid_p.
17659
176601998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17661
17662 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17663
17664 * msdos.c (init_environment): Record the time we started up.
17665 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17666 fast after startup (aka crash).
17667
176681998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17669
17670 * w32.c (check_windows_init_file): Use decode_env_path when
17671 using EMACSLOADPATH.
17672
176731998-12-02 Jason Rumney <jasonr@altavista.net>
17674
17675 * w32term.c (dumpglyphs): Use unsigned char arrays.
17676 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17677 for various languages.
17678 Compensate for fonts that have underhangs (e.g., Thai).
17679
17680 * w32term.h (FONT_MAX_WIDTH): New macro.
17681
176821998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17683
17684 * keyboard.c (Qlanguage_change): New variable.
17685 (syms_of_keyboard): Init it.
17686 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17687 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17688 keys; add name for Escape key; extend to 256 elements.
17689 (parse_modifiers): Make non-static.
17690
17691 * keyboard.h (parse_modifiers): Declare prototype.
17692
17693 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17694
17695 * w32fns.c (w32_last_error): Fix cut+paste error.
17696 (Vw32_phantom_key_code): New variable.
17697 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17698 (syms_of_w32fns): Init and register them.
17699 (reset_modifiers): Use a more precise test for whether Emacs has
17700 keyboard focus. Synchronize state of all keys that can be used as
17701 modifiers, to overcome problems arising from hot-keys.
17702 (w32_key_to_modifier): Be careful not to call intern() to avoid
17703 requiring thread synchronization.
17704 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17705 (w32_wnd_proc): Ensure lock key indicator lights are updated
17706 promptly on Windows 9x, by passing key events on to the system.
17707 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17708 responding to Windows key events when not wanted.
17709 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17710 Ctrl-NumLock into pause by the system.
17711 (w32_wnd_proc): Don't translate key combinations containing any
17712 modifiers other than shift (and capslock).
17713 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17714 can't determine the key states until we have keyboard focus).
17715 (Fw32_toggle_lock_key): New function.
17716 (syms_of_w32fns): Defsubr it.
17717
17718 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17719 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17720 (w32_console_toggle_lock_key): New function.
17721
17722 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17723
177241998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17725
17726 * search.c (Freplace_match): Set OPOINT clearly for the case
17727 where point is in the middle of the text to be replaced.
17728
17729 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17730 if compute_motion fails to advance at all, don't back it up.
17731
177321998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17733
17734 * xfns.c (Qouter_window_id): New variable.
17735 (syms_of_xfns): Initialize it.
17736 (x_report_frame_params): Set up outer-window-id parameter.
17737
17738 * keymap.c (Fsingle_key_description): Fix previous change.
17739
177401998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17741
17742 * lisp.h (Frequire): Update declaration.
17743
177441998-11-26 Kenichi Handa <handa@etl.go.jp>
17745
17746 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17747 if the charset is ascii.
17748 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17749
17750 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17751 make an appropriate one byte string.
17752 (char_bytes): Handle the case that C is a single byte char or has
17753 modifier bits.
17754
17755 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17756
17757 * cmds.c (internal_self_insert): If C has modifier bits, insert
17758 appropriate one byte char.
17759
177601998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17761
17762 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17763 Clear text properties in the new string.
17764
177651998-11-24 Felix Lee <flee@cygnus.com>
17766
17767 * process.c (read_process_output): Call signal_after_change.
17768
177691998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17770
17771 * buffer.c (syms_of_buffer): Doc fix.
17772
17773 * keyboard.c (syms_of_keyboard): Doc fix.
17774
177751998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17776
17777 * frame.c (Fset_mouse_position): Doc fix.
17778
177791998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17780
17781 * keymap.c (Fmake_keymap): Doc fix.
17782
177831998-11-17 Kenichi Handa <handa@etl.go.jp>
17784
17785 * category.c (word_boundary_p): If C1 or C2 are composite
17786 characters, test their first components.
17787
177881998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17789
17790 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17791 don't do save-excursion, just restore selected window.
17792
17793 * window.c (window_loop): For UNSHOW_BUFFER,
17794 always do consider minibuffer windows.
427ec082 17795
26901792
DL
177961998-11-16 Kenichi Handa <handa@etl.go.jp>
17797
17798 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17799
17800 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17801
17802 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17803
17804 * s/bsdos4.h: New file.
17805
178061998-11-16 Kenichi Handa <handa@etl.go.jp>
17807
17808 * Makefile.in (abbrev.o): Depend on charset.h
17809 (bytecode.o): Depend on charset.h.
17810
17811 * bytecode.c: Include charset.h.
17812
17813 * abbrev.c: Include charset.h.
17814
17815 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17816 the first component.
17817
178181998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17819
17820 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17821
178221998-11-11 Richard Stallman <rms@gnu.org>
17823
17824 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17825
17826 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17827
17828 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17829 (INTERRUPT_INPUT): #define commented out.
17830
17831 * m/aviion-intel.h: New file.
17832
178331998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17834
17835 * fns.c (MAX_ALLOCA): New macro.
17836 (Fbase64_encode_region, Fbase64_encode_string,
17837 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17838 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17839
178401998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17841
17842 * insdel.c (byte_combining_error): Error message improved.
17843
17844 * charset.c (char_valid_p): Handle a composite character correctly.
17845
178461998-11-11 Kenichi Handa <handa@etl.go.jp>
17847
17848 * charset.c (str_cmpchar_id): Check the byte sequence for
17849 composition more rigidly.
17850 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17851 contains an invalid multibyte sequence.
17852
17853 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17854
178551998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17856
17857 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17858 (WM_EMACS_SETKEYBOARDLAYOUT):
17859 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17860 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17861 (LEFT_WIN_PRESSED):
17862 (RIGHT_WIN_PRESSED):
26901792
DL
17863 (APPS_PRESSED): New console keyboard modifier flags.
17864
17865 * w32term.c (convert_to_key_event): Removed.
17866 (is_dead_key): Copied to w32fns.c.
17867 (w32_read_socket): Generate language_change_event. Modify to work
17868 with keyboard handling changes in w32_wnd_proc.
17869
17870 * w32proc.c (sys_kill): Set extended key flag when faking
17871 Ctrl-Break keystrokes.
17872 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17873 arbitrary locale property using a numerical index.
17874 (Vw32_valid_codepages): New variable.
427ec082
SS
17875 (enum_codepage_fn):
17876 (Fw32_get_valid_codepages):
17877 (Fw32_get_console_codepage):
17878 (Fw32_set_console_codepage):
17879 (Fw32_get_console_output_codepage):
17880 (Fw32_set_console_output_codepage):
17881 (Fw32_get_codepage_charset):
17882 (Fw32_get_valid_keyboard_layouts):
17883 (Fw32_get_keyboard_layout):
26901792
DL
17884 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17885 handling functions.
17886 (syms_of_ntproc): Register them.
17887
17888 * w32inevt.c: Include w32term.h and w32heap.h.
17889 (map_keypad_keys):
17890 (Vw32_enable_caps_lock):
17891 (Vw32_enable_num_lock):
17892 (Vw32_pass_lwindow_to_system):
17893 (Vw32_pass_rwindow_to_system):
17894 (Vw32_lwindow_modifier):
17895 (Vw32_rwindow_modifier):
17896 (Vw32_apps_modifier):
17897 (Vw32_scroll_lock_modifier):
17898 (w32_key_to_modifier): Add externs.
17899 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17900 Scroll Lock as potential modifiers; exclude numpad keys from
17901 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17902 code.
17903 (is_dead_key): Copy from w32fns.c.
17904 (w32_kbd_patch_key): Comment attempt to improve handling of
17905 dead-keys, and system bug relating to same on Windows NT. Work
17906 around the bug by calling ToUnicode and then converting to the
17907 correct codepage.
17908 (map_virt_key): Removed obsolete variable.
17909 (lispy_function_keys): Add extern.
17910 (key_event): Major rework of keyboard input handling: optionally
17911 recognize Windows keys and Apps key as modifiers; optionally treat
17912 NumLock, CapsLock and ScrollLock as function keys; let system
17913 translate keystrokes to characters to avoid system bugs relating
17914 to dead-key handling; preserve shift distinction for control
17915 characters. Remove some obsolete code.
17916
17917 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17918 and w32heap.h.
17919
17920 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17921 (Vw32_pass_lwindow_to_system):
17922 (Vw32_pass_rwindow_to_system):
17923 (Vw32_lwindow_modifier):
17924 (Vw32_rwindow_modifier):
17925 (Vw32_apps_modifier):
17926 (Vw32_enable_num_lock):
17927 (Vw32_enable_caps_lock):
17928 (Vw32_scroll_lock_modifier): New variables.
17929 (modifier_set): Return toggle state for Scroll Lock.
17930 (w32_key_to_modifier): New function. Returns chosen modifier bit
17931 for given key.
17932 (w32_get_modifiers): Returns modifier flags for
17933 non-keyboard input events.
17934 (construct_console_modifiers): Renamed from construct_modifiers;
17935 recognize Windows and Apps keys as modifiers.
17936 (w32_get_key_modifiers): New function. Returns modifier flags for
17937 keyboard input events.
17938 (map_keypad_keys): Make non-static. Use second arg as extended
17939 flag.
17940 (w32_grabbed_keys): New variable.
17941 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17942 (register_hot_keys):
17943 (unregister_hot_keys):
17944 (lookup_vk_code):
17945 (w32_parse_hot_key):
17946 (Fw32_register_hot_key):
17947 (Fw32_unregister_hot_key):
17948 (Fw32_registered_hot_keys):
17949 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17950 (post_character_message): New function.
17951 (w32_msg_pump): Handle new messages for using hotkeys and changing
17952 keyboard layout/language.
17953 (w32_wnd_proc): Major rework of keyboard input handling:
17954 optionally recognize Windows keys and Apps key as modifiers;
17955 optionally treat NumLock, CapsLock and ScrollLock as function
17956 keys; let system translate keystrokes to characters to avoid
17957 system bugs relating to dead-key handling; preserve shift
17958 distinction for control characters; forward keyboard
17959 layout/language changes to lisp; detect and convert hot-key events
17960 to normal keystrokes.
17961 (syms_of_w32fns): Register new functions and variables.
17962 (w32_last_error): New function for use in debugging.
17963
179641998-11-10 Kenichi Handa <handa@etl.go.jp>
17965
17966 * category.h (CATEGORY_SET): Adjusted for the change of
17967 cmpchar_component.
17968 (CATEGORY_SET): Likewise.
17969
17970 * charset.c (cmpchar_component): New arg NOERROR. Check
17971 composition char ID more strictly.
17972 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17973 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17974 return 255.
17975 (Fcompose_string): Signal error if STR contains a rule-based
17976 composition character.
17977
17978 * charset.h (cmpchar_component): Proto-type adjusted.
17979
179801998-11-09 Kenichi Handa <handa@etl.go.jp>
17981
17982 * charset.c (string_to_non_ascii_char): Return correct length for
17983 a charset of dimension 2 and composition character.
17984
179851998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17986
17987 * keymap.c (Fsingle_key_description): Handle generic characters.
17988
17989 * process.c (Fprocess_status): Doc fix.
17990
179911998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17992
17993 * charset.c (init_charset_once): Fix previous change.
17994
179951998-11-06 Kenichi Handa <handa@etl.go.jp>
17996
17997 * charset.c (string_to_non_ascii_char): Fix previous change.
17998 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17999
18000 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
18001 character correctly.
18002 (STRING_CHAR): Handle an invalid charater correctly.
18003
180041998-11-05 Kenichi Handa <handa@etl.go.jp>
18005
18006 * charset.c (string_to_non_ascii_char): Fix previous change.
18007
18008 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
18009
18010 * editfns.c (Fstring_to_char): Don't return a multibyte character
18011 if STRING is a unibyte string.
18012
18013 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18014 character.
18015
18016 * xdisp.c (display_text_line): Check validity of a multibyte character.
18017 (display_string): Likewise. Handle an invalid character correctly.
18018
180191998-11-05 Karl Heuer <kwzh@gnu.org>
18020
18021 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18022 If nothing to do, return immediately.
18023 (syms_of_insdel): Initialize combine_after_change_buffer.
18024
180251998-11-05 Richard Stallman <rms@gnu.org>
18026
18027 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18028
180291998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18030
18031 * w32term.c (w32_enable_unicode_output): Rename from
18032 w32_no_unicode_output.
18033 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18034 and new semantics.
18035
180361998-11-04 Jason Rumney <jasonr@altavista.net>
18037
18038 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18039 been created yet.
18040
18041 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18042
180431998-11-04 Kenichi Handa <handa@etl.go.jp>
18044
18045 * charset.c (string_to_non_ascii_char): Change the check for the
18046 varidity of multibyte form.
18047 (update_charset_table): Check validity of BYTES. Don't set
18048 bytes_by_char_head here.
18049 (init_charset_once): Set bytes_by_char_head completely.
18050
18051 * frame.c (do_switch_frame): Cancel previous change.
18052
18053 * print.c (print_string): Check validity of a character.
18054 (print): Likewise.
18055
18056 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18057
18058 * m/ews4800.h, s/ux4800.h: New files.
18059
180601998-11-03 Theodore Jump <tjump@tertius.com>
18061
18062 * makefile.nt: Compile multiple source files when possible.
18063
18064 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 18065
26901792
DL
180661998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18067
18068 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18069 so don't rely on it succeeding.
18070
18071 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18072 LOGFONT struct if x font doesn't specify the charset.
18073 (x_to_w32_charset): Change >= to == when testing results of
18074 stricmp.
18075
180761998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18077
18078 * fns.c (Frequire): New arg NOERROR.
18079
180801998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18081
18082 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18083
180841998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18085
18086 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18087 (syms_of_xfaces): Initialization deleted.
18088
18089 * textprop.c (Qmouse_face): Variable definition moved here.
18090 (syms_of_textprop): Initialize it.
18091
18092 * data.c (set_internal): For built-in maybe-local vars,
18093 when BINDFLAG is set, do not mark them as local.
18094
180951998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18096
18097 * insdel.c (replace_range): Fix previous change.
18098
180991998-10-31 Kenichi Handa <handa@etl.go.jp>
18100
18101 * editfns.c (Fsubst_char_in_region): Fix previous change.
18102 (Ftranslate_region): Fix previous change.
18103
18104 * fns.c (Fbase64_decode_region): Fix previous change.
18105
18106 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18107
18108 * insdel.c (byte_combining_error): New function.
18109 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18110 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18111 CHECK_BYTE_COMBINING_FOR_INSERT.
18112 (insert_from_buffer_1): Likewise.
18113 (adjust_after_replace): Check the posibility of inhibitted byte
18114 combining correctly.
18115 (replace_range): Before signaling an error for inhibitted byte
18116 combining, recover the buffer in a safe state.
18117 (del_range_2): Check the posibility of inhibitted byte combining
18118 correctly.
18119
181201998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18121
18122 * xselect.c (Vselection_coding_system): Doc fix.
18123
18124 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18125 when we have both char and byte position. Fix type clashes.
18126
18127 * eval.c (Fsignal): Use a separate format string when passing
18128 error message string to fatal, in case it contains %'s.
18129
18130 * editfns.c (Fchar_after): Fix type clashes.
18131
18132 * charset.c (Fchar_bytes): Doc fix.
18133 (char_bytes): Fix returned value to match returned type.
18134 (syms_of_charset): Fix type clash in initialisation of
18135 Vauto_fill_chars.
18136
181371998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18138
18139 * w32console.c (initialize_w32_display): Use buffer coords
18140 instead of buffer size (which may be larger than the window).
18141
18142 * fileio.c (init_fileio_once): New function.
18143
18144 * emacs.c (main): Invoke init_fileio_once.
18145
181461998-10-28 Paul Eggert <eggert@twinsun.com>
18147
18148 * xterm.c (XTread_socket): Check the returned value of
18149 XmbLookupString more carefully.
18150
181511998-10-28 Kenichi Handa <handa@etl.go.jp>
18152
18153 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18154 (DECODE_CHARACTER_DIMENSION1): Likewise.
18155 (DECODE_CHARACTER_DIMENSION2): Likewise.
18156 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18157
18158 * editfns.c (Fsubst_char_in_region): Fix previous change.
18159 (Ftranslate_region): Fix previous change.
18160
18161 * insdel.c (check_markers): Check if markers are at character boundry.
18162 (adjust_markers_for_insert): Fix previous change.
18163 (count_combining_before): Don't limit the check at BEGV.
18164 (count_combining_after): Don't limit the check at ZV.
18165 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18166 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18167 (insert_from_string_1): Likewise.
18168 (insert_from_buffer_1): Likewise.
18169 (adjust_after_replace): Inhibit bytes combined across region
18170 boundary. Update end_unchanged correctly.
18171 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18172 end_unchanged correctly.
18173 (del_range_2): Inhibit bytes combined across region boundary.
18174 Update end_unchanged correctly.
18175
181761998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18177
18178 * w32.c (check_windows_init_file): Also look in load path specified
18179 in environment.
18180
18181 * w32console.c (Fset_message_beep): Recognize 'silent.
18182 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18183
26901792
DL
18184 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18185
18186 * w32select.c (Vnext_selection_coding_system): New variable.
18187 (syms_of_w32select): DEFVAR_LISP it.
18188 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18189 non-nil. Always convert multibyte strings.
18190 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18191 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18192
26901792
DL
181931998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18194
18195 * fns.c (Fbase64_decode_string): Doc fix.
18196 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18197 Likewise.
18198
181991998-10-27 Dave Love <fx@gnu.org>
18200
18201 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18202 newline in doc string.
18203
182041998-10-27 Kenichi Handa <handa@etl.go.jp>
18205
18206 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18207 that byte combining before happens.
18208 (Ftranslate_region): Likewise.
18209
18210 * insdel.c (adjust_after_replace): Correctly handle the case that
18211 both byte combining before and byte combining after happen.
18212 (replace_range): Likewise.
18213
182141998-10-26 Kenichi Handa <handa@etl.go.jp>
18215
18216 * category.c (syms_of_category): Doc-string modified.
18217
18218 * coding.c (code_convert_region): Kill the work buffer created by
18219 pre-write-conversion.
18220
182211998-10-25 Jason Rumney <jasonr@altavista.net>
18222
18223 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18224
182251998-10-23 Kenichi Handa <handa@etl.go.jp>
18226
18227 * coding.c (code_convert_region): While preserving the orignal
18228 point, pay attention to the byte combining problem.
18229
18230 * fns.c (Fbase64_decode_region): Pay attention to the byte
18231 combining problem.
18232
18233 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18234 combined_before_bytes and combined_after_bytes into account.
18235 (count_combining_after): Handle the case that LENGTH is zero.
18236 (adjust_after_replace): Record deletion at correct buffer
18237 position. Handle the case that LEN is zero.
18238 (replace_range): Record deletion at correct buffer position.
18239 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18240 combined bytes.
18241
182421998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18243
18244 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18245
26901792
DL
182461998-10-21 Kenichi Handa <handa@etl.go.jp>
18247
18248 * coding.c (setup_coding_system): Fix setting up
18249 coding->spec.ccl.valid_codes for CCL based coding system.
18250 (code_convert_region): Set point to FROM before inserting the
18251 result of pre-write-funciton. Preserve original point.
18252 (code_convert_string): If coding->type is coding_type_ccl, do
18253 conversion even if the length of conversion region is zero.
18254
18255 * fontset.c: Include frame.h before fontset.h.
427ec082 18256 (list_fonts_func): Fix prototype.
26901792
DL
18257
18258 * frame.c: Include frame.h before fontset.h.
18259
18260 * xterm.c: Likewise.
18261
182621998-10-21 Jason Rumney <jasonr@altavista.net>
18263
18264 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18265 general macros. Don't call x_list_font directory, instead call a
18266 function set in list_fonts_func.
18267
18268 * fontset.h (list_fonts_func): Fix prototype.
18269
182701998-10-20 Jason Rumney <jasonr@altavista.net>
18271
18272 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18273
18274 * w32faces.c: Update comments referring to obsolete structs.
18275 (allocate_face, copy_face, face_eql, load_font,
18276 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18277 frame_update_line_height, merge_faces, compute_base_face,
18278 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18279
18280 * w32fns.c: (Vx_pixel_size_width): New global variable.
18281 (unibyte_display_via_language_environment): New global variable.
18282 (x_set_font): Add support for setting fontsets.
18283 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18284 font names to match xlfd-tight-regexp.
18285 (w32_load_font): Rewrite based on x_load_font.
18286 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18287 `iso8859-1' rather than `ansi'.
18288 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18289 end. Move charset into `charset registry' field.
18290 (enum_font_cb2): Check charsets match. Include width in font list.
18291 (w32_list_fonts): Rewrite based on x_list_fonts.
18292 Moved from w32term.c to have access to enumfont_t struct.
18293 (Fx_list_fonts): w32 specific version eliminated. Include
18294 `x-list-fonts.c'.
18295 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18296 functions for fontset support - adapted from x_ equivalents.
18297 (syms_of_w32fns): New lisp variables initialised. Function
18298 pointers for fontset.c set up.
18299
427ec082 18300 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18301 Add ENCODE_BIG5 macro from coding.c.
18302 (w32_no_unicode_output): New variable.
18303 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18304 functions.
18305 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18306 (dumpglyphs): Rewrite based on xterm.c equivalent.
18307 (x_new_font): Use functionality provided in fontset.c.
18308 (x_new_fontset): New function based on the one in xterm.c.
18309 (syms_of_w32term): Add w32-no-unicode-output flag.
18310
427ec082 18311 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18312 (Vx_pixel_size_width_font_regexp,
18313 unibyte_display_via_language_environment): Declare variables.
427ec082 18314 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18315 Declare functions.
18316 (w32_output): New fields font_baseline and fontset.
18317 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18318
18319 * w32xfns.c: Include charset.h and fontset.h.
18320
183211998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18322
18323 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18324
183251998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18326
18327 * msdos.c (mouse_init): Reset the button press/release info of the
18328 mouse driver.
18329 (mouse_preempted): New variable.
18330 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18331 (XMenuActivate): Preempt the mouse during menu-handling loop.
18332 Release the current time slice while idling in the menu-handling
18333 loop. Leave the loop only if the user pressed, then released the
18334 same button. Discard all mouse events that are pending in the
18335 event queue before exiting.
18336
183371998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18338
18339 * editfns.c (Fformat): Increase buffer size for floating format.
18340
183411998-10-17 Kenichi Handa <handa@etl.go.jp>
18342
18343 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18344 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18345 Declare auto-fill-chars as a Lisp variable and initialize it.
18346
18347 * charset.h (Vauto_fill_chars): Extern it.
18348
18349 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18350
183511998-10-16 Kenichi Handa <handa@etl.go.jp>
18352
18353 * casefiddle.c (casify_object): Use make_string instead of
18354 make_specified_string to cope with byte-combining situation.
18355
18356 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18357 1 when encountered with a code of the range 0x80..0x9F.
18358
183591998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18360
18361 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18362 trying $TMP and $TEMP, since the former is always set in msdos.c.
18363 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18364 the temporary files, check $TMPDIR as well.
18365
183661998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18367
427ec082 18368 * process.c (exec_sentinel, read_process_output):
26901792
DL
18369 Restore waiting_for_user_input_p after running Lisp code.
18370
18371 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18372 (command_loop): Likewise.
18373
183741998-10-14 Kenichi HANDA <handa@etl.go.jp>
18375
18376 * data.c (Faset): Fix previous change.
18377
18378 * fns.c (Ffillarray): Fix previous change.
18379
18380 * insdel.c (adjust_markers_for_combining): This function deleted.
18381 (adjust_markers_for_replace): Correctly adjust marker positions.
18382 Don't record these adjustment because they were recorded already.
18383 (combine_bytes): Don't adjust markers here.
18384
183851998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18386
18387 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18388
183891998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18390
18391 * keyboard.c (Fclear_this_command_keys): New function.
18392 (syms_of_keyboard): defsubr it.
18393
18394 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18395
183961998-10-12 Kenichi Handa <handa@etl.go.jp>
18397
18398 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18399
18400 * charset.c (Fstring): Call make_string instead of
18401 make_string_from_bytes.
18402 (Ffind_charset_region): Include `composition' in the returned list
18403 if the region contains any composite characters.
18404 (Ffind_charset_string): Include `composition' in the returned list
18405 if the string contains any composite characters.
18406 (find_charset_in_str): Handle CMPCHARP arg correctly.
18407
18408 * coding.c (shrink_decoding_region): If a charset other than ascii
18409 is initially designated to G0, don't shrink the region.
18410 (shrink_encoding_region): Likewise.
18411
18412 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18413 byte-combining situation.
18414
18415 * fns.c (clear_string_char_byte_cache): New function.
18416 (Ffillarray): Handle multibyte string correctly.
18417
18418 * lisp.h (clear_string_char_byte_cache): Extern it.
18419
18420 * xselect.c (lisp_data_to_selection_data): Call
18421 find_charset_in_str with CMPCHARP arg 0.
18422 * w16select.c (Fw16_set_clipboard_data): Likewise.
18423 * w32select.c (Fw32_set_clipboard_data): Likewise.
18424
184251998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18426
18427 * keyboard.c (parse_menu_item): For top level of menu bar,
18428 accept ordinary commands, and treat them just like a keymap.
18429
184301998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18431
18432 * xdisp.c (redisplay_window): Clear w->window_end_valid
18433 before running the window-scroll-functions hook, if appropriate.
18434
184351998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18436
18437 * data.c (Fstring_to_number): Don't recognize floating point
18438 if base is not 10.
18439
18440 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18441 (check_all_windows): New function for debugging tests.
18442 (syms_of_window): Initialize it.
18443
18444 * window.c (Qwindow_configuration_p): New variable.
18445 (Fwindow_configuration_frame): New function.
18446 (syms_of_window): defsubr it.
18447 (Fset_window_configuration): Return t if frame is live.
18448 Use Qwindow_configuration_p.
18449
18450 * xfns.c (check_x_display_info): Don't use selected_frame
18451 if it is dead.
18452
184531998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18454
18455 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18456
184571998-10-08 Kenichi Handa <handa@etl.go.jp>
18458
18459 * buffer.h (inhibit_modification_hooks): Extern it.
18460
18461 * buffer.c (inhibit_modification_hooks): New variable.
18462 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18463
18464 * charset.c (invalid_character): Prepend `0' to octal
18465 representation. Give error sufficient args.
18466
18467 * coding.c (code_convert_region): Set inhibit_modification_hooks
18468 to 1 before calling Fset_text_properties.
18469
18470 * insdel.c (signal_before_change): If inhibit_modification_hooks
18471 is nonzero, do nothing.
18472 (signal_after_change): Likewise.
18473
184741998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18475
18476 * process.c: Doc fixes.
18477
184781998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18479
18480 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18481
184821998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18483
18484 * w32.c (init_ntproc): Check for Windows init file.
18485 (term_ntproc): Do not check for it here.
18486
184871998-09-28 Kenichi Handa <handa@etl.go.jp>
18488
18489 * coding.c (check_composing_code): Fix previous change. Now it
18490 alwasy returns 0 or -1.
18491 (decode_coding_iso2022): Adjusted for the above change.
18492 (encode_coding_iso2022): When encoding the last block, flush out
18493 tailing garbage bytes.
18494 (setup_coding_system): Delete unnecessary code.
18495 (shrink_decoding_region): Check translation table. If ASCII
18496 should be translated, give up shrinking.
18497 (shrink_encoding_region): Likewise.
18498 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18499 (SHRINK_CONVERSION_REGION): New macro.
18500 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18501 properties here.
18502 (code_convert_region): In the case of encoding, always calulate
18503 correct character number.
18504 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18505 (code_convert_region1): Don't delete text properties here.
18506
18507 * insdel.c (adjust_after_replace): Don't delete text properties here.
18508
18509 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18510
185111998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18512
18513 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18514
185151998-09-26 Kenichi Handa <handa@etl.go.jp>
18516
18517 * coding.h (struct coding_system): New member composed_chars.
18518
18519 * coding.c (check_composing_code): If the current composing
18520 sequence doesn't end properly, return -1.
18521 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18522 (DECODE_CHARACTER_DIMENSION1): Likewise.
18523 (decode_coding_iso2022): Check validity of a composing sequence.
18524 (code_convert_string): If the length of text to be converted is
18525 shrunk to zero, don't perform code conversion.
18526 (shrink_decoding_region): Fix previous change.
18527
18528 * editfns.c (Fformat): Check format control characters.
18529
185301998-09-25 Kenichi Handa <handa@etl.go.jp>
18531
18532 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18533 single CR code correctly.
18534 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18535 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18536
185371998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18538
18539 * w32fns.c (w32_color_map_lookup): New function.
18540 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18541
185421998-09-22 Kenichi Handa <handa@etl.go.jp>
18543
18544 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18545
18546 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18547 strings unibyte.
18548 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18549
185501998-09-22 Kenichi Handa <handa@etl.go.jp>
18551
18552 * callint.c (Fcall_interactively): Don't use input method when
18553 reading a character in the case of `c' code letter.
18554
185551998-09-21 Dave Love <fx@gnu.org>
18556
18557 * editfns.c (Fsave_restriction): Doc fix.
18558
185591998-09-21 Richard Stallman <rms@gnu.org>
18560
18561 * lread.c (build_load_history): Do add to Vload_history
18562 even when dumping Emacs.
18563
185641998-09-18 Kenichi Handa <handa@etl.go.jp>
18565
18566 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18567 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18568 cause error if the program is going to output some bytes. When
18569 outputing a string to notify an error, check the case that
18570 DST_BYTES is zero.
18571
427ec082 18572 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18573
18574 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18575 user or the CCL program executed an invalid command, return
18576 CODING_FINISH_INTERRUPT.
18577 (code_convert_region): Pay attention to the converters return
18578 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18579
185801998-09-16 Kenichi Handa <handa@etl.go.jp>
18581
18582 * coding.c (code_convert_region): Update beg_unchanged and
18583 end_unchanged after we delete the source text.
18584
18585 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18586 position if it is FROM.
18587 (adjust_markers_for_combining): New function.
18588 (combine_bytes): Call adjust_markers_for_combining instead of
18589 adjust_markers_for_replace.
18590 (adjust_after_replace): Record deletion of combining after bytes
18591 with the correct position.
18592 (replace_range): Likewise. Record the actual deletion after
18593 recoding deletions of combining bytes.
18594
18595 * xdisp.c (message_log_check_duplicate): Count byte length of the
18596 latest message correctly.
18597
185981998-09-12 Richard Stallman <rms@gnu.org>
18599
18600 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18601 instead of SET_PT_BOTH.
18602 (try_window_id, display_text_line): Likewise.
18603
186041998-09-12 Karl Heuer <kwzh@gnu.org>
18605
18606 * data.c (Fmake_local_variable): Doc fix.
18607
186081998-09-10 Dave Love <fx@gnu.org>
18609
18610 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18611
186121998-09-10 Richard Stallman <rms@gnu.org>
18613
18614 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18615 (bcopy, bcmp, bzero): Add #undef.
18616
18617 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18618 first exit if selected frame is dead (no live frames remain).
18619 (read_key_sequence): Likewise.
18620
186211998-09-10 Karl Heuer <kwzh@gnu.org>
18622
18623 * emacs.c (main): Mention --display and --eval in help.
18624
186251998-09-07 Paul Eggert <eggert@twinsun.com>
18626
18627 * editfns.c (emacs_memftime): New function.
18628 (Fformat_time_string): Use it to handle null bytes in formats
18629 correctly.
18630
186311998-09-08 Kenichi Handa <handa@etl.go.jp>
18632
18633 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18634 (Ffind_charset_string): For unibyte string, return (ascii).
18635
18636 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18637 arg MARKERS 1.
18638
18639 * insdel.c (adjust_after_replace): Don't add combining bytes to
18640 the args given to adjust_point. Handle correctly the case that
18641 there are both before and after combining bytes.
18642 (replace_range): Likewise.
18643
186441998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18645
18646 * fns.c (base64_decode_1, base64_encode_1): New functions.
18647 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18648 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18649
186501998-09-07 Karl Heuer <kwzh@gnu.org>
18651
18652 * eval.c (error): After enlarging buffer, write to it, not to buf.
18653
18654 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18655
186561998-09-07 Kenichi Handa <handa@etl.go.jp>
18657
18658 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18659 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18660 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18661
18662 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18663 chars in produced byte sequence.
18664 (Ffind_operation_coding_system): Doc-string fixed.
18665
18666 * insdel.c (count_combining_after): Check also preceding bytes at
18667 POS if all characters in STRING are not character head.
18668
186691998-09-06 Paul Eggert <eggert@twinsun.com>
18670
18671 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18672 Don't assume that localtime and gmtime return non-NULL.
18673
186741998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18675
18676 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18677 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18678 New functions.
18679
186801998-09-06 Richard Stallman <rms@gnu.org>
18681
18682 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18683
18684 * lread.c (Fload): Handle case where openp finds a magic file
18685 but it has no `load' handler or that handler calls `load'.
18686 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18687
186881998-09-04 Dave Love <fx@gnu.org>
18689
18690 * buffer.c (enable-multibyte-characters): Doc fix.
18691
186921998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18693
18694 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18695
186961998-09-01 Kenichi Handa <handa@etl.go.jp>
18697
18698 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18699 address in buffer from byte-position.
18700
187011998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18702
18703 * w16select.c (Vnext_selection_coding_system): New variable.
18704 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18705 Vselection_coding_system.
18706 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18707 Vnext_selection_coding_system if non-nil.
18708 (Fw16_get_clipboard_data): Always convert a string that includes
18709 non-ASCII characters. Use Vnext_selection_coding_system if
18710 non-nil.
18711
187121998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18713
18714 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18715 mouse capture.
18716
187171998-08-31 Kenichi Handa <handa@etl.go.jp>
18718
18719 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18720 x_list_font returns.
18721
187221998-08-31 Paul Eggert <eggert@twinsun.com>
18723
18724 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18725 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18726
187271998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18728
18729 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18730 cursor, save and restore previous cursor position in the
18731 minibuffer.
18732
187331998-08-31 Kenichi Handa <handa@etl.go.jp>
18734
18735 * charset.c (unibyte_char_to_multibyte):
18736 Vnonacii_translation_table will convert a 7-bit charcater.
18737 (multibyte_char_to_unibyte): Handle the case that
18738 Vnonacii_translation_table converts a multibyte charcater to a
18739 unibyte charcter of less than 128.
18740 (init_charset_once): Initialize nonascii_insert_offset and
18741 Vnonacii_translation_table.
18742
18743 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18744 processing if CODING requires flushing.
18745 (encode_coding): Likewise.
18746 (code_convert_region): Likewise.
18747 (code_convert_string): Likewise.
18748
18749 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18750 to convert a character less than 160 to multibyte.
18751 * insdel.c (copy_text): Likewise.
18752 (count_size_as_multibyte): Likewise.
18753 * xterm.c (dumpglyphs): Likewise.
18754
187551998-08-29 Paul Eggert <eggert@twinsun.com>
18756
18757 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18758 using negation, not subtraction; this makes a difference with
18759 IEEE floating point arithmetic (and also if integer arithmetic
18760 is ones' complement or signed-magnitude!).
18761
187621998-08-29 Karl Heuer <kwzh@gnu.org>
18763
18764 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18765
187661998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18767
18768 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18769
187701998-08-28 Paul Eggert <eggert@twinsun.com>
18771
18772 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18773 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18774 path only if we're not building with Motif.
18775
187761998-08-28 Kenichi Handa <handa@etl.go.jp>
18777
18778 * insdel.c (adjust_after_replace): Fix the code to record undo
18779 information for the case that `before combining' happens. Remove
18780 text properties which are added to the new text by
18781 offset_intervals.
18782
18783 * coding.c (code_convert_region1): Remove all text properties of
18784 the region.
18785
187861998-08-28 Kenichi Handa <handa@etl.go.jp>
18787
18788 * charset.h (CHAR_BYTES): New macro.
18789
18790 * charset.c (Fchar_bytes): Now always return 1.
18791 (char_bytes): New function.
18792
18793 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18794 range, return nil.
18795 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18796 nil.
18797
18798 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18799 * fns.c (concat): Likewise.
18800 * insdel.c (count_size_as_multibyte): Likewise.
18801 * xdisp.c (message_dolog): Likewise.
18802
188031998-08-27 Kenichi Handa <handa@etl.go.jp>
18804
18805 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18806 correctly. They are for SS2 and SS3 respectively.
18807 (ccl_coding_driver): Fix previous change.
18808
188091998-08-26 Paul Eggert <eggert@twinsun.com>
18810
18811 * xterm.c (fixup_locale): New function. For now, it resets
18812 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18813 resets LC_MESSAGES to "C".
18814 (x_term_init): Use it to fix up the locale after setlocale
18815 (LC_ALL, "").
18816
188171998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18818
18819 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18820 case it was prototyped the old way.
18821
188221998-08-25 Kenichi Handa <handa@etl.go.jp>
18823
18824 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18825 returns a null string. This happens when dxpc 3.7 is being used.
18826
188271998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18828
18829 * keyboard.c (input-method-previous-message): Doc fix.
18830
18831 * coding.c (file-coding-system-alist,
18832 select-safe-coding-system-function): Doc fix.
18833
188341998-08-23 Kenichi HANDA <handa@etl.go.jp>
18835
18836 * coding.c (detect_coding_iso2022): Don't check the byte length of
18837 succeeding codes (0xa0..0xFF) if the codes follows single shift
18838 code (SS2 or SS3).
18839
188401998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18841
18842 * coding.c (detect_coding_system): If detect_eol_type returns
18843 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18844 correctly.
18845
18846See ChangeLog.7 for earlier changes.