(syms_of_coding): Doc fix for inhibit-iso-escape-detection.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
62145073
GM
12000-07-21 Gerd Moellmann <gerd@gnu.org>
2
c20aeb83
GM
3 * xterm.c (note_mouse_highlight): Process overlays in the right
4 order of priority.
5
743934db
GM
6 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
7
8 * xterm.c (note_mouse_highlight): If help-echo was found in an
9 overlay, use that overlay as the object in which the help was
10 found.
11
d1dc7e43
GM
12 * window.c (foreach_window_1): Fix typo reversing an if-condition.
13
62145073
GM
14 * window.c (foreach_window): Instead of a fake variable argument
15 list, take one USER_DATA argument.
16 (foreach_window_1): Likewise, and call callback functions with two
17 args, the window and USER_DATA.
18 (struct check_window_data): New struct.
19 (check_window_containing): Use it.
20 (window_from_coordinates): Set up a struct check_window_data for
21 foreach_window.
22 (add_window_to_list, freeze_window_start): Change parameters
23 according to new calling convention.
24
25 * window.h (foreach_window): Change prototype.
26
27 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
28
292000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
30
31 * xmenu.c (menu_help_callback): Call show_help_echo with
32 additional arguments OBJECT and POS.
33
11270583
KH
342000-07-21 Kenichi Handa <handa@etl.go.jp>
35
07b14857
KH
36 * data.c (Faset): Allow storing any multibyte character in a
37 string. Convert unibyte string to multibyte if necessary.
38
11270583
KH
39 * xfns.c (x_encode_text): New function.
40 (x_set_name): Use x_encode_text.
41 (x_set_title): Likewise.
42
43 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
44
45 * xterm.h (x_encode_text): Add prototype.
46
bc75b4fd
DL
472000-07-20 Dave Love <fx@gnu.org>
48
49 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
50 xfree, not free.
51
48c14970
EZ
522000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
53
54 * msdos.c (help_echo_window): New variable.
55 (syms_of_msdos): Initialize and staticpro it.
56 (IT_note_mode_line_highlight): Set help_echo_window.
57 (IT_note_mouse_highlight): Ditto.
58 (dos_rawgetc): Store help_echo_window in the second event produced
59 for HELP_EVENTs.
60
61 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
62 Record the object that generated the help echo and the position of
63 that object in help_echo_object and help_echo_pos. Record that
64 some glyphs in a row are displayed in mouse-face.
65 (IT_update_begin): Don't clear mouse highlight unless one of the
66 enabled glyph rows is marked as being displayed in mouse-face.
67 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
68 and position recorded in help_echo_object and help_echo_pos to the
69 event queue.
70 (IT_menu_display): Accept a new argument PN: the pane number of
71 the current menu pane. Record the pane number and the item
72 number of the item which has associated help string.
73 (XMenuActivate): Update the prototype for help_callback in
74 function declaration. Call IT_menu_display with the current menu
75 pane number as an additional argument. Call help_callback with
76 two additional arguments: the pane number and the item number of
77 the menu item associated with the help text.
78 (help_echo_object, help_echo_pos): New variables.
79 (syms_of_msdos): Initialize them and staticpro help_echo_object.
80
81 * msdos.h (XMenuActivate): Update prototype.
82
4279296d
GM
832000-07-19 Gerd Moellmann <gerd@gnu.org>
84
47db06aa
GM
85 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
86 Add some more prototypes.
87
88 * xterm.c, xterm.h: Add some more prototypes.
89
90 * lisp.h (Fnext_single_char_property_change): Add prototype.
91
92 * dispnew.c (direct_output_for_insert): Remove confusing
93 outer local variable mouse_face_overwritten_p.
94 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
95
4279296d
GM
96 * alloc.c (allocate_string_data): Don't copy old string contents.
97
670acd62
KH
982000-07-19 Kenichi Handa <handa@etl.go.jp>
99
100 * coding.c (code_convert_region): Delete text properties before
101 shrinking the conversion region.
102
7cea38bc
GM
1032000-07-18 Gerd Moellmann <gerd@gnu.org>
104
dc1cac59
GM
105 * dispnew.c (update_text_area): Write the whole row if it
106 has mouse-face in it.
107
85a8aca9
GM
108 * xfaces.c (face-alternative-font-family-alist): Remove
109 DEFVAR_LISP; staticpro instead.
110
7cea38bc
GM
111 * xmenu.c (menu_help_callback): Call show_help_echo with
112 new arguments.
113
114 * keyboard.c (show_help_echo): Add parameter WINDOW.
115 (read_char): Call show_help_echo with window extracted from Lisp
116 help event.
117 (gen_help_event): Add parameter WINDOW.
118
119 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
120
121 * xterm.c (help_echo_window): New variable.
122 (note_mouse_highlight, note_tool_bar_highlight): Set
123 help_echo_window.
124 (XTread_socket): Pass help_echo_window to gen_help_event.
125 (syms_of_xterm): Initialize and staticpro help_echo_window.
126
f8276b77
DL
1272000-07-18 Dave Love <fx@gnu.org>
128
129 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
130 systime.h.
131
088831a6
GM
1322000-07-18 Gerd Moellmann <gerd@gnu.org>
133
3d6cd763
GM
134 * alloc.c (allocate_string_data): If string had already data
135 assigned, copy old contents to new string data.
136
137 * coding.c (syms_of_coding): Fix typo in spelling of variable
138 `inhibit-iso-escape-detection'.
139
088831a6
GM
140 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
141
142 * Makefile.in: Add dependencies on dispextern.h.
143 (alloca.o): Don't define malloc and define EMACS_FREE instead of
144 `free'; both can conflict with system header files.
145
bc8a8d55
KH
1462000-07-18 Kenichi Handa <handa@etl.go.jp>
147
148 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
149 undefined.
150
069f5950
DL
1512000-07-18 Dave Love <fx@gnu.org>
152
153 * window.c (Fwindow_list): Declare arg `window'.
154
aa96c820
KH
1552000-07-18 Kenichi Handa <handa@etl.go.jp>
156
157 * coding.c (setup_coding_system): Don't override the explicitly
158 specified designations.
159
06be8d32
MB
1602000-07-15 Miles Bader <miles@gnu.org>
161
162 * editfns.c (char_property_eq, char_property_stickiness): Renamed
163 from `text_property_eq' and `text_property_stickiness', respectively.
164 (find_field, Fconstrain_to_field, char_property_eq)
165 (char_property_stickiness): Changed to call char-property functions
166 instead of text-property-only ones.
167
168 * textprop.c (Fnext_single_char_property_change): Made a subr (was
169 `next_single_char_property_change'). Do more error checking, and
170 cleanup limit behavior.
171 (Fprevious_single_char_property_change): New function.
172 (syms_of_textprop): Initialize new subrs.
173
174 * xdisp.c (display_prop_end, invisible_text_between_p):
175 Call Fnext_single_char_property_change instead of
176 next_single_char_property_change.
177
3fddcdc3
JR
1782000-07-15 Jason Rumney <jasonr@gnu.org>
179
180 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
181 after menu is finished with.
182 (add_menu_item): Only consider wv->title as a menu title.
183 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
184
185 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
186 null title.
187 (FONT_REGEXP): Remove unused macro, and its sub-components.
188 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
189
190 * w32term.c (help_echo_object, help_echo_pos): New variables.
191 (note_mode_line_highlight): Store additional information about the
192 help-echo in help_echo_object and help_echo_pos. Check both
193 `local-map' and `keymap' properties for changing the cursor
194 (note_mouse_highlight): Store additional information about the
195 help-echo in help_echo_object and help_echo_pos.
196 (note_tool_bar_highlight): Set help_echo_object to nil and
197 help_echo_pos to -1.
198 (w32_read_socket): Use gen_help_event instead of filling
199 input_events manually.
200 (syms_of_w32term): Staticpro help_echo_object.
201 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
202 set, arrange for a mouse-highlight redisplay in
203 XTframe_up_to_date.
204 (x_clear_mouse_face): New function.
205 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
206 (x_update_window_begin): No need to turn off the mouse
207 highlight here.
208 (show_mouse_face): Set the mouse_face_p flag of glyph rows
209 depending on whether they contain glyphs highlighted in
210 mouse-face.
211 (x_fill_stretch_glyph_string): Consume runs of stretch
212 glyphs instead of a single one.
213 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
214 with new argument list.
215 (x_set_glyph_string_gc): Make sure the face's GC is valid.
216 (x_append_glyph, x_append_composite_glyph)
217 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
218 changes in struct glyph starting 1999-12-27. See comments for
219 xterm.c on 2000-07-05.
220
178c5d9c
SS
2212000-07-14 Sam Steingold <sds@gnu.org>
222
223 * xfaces.c (realize_x_face): Fix the last patch:
224 check `default_face' before dereferencing.
225
6fe533f6
DL
2262000-07-14 Dave Love <fx@gnu.org>
227
069f5950 228 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 229
dd7b81cf
KH
2302000-07-14 Kenichi Handa <handa@etl.go.jp>
231
0693904a 232 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 233 default_face's fontset, not using the default fontset.
0693904a 234
dd7b81cf
KH
235 * coding.c (inhibit_iso_escape_detection): New variable.
236 (syms_of_coding): Make it a Lisp variable.
237 (detect_coding_iso2022): If inhibit_iso_escape_detection is
238 nonzero, ignore ISO2022's escape sequence.
239
d5aa31d8
GM
2402000-07-14 Gerd Moellmann <gerd@gnu.org>
241
e5acf0ca
GM
242 * alloca.c (malloc) [emacs]: Define as xmalloc.
243
bd23a692
GM
244 * xfns.c (Fx_show_tip): If frame parameters contain a position,
245 use that instead of the mouse position. Add parameters DX and DY.
246
247 * dispextern.h (Fx_show_tip): Adjust number of parameters
248 in prototype.
249
9662da0b
GM
250 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
251 if HELP is a function, call it with OBJECT and POS as parameters
252 to get the help to display.
253 (gen_help_event, kbd_buffer_store_help_event): New functions.
254 (kbd_buffer_get_event): Construct the Lisp help-event differently.
255 (read_char): Call show_help_echo with new parameters.
256
178c5d9c 257 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
258 Add prototypes.
259
260 * xterm.c (help_echo_object, help_echo_pos): New variables.
261 (note_mode_line_highlight): Store additional information about the
262 help-echo in help_echo_object and help_echo_pos. Check both
263 `local-map' and `keymap' properties for changing the cursor
264 (note_mouse_highlight): Store additional information about the
265 help-echo in help_echo_object and help_echo_pos.
266 (note_tool_bar_highlight): Set help_echo_object to nil and
267 help_echo_pos to -1.
268 (XTread_socket): Use gen_help_event instead of filling
269 input_events manually.
270 (syms_of_xterm): Staticpro help_echo_object.
271
272 * xmenu.c (menu_highlight_callback): Use
273 kbd_buffer_store_help_event instead of setting up and input_event
274 structure manually.
275
276 * xdisp.c (eval_form): GCPRO argument sexpr.
277 (call_function): New function.
278 (handle_single_display_prop): Use call_function and FUNCTIONP
279 instead of checking whether if font_height is a symbol and
280 using eval_form.
281
282 * eval.c (internal_condition_case_2): New function.
283
284 * lisp.h (FUNCTIONP): New macro.
285 (internal_condition_case_2, call_function): Add prototypes.
286
d5aa31d8
GM
287 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
288 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
289 Always set `arg' member of input_events.
290 (construct_menu_click): Unused function removed.
291
292 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
293
294 * w32term.c (construct_mouse_click, construct_mouse_wheel)
295 (construct_drag_n_drop, x_scroll_bar_handle_click)
296 (w32_read_socket): Always set `arg' member of input_events.
297
298 * keyboard.c (show_help_echo): Use eval_form. Add comment.
299
300 * lisp.h (eval_form): Add prototype.
301
302 * xdisp.c (eval_form): Make it externally visible.
303
0f1a9b23
GM
3042000-07-13 Gerd Moellmann <gerd@gnu.org>
305
306 * xterm.c (x_handle_tool_bar_click): Store the frame in the
307 frame_or_window slot of TOOL_BAR_EVENT input events instead of
308 consing. For prefix events, store the frame in the `arg' slot of
309 the event, otherwise store the key there.
310 (XTread_socket): Instead of consing, use the frame_or_window slot
311 of HELP_EVENTs for the frame, and the `arg' slot for the help
312 string.
313
314 * xmenu.c (menu_highlight_callback): Store help string in the
315 `arg' member of the input event; don't cons.
316 (menubar_selection_callback): Use the `arg' slot of input events
317 to queue additional information, instead of consing.
318
319 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
320
321 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
322 TOOL_BAR_EVENTs.
323 (w32_read_socket): Adapt to changes in HELP_EVENTs.
324
325 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
326 input events to queue additional information, instead of consing.
327
328 * keyboard.c (kbd_buffer_gcpro): Renamed from
329 kbd_buffer_frame_or_window. Now used for all Lisp objects
330 referenced from the input queue.
331 (kbd_buffer_store_event): Always use structure assignment for
332 copying input events. Record all Lisp objects referenced from
333 events in kbd_buffer_gcpro.
334 (kbd_buffer_get_event): Construct Lisp `help-echo' events
335 differently from input events. Test for prefix menu_bar_events
336 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
337 event in kbd_buffer_gcpro to nil.
338 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
339 frame_or_window is equal to its arg member as prefix events.
340 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
341 used by an input event to nil.
342 (init_keyboard): Use two times the size of the input queue
343 for kbd_buffer_gcpro.
344 (syms_of_keyboard): Likewise.
345
346 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
347 USER_SIGNAL_EVENT.
348
349 * termhooks.h (struct input_event): Add member `arg'.
350 (MENU_BAR_EVENT): Renamed from menu_bar_event.
351 (USER_SIGNAL_EVENT): Renamed from user_signal.
352
353 * xfaces.c (ASET): Remove definition.
354
355 * lisp.h (AREF, ASET, ASIZE): New macros.
356
357 * fontset.c (AREF, ASIZE): Remove definitions.
358
359 * fns.c (AREF): Remove definition.
178c5d9c 360
0f1a9b23
GM
361 * composite.c (AREF): Remove definition.
362
712eaef2
GM
3632000-07-12 Gerd Moellmann <gerd@gnu.org>
364
d8ee7803
GM
365 * dispnew.c (redraw_overlapped_rows): Add missing local.
366 (scrolling_window): Remove debug code.
367
712eaef2
GM
368 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
369 Before scrolling, turn off a mouse-highlight in the window
370 being scrolled.
371
372 * xterm.c (x_update_window_end): Add parameter
373 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
374 redisplay in XTframe_up_to_date.
375 (x_clear_mouse_face): New function.
376 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
377
378 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
379 current glyph row.
380 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
381 it when any row is written to that contains glyphs highlighted in
382 mouse-face.
383 (update_window): Call the window update end hook with new
384 parameter MOUSE_FACE_OVERWRITTEN_P.
385 (direct_output_for_insert): Give up if row contains mouse-face.
386
387 * dispextern.h (struct redisplay_interface): Add parameter
388 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
389 (clear_mouse_face): New function pointer member.
390
02010917
SM
3912000-07-11 Stefan Monnier <monnier@cs.yale.edu>
392
393 * syntax.c (back_comment): Use one switch rather than a few `if's.
394 Obey open_paren_in_column_0_is_defun_start.
395 When reverting to the `slow' method, try to nicely handle the case
396 of nested comments by checking that the comment-starter we found
397 does indeed match the comment-ender.
398 (scan_sexps_forward, scan_sexps_forward):
399 Ignore excessive opening parenthesis rather than throwing an error.
400
d76c03ea
GM
4012000-07-11 Gerd Moellmann <gerd@gnu.org>
402
403 * doc.c (Fsubstitute_command_keys): Handle case that a GC
404 in Fwhere_is_internal or get_keymap_1 relocates string contents.
405
406 * dispnew.c (direct_output_forward_char): Give up if currently
407 displaying a message instead of the minibuffer contents.
408
409 * xterm.c (x_update_window_begin): No need to turn off the mouse
410 highlight here.
411 (show_mouse_face): Set the mouse_face_p flag of glyph rows
412 depending on whether they contain glyphs highlighted in
413 mouse-face.
414
415 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
416 compare the mouse_face_p flags of both rows.
417
418 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
419
d55ead18
EZ
4202000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
421
422 * keyboard.c (show_help_echo): Accept additional parameter
423 ok_to_overwrite_keystroke_echo.
424 (read_char): Call show_help_echo with a zero
425 ok_to_overwrite_keystroke_echo argument.
426 * keyboard.h (show_help_echo): Update prototype of
427 show_help_echo.
428 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
429 ok_to_overwrite_keystroke_echo argument.
430 * w32menu.c (w32_menu_display_help): Call show_help_echo with
431 non-zero ok_to_overwrite_keystroke_echo argument.
432
df75b1a3
GM
4332000-07-10 Gerd Moellmann <gerd@gnu.org>
434
4b92c49a
GM
435 * xdisp.c (try_window_id): If changes are all below what is
436 displayed in the window, and point is in the window, we still
437 might have to find point on the display.
438
439 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
440 glyphs instead of a single one.
441 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
442 with new argument list.
443 (x_set_glyph_string_gc): Make sure the face's GC is valid.
444
df75b1a3
GM
445 * keymap.c (get_keymap_1): Add comment that this function can GC.
446 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
447 comment that functions can GC.
448 (Fset_keymap_parent): GCPRO arg KEYMAP.
449
4314cf3e
EZ
4502000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
451
452 * msdos.c (XMenuActivate): After exiting the menu, restore the
453 echo area message and erase it.
454
ab49ce15
KH
4552000-07-10 Kenichi Handa <handa@etl.go.jp>
456
457 * fontset.c (Ffontset_info): Make the return value more compatible
458 with that of Emacs 20.
459
090a072f
GM
4602000-07-07 Gerd Moellmann <gerd@gnu.org>
461
462 * eval.c (Fsignal): Handle case that backtrace_list is null.
463
f92de4a6
KH
4642000-07-07 Kenichi Handa <handa@etl.go.jp>
465
466 * ccl.c (Fccl_execute): Typo fixed.
467
dd8888a1
GM
4682000-07-06 Gerd Moellmann <gerd@gnu.org>
469
e5c81191 470 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 471
dd8888a1
GM
472 * window.c (Fwindow_list): Reverse list at the end.
473 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
474 means allow windows on OWINDOW's frame, only.
475 (window_loop): Simplified; use Fwindow_list.
476
477 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
478
485266d0
GM
4792000-07-05 Gerd Moellmann <gerd@gnu.org>
480
481 * xterm.c (XTread_socket): Increment handling_signal at the start,
482 decrement it at the end.
483
484 * eval.c (handling_signal): New variable.
485 (Fsignal): Abort if handling_signal is non-zero.
486
487 * lisp.h (handling_signal): External declaration.
178c5d9c 488
485266d0
GM
489 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
490
80fcd514
KR
4912000-07-05 Ken Raeburn <raeburn@gnu.org>
492
493 Sound support for NetBSD through "Linux emulation" support:
494 * config.in (HAVE_SOUNDCARD_H): Undef.
495 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
496 * Makefile.in (LIBSOUND): New variable.
497 (LIBES): Include it.
498 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
499 <soundcard.h>.
500 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
501 elsewhere.
502 (vox_open): Use DEFAULT_SOUND_DEVICE.
503 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
504
d5c5cddd
GM
5052000-07-05 Gerd Moellmann <gerd@gnu.org>
506
507 * print.c (print_error_message): If Vsignaling_function is set,
508 show it in *Messages*.
509
510 * lisp.h (Vsignaling_function): External declaration.
511
512 * eval.c (Vsignaling_function): New variable.
513 (Fsignal): Compute it.
514 (syms_of_eval): Staticpro it.
515
65171e3a
DL
5162000-07-05 Dave Love <fx@gnu.org>
517
518 * syswait.h: Use the autoconf recommended approach. Old code
519 #if'd out in case we need to revert.
520
178c5d9c 521 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 522
e2c46326
AI
5232000-07-05 Andrew Innes <andrewi@gnu.org>
524
525 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
526 when non-NULL instead of __morecore, to take account of buffer
527 memory. This also solves a problem with spurious memory warnings
528 on Windows.
529
530 * ralloc.c: Make real_morecore non-static.
531
532 * eval.c (internal_condition_case): Comment out abort if
533 interrupt_input_blocked is not zero.
534
535 * makefile.nt: Add support for `bootstrap' and related targets.
536 Include minimal debug info in emacs.exe in release build.
537 Remove all dependencies on lisp.h, and fixup some others.
538
539 * w32.c (init_environment): Install code from 20.7 for providing
540 default values for environment variables, based on the
541 executable's own location.
542 (map_w32_filename): Handle filenames that are longer than
543 MAX_PATH.
544 (sys_socket): Install socket inheritance bug fix from 20.7.
545
546 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
547 here via blockinput.h).
548
a027a91b
SM
5492000-07-05 Stefan Monnier <monnier@cs.yale.edu>
550
e4b31601
SM
551 * w32menu.c (w32_menu_display_help):
552 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
553
554 * keyboard.h (show_help_echo): Declare.
555
556 * keyboard.c (show_help_echo): New function, extracted from read_char.
557 Feval its `msg' argument if it's a cons cell.
558 (read_char): Use it.
4cf8d9d5 559 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 560
178c5d9c 561 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 562 (note_tool_bar_highlight, XTread_socket):
178c5d9c 563 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
564 (dos_rawgetc):
565 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
566 (note_tool_bar_highlight, w32_read_socket):
567 Do not gratuitously ignore non-string `help-echo' properties.
568
88d75730
GM
5692000-07-05 Gerd Moellmann <gerd@gnu.org>
570
969f7e79
GM
571 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
572
71201b00
GM
573 * window.c (delete_all_subwindows): Reset Vwindow_list.
574
88d75730
GM
575 * xterm.c (x_append_glyph, x_append_composite_glyph)
576 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
577 changes in struct glyph starting 1999-12-27. Some bit-fields of
578 struct glyph were not set, which made glyphs unequal when compared
579 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
580 effects were the result. This also depended on the contents of
581 memory returned by xmalloc. If flickering happens again, activate
582 the code in clear_glyph_row that's in #if 0. If the flickering is
583 gone with that, chances are that it is caused by something
584 similar.
585
586 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 587
88d75730
GM
588 * dispextern.h: Add some comments.
589
590 * window.c (add_window_to_list): Add parameter LIST.
591 (window_list): Order list so that, for each frame, windows are
592 in canonical order, and so that frames appear in the list in
593 the order given by Vframe_list.
594 (next_window): Reverse the handling of NEXT_P.
595
53654733
GM
5962000-07-04 Gerd Moellmann <gerd@gnu.org>
597
87efd256
GM
598 * window.c (Vwindow_list): New variable.
599 (make_window, delete_window): Set Vwindow_list to nil.
600 (check_window_containing): New function.
601 (window_from_coordinates): Rewritten.
602 (add_window_to_list, window_list, candidate_window_p)
603 (decode_next_window_args, next_window): New functions.
604 (Fnext_window, Fprevious_window): Rewritten in terms of
605 next_window.
606 (Fwindow_list): New function.
607 (Fother_window): Cleaned up.
608 (foreach_window): Add a longer "variable argument list". Let
609 callback function return 0 to indicate that cycling over windows
610 should stop.
611 (foreach_window_1): Likewise.
612 (freeze_window_start): Return int.
613 (init_window): New function.
614 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
615
616 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
617 input_event with bzero.
618 (main): Call init_window.
619
53654733
GM
620 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
621 a menu filter.
622
4a8c194f
KH
6232000-07-04 Kenichi Handa <handa@etl.go.jp>
624
625 * composite.h (make_composition_value_copy): Extern it.
626
627 * composite.c (make_composition_value_copy): New function.
628
629 * editfns.c (Fformat): While copying text properties, make each
630 composition property value a copy.
631
632 * fns.c (concat): While copying text properties, make each
633 composition property value a copy.
634
831a6cb0
GM
6352000-07-03 Gerd Moellmann <gerd@gnu.org>
636
2f516940
GM
637 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
638
178c5d9c 639 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
640 marked already.
641
831a6cb0
GM
642 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
643 include those frames as candidates which have their focus
644 redirected to the minibuffer frame.
645
d9c4f922
SM
6462000-07-03 Stefan Monnier <monnier@cs.yale.edu>
647
648 * fns.c (Fputhash): Return `value' rather than nil.
649
3780bc22
GM
6502000-06-30 Gerd Moellmann <gerd@gnu.org>
651
97d176db
GM
652 * frame.c (next_frame): Don't check focus redirection in case
653 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
654 unless their focus is redirected, which contradicts the
655 specification of next-frame, and leads to infinite loops in
656 certain situations when cycling through windows with next-window.
657
dca9961d
KH
6582000-06-30 Kenichi Handa <handa@etl.go.jp>
659
660 * coding.c (code_convert_region): Even if the length of text is
661 zero, try to convert it if coding->type is coding_type_ccl.
662 (decode_coding_string, encode_coding_string): Likewise.
663
d5483ab1
GM
6642000-06-28 Gerd Moellmann <gerd@gnu.org>
665
af5c25e1 666 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 667 the display if windows_or_buffers_changed.
af5c25e1
GM
668
669 * dispnew.c (struct row_entry): New structure.
670 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
671 (row_table_size, old_lines, new_lines, old_lines_size)
672 (new_lines_size, run_pool, runs_size, runs): New variables.
673 (add_row_entry): New function.
674 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 675 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
676 holding them in local variables. Use a larger hash table whose
677 size depends on glyph matrix sizes. Don't use bzero to clear the
678 hash table; instead, clear used slots only.
679
680 * fns.c (next_almost_prime): Make it externally visible.
681
682 * lisp.h (next_almost_prime): Add prototype.
683
d5483ab1
GM
684 * s/isc4-0.h (sigunblock): Define.
685
686 * s/sco5.h (sigunblock): Define.
687
93e40f40
DL
6882000-06-27 Dave Love <fx@gnu.org>
689
690 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
691 (moved to osf5-0.h).
692 [!NOT_C_CODE]: Protect string.h stuff.
693
694 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
695 (sys_siglist, NSIG): Definitions moved here from osf1.h.
696
3c4b7685
GM
6972000-06-27 Gerd Moellmann <gerd@gnu.org>
698
97d176db 699 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
700 below the last line from the needed window height.
701
32cad0aa
SM
7022000-06-26 Stefan Monnier <monnier@cs.yale.edu>
703
704 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
705 (Fwidget_get): Use it.
706 (syms_of_fns): Defsubr it.
707
2c69ced2
GM
7082000-06-26 Gerd Moellmann <gerd@gnu.org>
709
178c5d9c 710 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
711 display info for XIM.
712 (xim_open_dpy): Likewise.
713 (xim_close_dpy): Don't free the display info's XIM.
714
715 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
716
717 * config.in (USE_XIM): New define.
718
3fc720e4
GM
719 * keymap.c (get_keyelt): For menu-items containing a `:filter
720 FILTER', apply FILTER to the menu-item's definition to get the
721 real definition to use.
722
723 * lisp.h (QCfilter): External declaration.
724
2c69ced2
GM
725 * xfns.c (Fimage_size): New function.
726 (syms_of_xfns): Defsubr it.
727
f978b2a2
AS
7282000-06-26 Andreas Schwab <schwab@suse.de>
729
730 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
731 Fstring_as_unibyte.
732
94cc7892
DL
7332000-06-25 Dave Love <fx@gnu.org>
734
735 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
736 tgetnum.
737
738 * Makefile.in (blockinput.h): Depend on atimer.h.
739 (atimer.h): Depend on systime.h.
740
741 * blockinput.h: Protect against multiple inclusion. Include
742 atimer.h.
743
744 * atimer.h: Protect against multiple inclusion. Include
745 systime.h.
746
747 * lisp.h (swap_in_global_binding): Declare.
748
b8c24556
KR
7492000-06-24 Ken Raeburn <raeburn@gnu.org>
750
751 * process.c (Fopen_network_stream): Turn off atimers for duration
752 of call to connect. (Patch from Gerd.)
753
8cf8560b
DL
7542000-06-23 Dave Love <fx@gnu.org>
755
511c7541
DL
756 * ralloc.c: Maybe include unistd.h
757
8cf8560b
DL
758 * emacs.c (setgrp): Undefine before defining.
759 (malloc_warning, set_time_zone_rule, index): Prototype.
760
761 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
762 HAVE_STRUCT_TIMEZONE.
763
764 * s/osf1.h: Move string.h hack here from alpha.h and make it
765 conditional.
766 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
767 _XOPEN_SOURCE.
768 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
769 (SOCKLEN_TYPE): Don't define.
770
771 * m/alpha.h: Remove string.h hack.
772
773 * s/osf5-0.h: New file.
774
775 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
776 include time.h, done by systime.h.
777 [__FreeBSD__]: Remove redundant includes.
778
3fc720e4 779 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
780 (delete_temp_file): Return Qnil to avoid warning.
781
782 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
783
784 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
785 HAVE_X_WINDOWS.
786
787 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
788
789 * composite.h (compose_text): Declare.
790
791 * xterm.c: Don't include sys/types.h unconditionally. Don't
792 protect its inclusion with !USG (following xmenu.c).
793
ea055732
GM
7942000-06-23 Gerd Moellmann <gerd@gnu.org>
795
796 * xfns.c (x_create_tip_frame): Initialize frame's colors like
797 in x_create_frame.
798
74b01b80
EZ
7992000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
800
801 * coding.c (decode_eol_post_ccl): Special handling for undecided
802 and inconsistent EOL types.
803
64f3a166
GM
8042000-06-22 Gerd Moellmann <gerd@gnu.org>
805
16cf31f7
GM
806 * xrdb.c (x_load_resources): Add default resource for scroll bar's
807 trough color and main window's background color.
808
178c5d9c 809 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
810 differently.
811
812 * xterm.h (Xt_app_con): External declaration.
813
814 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 815
486a103d
GM
816 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
817
64f3a166
GM
818 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
819 (handle_invisible_prop): Record the start of invisible text in
820 it->add_overlay_start.
821 (struct overlay_entry): Add member `overlay'.
822 (handle_overlay_change): Simplify.
823 (next_overlay_string): After having processed overlay strings at the
824 end of the buffer, record that fact in
825 it->overlay_strings_at_end_processed_p.
826 (compare_overlay_entries): If before- and after-strings come
827 from the same overlay, let before-strings come first.
828 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
829 (load_overlay_strings): Take it->add_overlay_start into account
830 when adding overlay strings.
831
832 * dispextern.h (struct it): Add member add_overlay_start.
833
bb746ea6
DL
8342000-06-22 Dave Love <fx@gnu.org>
835
836 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
837
838 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
839
a8f573f3
KH
8402000-06-22 Kenichi Handa <handa@etl.go.jp>
841
842 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
843 is greater than 0.
844
9f2bbc92
DL
8452000-06-21 Dave Love <fx@gnu.org>
846
178c5d9c 847 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 848
3ee5041c
SM
8492000-06-21 Stefan Monnier <monnier@cs.yale.edu>
850
851 * syntax.c (back_comment): Simplify string-parity counting (with
852 the added benefit of handling multiple string-styles as long as
853 they are not intertwined).
854 Jump to the slow code as soon as a comment starter is found in
855 a "string_lossage" position. Fixes the case: " /* " /* " */.
856
4c343001
DL
8572000-06-21 Dave Love <fx@gnu.org>
858
859 * Makefile.in: Use GETLOADAVG_LIBS.
860
861 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
862 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
863
e6365855
SM
8642000-06-20 Stefan Monnier <monnier@cs.yale.edu>
865
866 * syntax.c (describe_syntax): Recognize the `n'estable bit.
867 (Fforward_comment, scan_lists):
868 Check the comstyle of single-char comment-starters.
869 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
870 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
871 Check the comstyle of single-char comment-starters.
872 Clarify control-flow around the Scomment case.
e6365855 873
5700d2cc
DL
8742000-06-20 Dave Love <fx@gnu.org>
875
d355bd8a
SM
876 * fns.c (make_hash_table, maybe_resize_hash_table):
877 Cast arg of next_almost_prime.
5700d2cc 878
178c5d9c 879 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
880
881 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
882 and unistd.h.
883
4a27bdfb
GM
8842000-06-20 Gerd Moellmann <gerd@gnu.org>
885
a61d762c
GM
886 * keyboard.c (adjust_point_for_property): Check if display
887 property should be treated as intangible by looking at its
888 value.
889
178c5d9c 890 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
891 (display_prop_intangible_p): New functions.
892
893 * dispextern.h (display_prop_intangible_p): Add prototype.
894
895 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 896
4a27bdfb
GM
897 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
898 argument to sigprocmask.
899
900 * s/sco5.h (sigblock): Redefined to pass a pointer as second
901 argument to sigprocmask.
902
903 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
904 sigprocmask_set, and pass a pointer to it to sigprocmask.
905
906 * sysdep.c (sigprocmask_set): New variable.
907
908 * fileio.c (make_temp_name): Don't use `%s' in string passed to
909 report_file_error.
910
427ec082
SS
9112000-06-20 Sam Steingold <sds@gnu.org>
912
913 * xrdb.c: Don't declare xmalloc, xrealloc.
914
8972fe79 9152000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
916
917 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
918 (re_comp): Cast gettext return value to avoid complaints when
919 !HAVE_LIBINTL.
920
074b6efe
DL
9212000-06-20 Dave Love <fx@gnu.org>
922
f85c008a
DL
923 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
924 HAVE_GETTIMEOFDAY.
925
5700d2cc 926 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 927
d355bd8a 928 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
929
930 * m/alpha.h: Don't declare xmalloc, xrealloc.
931
0af4f205
DL
932 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
933
934 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
935
936 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
937
938 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
939 HAVE_GETWD.
940
074b6efe
DL
941 * keyboard.h (poll_for_input_1): Declare.
942
943 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
944
945 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
946
947 * doprnt.c: Don't declare xmalloc, xrealloc.
948
949 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
950 (getenv, ctime, getwd): Removed.
951 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
952
953 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
954 x_set_tool_bar_lines.
955
956 * config.in: Add HAVE_GETWD. Move some definitions above
957 machine/system includes.
958
68a5e97b
KH
9592000-06-20 Kenichi Handa <handa@etl.go.jp>
960
95417e1e
KH
961 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
962
68a5e97b
KH
963 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
964 contain information about ENCODING.
965
966 * fontset.c (FONTSET_ASCII): Use the first element of char table
967 for an ASCII font, not defalt slot.
968 (fontset_ref_via_base): If FONTSET doesn't contain information for
969 C, try the default fontset.
970 (make_fontset): Don't copy the default fontset.
971 (fontset_font_pattern): Likewise.
972 (accumulate_font_info): If ELT is nil, use the corresponding
973 element in the default fontset.
974
3b4fa1b2
DL
9752000-06-19 Dave Love <fx@gnu.org>
976
943e731c
DL
977 * syntax.c (Fparse_partial_sexp): Doc fix.
978
979 * regex.h: Test PROTOTYPES as well as __STDC__.
980
3b4fa1b2
DL
981 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
982 errno, strerror. Put text after #endif in comment.
983
984 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
985 pcc).
986
987 * xterm.c (x_frame_of_widget): Likewise.
988
cdf0357b
GM
9892000-06-19 Gerd Moellmann <gerd@gnu.org>
990
991 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
992 to Vfundamental_mode_abbrev_table.
993
994 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
995 bogus objects are marked. This slows down GC by ~80 percent, but
996 it might be worth trying when debugging GC-related problems.
997 This feature requires conservative stack marking to be enabled.
998
999 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1000 returns XLookupChars, reset `modifiers' to zero.
1001
998e9f8c
DL
10022000-06-19 Dave Love <fx@gnu.org>
1003
1004 * mktime.c: Unprotoized.
1005
18e21ce8 10062000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
1007
1008 * data.c (set_internal): If variable is frame-local,
1009 store the new value immediately into the frame parameter alist.
1010
140c4ac6
KR
10112000-06-19 Ken Raeburn <raeburn@gnu.org>
1012
14358466
KR
1013 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1014 in the custom handler pointer.
1015
140c4ac6
KR
1016 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1017 value, or checks for CHAR_META can fail when Lisp_Object is a
1018 union type.
1019 * keymap.c (get_keyelt): Likewise.
1020
10d7bf84
KH
10212000-06-19 Kenichi Handa <handa@etl.go.jp>
1022
1023 * ccl.h (struct ccl_program): New member eol_type.
1024 (struct ccl_spec): New member cr_carryover.
1025
1026 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1027 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1028
1029 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1030 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1031 (decode_eol_post_ccl): New function.
1032 (decode_coding): Don't detect EOL format here for CCL based coding
1033 systems.
1034 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1035 decode_eol_post_ccl after running the CCL program.
1036 (code_convert_region): Don't detect EOL format here for CCL based
1037 coding systems.
1038 (decode_coding_string): Likewise.
1039
52e386c2
KR
10402000-06-18 Ken Raeburn <raeburn@gnu.org>
1041
1042 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1043 when treating it as an integer.
1044
1045 * coding.h (encode_coding_string): Declare.
1046
1047 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1048 it as an integer.
1049
1050 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1051 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1052 to be passed to get_local_map.
1053
1054 * sound.c (Fplay_sound): Don't call make_number on
1055 Frun_hook_with_args count argument.
1056
1057 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1058 for lisp objects in X event structure data field, when lisp
1059 objects are represented with unions.
1060 (x_scroll_bar_to_input_event): Ditto.
1061
b357b9d4
KR
10622000-06-16 Ken Raeburn <raeburn@gnu.org>
1063
1064 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
1065 termination of string. Fix sense of test whether
1066 Vline_number_display_limit is an integer.
b357b9d4 1067
a871441d
GM
10682000-06-16 Gerd Moellmann <gerd@gnu.org>
1069
a9021acd
GM
1070 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1071 only if HAVE_X_WINDOWS.
1072
6344985d
GM
1073 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1074 of titles.
1075
427ec082 1076 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
1077 out of bounds.
1078
228b083e
EZ
10792000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1080
1081 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1082 of its headers.
1083
c25b53a2
KH
10842000-06-15 Kenichi Handa <handa@etl.go.jp>
1085
1086 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1087 start of the while loop.
1088
a6981b11
GM
10892000-06-15 Gerd Moellmann <gerd@gnu.org>
1090
e9924e52
GM
1091 * atimer.c (alarm_signal_handler): Add forward declaration.
1092
a6981b11
GM
1093 * data.c (set_internal): Remove debug code.
1094
25fa6deb
GM
10952000-06-14 Gerd Moellmann <gerd@gnu.org>
1096
dce6b995
GM
1097 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1098
9f817ea4
GM
1099 * unexec.c (toplevel) [COFF]: Include coff.h.
1100
1101 * s/lynxos.h: New file.
1102
1103 * keymap.c (Fsingle_key_description): Enclose function key and
1104 event symbol names in angle brackets.
1105
8a4e3c0c
GM
1106 * xdisp.c (setup_echo_area_for_printing): Call
1107 message_log_maybe_newline if message_buf_print is not set.
1108
1109 * print.c (printchar, strout): Don't check message_buf_print
427ec082 1110 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
1111 function does something useful even when message_buf_print is
1112 already set.
1113
25fa6deb
GM
1114 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1115 variables.
1116 (ensure_echo_area_buffers): Initialize echo buffer's
1117 truncate lines setting to nil.
1118 (with_echo_area_buffer): Don't set the echo buffer's truncate
1119 lines setting here.
8a4e3c0c 1120 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
1121 of message_truncate_lines.
1122 (resize_mini_window): Handle case that lines are truncated.
1123 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1124 message-truncate-lines.
1125
1126 * keyboard.c (read_char): Bind message-truncate-lines to t
1127 while displaying a help-echo.
1128
1129 * lisp.h (Qmessage_truncate_lines): External declaration.
1130
163dcff3
GM
11312000-06-13 Gerd Moellmann <gerd@gnu.org>
1132
1681ead6
GM
1133 * xdisp.c (Vline_number_display_limit): Renamed from
1134 line_number_display_limit.
1135 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1136 Extend documentation string. Initialize
1137 Vline_number_display_limit to nil meaning no limit.
1138 (decode_mode_spec): Use Vline_number_display_limit with its new
1139 meaning.
1140
163dcff3
GM
1141 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1142
18e21ce8 11432000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
1144
1145 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 1146
163dcff3
GM
1147 * xfns.c (x_set_frame_parameters): Comment fix.
1148
1149 * frame.c (store_frame_param): Call swap_in_global_binding if the
1150 variable's current binding was chosen based on this frame.
1151
1152 * data.c (swap_in_global_binding): New function.
1153
a704139d
EZ
11542000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1155
1156 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1157 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1158
9b6610db
EZ
11592000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1160
1161 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1162
c68833d2
JR
11632000-06-12 Jason Rumney <jasonr@gnu.org>
1164
1165 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1166
1167 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1168
1169 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1170
1171 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1172
ed1056b3
GM
11732000-06-12 Gerd Moellmann <gerd@gnu.org>
1174
1175 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1176 (syms_of_xfaces): Defsubr Sdump_colors.
1177 (x_free_colors): Don't treat b&w specially on default visual.
1178 (x_free_dpy_colors): New function.
1179 (free_face_colors): Don't check visual class; it's done
1180 in x_free_colors.
1181
1182 * xterm.c (x_frame_of_widget): New function.
1183 (x_alloc_nearest_color_for_widget): Use it.
1184 (x_copy_dpy_color): New function.
1185 (x_destroy_window): Free various colors.
1186
5050a2ef
KH
11872000-06-12 Kenichi Handa <handa@etl.go.jp>
1188
1189 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1190
1191 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1192
1193 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1194
1195 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1196
1197 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1198
fb1b041d
DL
11992000-06-11 Dave Love <fx@gnu.org>
1200
1201 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1202
ff96b5f4
EZ
12032000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1204
1205 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1206
db8eeecd
GM
12072000-06-11 Gerd Moellmann <gerd@gnu.org>
1208
ed1056b3 1209 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1210 to `XEvent *'.
1211
49b71c5f
KH
12122000-06-10 Kenichi Handa <handa@etl.go.jp>
1213
c479bd55
KH
1214 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1215 (regex_compile): Fix the code for handling the case of single byte
1216 char and multibyte char being mixed in a range within [...].
1217
ff6a65c2
KH
1218 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1219 and dst_multibyte members of coding.
1220
49b71c5f
KH
1221 * charset.c (update_charset_table): Update the table
1222 bytes_by_char_head.
1223 (init_charset_once): Initialize elements of bytes_by_char_head to
1224 1 except for leading codes for private charases.
1225
1226 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1227 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1228 sequence.
1229
9e80b57d
KR
12302000-06-09 Ken Raeburn <raeburn@gnu.org>
1231
1232 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1233 access the data it doesn't point to.
1234
f83fe4b4
GM
12352000-06-08 Gerd Moellmann <gerd@gnu.org>
1236
1237 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1238 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1239 event queue. This is necessary because Emacs otherwise won't
1240 perform a switch-frame to a new frame until some other event, for
1241 example a keystroke event, forces it to do so. This has various
1242 effects, one visible being that the cursor of a frame created with
1243 C-x 5 2 or switched to with a window manager key binding like
1244 A-TAB stays hollow because selected_window isn't on the newly
1245 focused frame until the switch-frame is performed.
1246
1247 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1248 generating a switch-frame event if necessary.
1249
1250 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1251
1252 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1253 it's an integer.
1254
0890801b
KH
12552000-06-08 Kenichi Handa <handa@etl.go.jp>
1256
1257 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1258 charset.
1259
173cbca8
GM
12602000-06-07 Gerd Moellmann <gerd@gnu.org>
1261
3091c2a6
GM
1262 * window.c (displayed_window_lines): Take empty lines at
1263 the bottom of a window into account.
427ec082 1264
f38952fe
GM
1265 * window.c (displayed_window_lines): New function.
1266 (Fmove_to_window_line): Use displayed_window_lines to determine
1267 the number of lines to move, instead of using the window's height.
1268
1269 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1270 to stop reading, even if the form read sets point to a different
1271 value when evaluated.
1272
427ec082 1273 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1274 put the cursor.
1275
6ba6c818
KH
12762000-06-07 Kenichi Handa <handa@etl.go.jp>
1277
1278 * fileio.c (e_write): Free composition data if stored in
1279 coding->cmp_data.
1280
5f1aea9a
GM
12812000-06-06 Gerd Moellmann <gerd@gnu.org>
1282
666852af
GM
1283 * xdisp.c (display_line): Set row's and iterator's
1284 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1285 Set cursor even if row ends in the middle of a character.
1286 (dump_glyph_row): Print values of new flags.
1287 (redisplay_window) <cursor movement in unchanged window>: When
1288 point has been moved forward, and PT is at the end of the cursor
1289 row, don't place the cursor in the next row if the cursor row ends
1290 in the middle of a character or at ZV.
1291
1292 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1293 (struct glyph_row): Add starts_in_middle_of_char_p and
1294 ends_in_middle_of_char_p.
1295 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1296 ends_in_middle_of_char_p flag.
1297 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1298
d13f3e2e
GM
1299 * term.c (append_glyph): Revert change of 2000-06-06.
1300
1301 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1302 padding glyph not fitting on line as whole character not
1303 fitting on line.
1304
5f1aea9a
GM
1305 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1306 this isn't true for images with `:ascent 100'.
1307
10cda9b0
KH
13082000-06-06 Kenichi Handa <handa@etl.go.jp>
1309
ed00559d
KH
1310 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1311 as modified if it is originally unmodified.
1312
10cda9b0
KH
1313 * term.c (encode_terminal_code): Change the way to check if
1314 terminal coding does any conversion.
1315 (append_glyph): Set glyph->pixel_width correctly.
1316
1317 * xdisp.c (display_line): While checking line continuation, pay
1318 attention to a padding glyph.
1319
1969fae2
GM
13202000-06-05 Gerd Moellmann <gerd@gnu.org>
1321
1322 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1323
162ccef4
DL
13242000-06-05 Dave Love <fx@gnu.org>
1325
f19f32dd
DL
1326 * xdisp.c: Include fontset.h.
1327
1328 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1329
1330 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1331
1332 * dispnew.c: Conditionally include term.h.
1333
1334 * coding.h: Declare code_convert_string_norecord.
1335
1336 * frame.h (struct frame): Use volatile unconditionally.
1337
1338 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1339
1340 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1341
1342 * systime.h: Protect against multiple inclusion.
1343 (timezone) [USG5_4]: Define as time_t.
1344
1345 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1346 (Foptimize_char_table, make_temp_name): Declare.
1347
1348 * Makefile.in (xdisp.o): Depend on fontset.h.
1349
1350 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1351
1352 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1353 (Foptimize_char_table, make_temp_name): Declare.
1354
427ec082 1355 * s/irix4-0.h:
162ccef4
DL
1356 * s/irix5-0.h:
1357 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1358
2082fe81
DL
13592000-06-02 Dave Love <fx@gnu.org>
1360
1361 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1362
dcf671d2
GM
13632000-06-02 Gerd Moellmann <gerd@gnu.org>
1364
1365 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1366 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1367 be freed.
1368
1369 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1370 glyph, use the ASCII NUL character to determine the face.
1371
d42122a3
DL
13722000-06-02 Dave Love <fx@gnu.org>
1373
1374 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1375 (VFORK_RETURN_TYPE): Remove.
427ec082 1376
d42122a3
DL
1377 * config.in: Add NO_MATHERR.
1378
dd432f16
DL
13792000-06-01 Dave Love <fx@gnu.org>
1380
90aa4ea8
DL
1381 * cmds.c (internal_self_insert): Don't check
1382 Vbefore_change_function, Vafter_change_function.
1383
1384 * insdel.c (signal_before_change, signal_after_change): Likewise.
1385
1386 * buffer.c (Vbefore_change_function, Vafter_change_function):
1387 Variables and their initializations deleted.
1388
2330c9d4
DL
1389 * callint.c (Fcall_interactively): Doc fix.
1390
dd432f16
DL
1391 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1392
bf9e8804
DL
13932000-05-31 Dave Love <fx@gnu.org>
1394
1395 * textprop.c: Revert last change -- duplicated.
1396
3694b4ab
GM
13972000-05-31 Gerd Moellmann <gerd@gnu.org>
1398
1399 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1400 in #if 0.
1401
1402 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1403
f14156cd
JR
14042000-05-31 Jason Rumney <jasonr@gnu.org>
1405
8119aab8
JR
1406 * search.c (Fre_search_forward, Fre_search_backward)
1407 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1408
f14156cd
JR
1409 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1410
4aab9be3
JR
14112000-05-30 Jason Rumney <jasonr@gnu.org>
1412
1413 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1414 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1415
1416 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1417 member.
1418
1419 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1420 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1421 expand a nil default_filename.
1422
1423 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1424 pointer to glyph_to_pixel_coords, not a frame.
1425
1426 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1427 coding.h to dependencies.
1428
1429 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1430
1431 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1432 window pointer to be consistent with w32term.c and xterm.c.
1433
1434 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1435 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1436 (Qline_spacing, Qcenter): New variables.
1437 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1438 (x_set_line_spacing): New function.
1439 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1440 macros.
1441 (x_specified_cursor_type): New function.
1442 (x_set_cursor_type): Use it.
1443 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1444 and icon strings.
1445 (validate_x_resource_name, x_get_resource_string): Measure lengths
1446 of external strings in bytes.
1447 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1448 GetTextExtentPoint32 with NULL title.
1449 (Fx_create_frame): Initialize Qline_spacing.
1450 (w32_load_system_font): Initialize font->double_byte_p.
1451 (x_to_w32_charset): Use Vw32_charset_info_alist.
1452 (Image, busy cursor, tooltip functions): Merged changes from
1453 xfns.c. Not yet functional on Windows.
1454
1455 * w32gui.h (W32FontStruct): Add double_byte_p member.
1456
1457 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1458 (emacs_button_translation): Use it.
1459 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1460 in `mask' to be set.
1461
1462 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1463 menu strings.
1464
1465 * w32term.c: Format and doc changes to bring closer to xterm.c.
1466 (w32_char_font_type): New enum.
1467 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1468 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1469 (w32_encode_char): New function.
1470 (x_encode_char): Removed.
1471 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1472 x_encode_char and w32_font_is_double_byte.
1473 (x_produce_image_glyph): Use image_ascent.
1474 (x_produce_glyphs): Use new version of w32_per_char_metric and
1475 handle NULL return value. Allow extra line spacing.
1476 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1477 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1478 w32_font_type member of glyph instead.
1479 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1480 (fast_find_position): Make sure not to consider rows not visible
1481 in the window.
1482 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1483 w32_menu_display_help with input blocked, as it can abort.
1484 (x_display_and_set_cursor): Choose cursor depending
1485 on buffer-local value of cursor_type.
1486 (x_draw_bar_cursor): Add parameter WIDTH.
1487
1488 * w32term.h (CP_DEFAULT): Define.
1489 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1490
10fc3187
GM
14912000-05-30 Gerd Moellmann <gerd@gnu.org>
1492
1493 * search.c (Fre_search_forward, Fre_search_backward)
1494 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1495
d0555360
KH
14962000-05-30 Kenichi Handa <handa@etl.go.jp>
1497
1498 * coding.c (detect_coding_iso2022): Fix code for checking
1499 CODING_CATEGORY_MASK_ISO_8_2.
1500
f1ad044f
SM
15012000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1502
1503 * regex.c (PREFETCH_NOLIMIT): New function.
1504 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1505
84ec3b4b
GM
15062000-05-29 Gerd Moellmann <gerd@gnu.org>
1507
66254a13
GM
1508 * syntax.c (find_defun_start): Move test for
1509 open_paren_in_column_0_is_defun_start outside of the loop.
1510
49e70dec
GM
1511 * xdisp.c (redisplay_window): Really switch buffers when
1512 displaying mode lines, and temporarily set selected_frame to the
1513 frame of the window that's redisplayed.
1514
84ec3b4b
GM
1515 * xfaces.c (free_realized_faces): Block/unblock input.
1516 (free_realized_multibyte_face): Ditto.
1517
869a3a14
DL
15182000-05-29 Dave Love <fx@gnu.org>
1519
1520 * textprop.c (Qkeymap): New variable.
1521 (syms_of_textprop): Intern it.
1522
1523 * keymap.c: Include intervals.h.
1524 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1525
1526 * Makefile.in (keymap.o): Depend on intervals.h.
1527
1528 * keyboard.c (menu_bar_items, tool_bar_items)
1529 (Fexecute_extended_command): Deal with `keymap' property.
1530 (read_key_sequence): Track map from `keymap' property as well as
1531 `local_map'.
1532
1533 * intervals.c (get_local_map): Extra arg to allow looking for
1534 `keymap' too.
1535
1536 * intervals.h (map_property): New enum.
1537 (get_local_map): Extra arg using it.
1538 (Qkeymap): Declare.
1539
84ec3b4b 1540 * lisp.h (get_local_map): Don't declare here.
869a3a14 1541
89d0c844
KH
15422000-05-29 Kenichi Handa <handa@etl.go.jp>
1543
1544 * Makefile.in (callproc.o): Depend on composite.h.
1545
1546 * callproc.c: Include composite.h.
1547 (Fcall_process): Handle composition correctly.
1548
1549 * coding.h (coding_allocate_composition_data): Extern it.
1550 (coding_restore_composition): Likewise.
1551
1552 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1553 yet allocated, finish decoding with result
1554 CODING_FINISH_INSUFFICIENT_CMP.
1555 (coding_allocate_composition_data): Make it non-static.
1556 (coding_restore_composition): Likewise.
1557
797a084a
EZ
15582000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1559
1560 * charset.c (syms_of_charset): Revert last change.
1561
cf872af5
EZ
15622000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1563
1564 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1565 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1566 Handa.
cf872af5 1567
5b1ae051
EZ
15682000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1569
1570 * charset.c (syms_of_charset): Set width of character sets
1571 eight-bit-control and eight-bit-graphic to 1 column.
1572
34ec9ebe
GM
15732000-05-26 Gerd Moellmann <gerd@gnu.org>
1574
1575 * config.in (HAVE_SPEED_T): New define.
1576
1577 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1578 `extern speed_t'.
1579
dd854dc2
DL
15802000-05-26 Dave Love <fx@gnu.org>
1581
1582 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1583
1584 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1585 (Fsubr_arity): New function.
1586 (syms_of_data): Install them.
1587
ba9f8f95
KH
15882000-05-26 Kenichi Handa <handa@etl.go.jp>
1589
0f3e0672
KH
1590 * charset.c (init_charset_once): Set the table bytes_by_char_head
1591 correctly.
1592
cebefb44
KH
1593 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1594 the default fontset to what Emacs uses by default.
0f3e0672
KH
1595 (check_registry_encoding): This function deleted.
1596 (Fset_fontset_font): Remove the adhoc condition for the default
1597 fontset. Allow cons in FONTNAME.
cebefb44 1598
0f3e0672
KH
1599 * fns.c (map_char_table): Ignore char-table entries for
1600 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1601
7a18af49
KR
16022000-05-25 Ken Raeburn <raeburn@gnu.org>
1603
1604 * emacs.c (main): Initialize keyboard syms before initializing
1605 window code, so face names are available.
1606
d2af47df
SM
16072000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1608
1609 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1610 of an anchor at the beginning of a shy-group.
1611
fc6a6a4e
GM
16122000-05-25 Gerd Moellmann <gerd@gnu.org>
1613
1614 * xdisp.c (handle_invisible_prop): Don't try to skip over
1615 invisible text if end of text is already reached.
1616
005f0d35
DL
16172000-05-25 Dave Love <fx@gnu.org>
1618
02513cdd
DL
1619 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1620
005f0d35
DL
1621 * coding.c (encode_eol): Add null statement after label.
1622
89f6ca4e
EZ
16232000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1624
1625 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1626 2000-05-20.
1627
a4e1759e
KH
16282000-05-25 Kenichi Handa <handa@etl.go.jp>
1629
1630 * ccl.c (ccl_driver): Fix previous change.
1631
eacfd7fe
KH
16322000-05-25 Kenichi Handa <handa@etl.go.jp>
1633
46ab33a9
KH
1634 * coding.c (run_pre_post_conversion_on_str): Set point to the
1635 beginning of buffer before calling coding->post_read_conversion.
1636 (decode_coding_string): Give correct args to
1637 run_pre_post_conversion_on_str.
1638 (encode_coding_string): Likewise.
1639
eacfd7fe
KH
1640 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1641 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1642 eight-bit-graphic correctly.
1643
f8569325
DL
16442000-05-24 Kenichi HANDA <handa@etl.go.jp>
1645
1646 * fileio.c (Finsert_file_contents): Even if a file is not found,
1647 execute codes for setting up coding system. Call
1648 after-insert-file-functions unconditionally.
1649
04545643
GM
16502000-05-24 Gerd Moellmann <gerd@gnu.org>
1651
1652 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1653 BSD_PGRPS are not defined.
1654
747d90ea
KH
16552000-05-24 Kenichi Handa <handa@etl.go.jp>
1656
1657 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1658 DESCRIPTION.
1659 (syms_of_charset): Avoid building same strings.
1660
716e3b88
GM
16612000-05-23 Gerd Moellmann <gerd@gnu.org>
1662
1663 * lread.c (Fload): Add a comment about the meaning of
1664 Vuser_init_file being t.
1665
1666 * puresize.h (BASE_PURESIZE): Increase to 675000.
1667
1668 * s/gnu-linux.h (setpgrp): Don't define it here because this
1669 prevents compilation on GNU/Linux systems with glib 2.2.
1670
1671 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1672 as setpgid.
427ec082 1673
9aeb39fa
EZ
16742000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1675
1676 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1677 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1678 version.
1679 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1680
29ced61b
KH
16812000-05-23 Kenichi Handa <handa@etl.go.jp>
1682
0574a2ed
KH
1683 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1684 unconditionally.
1685
3d80f24d
KH
1686 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1687
1688 * term.c (encode_terminal_code): Set coding->src_multibyte
1689 properly.
1690
29ced61b
KH
1691 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1692
d7e00792
KH
16932000-05-22 Kenichi Handa <handa@etl.go.jp>
1694
c9d80d38
KH
1695 * keyboard.c (read_char): Allow character codes 128..255 to be
1696 handled by input-method-function.
1697
d7e00792
KH
1698 * insdel.c (adjust_markers_for_replace): Fix previous change.
1699 (adjust_after_replace): If PREV_TEXT is nil, call
1700 adjust_markers_for_insert, not adjust_markers_for_replace.
1701
087121cc 17022000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1703
087121cc
GM
1704 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1705 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1706 [HAVE_GRANDPT]: Define.
1707 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1708
1709 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1710 like SYSV_PTYS.
1711
1712 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1713
1714 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1715
c9671f81
KH
17162000-05-20 Kenichi Handa <handa@etl.go.jp>
1717
1718 The following changes are to handle 8-bit characters in a
1719 multibyte buffer/string without facing with byte combining
1720 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1721 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1722
1723 * Makefile.in (fns.o): Depend on charset.h.
1724
1725 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1726 convert it to unibyte.
1727 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1728
1729 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1730 apparent char boundary.
1731 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1732 0x80..0x9F to/from multibyte form.
1733
1734 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1735 to unibyte.
1736
1737 * callproc.c (Fcall_process): Always encode an argument string if
1738 it is multibyte. Setup src_multibyte and dst_multibyte members of
1739 process_coding properly.
ce75fd23 1740
c9671f81
KH
1741 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1742 SPLIT_NON_ASCII_CHAR.
1743
1744 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1745 as is.
1746 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1747
1748 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1749 variables.
1750 (SPLIT_CHARACTER_SEQ): This macro deleted.
1751 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1752 valid.
1753 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1754 and eight-bit-graphic.
1755 (char_to_string): Likewise. Signal an error for too large
1756 character code.
1757 (char_printable_p): Return 0 for 8-bit characters.
1758 (update_charset_table): Update iso_charset_table only when a final
1759 character is non-negative.
1760 (find_charset_in_text): Renamed from find_charset_in_str.
1761 Arguments and return value changed. Callers changed.
1762 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1763 be -1 if CHARSET is used only internally.
1764 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1765 eight-bit-graphic.
1766 (Fcharset_after): Simplified.
1767 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1768 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1769 (multibyte_chars_in_text): Simplified by assuming there's no
1770 invalid multibyte sequence.
1771 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1772 str_as_unibyte): New functions.
1773 (Fstring): Simpified by assuming that byte combining never
1774 happens.
1775 (init_charset_once): Initialization for
1776 LEADING_CODE_8_BIT_CONTROL.
1777 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1778 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1779 eight-bit-control and eight-bit-graphic.
1780
1781 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1782 CHARSET_8_BIT_GRAPHIC): New macros.
1783 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1784 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1785 (CHARSET_REVERSE_CHARSET): Likewise.
1786 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1787 eight-bit-graphic.
1788 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1789 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1790 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1791 encounter an invalid multibyte sequence.
1792 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1793 sequence is always valid.
1794 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1795 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1796 macros.
1797 (CHAR_STRING): For 8-bit characters, call char_to_string.
1798 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1799 multibyte sequence is always valid.
1800 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1801 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1802 str_as_unibyte): Extern them.
1803 (BCOPY_SHORT): Fix a bug.
1804 (CHAR_LEN): This macro deleted. Callers changed to use
1805 CHAR_BYTES.
1806 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1807 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1808 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1809
bd4bde7f 1810 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1811 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1812 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1813 EMIT_BYTES): New macros.
1814 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1815 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1816 macros deleted.
1817 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1818 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1819 check the validity of multibyte sequence.
1820 (decode_coding_emacs_mule): New function.
1821 (encode_coding_emacs_mule): New macro.
1822 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1823 the source.
1824 (DECODE_ISO_CHARACTER): Just return a character code.
1825 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1826 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1827 EMIT_CHAR to produced decoded characters. Exit the loop only by
1828 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1829 block here.
1830 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1831 only position codes for an invalid character.
1832 (encode_designation_at_bol): Return new destination pointer. 5th
1833 arg DSTP is changed to DST.
1834 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1835 from the source by ONE_MORE_CHAR. Don't handle the case of last
1836 block here.
1837 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1838 macros deleted.
1839 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1840 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1841 TWO_MORE_BYTES to fetch a byte from the source.
1842 (encode_eol): Pay attention to coding->src_multibyte.
1843 (detect_coding, detect_eol): Preserve members src_multibyte and
1844 dst_multibyte.
1845 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1846 (encoding_buffer_size): Set magnification to 3 for all coding
1847 systems that require encoding.
1848 (ccl_coding_driver): For decoding, be sure that the result is
1849 valid multibyte sequence.
1850 (decode_coding): Initialize coding->errors and coding->result.
1851 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1852 and raw-text, always call decode_eol. Handle the case of last
1853 block here. If not coding->dst_multibyte, convert the resulting
1854 sequence to unibyte.
1855 (encode_coding): Initialize coding->errors and coding->result.
1856 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1857 and raw-text, always call encode_eol. Handle the case of last
1858 block here.
1859 (shrink_decoding_region, shrink_encoding_region): Detect cases
1860 that we can't skip data more rigidly.
1861 (code_convert_region): Setup src_multibyte and dst_multibyte
1862 members of coding. For decoding, if the buffer is multibyte,
1863 convert the source sequence to unibyte in advance. For encoding,
1864 if the buffer is multibyte, convert the resulting sequence to
1865 multibyte afterward.
1866 (run_pre_post_conversion_on_str): New function.
1867 (code_convert_string): Deleted and divided into the following two.
1868 (decode_coding_string, encode_coding_string): New functions.
1869 (code_convert_string1, code_convert_string_norecord): Call one of
1870 above.
1871 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1872 MAKE_NON_ASCII_CHAR.
1873 (Fset_terminal_coding_system_internal,
1874 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1875 and dst_multibyte members.
1876 (init_coding_once): Initialize iso_code_class with new enum
1877 ISO_control_0 and ISO_control_1.
1878
1879 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1880 devided into ISO_control_0 and ISO_control_1.
1881 (struct coding_system): New members src_multibyte, dst_multibyte,
1882 errors, and result. Delete member fake_multibyte.
1883 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1884 nonzero.
1885 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1886 nonzero.
1887
1888 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1889 (Faset): Likewise.
1890
1891 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1892 multibyte form.
1893 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1894 combining occurs.
1895 (Ftranspose_region): Delete codes for handling byte combining.
1896
1897 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1898 dst_multibyte members of coding. On handling REPLACE on unibyte
1899 buffer, convert the result of decode_coding to unibyte. On
1900 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1901 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1902 multibyteness of the source (buffer or string).
1903
1904 * fns.c (concat): Handle 8-bit characters correctly.
1905 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1906 unibyte in the result.
1907 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1908 valid multibyte form in the result.
1909 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1910 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1911 return -1, signal an error.
1912 (base64_encode_1): New arg MULTIBYTE. Get each character by
1913 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1914 character is found, return -1.
1915 (Fbase64_decode_region): Delete codes for handling byte-combining.
1916 Treat each decoded byte as a unibyte character.
1917 (Fbase64_decode_string): Return unibyte string.
1918 (Fcompare_strings, concat, string_byte_to_char): Use
1919 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1920 FETCH_STRING_CHAR_ADVANCE.
1921 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1922 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1923
1924 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1925 SPLIT_NON_ASCII_CHAR.
1926 (fontset_ref_via_base, fontset_set): Likewise
1927
1928 * insdel.c (adjust_markers_for_record_delete): Deleted.
1929 (adjust_markers_for_insert): Argument changed. Caller changed.
1930 (adjust_markers_for_replace): Likewise.
1931 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1932 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1933 (copy_text): Delete unused local varialbe c_save. For converting
1934 to multibyte, be sure to make all 8-bit characters in valid
1935 multibyte form.
1936 (count_size_as_multibyte): Handle 8-bit characters correctly.
1937 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1938 adjust_after_replace, replace_range, del_range_2)
1939 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1940 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1941 adjust_after_replace, replace_range, del_range_2) Delete codes for
1942 handling byte combining.
1943 (adjust_before_replace): Deleted.
427ec082 1944
c9671f81
KH
1945 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1946 SPLIT_NON_ASCII_CHAR.
1947 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1948 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1949 unconditionally.
1950 (Fkey_description): Likewise.
1951
1952 * lread.c (read1): On reading multibyte string, be sure to make
1953 all 8-bit chararacters in valid multibyte form.
1954 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1955
1956 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1957 unconditionally.
1958
1959 * process.c (Fstart_process): GCPRO current_dir before calling
1960 Ffind_operation_coding_system. Encode arguments here.
1961 (create_process): Don't encode arguments here. Setup
1962 src_multibyte and dst_multibyte members of struct coding.
1963 (read_process_output): Setup src_multibyte and dst_multibyte
1964 members of struct coding. If the output is to multibyte buffer,
1965 always decode the output of the process. Adjust the
1966 representation of 8-bit characters to the multibyteness of the
1967 output.
1968 (send_process): Setup coding->src_multibyte according to the
1969 multibyteness of the source.
1970
1971 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1972 unconditionally.
1973 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1974 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1975
1976 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1977 CHAR_LEN.
1978
1979 * w16select.c (Fw16_set_clipboard_data): Setup members
1980 src_multibyte and dst_multibyte of coding. Adjusted for the
1981 change for find_charset_in_str.
1982 (Fw16_get_clipboard_data): Likewise.
1983
1984 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1985 dst_multibyte of coding.
1986 (x_to_w32_font): Likewise.
1987
1988 * w32select.c (Fw32_set_clipboard_data): Setup members
1989 src_multibyte and dst_multibyte of coding. Adjusted for the
1990 change for find_charset_in_str.
1991 (Fw32_get_clipboard_data): Likewise.
1992
1993 * xdisp.c (get_next_display_element): Handle 8-bit characters
1994 correctly.
1995 (next_element_from_display_vector): Use CHAR_BYTES instead of
1996 CHAR_LEN.
1997 (disp_char_vector): Use SPLIT_CHAR instead of
1998 SPLIT_NON_ASCII_CHAR.
1999
2000 * xselect.c (selection_data_to_lisp_data): Setup members
2001 src_multibyte and dst_multibyte of coding. Adjusted for the
2002 change for find_charset_in_str.
2003 (lisp_data_to_selection_data): Likewise.
2004
5f64c9e0
GM
20052000-05-19 Gerd Moellmann <gerd@gnu.org>
2006
2b63d473
GM
2007 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2008 buffer.
2009
5f64c9e0
GM
2010 * dispextern.h (Vimage_types): Add extern declaration.
2011
2012 * xdisp.c (Vimage_types): Moved here from xfns.c.
2013 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2014
2015 * xfns.c (Vimages_types): Moved to xdisp.c.
2016 (syms_of_xfns): Move `image-types' to xdisp.c.
2017
2018 * w32fns.c (Vimage_types): Removed.
2019 (syms_of_w32fns): Remove `image-types'.
2020
813086ea
KH
20212000-05-18 Kenichi Handa <handa@etl.go.jp>
2022
2023 * fns.c (map_char_table): Pay attention to character number of
2024 charset. Check the validity of charset at the first level. For
2025 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2026 the default value.
2027
2028 * fontset.c: Include "buffer.h".
2029 (fs_load_font): If the face has fontset, record the face ID in
2030 that fontset.
2031 (Finternal_char_font): New function.
2032 (accumulate_font_info): New function.
2033 (Ffontset_info): Rewritten for the new fontset implementation.
2034 (syms_of_fontset): Register Vdefault_fontset in the first element
2035 of Vfontset_table. Include Vdefault_fontset in
2036 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2037 function.
2038
bdaebbf0
DL
20392000-05-16 Dave Love <fx@gnu.org>
2040
2041 * m/iris5d.h: Deleted -- unused.
2042
cb613bb8
GM
20432000-05-16 Gerd Moellmann <gerd@gnu.org>
2044
b15f3b77
GM
2045 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2046 `invalid' instead of `illegal'.
2047
2048 * indent.c (Fmove_to_column): When ending within a tab, insert
2049 spaces first so that markers at the end of the tab get adjusted.
2050
835c1b36
GM
2051 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2052 buffer list that wasn't selected in that frame.
2053
cb613bb8
GM
2054 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2055 is needed on mescaline, use a 2 char prefix, and call
2056 make_temp_name with second arg non-zero.
2057
2058 * fileio.c (make_temp_name): New function, extracted from
2059 Fmake_temp_name.
2060 (Fmake_temp_name): Use it.
2061
f685bea9
EZ
20622000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2063
2064 * window.c (coordinates_in_window): Subtract 1 when computing
2065 right_x.
2066
a1b8d58b
GM
20672000-05-15 Gerd Moellmann <gerd@gnu.org>
2068
2069 * Makefile.in (lisp): Add env.elc.
2070
2071 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2072
a265079f
GM
20732000-05-12 Gerd Moellmann <gerd@gnu.org>
2074
2075 * search.c (Freplace_match): Handle case of `\N' in the
2076 replacement when there's no group N.
2077
da4496b6
GM
20782000-05-11 Gerd Moellmann <gerd@gnu.org>
2079
0ace421a
GM
2080 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2081 of the message to message_dolog.
2082
1172eb8d
GM
2083 * keyboard.c (read_char): Don't clear current message for help
2084 events; let the code handling help events handle this. Change
2085 code detecting help events that should be ignored.
2086
da4496b6
GM
2087 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2088 we're interating over a string.
2089
0623e40f
DL
20902000-05-09 Dave Love <fx@gnu.org>
2091
2092 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2093 that offset before writing. Move gcpro region past call of
2094 Ffile_regular_p.
2095
bae2503b
DL
20962000-05-04 Dave Love <fx@gnu.org>
2097
2098 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2099
ec82fb2f
GM
21002000-05-04 Gerd Moellmann <gerd@gnu.org>
2101
2102 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2103 of inserted characters when BUF equals the current buffer, and PT
2104 is in front of or equal to FROM.
2105
cbf18892
GM
21062000-05-03 Gerd Moellmann <gerd@gnu.org>
2107
4ff40dd0
GM
2108 * xdisp.c (handle_single_display_prop): If display property value
2109 is invalid, or something not supported on the frame, restore
2110 iterator's position to what it was initially. Make sure to return
2111 0 for invalid and unsupported property values.
2112
cbf18892
GM
2113 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2114 that x_per_char_metric returns null.
2115
1b0672c3
GM
21162000-05-02 Gerd Moellmann <gerd@gnu.org>
2117
576da55d
GM
2118 * xterm.h (struct face): Add forward declaration.
2119 (struct image): Ditto.
2120 (image_ascent): Add prototype.
2121
2122 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2123 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2124 image_ascent instead of using IMAGE_ASCENT.
2125
2126 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2127 (IMAGE_ASCENT): Removed.
2128
2129 * xfns.c (Qcenter): New variable.
2130 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2131 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2132 (image_ascent): New function.
2133 (lookup_image): Recognize `:ascent center'.
2134 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2135 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2136 (xbm_load): Don't set image's ascent here.
2137 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2138 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2139 check ascent values here.
2140 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2141 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2142 (syms_of_xfns): Initialize Qcenter.
2143
1b0672c3
GM
2144 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2145 to the limits, increase the limits.
2146
0d7811ed
KH
21472000-05-01 Kenichi Handa <handa@etl.go.jp>
2148
2149 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2150 Check Vfont_encoding_alist against the full name of the opened
2151 font.
2152
a943a5ca
GM
21532000-04-28 Gerd Moellmann <gerd@gnu.org>
2154
2155 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2156 taller than the window.
2157
5dba1e29
KH
21582000-04-28 Kenichi Handa <handa@etl.go.jp>
2159
2160 * xfaces.c (realize_x_face): Fix the argument of the second
2161 xassert. BASE_FACE may not be a face for ASCII.
2162
353964e3
GM
21632000-04-27 Gerd Moellmann <gerd@gnu.org>
2164
c76e04a8
GM
2165 * print.c (print_object): Treat print-length < 0 as nil.
2166
2167 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2168
2169 * s/freebsd.h (TERMCAP_OBJ): Removed.
2170 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2171
2172 * lread.c (read1): Don't treat period followed by certain
2173 characters as symbol start.
2174
2175 * xfns.c (slurp_file): New function.
2176 (xbm_image_p): Handle case of in-memory XBM files.
2177 (xbm_scan): Rewritten to work on memory buffers instead of files.
2178 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2179 Work on memory buffers instead of files. If DATA is null test
2180 if buffer looks like an in-memory XBM file.
2181 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2182 memory buffers instead of files.
2183 (xbm_file_p): New function.
2184 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2185
353964e3
GM
2186 * lread.c (end_of_file_error): New function.
2187 (read1): Call it instead of signaling `end-of-file' directly.
2188
427ec082 2189 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2190 with Fprinc instead of Fprin1.
2191
24d744ac
KR
21922000-04-26 Ken Raeburn <raeburn@gnu.org>
2193
2194 * window.c (freeze_window_start): Check that minibuffer scroll
2195 window isn't nil before extracting the window structure pointer
2196 from it.
2197
2198 * undo.c (record_delete): If we hit the end of the undo list, stop
2199 picking elements apart.
2200
7464346d
GM
22012000-04-26 Gerd Moellmann <gerd@gnu.org>
2202
2203 * xdisp.c (display_line): If lines are continued, restore
2204 iterator's ascent/descent information to the values before the
2205 first glyph not fitting on the line.
2206
612839b6
GM
22072000-04-25 Gerd Moellmann <gerd@gnu.org>
2208
2209 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2210 positions in glyph matrix. Don't compute new window end
2211 positions.
2212
2213 * dispnew.c (increment_matrix_positions): Renamed from
2214 increment_glyph_matrix_buffer_positions.
2215 (increment_row_positions): Renamed from
2216 increment_glyph_row_buffer_positions.
2217
2218 * dispextern.h: Change names of renamed functions from dispnew.c
2219 in prototypes.
2220
cc181e95
GM
22212000-04-24 Gerd Moellmann <gerd@gnu.org>
2222
abfcc168
GM
2223 * fileio.c (Fdo_auto_save): Create directories for auto-save
2224 list file if necessary.
2225
cc181e95
GM
2226 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2227 from buffer or frame.
2228 (automatic_hscrolling_p): New variable.
2229 (hscroll_windows): Scroll windows horizontally only if automatic
2230 hscrolling is allowed.
2231 (syms_of_xdisp): New variable `automatic-hscrolling'.
2232
2233 * frame.h (struct frame): Add member extra_line_spacing.
2234
2235 * xfns.c (x_set_line_spacing): New function.
2236 (Fx_create_frame): Set line spacing from resources.
2237 (Qline_spacing): New variable.
2238 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2239
cc181e95
GM
2240 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2241
2242 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2243 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2244 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2245 extra_line_spacing from default value.
2246 (init_buffer_once): Initialize default value of extra_line_spacing.
2247
2248 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2249 and extra3.
2250
2251 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2252 prompt_width. Add extra line spacing.
2253
2254 * term.c (produce_glyphs): Remove reference to struct it's
2255 prompt_width.
2256
2257 * dispextern.h (struct it): Remove member prompt_width, add
2258 extra_line_spacing.
2259
58827478
GM
22602000-04-22 Gerd Moellmann <gerd@gnu.org>
2261
2262 * dispnew.c (update_frame_line): When writing a whole line, make
2263 sure cursor is in the right row afterwards, otherwise a use of
2264 capability `ch' in cmgoto might leave the cursor in the row below.
2265
25a87f42
GM
22662000-04-21 Gerd Moellmann <gerd@gnu.org>
2267
2268 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2269
2270 * keyboard.c (timer_check): Fix typo in comment.
2271
54edf5c2
KH
22722000-04-21 Kenichi Handa <handa@etl.go.jp>
2273
2274 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2275 name change: ch -> character.
2276
3a64eef5
GM
22772000-04-20 Gerd Moellmann <gerd@gnu.org>
2278
2279 * keyboard.c (echo_message_buffer): New variable.
2280 (echo_now): Set echo_message_buffer to the echo area buffer used
2281 to display the echo.
2282 (cancel_echoing): Reset echo_message_buffer to nil.
2283 (read_char): Code rewritten that handles canceling an echo or
2284 echoing a dash, respectively.
2285
2286 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2287 directory doesn't exist.
2288
6142fdcb
DL
22892000-04-19 Dave Love <fx@gnu.org>
2290
2291 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2292 (concat): Don't allow numeric args.
2293 (Fconcat): Doc change.
6142fdcb 2294
ac6b5352
SM
22952000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2296
2297 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2298 instead define end_match(1|2) more carefully.
2299 Use GET_CHAR_BEFORE_2 for `begline'.
2300
cb9215e4
GM
23012000-04-19 Gerd Moellmann <gerd@gnu.org>
2302
5e3dac3f
GM
2303 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2304 on 64-bit systems where NULL is defined as `0'.
2305
2306 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2307 the `variable argument list' to make it work on Alpha.
2308
cb9215e4
GM
2309 * m/alpha.h (_LP64) [!_LP64]: Define.
2310 (ORDINARY_LINK): Define for NetBSD.
2311
2312 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2313
f532dca0
DL
23142000-04-19 Dave Love <fx@gnu.org>
2315
c750667e
DL
2316 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2317 change.
2318
2319 * Makefile.in (LIBS): Don't use.
2320 (GETLOADAVG_OBJ): Define again.
2321 (otherobj): Add GETLOADAVG_OBJ.
2322
f532dca0
DL
2323 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2324
1c7e22fd
GM
23252000-04-18 Gerd Moellmann <gerd@gnu.org>
2326
f6d3257b
GM
2327 * lread.c (read_filtered_event): Cancel and start busy cursor.
2328
427ec082 2329 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2330 that the per-character metrics may be null.
2331
e10f64e7
GM
23322000-04-17 Gerd Moellmann <gerd@gnu.org>
2333
0daee095
GM
2334 * buffer.c (clone_per_buffer_values): New function.
2335 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2336 clone_per_buffer_values if CLONE is not nil.
2337
e10f64e7
GM
2338 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2339
38687d43
DL
23402000-04-16 Dave Love <fx@gnu.org>
2341
2342 * Makefile.in: Remove obsolete localcpp stuff.
2343 (GETLOADAVG_OBJ): Don't define.
2344 (obj): Move LIBOBJS...
2345 (otherobj): ... to here.
2346 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2347 whitespace-only lines after the continuation (Irix).
2348
c21c7262
GM
23492000-04-14 Gerd Moellmann <gerd@gnu.org>
2350
2351 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2352
2353 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2354
314767c0
DL
23552000-04-14 Dave Love <fx@gnu.org>
2356
2357 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2358 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2359 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2360 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2361 NLIST_STRUCT.
2362
2363 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2364 autoconfiscated HAVE_GETLOADAVG.
2365
2366 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2367 BROKEN_MKTIME.
2368
a2522dca
GM
23692000-04-14 Gerd Moellmann <gerd@gnu.org>
2370
2371 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2372 (fill_in_lock_file_name): Avoid existing files that aren't
2373 links.
2374
33744b5d
DL
23752000-04-14 Dave Love <fx@gnu.org>
2376
c21c7262 2377 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2378 (INTERVAL_SRC): Convert to make variable.
2379 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2380 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2381 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2382 add LIBOBJS.
2383 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2384 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2385 (shortlisp): Add facemenu, float-sup, frame.
2386 (SOME_MACHINE_LISP): Remove them from here.
2387 (LIBES): Change unused LDLIBS to autoconf LIBS.
2388
2389 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2390
9d3d5916
KH
23912000-04-14 Kenichi Handa <handa@etl.go.jp>
2392
2393 * composite.c (update_compositions): If FROM and TO are not in a
2394 valid range, do nothing.
2395
198e3c7a
GM
23962000-04-13 Gerd Moellmann <gerd@gnu.org>
2397
2398 * tparam.c (tparam1): Abort when encountering an unknown
2399 `%'-specifier.
2400
2401 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2402 terminfo.o.
2403
2404 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2405 as TERMCAP_OBJ.
2406
055a28c9
EZ
24072000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2408
2409 * fileio.c (a_write): Remove redundant semi-colons.
2410 (e_write): Return -1 if failed to write all the data.
2411 This fixes the changes made at 1999-12-15.
2412
f5c75033
DL
24132000-04-12 Dave Love <fx@gnu.org>
2414
2415 * fns.c (mapcar1): Test for null vals to support mapc.
2416 (Fmapc): New function.
2417
0c3cfc51
EZ
24182000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2419
2420 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2421 (IT_frame_up_to_date): Support the buffer local value of
2422 cursor-type, if defined.
2423
33465a31
DL
24242000-04-10 Dave Love <fx@gnu.org>
2425
2426 * editfns.c (preceding-char, following-char): Doc fix.
2427
6ed56568
KR
24282000-04-10 Ken Raeburn <raeburn@gnu.org>
2429
2430 * Makefile.in (temacs): Revert 2000-03-12 change.
2431
7cf80d4e
JR
24322000-04-10 Jason Rumney <jasonr@gnu.org>
2433
2434 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2435
34f3f342
GM
24362000-04-10 Gerd Moellmann <gerd@gnu.org>
2437
1a1b1895
GM
2438 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2439 area buffer, if it's not set up yet.
2440
34f3f342
GM
2441 * indent.c (compute_motion): Set immediate_quit.
2442
be0dbdab
GM
24432000-04-09 Gerd Moellmann <gerd@gnu.org>
2444
c45be9ac
GM
2445 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2446 variable.
2447 (realize_tty_face): Suppress boldness if colors are the inverse of
2448 the default colors, and tty_suppress_bold_inverse_default_colors_p
2449 is set.
2450 (Ftty_suppress_bold_inverse_default_colors): New function.
2451 (syms_of_xfaces): Defsubr it.
2452
be0dbdab
GM
2453 * buffer.c (Frestore_buffer_modified_p): New function.
2454 (syms_of_buffer): Defsubr it.
2455
e8413c3b
KR
24562000-04-08 Ken Raeburn <raeburn@gnu.org>
2457
87f67317
KR
2458 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2459 charset id (int) argument, not a charset (Lisp_Object).
2460
e8413c3b
KR
2461 * coding.h (code_convert_string): Declare.
2462 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2463 object, as the fourth argument to code_convert_string.
2464
2465 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2466 value.
2467 (Fset_fontset_font): Use EQ to compare lisp objects.
2468
7c752c80
KR
24692000-04-05 Ken Raeburn <raeburn@gnu.org>
2470
c0333abc
KR
2471 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2472 a pointer that looks like a lisp object.
2473 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2474 zero, instead see whether it's an integer object, since they can't
2475 have intervals.
2476 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2477
7c752c80
KR
2478 * dispnew.c (allocate_matrices_for_frame_redisplay,
2479 direct_output_forward_char): Use X(U)INT and make_number as needed
2480 to convert between (unsigned) int values and lisp integers.
2481 * keyboard.c (read_key_sequence): Likewise.
2482 * lread.c (substitute_object_recurse): Likewise.
2483 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2484 * minibuf.c (do_completion, Fminibuffer_complete_word,
2485 Fminibuffer_completion_help): Likewise.
2486 * term.c (produce_special_glyphs): Likewise.
2487
2488 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2489 * print.c (print_preprocess, print_object): Likewise.
2490
2491 * search.c (compile_pattern): Use NILP when checking for nil.
2492
74e49b38
KR
2493 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2494 __OPTIMIZE__]: Provide a GNU C macro version that handles
2495 lisp-object unions.
2496 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2497 field, to better cope with ENABLE_CHECKING and calls that modify a
2498 Lisp_Object using its old value.
2499
685e5ed2
GM
25002000-04-04 Gerd Moellmann <gerd@gnu.org>
2501
c407c570
GM
2502 * window.c (compare_window_configurations): Signal an error
2503 if parameters C1 or C2 aren't window configurations.
2504
685e5ed2
GM
2505 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2506 AFTER_POTENTIAL_GC calls around calls to functions that can
2507 signal an error and thus invoke the debugger.
2508
587a49ab
GM
25092000-04-03 Gerd Moellmann <gerd@gnu.org>
2510
62f20204
GM
2511 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2512 an error if decoding fails.
2513
587a49ab
GM
2514 * keyboard.c (lispy_mouse_names): Variable removed.
2515 (Vlispy_mouse_stem): New variable.
2516 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2517 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2518 for any mouse button number. Increase size of mouse_syms and
2519 button_down_location as needed. Call modify_event_symbol with
2520 different arguments.
2521 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2522 Call modify_event_symbol with different arguments.
2523 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2524 for any button number. Call modify_event_symbol with different
2525 arguments.
2526 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2527 Accept a string for NAME_ALIST_OR_STEM.
2528
2529 * lisp.h (larger_vector): Add prototype.
2530
2531 * fns.c (larger_vector): Make externally visible.
2532
2533 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2534
2d1675e4
SM
25352000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2536
2537 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2538 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2539 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2540 we are between str1 and str2.
2541 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2542 (PATFETCH): Use `TRANSLATE'.
2543 (PATFETCH_RAW): Fetch multibyte char if applicable.
2544 (PATUNFETCH): Remove.
2545 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2546 When writing a char, write it directly into the pattern buffer rather
2547 than going needlessly through a temp char-array.
2548 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2549 multibyte magic and remove the useless `#ifdef emacs'.
2550 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2551 buffer.
2552
2553 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2554 conditional on `emacs'.
2555
2556 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2557
cc2d8c6b
KR
25582000-04-01 Ken Raeburn <raeburn@gnu.org>
2559
2560 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2561 non-union-type versions of XMARK and friends here, because XMARK
2562 and friends won't work on an integer field if NO_UNION_TYPE is not
2563 defined.
2564 (make_number): Define as a function if it's not defined as a
2565 macro.
2566
09654086
KR
2567 * composite.c (run_composite_function): Use NILP when checking for
2568 nil.
2569 (syms_of_composite): Delete local var NARGS, pass an int as first
2570 argument to Fmake_hash_table.
2571
2387b382
KR
2572 * editfns.c (text_property_stickiness): Use NILP to test
2573 Lisp_Object boolean value.
2574 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2575 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2576 problems reading from and changing the same lisp value in an
2577 XSETSTRING call.
2578
27660e89
GM
25792000-04-01 Gerd Moellmann <gerd@gnu.org>
2580
2581 * term.c (TN_no_color_video): New variable.
2582 (term_init): Intitialize TN_no_color_video.
2583 (enum no_color_bit): New enumeration.
2584 (MAY_USE_WITH_COLORS_P): New macro.
2585 (turn_on_face): Use it to determine if attributes may be used
2586 combined with colors.
2587
3578db3c
KR
25882000-04-01 Ken Raeburn <raeburn@gnu.org>
2589
2590 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2591 with int lvalues via casts; instead, just yield lisp object
2592 lvalues.
2593 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2594 proper accessor macros.
2595 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2596 (grow_mini_window): Fix typo getting int value of root->height.
2597
6fc556fd
KR
2598 * xdisp.c (compute_string_pos): Fix order of arguments to
2599 string_pos_nchars_ahead.
2600 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2601 count arg to variable-arg routines like Frun_hook_with_args and
2602 Fformat.
587a49ab
GM
2603 (back_to_previous_visible_line_start)
2604 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2605 fixed-arg routines like Fget_char_property and Fmake_string.
2606 (reconsider_clip_changes): Use XINT when comparing integer lisp
2607 objects, or passing them as int arguments.
587a49ab
GM
2608 (mark_window_display_accurate, insert_left_trunc_glyphs)
2609 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2610 storing or passing integer values as lisp objects.
2611 (set_cursor_from_row, highlight_trailing_whitespace): Use
2612 INTEGERP, not implicit test against zero, for glyph object.
2613 (try_window_id): Don't use make_number when we want an int value.
2614
2615 * xfaces.c (xlfd_symbolic_value): Make last argument a
2616 Lisp_Object, to be consistent with callers.
2617 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2618 (lface_hash): Apply XFASTINT to lisp values before folding in.
2619
2620 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2621 fill in window width and height. Pass an int, not a lisp object,
2622 as first arg to Finsert.
2623
6e7b2457
GM
26242000-04-01 Gerd Moellmann <gerd@gnu.org>
2625
610d841e
GM
2626 * xfaces.c (realize_basic_faces): Block input while realizing
2627 the faces.
2628
6e7b2457
GM
2629 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2630
2631 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2632
aa110c0c
GM
26332000-03-31 Gerd Moellmann <gerd@gnu.org>
2634
2635 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2636 or ASCII, handle case that per-char metric is null.
aa110c0c 2637
8801a864
KR
26382000-03-30 Ken Raeburn <raeburn@gnu.org>
2639
c6129d7e
KR
2640 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2641
8801a864
KR
2642 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2643 XSUBR, XBUFFER): Verify correct object type before returning
2644 pointer, using eassert.
2645 * frame.h (XFRAME): Likewise.
2646
2647 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2648 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2649 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2650 type.
2651 * data.c (set_internal): Likewise.
2652 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2653 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2654 * fileio.c (auto_save_1): Likewise.
2655 * insdel.c (check_markers): Likewise.
2656 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2657 * undo.c (record_insert): Likewise.
2658 * vmsproc.c (child_sig): Likewise.
2659 * window.c (unshow_buffer, window_loop): Likewise.
2660 * xterm.c (x_erase_phys_cursor): Likewise.
2661
8e7af858
GM
26622000-03-30 Gerd Moellmann <gerd@gnu.org>
2663
2664 * xfns.c (free_image_cache): Free the cache structure itself
2665 last, after all its members have been freed.
2666
2667 * lisp.h (xstrdup): Add prototype.
2668
2669 * alloc.c (xstrdup): Moved here from xfaces.c.
2670 (allocating_for_lisp): Variable removed.
2671 (lisp_malloc): Block input around the calls to malloc and
2672 mem_insert.
2673
2674 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2675 of Fsymbol_value.
2676 (xstrdup): Moved to alloc.c.
2677
e0b8c689
KR
26782000-03-29 Ken Raeburn <raeburn@gnu.org>
2679
b96f9fb7
KR
2680 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2681
2682 * emacs.c (main): Fix sense of no-loadup test.
2683
e0b8c689
KR
2684 * config.in (ENABLE_CHECKING): Undef.
2685
2686 * lisp.h (struct interval): Replace "parent" field with a union of
2687 interval pointer and Lisp_Object; add new bitfield to use as
2688 discriminant. Change other flag fields to bitfields.
2689 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2690 is defined and the supplied test fails, print a message and
2691 abort.
2692 (eassert): New macro. Use CHECK to provide an assert-like
2693 facility.
2694
2695 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2696 pointers; abort if the value looks like a lisp object.
2697 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2698 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2699 Modify for new interval parent definition.
2700
2701 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2702 UNMARK_BALANCE_INTERVALS): Update references that need an
2703 addressable lisp object in the interval structure.
2704 (die): New function.
2705 (suppress_checking): New variable.
2706
2707 * intervals.c (interval_start_pos): Just return 0 if there's no
2708 parent object.
2709
f83c5440
GM
27102000-03-29 Gerd Moellmann <gerd@gnu.org>
2711
2712 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2713 and earlier Emacs versions.
2714
2715 * keyboard.c (Ftop_level): Cancel busy-cursor.
2716
2717 * eval.c (call_debugger): Cancel busy-cursor.
2718
fdce64ff
KH
27192000-03-29 Kenichi Handa <handa@etl.go.jp>
2720
2721 * search.c (Freplace_match): Adjust multibyteness of the current
2722 buffer and NEWTEXT. Free allocated memory before signaling an
2723 error.
2724
f6a3f532
SM
27252000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2726
2727 * regex.c (analyse_first): New function obtained by ripping out most
2728 of re_compile_fastmap and generalizing it a little bit so that it
2729 can also just return whether a given (sub)pattern can match the empty
2730 string or not.
2731 (regex_compile): Use `analyse_first' to decide whether the loop-check
2732 needs to be done or not for *, +, *? and +? (the loop check is costly
2733 for non-greedy repetition).
2734 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2735
e9b309ac
DL
27362000-03-28 Dave Love <fx@gnu.org>
2737
bb15bd9a
DL
2738 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2739 alpha.
2740
e9b309ac
DL
2741 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2742
ed0767d8
SM
27432000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2744
2745 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2746 an expression.
2747 (enum re_opcode_t): Update description of succeed_n.
2748 (PATFETCH): Always define.
2749 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2750 operators, char classes, shy-groups and intervals).
2751 Optimize special cases of intervals so as to only use succeed_n and
2752 jump_n when really needed.
2753 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2754 that we don't have to handle the special cases any more.
2755 Simplify on_failure_jump handling as well.
2756
e11e7e46
JR
27572000-03-28 Jason Rumney <jasonr@gnu.org>
2758
2759 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2760
88faab89
GM
27612000-03-27 Gerd Moellmann <gerd@gnu.org>
2762
182ff242
GM
2763 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2764
2765 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2766
182ff242
GM
2767 * alloc.c (mark_maybe_object): New function.
2768 (mark_memory): Use it.
2769 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2770 (setjmp_tested_p, longjmp_done): New variables.
2771 (test_setjmp): New function.
2772 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2773 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2774
c1005d06
GM
2775 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2776 to DEC_TEXT_POS and INC_TEXT_POS.
2777
2778 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2779 with parameter MULTIBYTE_P.
2780
427ec082 2781 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2782 MULTIBYTE_P.
2783
7439e5b9 2784 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2785 buffers because it looks for multibyte character byte sequences
2786 which don't exist in unibyte text.
7439e5b9 2787
d9c545da
GM
2788 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2789
11fd416e 2790 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2791 [DEBUG_X_COLORS]: New functions.
2792 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2793
2794 * xfns.c (x_set_cursor_color): Get color reference counts right.
2795
2796 * xterm.c (x_copy_color): New function.
2797 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2798
2799 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2800 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2801 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2802 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2803 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2804 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2805 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2806 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2807 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2808 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2809
11fd416e
GM
2810 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2811 names for handling per-buffer variables.
d9c545da
GM
2812
2813 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2814 instead of MAX_BUFFER_LOCAL_VARS.
2815 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2816
2817 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2818
88faab89
GM
2819 * xfns.c (x_specified_cursor_type): New function.
2820 (x_set_cursor_type): Use it.
2821
2822 * buffer.h (struct buffer): Add cursor_type.
2823
d80f42b7
SM
28242000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2825
2826 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2827 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2828 opcode.
d80f42b7
SM
2829 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2830 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2831 executing it as well as when popping it off the stack to find infinite
2832 loops in non-greedy repetition operators.
2833
89e80928
GM
28342000-03-26 Gerd Moellmann <gerd@gnu.org>
2835
3d4ff2dd
GM
2836 * doc.c (Qfunction_documentation): New variable.
2837 (syms_of_doc): Initialize Qfunction_documentation.
2838 (Fdocumentation): If FUNCTION is a symbol with non-nil
2839 `function-documentation' property, return a documentation derived
2840 from that.
2841
bd96bd79
GM
2842 * buffer.c (syms_of_buffer): Add default-cursor-type.
2843 (init_buffer_once): Don't let cursor_type have a local value
2844 in every buffer.
2845
19d1bc27
GM
2846 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2847 on buffer-local value of cursor_type.
2848 (x_draw_bar_cursor): Add parameter WIDTH.
2849
2850 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2851 (init_buffer_once): Set default cursor_type value to t.
2852 Mark cursor_type as local everywhere.
2853 (syms_of_buffer): New per-buffer variable cursor-type.
2854
89e80928
GM
2855 * buffer.h (struct buffer): Remove member local_var_flags,
2856 add local_flags.
2857 (MAX_BUFFER_LOCAL_VARS): New macro.
2858 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2859 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2860 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2861 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2862
2863 * print.c (print_object): Use new macros for per-buffer
2864 variables.
2865
2866 * category.c (Fset_category_table): Use new macros for per-buffer
2867 variables.
2868
2869 * buffer.c (buffer_permanent_local_flags): Make a char array.
2870 (max_buffer_local_idx): New variable.
2871 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2872 for new handling of per-buffer variables.
2873 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2874 (init_buffer_once): Initialize per-buffer vars differently.
2875 Set max_buffer_local_idx.
2876
2877 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2878 variables.
2879
2880 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2881 variables.
2882
2883 * data.c (do_symval_forwarding, store_symval_forwarding)
2884 (find_symbol_value, set_internal, default_value, Fset_default)
2885 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2886 per-buffer variables.
2887
2888 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2889
9a0dd3dc
GM
28902000-03-24 Gerd Moellmann <gerd@gnu.org>
2891
b68c375f
GM
2892 * xterm.c (x_term_init): Unblock input around call1 of
2893 Qvendor_specific_keysyms.
2894
9a0dd3dc
GM
2895 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2896 (find_defun_start): Consider an open parenthesis in column 0
2897 a defun start only if open_paren_in_column_0_is_defun_start is set.
2898 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2899
7973e637
SM
29002000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2901
2902 * eval.c (Fautoload): Add entry in load-history (if after dump).
2903 * lread.c (load-history): Update docstring.
2904
39210e90
GM
29052000-03-24 Gerd Moellmann <gerd@gnu.org>
2906
2907 * indent.c (Fvertical_motion): Always use the current buffer.
2908 Temporarily change the window's buffer, if necessary.
2909
72db3ab5
GM
29102000-03-23 Gerd Moellmann <gerd@gnu.org>
2911
2912 * xterm.c (fast_find_position): Make sure not to consider rows
2913 not visible in the window.
2914
990b2375
SM
29152000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2916
2917 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2918 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2919
ff4df011
JR
29202000-03-22 Jason Rumney <jasonr@gnu.org>
2921
2922 * w32menu.c (single_submenu): Set help string to NULL if none.
2923 (w32_menu_show): Set help string correctly.
2924 (add-menu-item): Set help string in MIIM_DATA for menu item.
2925 Load SetMenuItemInfoA explicitly.
2926 (w32_menu_display_help): New function.
427ec082 2927
ff4df011
JR
2928 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2929 (QCdata): Moved to xdisp.c.
2930
2931 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2932 (Vw32_charset_to_codepage_alist): Removed.
2933 (Vw32_charset_info_alist): New variable.
2934 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2935 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2936 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2937 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2938 with TODO comment.
2939 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2940 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2941 Define Vw32_charset_info_alist and w32_charset symbols.
2942
29432000-03-22 Jason Rumney <jasonr@gnu.org>
2944
2945 * makefile.nt (w32bdf.obj): Update dependencies.
2946
2947 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2948
2949 * w32fns.c: Include fontset.h after dispextern.h.
2950 (Fx_create_frame): Do not create fontset.
2951 (w32_load_system_font): Doc fix.
2952 (Fx_close_connection): Free full_name if it is not shared.
2953
2954 * w32term.c: Include fontset.h after dispextern.h.
2955 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2956 updated.
2957 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2958 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2959 (w32_font_is_double_byte): New function, needs body.
2960 (x_append_glyph): Set glyph->glyph_not_available_p.
2961 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2962 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2963 character, convert it to a unibyte character.
2964 (struct glyph_string): Delete member `charset'.
2965 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2966 calculating it is found.
2967 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2968 the case that per char metric is not available correctly.
2969 (x_fill_glyph_string): Handle the case that the specific glyph is
2970 not available correctly.
2971 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2972 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2973 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2974 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2975 fontset. Don't call FS_LOAD_FONT.
2976
439d5cb4
KR
29772000-03-22 Ken Raeburn <raeburn@gnu.org>
2978
2979 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2980 (INT_LISPLIKE): New macro.
2981 (NULL_INTERVAL_P): Use it.
2982 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2983 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2984 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2985
2986 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2987 explicit references to "parent" field of struct interval and
2988 associated unclean type conversions.
2989 * intervals.c (create_root_interval, root_interval, rotate_right,
2990 rotate_left, balance_possible_root_interval, split_interval_right,
2991 split_interval_left, interval_start_pos, find_interval,
2992 next_interval, previous_interval, update_interval,
2993 adjust_intervals_for_insertion, delete_node, delete_interval,
2994 adjust_intervals_for_deletion, merge_interval_right,
2995 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2996 copy_intervals_to_string): Likewise.
2997 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2998 Likewise.
2999 * syntax.c (update_syntax_table): Likewise.
3000
3001 * intervals.c (reproduce_tree_obj): New function, like
3002 reproduce_tree but takes a Lisp_Object for the parent. Declare
3003 with prototype.
3004 (graft_intervals_into_buffer): Use it when appropriate.
3005 (reproduce_tree): Declare with prototype.
3006 (balance_possible_root_interval): Check that the parent is a lisp
3007 object before trying to examine its type.
3008
ee1c5b21
GM
30092000-03-22 Gerd Moellmann <gerd@gnu.org>
3010
3011 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3012 as strings only if both are known to be strings.
3013
3014 * s/openbsd.h (LIBS_TERMCAP): Undef.
3015
1fb352e0
SM
30162000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3017
3018 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3019 definitions for non-Emacs compilation.
3020 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3021 outside of `#ifdef emacs'.
3022 (print_partial_compiled_pattern): Update.
3023 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3024 (re_compile_fastmap): Merge handling of charset and charset_not (for
3025 emacs and non-emacs compilation as well).
3026 Similarly for (not)categoryspec and (not)syntaxspec.
3027 Don't use the fastmap when reaching `anychar' since the added
3028 complexity is not justified.
3029 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3030 and (not)syntaxspec. Merge (not)categoryspec.
3031
fdaa1f77
KH
30322000-03-22 Kenichi Handa <handa@etl.go.jp>
3033
ff1a0d8e
KH
3034 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3035 FACE_FOR_CHAR): Define them differently for the configuration of
3036 --without-x.
fdaa1f77 3037
d152fb46
DL
30382000-03-21 Dave Love <fx@gnu.org>
3039
3040 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3041 doc string.
3042
d2cafc8c
GM
30432000-03-21 Gerd Moellmann <gerd@gnu.org>
3044
3045 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3046 (lface_fully_specified_p): Don't check contents of
3047 LFACE_FONT_INDEX because that attribute is optional.
3048 (realize_x_face): Remove now unwarranted xassert.
3049
9111d4b5
KH
30502000-03-21 Kenichi HANDA <handa@etl.go.jp>
3051
3052 The following changes are to make font selection based on
3053 characters, not charset. In addition, they recover fontset
3054 facilities while utilizing the new font selection mechanism.
3055
6c4bfdc0
KH
3056 * Makefile.in (fontset.o): Depend on dispextern.h.
3057
3058 * alloc.c (mark_face_cache): Don't mark face->registry.
3059
9111d4b5
KH
3060 * dispextern.h (struct glyph): New member glyph_not_available_p.
3061 Use 22 bits for face_id.
3062 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3063 (struct face): Delete member registry, new member ascii_face.
3064 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3065 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3066 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3067 (struct it): Delete member charset, new member
3068 glyph_not_available_p.
3069
3070 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3071 (struct fontset_info, struct fontset_data): Structs removed.
3072 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3073 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3074 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3075 (fs_free_face_fontset, fontset_font_pattern,
3076 face_suitable_for_char_p, face_for_char,
3077 make_fontset_for_ascii_face): Extern them.
3078 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3079 (FS_LOAD_FACE_FONT): New macro.
3080
3081 * fontset.c: All codes rewritten or adjusted for the change of
3082 fontset implementation. Now fontset is represented by char table.
3083 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3084 removed.
3085 (my_strcasecmp): Function removed.
3086 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3087 variables.
3088 (AREF, ASIZE): New macros.
3089 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3090 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3091 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3092 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3093 fontset_id_valid_p, font_family_registry, fontset_name,
3094 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3095 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3096 New functions.
3097 (fs_load_font): New arg FACE. Caller changed.
3098 (fs_query_fontset): Argument changed. Caller changed.
3099 (Fquery_fontset): call fs_query_fontset.
3100 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3101 Functions removed.
3102 (clear_fontset_elements, check_registry_encoding,
3103 check_fontset_name): New functions.
3104 (syms_of_fontset): Set char-table-extra-slots property of fontset
3105 to 3. Staticpro and initialize Vfontset_table and
3106 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3107
3108 * frame.h (struct frame): Member `fontset_data' removed.
3109 (FRAME_FONTSET_DATA): Macro removed.
3110
3111 * frame.c (make_frame): Don't allocate f->fontset_data.
3112 (Fdelete_frame): Don't free f->fontset_data.
3113
6c4bfdc0
KH
3114 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3115
9111d4b5
KH
3116 * xdisp.c (charset_at_position): Function removed.
3117 (init_iterator): Don't set member charset of struct `it'.
3118 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3119 next_element_from_display_vector, insert_left_trunc_glyphs):
3120 Likewise.
3121 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3122 FACE_FOR_CHARSET.
3123 (get_next_display_element, append_space,
3124 extend_face_to_end_of_line): Likewise.
3125
3126 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3127 Variables removed.
3128 (clear_font_table, frame_update_line_height, load_face_font):
3129 Adjusted for the change of fontset implementation.
3130 (load_face_fontset_font): Function removed.
3131 (pixel_point_size): New function.
3132 (font_list): Argument type changed. Caller changed.
3133 (LFACE_FONT): New macro.
3134 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3135 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3136 Lisp_Object. Determine the font name by actually loading a font
3137 by the specified pattern. Set LFACE_FONT (lface) to the specified
3138 pattern. Even if a font is not found, don't try alternatives.
3139 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3140 (set_font_frame_param): If `font' is specified in lface, use it.
3141 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3142 (lface_same_font_attributes_p): Likewise.
3143 (make_realized_face): Arguent changed. Caller changed. Set
3144 face->ascii_face to face itself.
3145 (free_realized_face): Free face->fontset if face is for ASCII.
3146 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3147 deduce_unibyte_registry, x_charset_registry): Functions removed.
3148 (free_realized_multibyte_face): New function.
3149 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3150 changed. Caller changed.
3151 (try_font_list): Argument type changed.
3152 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3153 (choose_face_font): Argument changed. Handle fontset properly.
3154 (choose_face_fontset_font): Function removed.
3155 (realize_default_face, realize_named_face): Don't remove the
3156 former face here.
3157 (realize_face): Argument changed. Caller changed. Remove face
3158 with the arg former_face_id in advance. Load font for the new
3159 face.
3160 (realize_x_face): Argument changed. Caller changed. For a
3161 multibyte character, share fontset with base_face. For a single
3162 byte character, make a new realized fontset. Don't load a font
3163 here.
3164 (realize_tty_face): Argument changed. Caller changed.
3165 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3166 (face_at_buffer_position): Don't check multibyte_p for returning
3167 DEFAULT_FACE_ID.
3168 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3169 FACE_SUITABLE_FOR_CHARSET_P.
3170 (syms_of_xfaces): Remove code for Qx_charset_registry and
3171 Vface_default_registry.
3172
6c4bfdc0
KH
3173 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3174 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3175 (x_per_char_metric): Don't try FONT->default_char. Even if
3176 pcm->width is zero, glyph bits may exist.
3177 (x_encode_char): Always initialize char2b->byte1.
3178 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3179 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3180 changed.
3181 (x_append_glyph): Set glyph->glyph_not_available_p.
3182 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3183 it->charset. Handle the case that per char metric is not
3184 available. If it->multibyte_p is zero and it->c is a multibyte
3185 character, convert it to a unibyte character.
3186 (struct glyph_string): Delete member `charset'.
3187 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3188 the case that per char metric is not available correctly.
3189 (x_fill_glyph_string): Handle the case that the specific glyph is
3190 not available correctly.
3191 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3192 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3193 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3194 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3195 fontset. Don't call FS_LOAD_FONT.
3196
3197 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3198 (x_create_tip_frame): Likewise.
3199 (Fx_close_connection): Free full_name of font_info.
3200
3201 * fns.c (optimize_sub_char_table): New function.
3202 (Foptimize_char_table): New function.
3203 (syms_of_fns): Defsubr Soptimize_char_table.
3204
b33dd3b0
GM
32052000-03-20 Gerd Moellmann <gerd@gnu.org>
3206
3207 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3208 only if buffer is displayed in some window.
3209
3210 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3211 (try_window_reusing_current_matrix): Don't call scroll run
3212 function if run's current and desired position are the same;
3213 this prevents cursor flickering.
3214
4e8a9132
SM
32152000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3216
3217 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3218
3219 * regex.c (RE_STRING_CHAR): New macro.
3220 (GET_CHAR_AFER_2): Remove.
3221 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3222 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3223 (print_partial_compiled_pattern, re_compile_fastmap)
3224 (re_match_2_internal): Remove on_failure_jump_exclusive.
3225 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3226 optimization only need to work for * (ie. can use of_keep_string_jump).
3227 Remove the special case for .*\n since it is now covered by the general
3228 optimization.
3229 (re_search_2): Don't bother with `room'.
3230 (skip_one_char): New function.
3231 (skip_noops): Simplify since `memory' is not needed any more.
3232 (mutually_exclusive_p): Restructure slightly to use `switch' and
3233 add handling for "all" remaining cases.
3234 (re_match_2_internal): Change on_failure_jump_smart to use
3235 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3236 rather than on_failure_jump_exclusive.
3237
2136fdd4
GM
32382000-03-19 Gerd Moellmann <gerd@gnu.org>
3239
3240 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3241 number of bits per RGB because it's everywhere used as the depth
3242 of the visual.
3243
3244 * term.c (calculate_costs): Remove code dealing with X frames.
3245
18e21ce8 32462000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
3247
3248 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3249
d7b511c4
GM
32502000-03-18 Gerd Moellmann <gerd@gnu.org>
3251
3252 * lread.c (read_integer): Unread the last char not consumed.
3253
16b5d424
GM
32542000-03-17 Gerd Moellmann <gerd@gnu.org>
3255
3256 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3257 which are in the process of being deleted.
16b5d424 3258
1fa28578
GM
32592000-03-16 Gerd Moellmann <gerd@gnu.org>
3260
83488cce
GM
3261 * Makefile.in (mostlyclean): Add `*.core'.
3262 (clean): Add `bootstrap-emacs'.
3263
1fa28578
GM
3264 * lread.c (read_integer): New function.
3265 (read1): Support read syntax #o, #x, #b, #r.
3266
99633e97
SM
32672000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3268
1fa28578
GM
3269 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3270 make sure POINTER_TO_OFFSET gives the same value before and after
3271 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3272 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3273 (debug): Now only active if > 0 rather than if != 0.
3274 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3275 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3276 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3277 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3278 (store_op1, store_op2, insert_op1, insert_op2)
3279 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3280 (group_in_compile_stack): Move to after its arg's types are
3281 declared and add a prototype.
99633e97 3282 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3283 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3284 wrapper.
99633e97 3285 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3286 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3287 indentation of the greedy-op and shy-group code.
99633e97
SM
3288 (at_(beg|end)line_loc_p): Fix argument's types.
3289 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3290 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3291 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3292 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3293 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3294 QUIT unconditionally.
99633e97 3295
699238d9
GM
32962000-03-15 Gerd Moellmann <gerd@gnu.org>
3297
3298 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3299 a sole completion.
3300
3301 * process.c (send_process): Add a hint that the function
3302 can call Lisp code to its comment.
3303
3304 * lread.c (load_dangerous_libraries): New variable.
3305 (Vbytecomp_version_regexp): New variable.
3306 (safe_to_load_p): New function.
3307 (Fload): Handle files not compiled with Emacs specially.
3308 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3309
34e23e5a
GM
33102000-03-14 Gerd Moellmann <gerd@gnu.org>
3311
9c763cca
GM
3312 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3313
3314 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3315 support functions only if HAVE_X11R6_XIM is defined.
3316 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3317
3318 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3319
3320 * xfns.c (X_I18N_INHIBITED): Don't define.
3321 (create_frame_xic): Remove conditional compilation on
3322 X_I18N_INHIBITED.
3323 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3324
3325 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3326 (HAVE_X11R6_XIM): Define.
3327
3328 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3329
34e23e5a
GM
3330 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3331 If set, call XSynchronize.
3332
66f0296e
SM
33332000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3334
34e23e5a
GM
3335 * regex.c: Declare a new type `re_char' used throughout the code
3336 for the string char type. It's `const unsigned char' to match the
3337 rest of Emacs. Consistently make sure all pointers to strings use
3338 it and make sure all pointers into the pattern use `unsigned
3339 char'.
66f0296e 3340 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3341 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3342 code duplication.
66f0296e
SM
3343
3344 * charset.h (GET_CHAR_AFTER_2): Remove.
3345 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3346
854a025c
KR
33472000-03-12 Ken Raeburn <raeburn@gnu.org>
3348
3349 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3350 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3351 of them try to use backquotes.
3352
b9d2c7e2
DL
33532000-03-12 Dave Love <fx@gnu.org>
3354
3355 * unexelf.c: Restore changes of 1999-10-19.
3356 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3357 fix its type and alignment; copy it from current process.
3358
5e5dff44
GM
33592000-03-12 Gerd Moellmann <gerd@gnu.org>
3360
9b2f3c38
GM
3361 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3362 has been found. Fix bug not computing timer's predecessor.
3363
427ec082 3364 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3365 file name.
3366
e1cff360
GM
3367 * window.c (Fsave_window_excursion): Doc fix.
3368
5e5dff44
GM
3369 * xfns.c (x_defined_color): Rewritten to use
3370 x_allocate_nearest_color.
3371
e411ce4b
EZ
33722000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3373
3374 * msdos.c (vga_installed): New function, code moved from
3375 dos_set_window_size.
3376 (Qbar, Qcursor_type, outside_cursor): New variables.
3377 (syms_of_msdos): Intern and staticpro them.
3378 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3379 shape used outside Emacs when called for the first time.
3380 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3381 cursor shape used outside Emacs.
3382 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3383 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3384 type has changed.
3385 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3386 parameters specify the cursor. Make qreverse a global
3387 variable (renamed to Qreverse).
3388
80460654
GM
33892000-03-09 Gerd Moellmann <gerd@gnu.org>
3390
3391 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3392
95cd4c40
SM
33932000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3394
3395 This is a big redesign of failure-stack and register handling, prompted
3396 by bugs revealed when trying to add shy-groups. Overall, what happened
3397 is that loops are now structured a little differently, groups can be
3398 shy and the code is a little simpler.
3399
3400 * regex.h: Update the copyright.
3401 (RE_SHY_GROUPS): New value.
3402 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3403 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3404
80460654
GM
3405 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3406 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3407 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3408 for (start|stop)_memory since they now only take one argument (the
3409 second has becomes unnecessary).
3410 (print_partial_compiled_pattern): Adjust for changes in
3411 re_opcode_t.
3412 (print_compiled_pattern): Use %ld to printf long ints and flush to
3413 make debugging a little easier.
95cd4c40
SM
3414 (union fail_stack_elt): Make the integer unsigned.
3415 (struct fail_stack_type): Add a `frame' element.
3416 (INIT_FAIL_STACK): Init `frame' as well.
3417 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3418 (DEBUG_PUSH, DEBUG_POP): Remove.
3419 (NUM_REG_ITEMS): Remove.
3420 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3421 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3422 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3423 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3424 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3425 macros.
3426 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3427 address pushed is not the destination of the jump but the source
3428 of it instead.
95cd4c40
SM
3429 (NUM_FAILURE_ITEMS): Remove.
3430 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3431 registers before the actual failure point). Don't hardcode any
3432 meaning for str==NULL anymore.
95cd4c40 3433 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3434 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3435 Remove.
95cd4c40
SM
3436 (REG_UNSET_VALUE): Use NULL (why not?).
3437 (compile_range): Remove declaration since it doesn't exist.
3438 (struct compile_stack_elt_t): Remove inner_group_offset.
3439 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3440 (regex_grow_registers): Remove dead code.
3441 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3442 (regex_compile): Add shy-groups Change loops to use
3443 on_failure_jump_smart&jump instead of
3444 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3445 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3446 variable to me). Use `jump' instead of `jump_past_alt' and don't
3447 bother with push_dummy_failure in alternatives since it is now
3448 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3449 emacs' for (re)allocating the stack.
3450 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3451 from loop when bufp->can_be_null rather than jumping to `done'.
3452 Avoid jumping backwards so as to ensure termination. Use
3453 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3454 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3455 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3456 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3457 improve mutually_exclusive_p to handle ".+\n".
3458 (lowest_active_reg, highest_active_reg,
3459 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3460 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3461 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3462 variables. Push register (in `start_memory') on the stack rather
3463 than storing it in old_reg(start|end). Remove the cycle detection
3464 from `stop_memory', replaced by the use of on_failure_jump_loop
3465 for greedy loops. Add code for the new on_failure_jump_<foo>.
3466 Remove ad-hoc code in `on_failure_jump' to push more registers in
3467 the case of a loop. Take out code from `maybe_pop_jump' into
3468 separate functions and adapt it to the semantics of
3469 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3470 and push_dummy_failure. Remove dummy_failure handling and
3471 handling of `failures to jump to on_failure_jump' (this last one
3472 was already dead code, it seems).
3473 (group_match_null_string_p, alt_match_null_string_p)
3474 (common_op_match_null_string_p): Remove.
95cd4c40 3475
7397acc4
DL
34762000-03-08 Dave Love <fx@gnu.org>
3477
3478 * config.in: Don't depend on __STDC__ for volatile.
3479 Add POINTER_TYPE, PTR, PROTOTYPES.
3480
3481 * hftctl.c, strftime.c: Use PROTOTYPES.
3482 * eval.c (find_handler_clause): Likewise.
3483
3484 * mem-limits.h: Use POINTER_TYPE.
3485
3486 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3487 (memory_warnings): Declare using POINTER_TYPE.
3488
5e91ff9e
GM
34892000-03-08 Gerd Moellmann <gerd@gnu.org>
3490
feab4fba
GM
3491 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3492
25edb08f
GM
3493 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3494 collection.
3495
5e91ff9e
GM
3496 * xfns.c: Remove obsolete code in #if 0.
3497 (Fx_focus_frame): New function.
3498
a735b7e1
KH
34992000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3500
3501 * coding.c (coding_category_name): Add coding-category-utf-8,
3502 coding-category-utf-16-be, coding-category-utf-16-le.
3503 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3504 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3505 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3506 (detect_coding_utf_8): New function.
3507 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3508 UTF_16_LOW_SURROGATE_P): New macros.
3509 (detect_coding_utf_16): New function
3510 (detect_coding_mask): When priorities are specified, skip any
3511 categories that have `nil' coding-system. Fix bug of returning
3512 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3513 returns a mask not set in PRIORITIES.
3514 (detect_eol_type_in_2_octet_form): New function.
3515 (detect_eol): selects detect_eol_type_XXX to call according to
3516 cooding->category_idx.
3517 (detect_coding_system): Remove `nil' coding-system in the result.
3518 (Fupdate_coding_systems_internal): Update all coding-categories.
3519
3520 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3521 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3522 macros.
3523 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3524 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3525 CODING_CATEGORY_IDX_UTF_16_LE.
3526 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3527 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3528 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3529 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3530
9994cc69
GM
35312000-03-07 Gerd Moellmann <gerd@gnu.org>
3532
e9b4e5ff
GM
3533 * doc.c (Fdocumentation_property): If value is not a string,
3534 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3535
f7daf1e1
GM
3536 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3537 close the display with XtCloseDisplay. This caused a bus error
3538 on OpenWindows.
3539
9994cc69
GM
3540 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3541 complete but not unique.
3542
4336c705
GM
35432000-03-06 Gerd Moellmann <gerd@gnu.org>
3544
18bb0684
GM
3545 * process.c (send_process): Remove local variable `procname' that
3546 might become invalid when a GC happens. Instead, access the
3547 process name slot directly.
3548
4336c705
GM
3549 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3550 orig_height if set.
3551
3552 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3553 orig_height if set.
3554
515d0d0e
EZ
35552000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3556
3557 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3558 glyph matrices have been freed.
3559
100b3cbb
GM
35602000-03-05 Gerd Moellmann <gerd@gnu.org>
3561
50df5e5a 3562 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3563 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3564
3565 * xfns.c (QCdata): Moved to xdisp.c.
3566
3567 * xdisp.c (QCdata): Moved here from xfns.c.
3568 (syms_of_xdisp): Initialize QCdata.
3569
3570 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3571
3572 * window.c (coordinates_in_window): Use
3573 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3574 FRAME_INTERNAL_BORDER_WIDTH.
3575
100b3cbb 3576 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3577 it is obviously invalid.
100b3cbb
GM
3578
3579 * xterm.c (x_term_init): Create a colormap if not using the
3580 default visual.
3581
3582 * xterm.h (select_visual): Change prototype.
3583
3584 * xfns.c (select_visual): Rewritten. Recognize user-specified
3585 visual classes.
3586 (visual_classes): New variable.
3587
64d739c4
GM
35882000-03-04 Gerd Moellmann <gerd@gnu.org>
3589
3590 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3591 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3592 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3593 (x_decode_color): Don't handle allocation of white and black
3594 specially.
3595 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3596 XtNcolormap resources.
3597 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3598 (Fx_create_frame): Initialize color members of x_output structure.
3599 (xpm_load): Pass colormap to XPM lib.
3600
3601 * xfaces.c (x_free_colors): Access colormap of frame using
3602 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3603 when default colormap is used.
3604
3605 * xterm.c (x_term_init): Set Colormap member of x_display_info
3606 structure. Copy colormap if resource `privateColormap' is
3607 specified (PseudoColor only).
3608 (x_setup_relief_color): Access colormap of frame using
3609 FRAME_X_COLORMAP.
3610
3611 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3612 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3613
c3cee013
JR
36142000-03-04 Jason Rumney <jasonr@gnu.org>
3615
3616 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3617 other non-platform-specific equivalents.
64d739c4 3618 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3619 specific functions and macros as their w32 equivalents where
3620 non-platform-specifics are not available.
3621 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3622 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3623 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3624 (frame_update_line_height): Use macros to access f->output_data.
3625 (defined_color): Remove FIXME comments; fixed.
3626 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3627 into #ifdef blocks. Add WINDOWSNT blocks.
3628 (Fx_list_fonts): Use macros for accessing font data.
3629 (set_lface_from_font_name): Different default fonts for X and
3630 WINDOWSNT.
3631 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3632 scalable for backward compatibility.
64d739c4 3633 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3634 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3635
64d739c4 3636 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3637 syms_of_w32faces.
3638
3639 * makefile.nt (w32faces.obj): Remove.
3640 (xfaces.obj): Add.
3641
807cc41c
JR
36422000-03-03 Jason Rumney <jasonr@gnu.org>
3643
3644 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3645 correct parameters.
3646
0007072a
KR
36472000-03-03 Ken Raeburn <raeburn@gnu.org>
3648
3649 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3650 standard ELF definitions here if the system header does not.
3651
71a6ba55
GM
36522000-03-03 Gerd Moellmann <gerd@gnu.org>
3653
3654 * xterm.c (PER_CHAR_METRIC): Removed.
3655 (x_per_char_metric_1, x_default_char): New functions.
3656 (x_per_char_metric): If font's default char is invalid, return
3657 metrics of a suitably chosen usable default char.
3658 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3659 char, replace occurrences of unprintable chars with a suitably
3660 chosen usable default char.
71a6ba55 3661
900fa1f1
GM
36622000-03-02 Gerd Moellmann <gerd@gnu.org>
3663
42f55fe0
GM
3664 * xterm.c (note_mouse_highlight): Return quickly if frame's
3665 glyph matrices have been freed.
3666
3667 * dispnew.c (free_glyphs): Block input while freeing matrices.
3668
900fa1f1
GM
3669 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3670
3671 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3672 x_free_colors.
3673
3674 * dispextern.h (x_free_colors): Add prototype.
3675
3676 * xfaces.c (x_free_colors): New function.
3677 (unload_color, free_face_colors): Use it.
3678
2f950292
EZ
36792000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3680
3681 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3682
3683 * window.c [MSDOS]: Include msdos.h.
3684
54d04320
DL
36852000-03-02 Dave Love <fx@gnu.org>
3686
3687 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3688
3689 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3690 set C_OPTIMIZE_SWITCH for gcc.
3691
0ba93ac4
KH
36922000-03-02 Kenichi Handa <handa@etl.go.jp>
3693
3694 * coding.c (coding_save_composition): Be sure to allocate
3695 composition data area in coding even if there's no composition in
3696 the current run.
3697
a2bc11d4
JR
36982000-03-01 Jason Rumney <jasonr@gnu.org>
3699
3700 * w32term.c: Equivalent changes to those made to xterm.c on
3701 2000-02-25 and 2000-02-24.
3702
3703 * w32fns.c: Equivalent changes to those made to xfns.c on
3704 2000-02-25 and 2000-02-21.
3705
3706 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3707 correct line-end convention is followed.
3708
3709 * w32menu.c [HAVE_BOXES]: Remove #undef.
3710 (single_keymap_panes): Remove code for simulating checkmarks.
3711 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3712 Remove code for drawing simulated checkmarks.
3713 (w32_menu_show): make unibyte help string correctly.
3714 (add_menu_item): draw standard Windows checkmarks. Draw radio
3715 buttons as radio buttons if possible.
3716
72d19d75
GM
37172000-03-01 Gerd Moellmann <gerd@gnu.org>
3718
2df636f4
GM
3719 * sysdep.c (start_of_text): Don't define this function for NetBSD
3720 with ELF.
3721
427ec082 3722 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3723 Don't define.
3724 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3725 (LINKER): Don't undef if __NetBSD__ is defined.
3726
3727 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3728
3729 * fileio.c [__NetBSD__]: Define `unix'.
3730
72d19d75
GM
3731 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3732
ed4d0512
GM
37332000-02-29 Gerd Moellmann <gerd@gnu.org>
3734
50b1039f
GM
3735 * atimer.c (start_atimer): Don't abort when timers are stopped.
3736 (append_atimer_lists): New function.
3737 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3738 arbitrary lists of stopped and running atimers.
3739
ed4d0512
GM
3740 * atimer.c (cancel_atimer): Handle canceling an atimer when
3741 some timers are stopped.
3742
3743 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3744 after canceling it.
3745
3746 * fns.c (maybe_resize_hash_table): Handle case of new size
3747 coming out as being the same as old size.
3748
387023ee
JR
37492000-02-27 Jason Rumney <jasonr@gnu.org>
3750
3751 * makefile.nt: Add atimer.h to dependencies.
3752 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3753 * w32console.c: Only disable window system features for dispextern.h
3754 (initialize_w32_display): Build a display info for the console.
3755 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3756 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3757 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3758 as 2 button mice.
3759 * w32gui.h (struct W32FontStruct): Revert last change after change
3760 to xdisp.c.
3761 * w32menu.c (single_submenu): Set up help string.
3762 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3763 (w32_dialog_show): Set up help string.
3764 * w32term.c (w32_display_info_for_display): Remove unused function.
3765 (w32_draw_bitmap): Use pre-built bitmaps.
3766 (w32_initialize_display_info): New function to initialize parts of
3767 display info that are common to both GUI and console frames.
3768 (w32_term_init): Use w32_initialize_display_info. Do not set
3769 Vw32_num_mouse_buttons here, as it is not called for console
3770 frames. Build bitmaps for indicating truncated lines etc.
3771 (x_delete_display): Destroy pre-built bitmaps.
3772 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3773 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3774
4516715a
DL
37752000-02-27 Dave Love <fx@gnu.org>
3776
3777 * lisp.h: Add a bunch of prototypes.
3778
171ca836
KH
37792000-02-26 Kenichi Handa <handa@etl.go.jp>
3780
3781 * keyboard.c (read_char): Set `usec' correctly.
3782
4013921d
KH
37832000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3784
3785 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3786 `lambda', set reg[RRR] to the map index.
3787 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3788 reg[RRR] to 0. Otherwise, set it to -1.
3789
9244a058
GM
37902000-02-25 Gerd Moellmann <gerd@gnu.org>
3791
2df636f4 3792 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3793
18e21ce8 37942000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 3795
f43d79c1
GM
3796 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3797 and contains a `:', prepend `/:'.
3798
3799 * window.c (select_window_1): If selected_window is nil,
3800 don't "swap out" the buffer's point.
3801 (Fset_window_configuration): Set selected_window to nil
3802 before calling Fselect_window.
3803 (unshow_buffer): Don't set point in buffer from window's point
3804 if another more recently selected window also shows the buffer.
3805
bed0c171
GM
38062000-02-25 Gerd Moellmann <gerd@gnu.org>
3807
449c3c52
GM
3808 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3809
f5b58615
GM
3810 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3811 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3812 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3813 variables.
3814 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3815 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3816 (hide_busy_cursor): New functions.
3817 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3818
3819 * minibuf.c (read_minibuf): Cancel busy-cursor.
3820
3821 * keyboard.c (command_loop_1): Call start_busy_cursor before
3822 Fcommand_execute and cancel_busy_cursor after it.
3823 (timer_check): Remove busy-cursor code.
3824 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3825 cursor timer.
3826
3827 * process.c (wait_reading_process_input): Remove busy-cursor code.
3828
3829 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3830 Fx_hide_busy_cursor.
3831
3832 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3833 Remove prototyoes.
3834 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3835
3836 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3837
3838 * xterm.c (XTread_socket): Remove busy-cursor code.
3839
4eb8436f
GM
3840 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3841 (build_frame_matrix_from_leaf_window): Put code handling
3842 glyph row's not being a slice of a frame row in #if 0.
3843 (sync_window_with_frame_matrix_rows): New function.
3844 (frame_row_to_window): New function.
3845 (mirror_line_dance): Handle copies between windows.
3846
3cb65b0e
GM
3847 * lread.c (Fload): Use `xfree' instead of `free'.
3848 (init_obarray): Use `xmalloc' instead of `malloc'.
3849
bed0c171
GM
3850 * window.c (Fset_window_buffer): Set WINDOW to the window
3851 after decoding.
2add4349
GM
3852 (coordinates_in_window): Take frame's internal border width
3853 into account.
bed0c171 3854
42088c12
GM
38552000-02-24 Gerd Moellmann <gerd@gnu.org>
3856
3857 * xterm.c (x_display_and_set_cursor): Display cursor of
3858 non-selected windows depending on the setting of
3859 cursor_in_non_selected_windows.
3860
3861 * xdisp.c (cursor_in_non_selected_windows): New variable.
3862 (syms_of_xdisp): DEFVAR_BOOL it.
3863
d1e103b2
GM
38642000-02-23 Gerd Moellmann <gerd@gnu.org>
3865
723e779c
GM
3866 * data.c (Fstring_to_number): If number is greater than what
3867 fits into an integer, return a float.
3868
d1e103b2
GM
3869 * eval.c (specbind): Remove references to
3870 keyword_symbols_constant_flag.
3871
3872 * data.c (keyword_symbols_constant_flag): Removed.
3873 (Fmakunbound, set_internal, syms_of_data): Remove references to
3874 keyword_symbols_constant_flag.
3875
3876 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3877
214f877f
KH
38782000-02-23 Kenichi Handa <handa@etl.go.jp>
3879
3880 * syntax.c (multibyte_syntax_as_symbol): New variable.
3881 (syms_of_syntax): Declare it as a Lisp variable.
3882 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3883 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3884 nonzero, treat all multibyte characters as symbol.
42088c12 3885 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3886 characters.
3887
130adcb7
EZ
38882000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3889
3cb65b0e 3890 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 3891 a deleted frame.
130adcb7 3892
17cbbf95
GM
38932000-02-21 Gerd Moellmann <gerd@gnu.org>
3894
3895 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3896
3897 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3898 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3899
beb0bc36
DL
39002000-02-21 Dave Love <fx@gnu.org>
3901
3902 * frame.c (Vmouse_position_function): New variable.
3903 (Fmouse_position): Use it.
3904 (syms_of_frame): Install it.
3905
3906 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3907
1d92afcd
GM
39082000-02-20 Gerd Moellmann <gerd@gnu.org>
3909
3910 * fileio.c (Finsert_file_contents): Unbind the binding of
3911 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3912
3913 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3914 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3915 (specbind, unbind_to): Handle most common case of non-constant
3916 symbol with trivial value specially.
3917
3918 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3919
18e21ce8 39202000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
3921
3922 * data.c (Fmake_variable_buffer_local): Doc fix.
3923 Init found_for_buffer to 0.
3924 (Fmake_variable_frame_local): If the variable has already
3925 been buffer-local, set the check_frame field.
3926
1d4311c3
EZ
39272000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3928
3929 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3930 produced for CODING_MODE_LAST_BLOCK requires.
3931
2dc95ddd
DL
39322000-02-18 Dave Love <fx@gnu.org>
3933
3934 * keyboard.c (echo_keystrokes): Remove declaration.
3935 (Vecho_keystrokes) New variable.
3936 (read_char, record_menu_key, read_key_sequence): Use it to allow
3937 use of float value.
3938 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3939
3940 * lread.c: Undef feature selection macros before defining.
3941
f0930f35
GM
39422000-02-18 Gerd Moellmann <gerd@gnu.org>
3943
3944 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3945 for symbols other than the symbol in question.
3946
e3d4de90
DL
39472000-02-17 Dave Love <fx@gnu.org>
3948
3949 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3950
0b378936
GM
39512000-02-17 Gerd Moellmann <gerd@gnu.org>
3952
d621caf7
GM
3953 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3954
0b378936
GM
3955 * alloc.c (enum mem_type): Compile unconditionally.
3956
3b451f74
EZ
39572000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3958
3959 * xfaces.c (tty_defined_color): Don't return faulire indication
3960 for unspecified-fg and unspecified-bg pseudo-colors.
3961
10689a01
GM
39622000-02-17 Gerd Moellmann <gerd@gnu.org>
3963
1216f5e4
GM
3964 * alloc.c (mark_object): Don't mark symbol names in pure space.
3965 (gc_sweep): Don't unmark symbol names in pure space.
3966
3967 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3968 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3969 [GC_MARK_STACK]: New defines.
427ec082 3970 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3971 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3972
3973 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3974
3975 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3976 allocate_buffer instead of xmalloc.
3977
3978 * alloc.c (toplevel): Include setjmp.h.
3979 (PURE_POINTER_P): New define.
3980 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3981 (Vdead) [GC_MARK_STACK]: New variable.
3982 (lisp_malloc): Add parameter TYPE, call mem_insert if
3983 GC_MARK_STACK is defined.
3984 (allocate_buffer): New function.
427ec082 3985 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3986 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3987 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3988 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3989 (MEM_NIL) [GC_MARK_STACK]: New define.
3990 (struct mem_node) [GC_MARK_STACK]: New structure.
3991 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3992 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3993 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3994 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3995 (mark_stack) [GC_MARK_STACK]: New functions.
3996 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3997 (clear_marks): Removed.
3998 (gc_sweep): Set free conses' car, free floats' type, free
3999 symbols' function to Vdead. Use lisp_free to free buffers.
4000 (init_alloc_once): Initialize Vdead.
4001 (survives_gc_p): Return non-zero for pure objects.
4002
4003 * alloc.c: Add comments throughout the file.
4004
2503c8b1
GM
4005 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4006 that unblocks alarms.
4007
8389e1e2
GM
4008 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4009 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4010 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4011
10689a01 4012 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 4013
bfc17d18
KH
40142000-02-17 Kenichi Handa <handa@etl.go.jp>
4015
4a09dee0
KH
4016 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4017 avoid infinite error signaling. Allocate sufficient memory for
4018 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 4019
2b927d02
SM
40202000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4021
4022 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4023 depends on the previous behavior.
4024
b49cb764
GM
40252000-02-16 Gerd Moellmann <gerd@gnu.org>
4026
4027 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4028
99e95407
GM
40292000-02-15 Gerd Moellmann <gerd@gnu.org>
4030
4031 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4032
4033 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 4034 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
4035 write(2).
4036
6ffd3cf7
RS
40372000-02-15 Richard M. Stallman <rms@gnu.org>
4038
4039 * data.c (set_internal): Don't make variable buffer-local
4040 if within a let-binding for the same buffer.
4041 (let_shadows_buffer_binding_p): New function.
4042
4043 * eval.c (specbind): For buffer-local value,
4044 record the current buffer also.
4045 (unbind_to): Cope with that change.
4046
cad53475
GM
40472000-02-15 Gerd Moellmann <gerd@gnu.org>
4048
4049 * window.c (Fsave_window_excursion): Doc fix.
4050
1aa963c8
SM
40512000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4052
4053 * syntax.c (back_comment): Make sure we only consider comment-starters
4054 of the relevant style and return -1 in case of a failure to find the
4055 beginning of the comment.
4056 (Fforward_comment): If back_comment fails, go back to the position just
4057 after the comment-end.
4058 (scan_lists): Add comment describing a very minor bug.
4059
b9b84fd3
SM
40602000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4061
4062 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4063 `completion-regexp-list' in the docstring.
4064
3a28db80
DL
40652000-02-14 Dave Love <fx@gnu.org>
4066
4067 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4068
fb4a568d
SM
40692000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4070
4071 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4072 to Emacs' syntax. Also fix the comment about set/not-set meanings
4073 since Emacs syntax is not the value 0 any more.
4074 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4075 since it's now part of RE_SYNTAX_EMACS.
4076
1063ebb5
DL
40772000-02-12 Dave Love <fx@gnu.org>
4078
4079 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4080 Alpha.
4081
fb07a302
GM
40822000-02-12 Gerd Moellmann <gerd@gnu.org>
4083
4084 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4085
aaf2320c
DL
40862000-02-12 Dave Love <fx@gnu.org>
4087
4088 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4089
4090 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
4091 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4092 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
4093
4094 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4095
4096 * s/nextstep.h: Don't define HAVE_ALLOCA.
4097
4098 * config.in: Add vfork bits.
4099
eedf8bde
GM
41002000-02-12 Gerd Moellmann <gerd@gnu.org>
4101
4102 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4103 unwind function to undo the effect of stopping atimers.
4104
4105 * keyboard.c (bind_polling_period): Stop all timers except
4106 poll_timer.
4107
4108 * atimer.c (stopped_atimers): New variable.
4109 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4110 New functions.
4111
4112 * atimer.h (stop_other_atimers, run_all_atimers)
4113 (unwind_stop_other_atimers): Add function prototypes.
427ec082 4114
eedf8bde
GM
4115 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4116
8476c2f8
KR
41172000-02-11 Ken Raeburn <raeburn@gnu.org>
4118
4119 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4120 library may depend on jpeg.
4121 (atimer.o): Depends on atimer.c.
4122
0e85e4a3
KH
41232000-02-11 Kenichi Handa <handa@etl.go.jp>
4124
4125 * insdel.c (del_range_1): Call update_compositions.
4126 (del_range_both): Call update_compositions just once..
4127
97fa0cc8
DL
41282000-02-10 Dave Love <fx@gnu.org>
4129
4130 * xfns.c (create_frame_xic): Fix initialization of automatic
4131 aggregates for pcc.
4132
25566a3c
KH
41332000-02-09 Kenichi Handa <handa@etl.go.jp>
4134
4135 * ccl.c (CCL_MAKE_CHAR): New macro.
4136 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4137 registers by CCL_MAKE_CHAR before calling translate_char.
4138 <CCL_TranslateCharacterConstTbl> Likewise.
4139
69da54ba
DL
41402000-02-08 Dave Love <fx@gnu.org>
4141
4142 * lread.c (__EXTENSIONS__): Define.
4143
f7136ee8
GM
41442000-02-08 Gerd Moellmann <gerd@gnu.org>
4145
4146 * puresize.h (BASE_PURESIZE): Increase to 650000.
4147
7768790b
EZ
41482000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4149
4150 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4151 the help message.
4152
38fd211b
EZ
41532000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4154
4155 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4156 md, mh, mb, mr, and me to the fake termcap entry.
4157
66e4690f
KR
41582000-02-06 Ken Raeburn <raeburn@gnu.org>
4159
4160 * sound.c (sound_cleanup): Don't call device close routine if the
4161 function pointer is null.
4162
a75dfea0
AI
41632000-02-06 Andrew Innes <andrewi@gnu.org>
4164
4165 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4166 around image definitions and prototypes.
4167 (gamma_correct) [WINDOWSNT]: New prototype.
4168
4169 * w32term.c (x_make_frame_visible): Replace call to
4170 input_poll_signal with poll_for_input.
4171
4172 * window.c [WINDOWSNT]: Include w32term.h.
4173
4174 * xdisp.c [WINDOWSNT]: Include w32term.h.
4175
4176 * makefile.nt: Add dependencies on w32gui.h.
4177 (OBJ1): Include atimer.obj.
4178 ($(BLD)\atimer.obj): New dependency rule.
4179
4180 * w32.c (sigmask): New function (does nothing).
4181 (sigunblock): Ditto.
4182
4183 * frame.c [WINDOWSNT]: Include w32term.h.
4184
4185 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4186
4187 * lread.c (syms_of_lread): Fix literal newlines.
4188
4189 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4190 the string constant limit (2048 bytes) in MSVC.
4191 (main): Ditto.
4192
59ddecde
GM
41932000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4194
4195 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4196 area.
4197 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4198 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4199 dispatch the event.
4200
07590973
DL
42012000-02-04 Dave Love <fx@gnu.org>
4202
4203 * fileio.c: Remove some unused vars.
4204 (_GNU_SOURCE): Define (for euidaccess).
4205
4206 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4207
4208 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4209 gcpro1, gcpro2.
4210 (read_minibuf): Deal with allow_props correctly.
4211
649351f9
EZ
42122000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4213
4214 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4215
66e4690f 42162000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4217
4218 * search.c (compile_pattern): If a cache entry has a nil regexp,
4219 fill in that entry instead of clobbering a previously cached
4220 string regexp.
4221
66e4690f 42222000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4223
4224 * puresize.h (BASE_PURESIZE): Increase to 610000.
4225
d240a249
GM
42262000-02-02 Gerd Moellmann <gerd@gnu.org>
4227
4228 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4229 can GC.
4230
ca91fb26
KH
42312000-02-02 Kenichi Handa <handa@etl.go.jp>
4232
25660570
KH
4233 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4234 instead of incrementing ic directly.
4235 <CCL_WriteExprConst> Likewise.
4236 <ccl_set_expr>: Set ic to jump_address.
4237
ca91fb26
KH
4238 * fileio.c (e_write): Fix the handling of
4239 CODING_FINISH_INSUFFICIENT_SRC.
4240
2ede9689
DL
42412000-02-01 Dave Love <fx@gnu.org>
4242
4243 * editfns.c (Fpropertize): Doc fix.
4244
4245 * process.c (Fstart_process): Doc fix.
4246
4247 * eval.c: Fix various doc strings not to duplicate information
4248 from help-manyarg-func-alist.
4249
4250 * window.c (Fset_window_margins): Don't make interactive. Doc
4251 fix.
4252
4253 * doc.c (Vhelp_manyarg_func_alist): New variable.
4254 (Fdocumentation): Use it.
4255 (syms_of_doc): Define it.
4256
b6680a0e
GM
42572000-01-31 Gerd Moellmann <gerd@gnu.org>
4258
2cb750ba
GM
4259 * xterm.c (xim_open_dpy): Remove unused local variable.
4260
74e9213b
GM
4261 * emacs.c (USAGE): Use term `display options' instead of `X
4262 options'.
4263
4264 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4265 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4266
b6680a0e
GM
4267 * fns.c (sweep_weak_table): New function.
4268 (sweep_weak_hash_tables): Use it. Keep on marking until there
4269 is no more change.
4270
994c5afe
GM
42712000-01-30 Gerd Moellmann <gerd@gnu.org>
4272
4273 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4274 that XTread_socket does not crash by trying to call XNoOp on a
4275 closed display.
427ec082 4276
f00276e3
JR
42772000-01-30 Jason Rumney <jasonr@gnu.org>
4278
4279 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4280 Change selected_frame to SELECTED_FRAME ().
4281 (w32_console_mouse_position): Remove #ifndef MULE from around
4282 `insist' parameter.
4283
4284 * makefile.nt: Remove dosfns.obj.
4285
4286 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4287
4288 * w32fns.c (w32_defined_color): Check for valid frame before
4289 applying gamma correction. Eliminate dependency on frame elsewhere.
4290 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4291 (w32_to_x_font): Use resx and resy not height_in and width_in.
4292 (x_to_w32_font): Doc fix.
4293 (xlfd_strip_height): New function to strip and return font height.
4294 (w32_font_match): Compare height separately from rest of xlfd
4295 spec, using xlfd_strip_height.
4296
4297 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4298 width_in. Use w32_defined_color in place of defined_color.
4299
4300 * w32faces.c: Merge more of DOS and X specifics in preparation for
4301 merge with xfaces.c.
4302 (defined_color): Remove FIXME comment.
4303 (tty_color_name): Provide w32-specific function.
4304 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4305
4306 * w32console.c (turn_on_face, turn_off_face): Removed.
4307 (w32_face_attributes): New function.
4308 (Global_variables): Reduce scope where possible.
4309 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4310 fill attribute.
4311 (hl_mode): Don't modify text attributes.
4312 (write_glyphs): Don't do anything if len <= 0. Use
4313 w32_face_attributes to get attributes for drawing. Write
4314 terminating codes using char_attr_normal.
4315 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4316 (update_begin, update_end): Likewise.
4317 (vga_stdcolor_name): New function.
4318 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4319 (Fset_screen_color): Remove char_attr_reverse.
4320
b08e8bb2
GM
43212000-01-29 Gerd Moellmann <gerd@gnu.org>
4322
4323 * xfns.c (xic_set_preeditarea): Take window parameter and
4324 window-relative pixel-positions.
4325
4326 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4327 is its frame's selected window.
4328 (xim_instantiate_callback): Likewise.
4329
4330 * xfns.c (x_create_im): Removed.
4331 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4332 (supported_xim_styles): Renamed from supported_styles.
4333 (best_xim_style): Renamed from best_style.
4334 (create_frame_xic): Renamed from xic_create_frame.
4335 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4336
b08e8bb2
GM
43372000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4338
4339 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4340 our frames, call XFilterEvent with 2nd parameter `None'.
4341 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4342 returning XBufferOverflow.
4343 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4344 area.
4345 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4346 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4347 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4348 (xim_initialize, xim_close)
4349 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4350 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4351 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4352 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4353
4354 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4355 and `xim_styles'.
4356 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4357 `xic_style' and `xic_xfs'.
4358 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4359 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4360 (FRAME_XIM): Removed.
4361
4362 * xfns.c (supported_styles): New variable.
4363 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4364 (xic_create_xfontset, best_style, xic_create_frame)
4365 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4366 (xic_set_xfontset): New functions.
4367
142e109c
DL
43682000-01-28 Dave Love <fx@gnu.org>
4369
4370 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4371
4372 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4373
b02786f9
GM
43742000-01-28 Gerd Moellmann <gerd@gnu.org>
4375
d060bc9f
GM
4376 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4377 for *scratch* if it already existed.
4378
b02786f9
GM
4379 * emacs.c (USAGE): New macro.
4380 (main): Use it to display usage information.
4381
2c52d7e4
EZ
43822000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4383
4384 Support for the menu-help feature:
4385
4386 * msdos.h: Change prototypes of XMenuAddSelection and
4387 XMenuActivate.
4388
4389 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4390 part of the line to the termscript file.
4391 (IT_clear_to_end): Clear the entire line, not just its beginning.
4392 (menu_help_message, prev_menu_help_message): New variables.
4393 (IT_menu_make_room): Make room for the help_text member.
4394 (IT_menu_display): New argument disp_help; all callers changed.
4395 If disp_help is non-zero, store the help text of the active menu
4396 item in menu_help_message.
4397 (XMenuAddPane): Initialize the help_text member to NULL.
4398 (XMenuAddSelection): New argument help_text. Store it in the
4399 XMenu structure.
4400 (XMenuActivate): New argument help_callback. If the value of
4401 menu_help_message has changed since the last time, display the
4402 menu help message text while waiting for the mouse to move. Clear
4403 the echo area before exiting.
4404 (XMenuDestroy): Free the help_text member.
4405
ffe0bcd1
GM
44062000-01-27 Gerd Moellmann <gerd@gnu.org>
4407
4408 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4409 XMenuAddSelection. Pass help callback to XMenuActivate.
4410 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4411
50dbd23f
EZ
44122000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4413
4414 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4415 and EMACS_SET_USECS.
4416
f5941bf8
GM
44172000-01-26 Dave Love <fx@gnu.org>
4418
6c67ddee
DL
4419 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4420
f5941bf8
GM
4421 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4422 an error may be signalled.
4423
9e49c990
GM
44242000-01-26 Gerd Moellmann <gerd@gnu.org>
4425
fc3cb460
GM
4426 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4427 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4428
9e49c990
GM
4429 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4430
d0c037d8
GM
44312000-01-25 Gerd Moellmann <gerd@gnu.org>
4432
4433 * charset.c (Fstring): If there is a multibyte char among
4434 the args, always return a multibyte string.
4435
e12489f9
GM
44362000-01-25 Gerd Moellmann <gerd@gnu.org>
4437
4438 * sysdep.c (sys_select): Turn atimers off and on instead of
4439 recording and restoring old alarm handler
4440
4441 * process.c (toplevel): Include atimer.h.
4442 (create_process_1): Rewritten.
4443 (create_process): Use atimers instead of alarm.
4444 (wait_reading_process_input) [hpux]: Turn atimers off instead
4445 of turning off SIGALRM.
4446 (wait_reading_process_input): Turn off atimers instead off
4447 calling stop_polling.
4448
4449 * emacs.c (main): Call init_atimer.
4450
4451 * keyboard.c (toplevel): Include systime.h and atimer.h.
4452 (polling_for_input): Removed because unused.
4453 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4454 (poll_timer): New variable.
4455 (poll_for_input, poll_for_input_1): New functions.
4456 (start_polling, stop_polling): Rewritten.
4457
4458 * keyboard.h (polling_for_input): Removed.
427ec082 4459
e12489f9
GM
4460 * atimer.h, atimer.c: New files.
4461
4462 * Makefile.in (obj): Add atimer.o.
4463 (atimer.o): New target.
4464
4465 * blockinput.h (pending_atimers): Add extern declaration.
4466 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4467
4468 * lisp.h (popup_activated_flag): Add extern declaration.
4469
4470 * xmenu.c (popup_activated_flag): Make externally visible.
4471 (popup_activate_callback) [USE_MOTIF]: Increment
4472 popup_activated_flag.
4473 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4474
4475 * xterm.c (toplevel): Include atimer.h.
4476 (toolkit_scroll_bar_interaction): New variable.
4477 (Fxt_process_timeouts): Removed.
4478 (x_process_timeouts): New function.
4479 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4480 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4481 (x_make_frame_visible): Call poll_for_input_1 instead of
4482 input_poll_signal. Don't call alarm.
4483 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4484
1e5279b9
DL
44852000-01-24 Dave Love <fx@gnu.org>
4486
6c67ddee 4487 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4488 Don't use -cckr -- apparently not now necessary.
4489
edf6aeb8
EZ
44902000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4491
4492 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4493 screen boundary.
4494
9badad41
JR
44952000-01-23 Jason Rumney <jasonr@gnu.org>
4496
4497 * w32fns.c (w32_defined_color): Apply gamma correction before
4498 trying to map to the palette.
4499 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4500 to w32_clear_rect.
4501
4502 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4503 here. Callers changed to always pass real device context.
4504 (w32_draw_bitmap): Likewise.
4505 (w32_get_glyph_overhangs): Likewise.
4506 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4507 one.
4508 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4509 pfnSetScrollInfo and SetScrollRange.
4510 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4511 back into MULE characters after decoding them.
4512 (x_get_glyph_face_and_encoding): Likewise.
4513 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4514 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4515 (x_produce_glyphs): Calculate per char metrics for a character
4516 that we know exists in default font when font_not_found_p is true.
4517
63bd786b
JR
45182000-01-22 Jason Rumney <jasonr@gnu.org>
4519
4520 * makefile.nt (intervals.obj, composite.obj): New modules.
4521 (composite.h): Added as dependency where appropriate.
4522
4523 * w32gui.h (XGCValue): New struct for emulating X GCs.
4524
4525 * w32term.h (XCharStruct): New struct for emulating X.
4526
4527 * w32console.c (turn_on_face, turn_off_face): New functions.
4528 (change_line_highlight): New prototype for new redisplay.
4529 (write_glyphs): Support multibyte text. Support faces.
4530
4531 * w32faces.c: Complete rewrite for new redisplay based on new
4532 xfaces.c.
4533
4534 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4535 throughout. struct frame * in place of FRAME_PTR.
4536 Skeleton support for images, toolbars, tooltips from xfns.c.
4537 (Fx_create_frame): Use system default for default scroll bar
4538 width.
4539 (w32_get_arg): Renamed from x_get_arg.
4540 (Fx_file_dialog): New function.
4541 (w32_list_fonts): Check cache before asking system.
4542 (Vw32_enable_synthesized_fonts): New variable.
4543 (Vw32_enable_italics): Obsolete, removed.
4544
4545 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4546 Use SELECTED_FRAME macro.
4547
4548 * w32menu.c: Add skeleton support for help strings on menus.
4549 (add_menu_item): Native checkbox and radio support added, but not
4550 yet enabled due to bugs.
4551 (push_menu_item): Add parameters type, selection and help.
4552 Callers updated.
4553 Formatting changes to reduce unnecessary diffs with xmenu.c.
4554
4555 * w32select.c (Fw32_set_clipboard_data): Update call to
4556 find_charset_in_str.
4557
4558 * w32term.c: Complete rewrite for new redisplay based on new
4559 xterm.c with necessary sections merged back in from old w32term.c.
4560
6ffd3cf7 45612000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4562
4563 * data.c (set_internal): Further fix in same criterion.
4564
6ffd3cf7 45652000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4566
4567 * data.c (set_internal): Fix the criteria for whether
4568 to swap out the old cached binding.
4569
60af03f1
DL
45702000-01-19 Dave Love <fx@gnu.org>
4571
4572 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4573
f9be074f
KH
45742000-01-18 Kenichi Handa <handa@etl.go.jp>
4575
4576 * regex.c (re_compile_fastmap): While checking a range table for
4577 `charset', skip flag bits for a character class correctly.
4578
52b8dbf9
GM
45792000-01-17 Gerd Moellmann <gerd@gnu.org>
4580
d36100c9
GM
4581 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4582
52b8dbf9
GM
4583 * xfns.c (x_window): Call lw_create_widget with new parameter
4584 list.
4585
4586 * widget.c (EmacsFrameSetCharSize): Change size of children first
4587 because of problems with main window geometry management under
4588 Lesstif.
4589
4590 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4591 MENU_ITEMS_ITEM_.*.
4592 (MENU_ITEMS_ITEM_HELP): New enumerator.
4593 (push_menu_item): Add parameter HELP. Record help in menu_items.
4594 (single_menu_item, single_submenu, list_of_items): Call
4595 push_menu_item with new parameter.
4596 (single_submenu): Set help string in widget value.
4597 (menu_highlight_callback): New function.
4598 (set_frame_menubar): Call lw_create_widget with new
4599 parameter list.
4600 (xmenu_show, xdialog_show): Ditto.
4601
3139018f
GM
46022000-01-13 Gerd Moellmann <gerd@gnu.org>
4603
4604 * sound.c (Fplay_sound): Improve doc string.
4605
83c8f461
RS
46062000-01-11 Richard M. Stallman <rms@gnu.org>
4607
4608 * lisp.h (set_internal): Enter the new arg.
4609
4610 * eval.c (specbind): Record buffer-local variables specially,
4611 indicating which buffer's binding was saved.
4612 (unbind_to): Restore buffer-local variables specially
4613 in the proper buffer.
4614
4615 * data.c (set_internal): New arg BUF.
427ec082 4616
83c8f461
RS
4617 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4618 * data.c (Fset): Pass new arg to set_internal.
4619 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4620
1fab1775
GM
46212000-01-11 Gerd Moellmann <gerd@gnu.org>
4622
4623 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4624 xprintsym.
4625
83c8f461 46262000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4627
4628 * minibuf.c (Ftry_completion): Doc fix.
4629
7a85e4df
GM
46302000-01-11 Gerd Moellmann <gerd@gnu.org>
4631
4632 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4633 vector, too.
4634
a970dae4
AS
46352000-01-11 Andreas Schwab <schwab@suse.de>
4636
4637 * coding.c (code_convert_region): Initialize total_skip.
4638
c65d14ee
DL
46392000-01-08 Dave Love <fx@gnu.org>
4640
4641 * eval.c (Fuser_variable_p): Check customizability too.
4642
834938d2
GM
46432000-01-07 Gerd Moellmann <gerd@gnu.org>
4644
4645 * minibuf.c (Fcompleting_read): Doc fix.
4646
e0303cd6
GM
46472000-01-05 Gerd Moellmann <gerd@gnu.org>
4648
8a26744b
GM
4649 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4650 -L /usr/local/lib.
4651
e0303cd6
GM
4652 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4653 Check that input style is supported before trying to create an
4654 IC for it.
4655 (x_window): Call x_create_im.
427ec082 4656
2e471eb5
GM
46572000-01-04 Gerd Moellmann <gerd@gnu.org>
4658
560a7bd2
GM
4659 * xfns.c (current_gif_memory_src): New variable.
4660 (gif_load): Record the address of the current memory source
4661 in current_gif_memory_src.
4662 (gif_read_from_memory): Use current_gif_memory_src.
4663
f9ee84a3
GM
4664 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4665 macros statement form.
4666
d1299cde
GM
4667 * sound.c (struct sound): Renamed from struct sound_file.
4668 (struct sound): Add members `data' and `header_size'.
4669 (enum sound_attr): Add SOUND_DATA.
4670 (current_sound, current_sound_device): Variables renamed from
4671 sound_file and sound_device.
4672 (parse_sound): Parse :data.
4673 (parse_sound): Handle sound data in strings.
4674 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4675 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4676 needed header size.
4677 (wav_play, au_play): Play sounds from string data.
4678
2e471eb5
GM
4679 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4680
4681 * lisp.h: Add prototype for allocate_string_data.
4682
4683 * alloc.c (Fgarbage_collect): Return number of live and free
4684 strings.
4685
4686 * alloc.c (mark_buffer): Remove code in #if 0.
4687 (gc_sweep): Ditto.
4688 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4689 (strings_consed): New variable.
4690 (allocate_string): Set it.
4691 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4692 (Fmemory_use_counts): Return strings_consed. Use Flist.
4693
4694 * alloc.c: General cleanup in comments etc. Remove conditional
4695 compilation for `standalone'.
4696
4697 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4698
4699 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4700 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4701 (DONT_COPY_FLAG): Removed.
4702 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4703 (struct sdata, struct sblock): New
4704 (struct string_block): Rewritten.
4705 (STRINGS_IN_STRING_BLOCK): New macro.
4706 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4707 (large_sblocks, string_blocks, string_free_list): New variables.
4708 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4709 (init_strings): Rewritten.
4710 (allocate_string, allocate_string_data, compact_small_strings)
4711 (free_large_strings, sweep_strings): New functions.
4712 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4713 (struct string_block_head, current_string_block)
4714 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4715 (STRING_PAD): Removed.
4716 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4717 (Fgarbage_collect): Don't set mark bit in large strings.
4718 (mark_object): Mark strings differently. Mark symbol names
4719 differently.
4720 (survives_gc_p): Test marked strings differently.
427ec082 4721 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4722 symbol names.
4723 (compact_strings): Removed.
4724
42608ba8
EZ
47252000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4726
4727 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4728 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4729
e0a09e1a
KH
47302000-01-04 Kenichi Handa <handa@etl.go.jp>
4731
dd9f0750 4732 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4733 in a non-empty buffer.
dd9f0750 4734
3c0f3b15 4735 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4736
44cd3ae5
GM
47372000-01-03 Gerd Moellmann <gerd@gnu.org>
4738
4739 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4740 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4741
4742 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4743
c182a70f
EZ
47442000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4745
4746 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4747 need to test for MSDOS frames.
4748
24480d5b
EZ
47492000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4750
4751 * dosfns.c (unspecified_colors): Remove.
4752 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4753 unspecified_bg.
4754 (msdos_stdcolor_name): Return strings for unspecified fore- and
4755 back-ground colors.
4756
4757 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4758 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4759 (tty_color_name): Return Lisp strings for unspecified fore- and
4760 back-ground colors.
4761 (Finternal_set_lisp_face_attribute): Remove the special treatment
4762 for Qunspecified_{f,b}g.
4763 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4764 string.
4765
047f434a
GM
47662000-01-03 Gerd Moellmann <gerd@gnu.org>
4767
4768 * xdisp.c (reseat_at_next_visible_line_start): Position before
4769 newline only if ending up on a newline.
4770 (next_element_from_ellipsis): Return success. Handle case of
4771 displaying no ellipsis. Fix case of ellipsis defined in display
4772 table.
4773 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4774 returns 0.
4775
d684c676
EZ
47762000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4777
4778 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4779 (Fcolor_supported_p): Renamed from face-color-supported-p.
4780
5fe1d139
EZ
47812000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4782
4783 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4784 list of colors renamed to tty-defined-color-alist.
4785 (tty_color_name): Pass the frame to tty-color-by-index.
4786 (realize_tty_face): tty-color-alist is now a function which
4787 accepts the frame as argument.
4788
4789 * term.c (Ftty_display_color_p): Accept an optional argument
4790 FRAME.
4791
816be8b8
EZ
47922000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4793
4794 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4795 encode_terminal_code.
4796
b635321e
EZ
47972000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4798
4799 * dispnew.c (mode_line_string): Support termcap frames as well.
4800
9b784e96
GM
48012000-01-01 Gerd Moellmann <gerd@gnu.org>
4802
27189709
GM
4803 * syntax.c (Fforward_word): Undo previous change.
4804
4805 * editfns.c (Fconstrain_to_field): Don't constrain if
4806 inhibit-field-text-motion is non-nil.
4807 (Fline_beginning_position): Undo previous change.
4808 (Fline_end_position): Ditto.
4809
4810 * syntax.c (Fforward_word): Notice field boundaries only if
4811 inhibit-field-text-motion is nil.
4812
4813 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4814
4815 * editfns.c (Vinhibit_field_text_motion): New variable.
4816 (inhibit-field-text-motion): New DEFVAR_LISP.
4817 (Fline_beginning_position, Fline_end_position): Notice field
4818 boundaries only if inhibit-field-text-motion is nil.
4819
45158a91
GM
4820 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4821 All calls adjusted.
4822 (x_build_heuristic_mask): Likewise.
4823 (xbm_load_image_from_file): Change error output.
4824 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4825 (gif_load, gs_load, x_kill_gs_process): Ditto.
4826
9b784e96
GM
4827 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4828 color indices when accessing raster pixels.
63cec32f
GM
4829 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4830 one of :file or :data.
4831 (enum pbm_keyword_index): Add PBM_DATA.
4832 (pbm_format): Add :data.
4833 (pbm_image_p): Allow either :file or :data.
4834 (pbm_read_file): New function.
4835 (pbm_scan_number): Rewritten to read from string.
4836 (pbm_load): Support :data.
9b784e96 4837
5ad6a5fb
GM
48381999-12-31 Gerd Moellmann <gerd@gnu.org>
4839
4840 * xfns.c: New image functions adapted to Emacs conventions.
4841 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4842 variable `file'.
4843
63448a4d
WP
48441999-12-31 William M. Perry <wmperry@aventail.com>
4845
4846 * xfns.c (jpeg_format): Added the :data keyword
4847 (jpeg_image_p): JPEG is valid with :file _or_ :data
4848 (jpeg_memory_src): Defined new JPEG image source to read from a
4849 memory buffer.
4850 (jpeg_load): Pay attention to the :data keyword if specified.
4851 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4852 found.
4853 (png_format): Added the :data keyword
4854 (png_image_p): PNG is valid with :file _or_ :data
4855 (png_read_from_memory): New PNG read function to read from a
4856 memory buffer.
4857 (png_load): Pay attention to the :data keyword if specified. Uses
4858 png_set_read_fn() instead of png_init_io() if specified.
4859 (tiff_format): Added the :data keyword for TIFF images.
4860 (tiff_image_p): TIFF is valid with :file _or_ :data
4861 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4862 from a memory buffer.
4863 (tiff_load): Pay attention to the :data keyword if specified.
4864 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4865 (gif_format): Added the :data keyword
4866 (gif_image_p): GIF is valid with :file _or_ :data
4867 (gif_read_from_memory): New GIF input function to read from a
4868 memory buffer.
c65d14ee 4869 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4870 instead of DGifOpenFileName() if specified.
4871
c880678e
GM
48721999-12-31 Gerd Moellmann <gerd@gnu.org>
4873
4874 * xdisp.c (next_element_from_buffer): Change assertion at the end
4875 because it doesn't hold when there's an overlay string at the end
4876 from which we deliver an image.
4877
8ccb9a54
EZ
48781999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4879
4880 * msdos.c (IT_update_begin): Don't dereference members of struct
4881 window for deleted windows.
4882
12ce2351
GM
48831999-12-30 Gerd Moellmann <gerd@gnu.org>
4884
a915c648
GM
4885 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4886 a hook, and the hook has a non-nil `no-self-insert' property, let
4887 the return value of the hook specify whether an expansion took
4888 place. If it returns nil, no expansion has been performed.
4889
12ce2351
GM
4890 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4891 differently.
4892
04ee4f45
EZ
48931999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4894
4895 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4896
7f4bc0c3
EZ
48971999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4898
4899 * dispnew.c (mode_line_string): Support MS-DOS frames.
4900
dac204bc
GM
49011999-12-29 Gerd Moellmann <gerd@gnu.org>
4902
4903 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4904
7b712ad8
KH
49051999-12-29 Kenichi Handa <handa@etl.go.jp>
4906
4907 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4908 to signal_after_change.
4909
adb9900f
EZ
49101999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4911
41ad069b
EZ
4912 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4913 dimensions changed, invalidate the mouse highlight info.
4914 (disable_mouse_highlight, help_echo, previous_help_echo): New
4915 variables.
4916 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4917 (fast_find_position, IT_note_mode_line_highlight)
4918 (IT_note_mouse_highlight): New functions.
4919 (IT_update_begin): If the redisplay affects the window where the
4920 mouse highlight is, clear the highlight. If the frame where the
4921 highlight was displayed was killed, invalidate the highlight
4922 info.
4923 (IT_update_end): Reset the highlight flag. Reset the mouse
4924 highlight-defer flag.
4925 (IT_frame_up_to_date): New function, if mouse highlight was
4926 deferred due to GC, do it now.
4927 (internal_terminal_init): Initialize mouse-highlight related
4928 members of the_only_x_display. Assign IT_frame_up_to_date to
4929 frame_up_to_date_hook.
4930 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4931 help_echo changed value, generate a HELP_EVENT event.
4932 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4933
adb9900f
EZ
4934 * msdos.h (struct display_info): New.
4935 (struct x_output): Add the display_info member.
4936 (FRAME_X_DISPLAY_INFO): New macro.
4937
481b5054
GM
49381999-12-28 Gerd Moellmann <gerd@gnu.org>
4939
4940 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4941 if MODIFF > 1.
6448a6b3 4942 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4943
4944 * buffer.c (modify_overlay): Always compute unchanged info.
4945
a2882b0d
KH
49461999-12-27 Kenichi Handa <handa@etl.go.jp>
4947
4948 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4949
89ba5b5f
KH
49501999-12-27 Kenichi Handa <handa@etl.go.jp>
4951
4952 The following changes are to use more bits for face IDs.
4953
4954 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4955 lowest 8 bits are single byte character code, the bits above are
4956 face ID.
481b5054 4957 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4958 above.
481b5054
GM
4959 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4960 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4961
4962 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4963 of GLYPH_MASK_CHAR.
4964
4965 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4966 of GLYPH_MASK_CHAR.
4967
4968 * dispextern.h (struct glyph): Make face_id and padding_p the top
4969 level members. Change members in union `u'.
4970 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4971 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4972 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4973 (CHAR_GLYPH_PADDING_P): Likewise.
4974 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4975 characters.
4976
481b5054 4977 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4978 for the change of struct glyph.
4979 (line_draw_cost): Adjusted for the change of
4980 GLYPH_FROM_CHAR_GLYPH.
4981 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4982
4983 * term.c (encode_terminal_code): Adjusted for the change of struct
4984 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4985 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4986 change of struct glyph.
4987
4988 * xdisp.c: All codes adjusted for the change of struct glyph.
4989
4990 * xterm.c: All codes adjusted for the change of struct glyph.
4991
5bcd116c
KH
49921999-12-27 Kenichi Handa <handa@etl.go.jp>
4993
4994 * composite.h (struct composition): Change the order of declaring
4995 members to reduce the byte size of the structure.
4996
f21b06b7
GM
49971999-12-25 Gerd Moellmann <gerd@gnu.org>
4998
4999 * search.c (looking_at_1): Reset immediate_quit before modifying
5000 global data.
5001
e36557c9
KH
50021999-12-24 Kenichi Handa <handa@etl.go.jp>
5003
5004 * process.c (read_process_output): Fix the arg FROM to
5005 update_compositions.
5006
83c8f461 50071999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
5008
5009 * search.c (Freplace_match): For nonliteral replacement in buffer,
5010 construct all the new text first, then insert all at once.
5011
0b863bd9
DL
50121999-12-22 Dave Love <fx@gnu.org>
5013
5014 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
5015
6d8e8ef3
GM
50161999-12-22 Gerd Moellmann <gerd@gnu.org>
5017
28d7281d
GM
5018 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
5019 lead to size changes to after the X window has been created.
5020
e22ef6eb 5021 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
5022 variable in xassert.
5023
8affcced
KH
50241999-12-22 Kenichi Handa <handa@etl.go.jp>
5025
5026 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 5027 only when the frame is not for a window system.
8affcced 5028
f2be1146
GM
50291999-12-22 Gerd Moellmann <gerd@gnu.org>
5030
deca1348
GM
5031 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
5032 redisplay after changing the multibyteness of a buffer.
5033
f2be1146
GM
5034 * xterm.c (XTread_socket): At the beginning of the loop, pass the
5035 frame's X window to XFilterEvent instead of None because that's
5036 the X window for which the IC was created. This makes dead
5037 accents work when the pointer is not in Emacs' frame.
5038 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
5039
a744a2ec
DL
50401999-12-20 Dave Love <fx@gnu.org>
5041
5042 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
5043
9e6985ed
GM
50441999-12-19 Gerd Moellmann <gerd@gnu.org>
5045
5046 * eval.c (debugger_may_continue): New variable.
5047 (syms_of_eval): Add a DEFVAR_BOOL for it.
5048 (call_debugger): Bind it.
5049
3b620731
EZ
50501999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5051
5052 * msdos.c (IT_set_face): Don't swap face colors when highlight or
5053 fp->tty_reverse_p is set, unless the computed colors are identical
5054 to frame colors. Print both original and computed colors to
5055 termscript file.
5056 (IT_write_glyphs): Track the changes in handling of composite
5057 characters.
5058 (IT_set_frame_parameters): Don't set frame colors from
5059 unspecified-fg and unspecified-bg pseudo-colors.
5060
0f9a51c4
DL
50611999-12-17 Dave Love <fx@gnu.org>
5062
5063 * data.c (Fkeywordp): New function.
5064 (syms_of_data): Install it.
5065
363e4e42
EZ
50661999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5067
5068 * xfaces.c (tty_defined_color): Fix last change.
5069
cfad01b4
GM
50701999-12-15 Gerd Moellmann <gerd@gnu.org>
5071
5072 * xdisp.c (redisplay_window) <optional new window start>: Check
5073 that window start is in [BEGV..ZV].
5074
f9d2fdc4
EZ
50751999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
5076
5077 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
5078 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
5079
5080 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
5081 (syms_of_xfaces): Initialize and staticpro them.
5082 (tty_defined_color): If the color name is unspecified-fg or
5083 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
5084 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
5085 (tty_color_name): If the color pixel value is either
5086 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
5087 Qunspecified_fg or Qunspecified_bg, respectively.
5088 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
5089 and Qunspecified_bg for foreground and background colors.
5090 (realize_default_face): If the foreground and background colors
5091 are not specified, default to Qunspecified_fg and Qunspecified_bg.
5092 (realize_tty_face): By default, set the face colors to
5093 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
5094 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
5095 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
5096 Reverse the colors if the default colors were reversed.
5097
5098 * dispnew.c (init_display): Initialize the frame pixels of the
5099 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
5100 FACE_TTY_DEFAULT_BG_COLOR.
5101
5102 * term.c (turn_on_face): If the default fore- and background
5103 colors are reversed, enter inverse video mode. Don't send color
5104 escape sequences for unspecified foreground and background colors.
5105 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
5106
5107 * dosfns.c (unspecified_colors): New variable.
5108 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
5109 color names, return FACE_TTY_DEFAULT_FG_COLOR and
5110 FACE_TTY_DEFAULT_BG_COLOR, respectively.
5111 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
5112 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
5113 Qunspecified_bg, respectively.
5114
5115 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
5116 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
5117
e19539f1
KH
51181999-12-15 Kenichi Handa <handa@etl.go.jp>
5119
5120 * coding.c (code_convert_region): Fix the secoding arg to
5121 update_compositions.
5122
5ec14d3c
KH
51231999-12-15 Kenichi Handa <handa@etl.go.jp>
5124
5125 The following changes are for the new composition mechanism. We
5126 have deleted `composition' charset and composite characters,
5127 instead introduced a special text property `composition'.
5128
5129 * Makefile.in (INTERVAL_SRC): Include composite.h.
5130 (INTERVAL_OBJ): Include composite.o.
5131 (SOME_MACHINE_OBJECTS): Include composite.o.
5132 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
5133 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
5134 Depend on composite.h.
5135 (doc.o): Depend on charset.h.
5136 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
5137 (composite.o): New target.
427ec082 5138
5ec14d3c
KH
5139 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
5140
5141 * callproc.c (Fcall_process): Call code_convert_string to encode
5142 arguments. Use CODING_REQUIRE_DECODING to check if the process
5143 output should be decoded.
5144
5145 * casefiddle.c: Include composite.h.
5146 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
5147 multibyte character. Adjusted for the change of CHAR_STRING.
5148 (casify_region): Likewise. Call update_compositions.
5149
5150 * category.h (CATEGORY_SET): Delete codes for a composite
5151 character.
5152
5153 * category.c (word_boundary_p): Delete codes for a composite
5154 character.
5155 (Fmake_category_table): New function.
5156 (syms_of_category): Defsubr it.
5157
5158 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5159 (ccl_driver): Delete codes for a composite character.
5160
5161 * charset.h: In this entry, just `Modified' means that codes for a
5162 composite character is deleted.
5163 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5164 (charset_composition) (MIN_CHAR_COMPOSITION)
5165 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5166 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5167 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5168 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5169 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5170 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5171 Modified.
5172 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5173 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5174 non_ascii_char_to_string.
5175 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5176 (STRING_CHAR_AND_LENGTH): Likewise.
5177 (FETCH_CHAR_ADVANCE): New macro.
5178 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5179 (MAX_MULTIBYTE_LENGTH): New macro.
5180 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5181 (find_charset_in_str): Argument adjusted.
5182 (CHAR_LEN): Modified.
427ec082 5183
5ec14d3c
KH
5184 * charset.c: In this entry, just `Modified' means that codes for a
5185 composite character is deleted.
5186 (Qcomposition) (leading_code_composition)
5187 (charset_composition) (min_composite_char) (cmpchar_table)
5188 (cmpchar_table_size) (n_cmpchars): Deleted.
5189 (SPLIT_COMPOSITE_SEQ): Deleted.
5190 (SPLIT_MULTIBYTE_SEQ): Modified.
5191 (char_to_string): Renamed from non_ascii_char_to_string.
5192 Modified.
5193 (string_to_char): Renamed from string_to_non_ascii_char.
5194 (split_string): Renamed from split_non_ascii_string.
5195 (char_printable_p) (Fsplit_char)
5196 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5197 (char_bytes) (Fchar_width) (strwidth): Modified.
5198 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5199 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5200 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5201 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5202 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5203 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5204 (Fcmpchar_cmp_count): Deleted.
5205 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5206 (init_charset_once): Modified.
5207 (syms_of_charset): Modified.
5208
5209 * cmds.c (internal_self_insert): Adjusted for the change of
5210 CHAR_STRING.
5211
5212 * coding.h (emacs_code_class_type): Delete the member
5213 EMACS_leading_code_composition.
5214 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5215 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5216 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5217 (COMPOSING_WITH_RULE_P): Macros deleted.
5218 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5219 macros.
5220 (struct composition_data): New structure.
5221 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5222 (struct coding_system): New members composition_rule_follows,
5223 cmp_data, cmp_data_start, cmp_data_index.
5224 (coding_save_composition) (coding_free_composition_data)
5225 (coding_adjust_composition_offset): Extern them.
5226
5227 * coding.c: Include composite.h.
5228 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5229 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5230 of multibyte code here.
5231 (DECODE_CHARACTER_DIMENSION2): Likewise.
5232 (detect_coding_emacs_mule): Change the case label from
5233 EMACS_leading_code_composition to 0x80.
5234 (detect_coding_iso2022): Handle new composition sequence.
5235 (DECODE_ISO_CHARACTER): Likewise.
5236 (check_composing_code): Deleted.
5237 (coding_allocate_composition_data): New function.
5238 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5239 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5240 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5241 (decode_coding_iso2022): Handle new composition sequence.
5242 (ENCODE_ISO_CHARACTER): Don't check composition here.
5243 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5244 (ENCODE_COMPOSITION_NO_RULE_START)
5245 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5246 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5247 (ENCODE_COMPOSITION_FAKE_START): New macro.
5248 (encode_coding_iso2022): Handle new composition sequence.
5249 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5250 (encode_coding_sjis_big5): Ignore composition.
5251 (setup_coding_system): Initialize new members of struct
5252 coding_system. Enable composition only when the coding system has
5253 `composition' property t.
5254 (coding_free_composition_data) (coding_adjust_composition_offset)
5255 (coding_save_composition) (coding_restore_composition): New
5256 functions.
5257 (code_convert_region): Call coding_save_composition for encoding
5258 and coding_allocate_composition_data for decoding. Don't skip
5259 ASCII characters if we handle composition on encoding. Call
5260 signal_after_change with Check_BORDER.
5261 (code_convert_string): Call coding_save_composition for encoding
5262 and coding_allocate_composition_data for decoding. Don't skip
5263 ASCII characters if we handle composition on encoding.
5264 (code_convert_string1): Set Vlast_coding_system_used after calling
5265 code_convert_string.
5266 (code_convert_string_norecord): Disable composition.
5267 (Fset_terminal_coding_system_internal): Likewise.
5268 (Fset_safe_terminal_coding_system_internal): Likewise.
5269 (Fset_keyboard_coding_system_internal): Likewise.
5270 (init_coding_once): Set emacs_code_class[0x80] to
5271 EMACS_invalid_code.
5272
5273 * composite.h: New file.
5274
5275 * composite.c: New file.
5276
5277 * data.c (Faref): Delete codes for a composite character..
5278 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5279
5280 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5281 (struct glyph): Add new sub-structure cmp to the union `u'.
5282 (enum display_element_type): New member IT_COMPOSITION.
5283 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5284 (struct it): New members cmp_id, cmp_len.
5285
5286 * dispnew.c (direct_output_forward_char): Check point moving into
5287 or out of a composition. If so, give up direct method.
5288
5289 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5290
5291 * editfns.c (Fchar_to_string): Adjusted for the change of
5292 CHAR_STRING.
5293 (general_insert_function): Likewise.
5294 (Finsert_char): Likewise.
5295 (Fsubst_char_in_region): Likewise. Call update_compositions.
5296 (Ftranslate_region): Call update_compositions.
5297 (Ftranspose_regions): Call update_compositions.
5298
5299 * emacs.c (main): Call syms_of_composite.
5300
5301 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5302 CHAR_STRING.
5303 (Finsert_file_contents): Set Vlast_coding_system_used before
5304 calling signal_after_change. Call update_compositions if some
5305 texts are inserted..
5306 (Fwrite_region): Adjusted for the change of a_write and e_write.
5307 (a_write): Argument changed. Work based on character position,
5308 not byte position.
5309 (e_write): Argument changed. Handle new way of composition.
5310
5311 * fns.c (Flength): The length of char-table is MAX_CHAR.
5312 (concat): Adjusted for the change of CHAR_STRING.
5313 (Ffillarray): Adjusted for the change of CHAR_STRING.
5314 (Fset_char_table_default): Delete codes for a composite character.
5315 (hash_put): Return hash index.
5316
5317 * fontset.h (struct font_info): New member vertical_centering.
5318 (Vvertical_centering_font_regexp): Extern it.
5319
5320 * fontset.c (Vvertical_centering_font_regexp): New variable.
5321 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5322 Set Vignore_relative_composition to nil.
5323 (fs_load_font): Initialize `vertical_centering' of struct
5324 font_info.
5325
5326 * indent.c (check_composition): New function.
5327 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5328 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5329 (current_column_1): Handle new way of composition.
5330 (Fmove_to_column): Likewise.
5331 (compute_motion): Likewise.
5332
5333 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5334 (insert_char): Likewise.
5335 (insert): Call update_compositions.
5336 (insert_and_inherit): Likewise.
5337 (insert_before_markers): Likewise.
5338 (insert_before_markers_and_inherit): Likewise.
5339 (insert_from_string): Likewise.
5340 (insert_from_string_before_markers): Likewise.
5341 (insert_from_buffer): Likewise.
5342 (replace_range): Likewise.
5343 (count_combining_composition): Deleted.
5344 (count_combining_before): Delete codes for a composite character.
5345 (count_combining_after): Likewise.
5346 (del_range_1): Call update_compositions.
5347 (del_range_byte): Likewise.
5348 (del_range_both): Likewise.
5349 (Fcombine_after_change_execute): Likewise.
5350
5351 * intervals.h: Include composite.h.
5352 (get_property_and_range): Extern it.
5353 (Vtext_property_default_nonsticky): Extern it.
427ec082 5354
5ec14d3c
KH
5355 * intervals.c (adjust_intervals_for_insertion): To check stickines
5356 of properties, pay attention to text-property-default-nonsticky.
5357 (merge_properties_sticky): Likewise.
5358 (get_property_and_range): New function.
5359
5360 * keyboard.c (Vdisable_point_adjustment): New variable.
5361 (Vglobal_disable_point_adjustment): New variable.
5362 (syms_of_keyboard): Declare them as Lisp variables.
5363 (command_loop_1): Check them and call adjust_point_for_property if
5364 necessary.
5365 (adjust_point_for_property): New function.
5366
5367 * keymap.c (push_key_description): Adjusted for the change of
5368 CHAR_STRING.
5369 (Ftext_char_description): Likewise.
5370
5371 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5372 (hash_put): Adjusted for the change of the definition.
5373 (signal_after_change): Likewise.
5374 (check_point_in_composition): Extern it.
5375
5376 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5377 Delete a code that handles an invalid too-long multibyte sequence
5378 because we are now sure that we never encounter with such a
5379 sequence.
5380 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5381 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5382 (init_obarray): Likewise.
5383 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5384
5385 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5386
5387 * process.c: Include composite.h.
5388 (read_process_output): Call update_compositions.
5389
5390 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5391
5392 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5393
5394 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5395 character.
5396
5397 * term.c (encode_terminal_code): Delete codes for a composite
5398 character. Adjusted for the change of CHAR_STRING.
5399 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5400 Delete codes for a composite character.
5401
5402 * textprop.c (Vtext_property_default_nonsticky): New variable
5403 (syms_of_textprop): Declare it as a Lisp variable.
5404
5405 * window.c (Frecenter): Clear all caches of compositions.
5406
5407 * xdisp.c (it_props): Add an entry for composition.
5408 (face_before_or_after_it_pos): For composition, check face of a
5409 character after the composition.
5410 (handle_composition_prop): New function.
5411 (get_next_display_element): Adjusted for the change of
5412 CHAR_STRING.
5413 (set_iterator_to_next): Handle the case that it->method ==
5414 next_element_from_composition.
5415 (next_element_from_composition): New function.
5416 (message_dolog): Adjusted for the change of CHAR_STRING.
5417 (set_message_1): Likewise.
5418 (check_point_in_composition): New function.
5419 (reconsider_clip_changes): If point moved into or out of
5420 composition, set b->clip_changed to 1 to force updating of the
5421 screen.
5422 (disp_char_vector): Delete codes for a composite character.
5423 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5424
5425 * xfaces.c (choose_face_fontset_font): Delete codes for a
5426 composite character.
5427 (realize_x_face): Likewise. Change a place to set local variable
5428 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5429
5430 * xfns.c: Include intervals.h.
5431 (syms_of_xfns): Make `display' property nonsticky by default.
5432
5433 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5434 for find_charset_in_str.
5435
5436 * xterm.h (struct x_output): Change member font_baseline to
5437 baseline_offset.
5438
5439 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5440 for composition.
5441 (x_append_composite_glyph): New function.
5442 (VCENTER_BASELINE_OFFSET): New macro.
5443 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5444 of struct it for the composition. Cache pixel offsets in the
5445 struct composition. Delete codes for a composite character.
5446 Handle Vignore_relative_composition in composition code.
5447 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5448 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5449 (x_compute_glyph_string_overhangs): Likewise.
5450 (x_get_glyph_overhangs): Delete codes for a composite character.
5451 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5452 (x_draw_glyph_string_background): Likewise. Delete codes for
5453 checking s->gidx for a composition.
5454 (x_draw_glyph_string_foreground): Delete code for a composite
5455 character.
5456 (x_draw_composite_glyph_string_foreground): New function.
5457 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5458 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5459 (struct work): Deleted.
5460 (x_fill_composite_glyph_string): Argument changed. Mostly
5461 rewritten for that.
5462 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5463 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5464 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5465 (BUILD_GLYPH_STRINGS): For composition, call
5466 BUILD_COMPOSITE_GLYPH_STRING.
5467 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5468 f->output_data.x->font_baseline.
5469
c3c60f13
GM
54701999-12-14 Gerd Moellmann <gerd@gnu.org>
5471
5472 * xterm.c (show_mouse_face): Don't use updated_area, use
5473 TEXT_AREA.
5474
83c8f461 54751999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5476
5477 * minibuf.c (Fall_completions): Doc fix.
5478
83c8f461 54791999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5480
5481 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5482 has been changed by the Lisp code.
5483
d8eccf12
GM
54841999-12-12 Gerd Moellmann <gerd@gnu.org>
5485
5486 * xfns.c: Indentation fixes.
5487
ae56feae
SM
54881999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5489
5490 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5491
dfa1c6ae
GM
54921999-12-10 Gerd Moellmann <gerd@gnu.org>
5493
5494 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5495 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5496
5497 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5498 to frame.h.
5499
ec18280f
SM
55001999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5501
5502 * keyboard.c (Qratio): New symbol.
5503 (scroll_bar_parts): Add `Qratio' to it.
5504 (syms_of_keyboard): Init `Qratio'.
5505 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5506 * xterm.c (#includes): Allow compilation with only Xaw.
5507 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5508 (xt_action_hook): Replace XAW3D by XAW.
5509 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5510 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5511 Determine epsilon dynamically and don't try to be too clever.
5512 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5513 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5514 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5515 scrollbar (using `ratio').
5516 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5517 scrollbar we have so as to set it up more optimally and to fix
5518 xaw3d_arrow_scroll and xaw3d_pick_top.
5519 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5520 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5521 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5522 is not ignored, using a major gross hack.
5523 (x_initialize): Init default values for xaw3d_arrow_scroll and
5524 xaw3d_pick_top.
5525
83b6d970
DL
55261999-12-09 Dave Love <fx@gnu.org>
5527
5528 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5529
3648c842
GM
55301999-12-08 Gerd Moellmann <gerd@gnu.org>
5531
5532 * eval.c: Remove conditional compilation on `standalone'.
5533 (call_debugger): When entering the debugger while redisplaying,
5534 reset redisplaying_p, and go back to the top-level if the debugger
5535 returns.
5536
05e71564
GM
55371999-12-07 Gerd Moellmann <gerd@gnu.org>
5538
5539 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5540 basic faces are realized before trying to use face `menu'.
5541
5542 * window.c (delete_window): Block input for the time window
5543 matrices are being changed.
5544
b46cd536
DL
55451999-12-07 Dave Love <fx@gnu.org>
5546
5547 * lread.c (Fintern_soft): Fix newlines in doc string.
5548
96acb1f7
GM
55491999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5550
5551 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5552 duplicate definition of ElfW.
5553 (find_section): Copied from unexsgi.c.
5554 (unexec): Use find_section. Adjust whitespace. Initialize
5555 new_data2_offset based on old_data, not sbss (this fixes a bug on
5556 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5557 Adjust test for presence of .mdebug section to the new return
5558 value of find_section.
427ec082 5559
96acb1f7
GM
55601999-12-07 Gerd Moellmann <gerd@gnu.org>
5561
5562 * unexelf.c: Merge changes from 20.5.
5563 (unexec): Handle .lit4 and .lit8 unconditionally.
5564
5565 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5566 unexsgi.o again.
427ec082 5567
96acb1f7
GM
5568 * m/iris5d.h (UNEXEC): Likewise.
5569
7dae4502
SM
55701999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5571
5572 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5573 (syms_of_editfns): Register it.
5574 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5575 (del_range_1, del_range_2): Add a ret_string argument to
5576 request that the deleted text be returned.
5577 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5578 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5579 * casefiddle.c (casify_region): Update del_range_1 call.
5580 * coding.c (code_convert_region): Update del_range_2 call.
5581 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5582
397e4fae
GM
55831999-12-06 Gerd Moellmann <gerd@gnu.org>
5584
5585 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5586
3d973f71
GM
55871999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5588
5589 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5590
740e985f
EZ
55911999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5592
5593 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5594
5595 * insdel.c (adjust_markers_for_delete): Fix last change.
5596
2d764c78
EZ
55971999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5598
5599 Changes for automatic remapping of X colors on terminal frames:
5600
5601 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5602 frames.
5603 (Vface_tty_color_alist): Remove.
5604 (tty_defined_color): New function.
5605 (defined_color): Rewrite to support any type of frame.
5606 (tty_color_name): New function.
5607 (face_color_supported_p, Fface_color_gray_p,
5608 Fface_color_supported_p): Support non-X frames.
5609 (load_color): Enclose the color name in quotes, in the log
5610 messages. Remove DOS-specific version of load_color.
5611 (realize_tty_face): Take the supported colors from
5612 tty-color-alist. Support translation of X colors to the closest
5613 tty color, for both MSDOS and tty frames.
5614 [MSDOS]: Don't invert face colors if they were taken from the
5615 frame colors.
5616 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5617
5618 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5619 Define a mostly empty surrogate.
5620 (tty_display): Declare.
5621
5622 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5623 tty_display.
5624 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5625 frames when the frame's param_alist includes 'reverse.
5626 (tty_display): Define.
5627 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5628 output_data.x member.
5629 (Fframe_parameters): Return foreground and background color names
5630 on tty frames as well, in addition to MSDOS frames.
5631
5632 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5633 selected_frame.
5634 (struct x_output): Remove unused members; document who uses each
5635 member.
5636 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5637 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5638 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5639 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5640 unused macro definintions.
5641
5642 * msdos.c (IT_set_frame_parameters): Don't call
5643 recompute_basic_faces, the next redisplay will, anyway.
5644 (x_current_display): Remove unused variable.
5645 Many functions: changes for Lisp_object selected_frame.
5646 (IT_set_face): If the tty_reverse_p flag is set for the face,
5647 reverse the foreground and background colors.
5648 (Fmsdos_remember_default_colors): New function.
5649 (syms_of_msdos): Defsubr it.
5650 (IT_set_frame_parameters): Use initial_screen_colors[] when
5651 creating a new frame. If the frame parameters include 'reverse,
5652 swap the foreground and background colors.
5653 (internal_terminal_init): Initialize initial_screen_colors to -1.
5654 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5655 cus-start.el.
5656
5657 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5658
5659 * xfns.c (x_defined_color): Rename from defined_color. All
5660 callers changed.
5661 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5662 all callers changed.
5663 (Fxw_color_values): Renamed from Fx_color_values; all callers
5664 changed.
5665 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5666 callers changed.
5667 (x_window_to_frame, x_any_window_to_frame,
5668 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5669 x_top_window_to_frame): Use !FRAME_X_P instead of
5670 f->output_data.nothing.
5671 * xterm.h (x_defined_color): Rename from defined_color.
5672
5673 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5674 f->output_data.nothing.
5675 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5676 all callers changed.
5677 (Fxw_color_values): Renamed from Fx_color_values; all callers
5678 changed.
5679 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5680 callers changed.
5681
5682 * dispextern.h (tty_color_name): Add prototype.
5683
5684 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5685 f->output_data.nothing.
5686 * w32menu.c (menubar_id_to_frame): Likewise.
5687 * w32term.h (w32_output): Declare.
5688
5689 * dosfns.c (Qmsdos_color_translate): Remove.
5690 (msdos_stdcolor_name): Now returns a Lisp_Object.
5691 * dosfns.h (Qmsdos_color_translate): Remove.
5692
5693 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5694
b3e5232e
KH
56951999-12-06 Kenichi Handa <handa@etl.go.jp>
5696
5697 * fileio.c (decide_coding_unwind): Renamed from
5698 set_auto_coding_unwind.
5699 (Finsert_file_contents): Make single unwind protect to call both
5700 Vset_auto_coding_function and Ffind_operation_coding_system.
5701
5702 * insdel.c (adjust_markers_for_delete): Make it non-static.
5703
db0e466c
SM
57041999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5705
5706 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5707 operators and handle them properly.
5708 * regex.h (RE_ALL_GREEDY): New option.
5709 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5710 sorting would put it.
5711 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5712 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5713
22afa6e8
DL
57141999-12-04 Dave Love <d.love@dl.ac.uk>
5715
5716 * m/arm.h: New file.
5717
40afb967
DL
57181999-12-03 Dave Love <fx@gnu.org>
5719
5720 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5721
ddf8eff5
GM
57221999-12-02 Gerd Moellmann <gerd@gnu.org>
5723
5724 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5725 for building with Motif.
5726
5727 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5728 unexelf.o.
427ec082 5729
ddf8eff5
GM
5730 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5731
fa09a82d
DL
57321999-12-01 Dave Love <fx@gnu.org>
5733
5734 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5735
ddf8eff5
GM
57361999-11-28 Gerd Moellmann <gerd@gnu.org>
5737
5738 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5739 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5740 macros.
5741
5742 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5743
fa09a82d
DL
57441999-11-28 eliz <eliz@dlpx1>
5745
5746 * emacs.c (synchronize_locale): Avoid compiler warnings about
5747 pointer type mismatch.
5748
f9632fc8
GM
57491999-11-28 Gerd Moellmann <gerd@gnu.org>
5750
717d0121
GM
5751 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5752 out of range position.
5753
427ec082 5754 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5755 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5756
59c65f1e
EZ
57571999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5758
613a8346
EZ
5759 * charset.c (Fmake_char_internal): Print the charset ID when
5760 signalling an error.
5761
59c65f1e
EZ
5762 * emacs.c (synchronize_locale): Avoid compiler warnings about
5763 pointer type mismatch.
5764
83c8f461 57651999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5766
5767 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5768
18df9369
GM
57691999-11-26 Gerd Moellmann <gerd@gnu.org>
5770
65a3ccf7
GM
5771 * puresize.h (BASE_PURESIZE): Increase to 550000.
5772
b3b98592
GM
5773 * textprop.c (set_text_properties): New function. Like
5774 Fset_text_properties, but with additional parameter
5775 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5776 changes.
5777 (Fset_text_properties): Use it.
5778
5779 * insdel.c (insert_1_both): Call set_text_properties with last
5780 parameter nil so that no after changes will be signaled.
5781
5782 * lisp.h: Add prototype for set_text_properties.
5783
18df9369
GM
5784 * xfaces.c (set_lface_from_font_name): Fix previous change.
5785 (recompute_basic_faces): Change assert to abort.
5786
71a8e74b
DL
57871999-11-25 Dave Love <fx@gnu.org>
5788
5789 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5790 (Fmember, Fdelq, Fdelete): Inline car.
5791 (Fy_or_n_p): Doc fix.
5792
bc6a5782
GM
57931999-11-25 Gerd Moellmann <gerd@gnu.org>
5794
3221576b 5795 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5796 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5797 is not set, try to use a reasonable default.
5798
bc6a5782
GM
5799 * dispnew.c (direct_output_for_insert): Set glyph row's
5800 displays_text_p flag. Correct window's window_end_vpos if
5801 necessary.
5802
0c8559bb
PE
58031999-11-25 Paul Eggert <eggert@twinsun.com>
5804
5805 * emacs.c (fixup_locale): Don't bother to record initial locale.
5806 (synchronize_locale): If the desired locale is nil,
5807 treat it as if it were the empty string,
5808 so that we set the locale from the environment.
5809
35737351
KH
58101999-11-25 Kenichi Handa <handa@etl.go.jp>
5811
5812 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5813 of the current buffer via Fset.
5814
5562b47f
DL
58151999-11-24 Dave Love <fx@gnu.org>
5816
5562b47f
DL
5817 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5818
5819 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5820
00da0e4a
GM
58211999-11-24 Gerd Moellmann <gerd@gnu.org>
5822
5823 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5824
5825 * emacs.c (PVEC_FLAG): New variable.
5826
b1775dc1
GM
58271999-11-23 Gerd Moellmann <gerd@gnu.org>
5828
5829 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5830 that fails on IBM PowerPC, AIX 4.2.
427ec082 5831
08de6200
EZ
58321999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5833
5834 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5835 string of mode-line-format. Remove the obsolete %t.
5836
02fda8ff
GM
58371999-11-22 Gerd Moellmann <gerd@gnu.org>
5838
f2fa858f
GM
5839 * dispnew.c (direct_output_for_insert): Increment glyph positions
5840 for glyphs from buffer text only.
5841
02fda8ff
GM
5842 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5843 (gdb_data_seg_bits): New variables.
427ec082 5844
02fda8ff
GM
5845 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5846 work on systems not allowing enumerators > INT_MAX, and it
5847 won't work if EMACS_INT is long long.
5848
1b0d24e7
PE
58491999-11-22 Paul Eggert <eggert@twinsun.com>
5850
5851 Port to SunOS 4.1.x again. Help out with Alpha port.
5852 Rename messages-locale to system-messages-locale,
5853 and likewise for time-locale.
427ec082 5854
1b0d24e7
PE
5855 * callproc.c (strerror): Remove decl.
5856 * fileio.c (strerror): Likewise.
5857 * process.c (strerror): Likewise.
5858 * emacs.c (strerror): Likewise.
5859 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5860 All uses changed.
5861 (Vprevious_system_messages_locale): Likewise, from
5862 Vprevious_messages_locale.
5863 (Vsystem_time_locale): Likewise, from Vtime_locale.
5864 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5865 (ABORT_RETURN_TYPE): New macro.
5866 (abort): Return type is now ABORT_RETURN_TYPE.
5867 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5868 defined.
5869 (syms_of_emacs): messages-locale -> system-messages-locale,
5870 previous-messages-locale -> previous-system-messages-locale,
5871 time-locale -> system-time-locale,
5872 previous-time-locale -> previous-system-time-locale.
5873
5874 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5875 (const): Do not define; that's config.h's job.
5876 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5877 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5878 (<stddef.h>): Include if STDC_HEADERS is defined.
5879 (FREE_RETURN_TYPE): New macro.
5880 (free): Return type is now FREE_RETURN_TYPE.
5881
5882 * lisp.h (synchronize_system_time_locale): Renamed from
5883 synchronize_time_locale. All uses changed.
5884 (synchronize_system_messages_locale): Likewise, from
5885 synchronize_messages_locale.
5886
5887 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5888 stdlib.h now does this.
5889
5890 * process.c (sys_siglist): Remove.
5891
5892 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5893 New macros.
5894
5895 * syntax.c (scan_sexps_forward): Use abort, not assert.
5896
5897 * sysdep.c (my_sys_siglist): New var.
5898 (sys_siglist): New macro. Remove old initialized vars of same name.
5899 (init_signals): Initialize sys_siglist.
5900
5901 * xfns.c (abort): Remove decl; stdlib.h now does this.
5902
0dcd5b54
DL
59031999-11-18 Dave Love <fx@gnu.org>
5904
946173ad
DL
5905 * filelock.c: Add forward declaration for get_boot_time_1.
5906
0dcd5b54
DL
5907 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5908
71447e8f
GM
59091999-11-18 Gerd Moellmann <gerd@gnu.org>
5910
5911 * buffer.h (struct buffer_text): Add comment about moving
5912 buffer text if REL_ALLOC is defined.
5913
eeedff63
KH
59141999-11-18 Kenichi Handa <handa@etl.go.jp>
5915
5916 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5917
5918 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5919 memory for push_key_description.
5920
5921 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5922 allocate memory for push_key_description.
5923 (describe_buffer_bindings): Likewise.
5924
5d7e4a2c
GM
59251999-11-17 Gerd Moellmann <gerd@gnu.org>
5926
5927 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5928 (Fx_hide_busy_cursor): Ditto.
5929
59301999-11-17 Marco Walther <walther@siemens-pyramid.com>
5931
5932 * unexsni.c (unexec): Handle .rel.dyn section.
5933
b5b41e02
DL
59341999-11-16 Dave Love <fx@gnu.org>
5935
5936 * doc.c (Fdocumentation): Remove gcpro here too.
5937
e35b6123
GM
59381999-11-16 Gerd Moellmann <gerd@gnu.org>
5939
5940 * keyboard.c (command_loop_1): Remove no_redisplay.
5941
83c8f461 59421999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5943
5944 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5945 in noninteractive.
5946
b05d3bee
GM
59471999-11-14 Gerd Moellmann <gerd@gnu.org>
5948
5bcfeb49
GM
5949 * xdisp.c (ensure_echo_area_buffers): New.
5950 (with_echo_area_buffer): Use it.
5951 (setup_echo_area_for_printing): Ditto.
5952
b05d3bee
GM
5953 * buffer.c (indicate-empty-lines): Doc-fix.
5954
9b2e6e4c
GM
59551999-11-12 Gerd Moellmann <gerd@gnu.org>
5956
e7f90eab
GM
5957 * term.c (term_init): If "op" isn't available, don't support color
5958 because we can't switch back to the default foreground and
5959 background.
5960
9b2e6e4c
GM
5961 * doc.c (Fdocumentation_property): Remove GCPRO because
5962 Fsubstitute_command_keys gcpro's the string.
5963
1bf21027
KH
59641999-11-12 Kenichi Handa <handa@etl.go.jp>
5965
5966 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5967
3bc6df53
GM
59681999-11-11 Gerd Moellmann <gerd@gnu.org>
5969
5970 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5971 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5972 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5973
35a5514b
GM
59741999-11-10 Gerd Moellmann <gerd@gnu.org>
5975
5976 * xfns.c (QCuser_data): Removed.
5977 (syms_of_xfns): Initialization of QCuser_data removed.
5978 (parse_image_spec): Don't handle :user-data specially. Allow
5979 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5980 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5981 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5982 parse_image_spec accordingly.
5983
83c8f461 59841999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5985
5986 * cmds.c (Fbeginning_of_line): Doc fix.
5987 (Fend_of_line): Doc fix.
5988
5989 * editfns.c (Fline_beginning_position): If N is not 1,
5990 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5991
5992 * syntax.c (Fforward_word): Handle fields even if would have hit
5993 an edge of the buffer. Return nil if affected by fields.
5994
83c8f461 59951999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5996
5997 * editfns.c (preceding_pos): Function deleted.
5998 (text_property_stickiness): Decrement POS directly.
5999 Fix a confusion that used PT instead of POS.
6000
6001 * editfns.c (find_field): Properly handle the case
6002 of a field boundary where `field' inherits from neither side.
6003
6004 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
6005 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
6006
fa9aabf6
GM
60071999-11-08 Gerd Moellmann <gerd@gnu.org>
6008
6009 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
6010 BEFORE_POTENTIAL_GC before DISCARD.
6011
4015b3c0
GM
60121999-11-07 Gerd Moellmann <gerd@gnu.org>
6013
033a5fa3
GM
6014 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
6015
6016 * lisp.h: Add prototype for unmark_byte_stack.
6017
6018 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
6019 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
6020 XUNMARK.
6021
55b064bd
GM
6022 * xdisp.c (resize_mini_window): Fix computation of needed
6023 mini-window height.
6024
6025 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
6026 compilation on USE_TEXT_PROPERTIES.
01e9b9df 6027
4015b3c0 6028 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 6029 locally there. Rearrange case statements so that those most
4015b3c0
GM
6030 frequently executed come first. Avoid goto's in frequently
6031 executed cases.
6032
fe512f27
GM
60331999-11-05 Gerd Moellmann <gerd@gnu.org>
6034
dd59e217
GM
6035 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
6036 AFTER_POTENTIAL_GC around internal_catch.
6037
bcf28080
GM
6038 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
6039 relocate_byte_pcs.
6040 (init_alloc_once, init_alloc): Set byte_stack_list to null.
6041
6042 * eval.c (struct catchtag): Add member byte_stack.
6043 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 6044 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
6045 catchtag.
6046 (unwind_to_catch): Restore byte_stack_list from catchtag.
6047
6048 * lisp.h: Add prototypes for new functions in bytecode.c.
6049 Add extern declaration for byte_stack_list.
6050
6051 * bytecode.c (struct byte_stack): New.
6052 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
6053 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
6054 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
6055 (HANDLE_RELOCATION): Removed.
6056 (Fbyte_code): Use byte_stack structures.
6057
4d59c34c
GM
6058 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
6059
fe512f27
GM
6060 * buffer.c (syms_of_buffer): Extend documentation of
6061 mode-line-format.
6062
60b64cd6
GM
60631999-11-04 Gerd Moellmann <gerd@gnu.org>
6064
6065 * editfns.c (Fdelete_field): Renamed from Ferase_field.
6066
6067 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
6068 Ferase_field instead of Fdelete_field.
6069
b51b619b
GM
60701999-11-03 Gerd Moellmann <gerd@gnu.org>
6071
6072 * dispnew.c (Finternal_show_cursor): Change it to set the
6073 cursor on/off, not toggle its state.
6074 (Finternal_show_cursor_p): New.
6075 (syms_of_display): Defsubr Sinternal_show_cursor_p.
6076
5865af0d
DL
60771999-11-03 Dave Love <fx@gnu.org>
6078
6079 * charset.c (split_non_ascii_string): Define return value.
6080
82a700f3
GM
60811999-11-03 Gerd Moellmann <gerd@gnu.org>
6082
edfef199
GM
6083 * minibuf.c (string_to_object): New.
6084 (read_minibuf_noninteractive): New.
6085 (read_minibuf): Call read_minibuf_noninteractive if
6086 noninteractive. Use string_to_object.
6087
82a700f3
GM
6088 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
6089
b5540f0d
DL
60901999-11-02 Dave Love <fx@gnu.org>
6091
e69dcd60
DL
6092 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
6093
827a1788
DL
6094 * process.c: Define _GNU_SOURCE before config.h to get strsignal
6095 declared with glibc2.
b5540f0d 6096
a69a6e61
GM
60971999-11-02 Gerd Moellmann <gerd@gnu.org>
6098
6099 * lisp.h (QUIT): Give it statement form.
6100
87e21fbd
DL
61011999-11-02 Dave Love <fx@gnu.org>
6102
6103 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
6104
1b335865
GM
61051999-11-02 Gerd Moellmann <gerd@gnu.org>
6106
9fb5e03d
GM
6107 * xfns.c (QCuser_data): New.
6108 (syms_of_xfns): Initialize QCuser_data.
6109 (parse_image_spec): Ignore :user-data DATA properties.
6110
1b335865
GM
6111 * xdisp.c (display_line): Set charpos of first glyph in blank
6112 lines not corresponding to any text to -1, even if no glyphs are
6113 filled in in that line.
6114
e76f1c44
GM
61151999-11-01 Gerd Moellmann <gerd@gnu.org>
6116
427ec082 6117 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
6118 png_get_sRGB in #ifdef.
6119
111259b4
GM
6120 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
6121 (syms_of_display): Use the new name.
6122
dd5c96e8
GM
6123 * textprop.c (verify_interval_modification): Signal text-read-only
6124 instead of calling error.
6125
db8878fb
GM
6126 * data.c (Qtext_read_only): New built-in error.
6127 (syms_of_data): Initialize it.
6128
6129 * lisp.h: Add extern declaration for Qtext_read_only.
6130
e76f1c44
GM
6131 * syntax.c: Remove whitespace after open or in front of closing
6132 parentheses.
6133
83c8f461 61341999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6135
6136 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
6137
7843e09c
GM
61381999-10-31 Gerd Moellmann <gerd@gnu.org>
6139
575ed805
GM
6140 * xdisp.c (resize_mini_window): Compute needed height differently.
6141
7843e09c
GM
6142 * fns.c (Flength): Unroll loop over lists.
6143
6144 * xdisp.c (append_space): Return non-zero if space was appended.
6145 (display_line): Set charpos of first glyph to -1 only if that
6146 glyph is the space added by append_glyph.
6147
83c8f461 61481999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
6149
6150 * print.c (strout): Consider `noninteractive' and use stdout
6151 only when PRINTCHARFUN is t.
6152
6153 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6154 (gcpro_level): Declare it extern.
6155 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6156 Alternate definitions that set `level' and increment `gcpro_level'.
6157 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6158
6159 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6160 (init_eval) [DEBUG_GCPRO]: Initialize it.
6161 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6162 from remaining gcprolist.
6163
3636f7a3
KH
61641999-10-29 Kenichi Handa <handa@etl.go.jp>
6165
6166 * coding.c (code_convert_region): Update `dst' correctly.
6167
a2ad7096
GM
61681999-10-28 Gerd Moellmann <gerd@gnu.org>
6169
6170 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6171 (Frassoc): Rewritten.
6172
1e3196e8
GM
61731999-10-27 Noah Friedman <friedman@splode.com>
6174
6175 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6176 Define PTY_NAME_SPRINTF.
6177 Redefine PTY_TTY_NAME_SPRINTF.
6178 * config.in: Add undef for HAVE_DEV_PTMX.
6179
83c8f461 61801999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6181
6182 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6183 as arg to DEBUG_POP and DEBUG_PRINT.
6184
83c8f461 61851999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6186
6187 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6188 (Ffset): Call Qad_activate_internal.
6189 (syms_of_data): Initialize Qad_activate_internal.
6190
26922151
GM
61911999-10-27 Gerd Moellmann <gerd@gnu.org>
6192
6193 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6194 Vterminal_frame is selected and Vwindow_system is non-nil.
6195
67a5596f
GM
61961999-10-26 Gerd Moellmann <gerd@gnu.org>
6197
2bea706b
GM
6198 * xdisp.c (echo_area_display): Put previous change in #if 0.
6199
67a5596f
GM
6200 * emacs.c (standard_args): Add `file' as synonym for `visit',
6201 `execute' as synonym for `eval'.
6202 (main): Add new options to usage message.
6203
81dc5de5
GM
62041999-10-25 Gerd Moellmann <gerd@gnu.org>
6205
6206 * data.c (Qhash_table): New.
6207 (Ftype_of): Return it for hash tables.
6208 (syms_of_data): Initialize Qhash_table.
6209
83c8f461 62101999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6211
6212 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6213
66e4690f 62141999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6215
7539e11f
KR
6216 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6217 lisp.h.
6218
6219 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6220 Fbuffer_local_variables, Fother_buffer, record_buffer,
6221 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6222 swap_out_buffer_local_variables, overlays_at, overlays_in,
6223 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6224 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6225 Foverlay_put, report_overlay_modification, evaporate_overlays):
6226 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6227 references.
6228 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6229 swap_in_symval_forwarding, set_internal, default_value,
6230 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6231 Fmake_variable_frame_local, Flocal_variable_p,
6232 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6233 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6234 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6235 * emacs.c (main): Likewise.
6236 * fontset.c (fs_load_font, fs_register_fontset,
6237 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6238 Fnew_fontset, Fset_fontset_font): Likewise.
6239 * frame.c (do_switch_frame, next_frame, prev_frame,
6240 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6241 Likewise.
6242 * keyboard.c (read_char, help_char_p, event_to_kboard,
6243 kbd_buffer_get_event, timer_start_idle, timer_check,
6244 make_lispy_event, apply_modifiers, reorder_modifiers,
6245 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6246 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6247 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6248 Fcommand_execute, Fexecute_extended_command): Likewise.
6249 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6250 Fall_completions): Likewise.
6251 * window.c (Fset_window_margins): Likewise.
6252
6253 * callint.c (quotify_args): Don't explicitly use struct
6254 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6255
3a7093d8
KR
6256 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6257 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6258 if __ELF__ is defined.
6259
2a3d7146
GM
62601999-10-24 Gerd Moellmann <gerd@gnu.org>
6261
6262 * window.c (Fnext_window): Add a QUIT in the loop.
6263
8ac52782
GM
62641999-10-23 Gerd Moellmann <gerd@gnu.org>
6265
427ec082 6266 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6267 New targets.
6268
05f0d15a
DL
62691999-10-22 Dave Love <fx@gnu.org>
6270
6271 * emacs.c (main): Enable profiling conditional on __linux also.
6272
882fb0e6
GM
62731999-10-20 Gerd Moellmann <gerd@gnu.org>
6274
6275 * xrdb.c (x_load_resources): Set default resources for resource
6276 classes instead of for the specific Emacs.
6277
b5f5bc31
GM
62781999-10-19 Gerd Moellmann <gerd@gnu.org>
6279
66f4dd69
GM
6280 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6281 defines it that way.
427ec082 6282
b5f5bc31
GM
6283 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6284 if selected_frame is equal to Vterminal_frame.
6285
68c45bf0 62861999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6287
68c45bf0 6288 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6289
68c45bf0
PE
6290 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6291 when dumping, so that the dumped Emacs doesn't have stray locale info.
6292 (dired.o): Depend on systime.h.
6293 (editfns.o): Depend on coding.h.
6294
6295 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6296 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6297 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6298 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6299 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6300 Include <config.h> before any system include files.
6301
6302 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6303 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6304 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6305 xmenu.c, xterm.c:
6306 Do not include <stdlib.h>, as <config.h> does this now.
6307
6308 * callproc.c (Fcall_process):
6309 Synchronize messages locale before invoking strerror.
6310 Decode resulting string with locale-coding-system.
6311
6312 * coding.c (Vlocale_coding_system): New var.
6313 (syms_of_coding): Adjust to above change.
6314 (emacs_strerror): New function.
6315
6316 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6317
68c45bf0
PE
6318 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6319 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6320 HAVE_STRSIGNAL): New macros.
6321 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6322 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6323
6324 * dired.c: Include "systime.h".
6325 (Ffile_attributes): Do not cast s.st_size to int; this loses
6326 information if int is 32 bits but st_size and EMACS_INT are larger.
6327 Treat large device numbers like large inode numbers.
6328
6329 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6330
6331 * editfns.c: Include coding.h.
6332 (emacs_strftime): Remove decl.
6333 (emacs_strftimeu): New decl.
6334 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6335 Use emacs_strftimeu instead of emacs_strftime.
6336 (Fformat_time_string): Convert format string using
6337 Vlocale_coding_system, and convert result back. Synchronize time
6338 locale before invoking lower level function. Invoke
6339 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6340
68c45bf0
PE
6341 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6342 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6343 Vprevious_time_locale): New variables.
6344 (main): Invoke setlocale early, so that initial error messages are
6345 localized properly. But skip locale-setting if LC_ALL is "C".
6346 Fix up locale when it's safe to do so.
6347 (fixup_locale): Moved here from xterm.c.
6348 (synchronize_locale, synchronize_time_locale,
6349 synchronize_messages_locale): New functions.
6350 (syms_of_emacs): Accommodate above changes.
6351
6352 * fileio.c (report_file_error): Convert strerror output according
6353 to Vlocale_coding_system.
6354 (Finsert_file_contents): Check for arithmetic overflow in
6355 computations that depend on file size. Report IO errors
6356 with emacs_strerror, not strerror.
6357
6358 * fns.c (Fgethash): Declare dflt parameter.
6359
6360 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6361 is defined; that's config.h's job.
6362
6363 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6364 default these values to long, BITS_PER_LONG, and unsigned long.
6365 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6366 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6367 (code_convert_string_norecord, fixup_locale,
6368 synchronize_messages_locale, synchronize_time_locale,
6369 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6370 All Emacs callers of open, close, read, write changed to use
6371 emacs_open, emacs_close, emacs_read, emacs_write.
6372
6373 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6374 changed to file_tell.
6375 (saved_doc_string_position, prev_saved_doc_string_position): Now
6376 of type file_offset.
6377 (init_lread): Do not fix locale here; fixup_locale now does this.
6378
6379 * m/amdahl.h, s/usg5-4.h:
6380 (NSIG): Remove.
6381 (NSIG_MINIMUM): New macro.
6382
6383 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6384 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6385 s/umips.h, s/usg5-4.h:
6386 (SIGIO): Do not undef.
6387 (BROKEN_SIGIO): New macro.
6388
6389 * m/ustation.h:
6390 (SIGTSTP): Do not undef.
6391 (BROKEN_SIGTSTP): New macro.
6392
6393 * s/gnu-linux.h:
6394 (SIGPOLL, SIGURG): Do not undef.
6395 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6396
6397 * s/ptx4.h:
6398 (SIGINFO): Do not undef.
6399 (BROKEN_SIGINFO): New macros.
427ec082 6400
68c45bf0
PE
6401 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6402
6403 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6404 some Emacs-related changes merged.
6405
6406 * print.c (float_to_string): Prepend "-" to representation of a
6407 NaN if the NaN is negative.
6408
6409 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6410 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6411
68c45bf0
PE
6412 * process.c (status_message, sigchld_handler): Synchronize locale,
6413 then use strsignal istead of sys_siglist.
6414 * w32proc.c (sys_wait): Likewise.
427ec082 6415
68c45bf0
PE
6416 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6417 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6418 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6419 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6420 (open, close, read, write, INTERRUPTIBLE_OPEN,
6421 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6422
6423 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6424
6425 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6426 sys_open, open): Remove.
6427 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6428 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6429 macros are no longer used.
6430 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6431 (emacs_close): Renamed from sys_close.
6432 (emacs_read): Renamed from sys_read.
6433 (emacs_write): Renamed from sys_write.
6434 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6435 (dup2): Do not print error on failure; the real dup2 doesn't.
6436 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6437
6438 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6439 is defined.
6440 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6441 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6442 (strsignal): Declare if !HAVE_STRSIGNAL.
6443
6444 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6445 (ElfW): Define in terms of ElfExpandBitsW.
6446
6447 * w32proc.c (sys_siglist): Remove decl.
6448
6449 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6450 with ANSI C.
6451 (display_string): Declare face_string_pos arg.
6452
6453 * xfns.c (Fx_show_tip): Declare timeout param.
6454
6455 * xterm.c: No need to include locale.h.
6456 (x_alloc_lighter_color, x_setup_relief_color):
6457 Pass arg as double, not float, for compatibility with ANSI C.
6458 (fixup_locale): Move to emacs.c.
6459 (x_term_init): Do not setlocale or fixup locale; the main program
6460 does this now.
6461
2f0b74ea
DL
64621999-10-18 Dave Love <fx@gnu.org>
6463
6464 * doc.c (Fdocumentation_property): Gcpro `tem'.
6465
471aa4a0
KH
64661999-10-18 Kenichi Handa <handa@etl.go.jp>
6467
6468 * lread.c (Fload): Calculate bytes of filename correctly.
6469 (openp): Likewise.
6470
aca2020b
KH
64711999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6472
6473 * print.c (print_preprocess): In case print-circle is nil,
6474 add OBJ to Vprint_number_table only when OBJ is a symbol.
6475
1f5fe392 64761999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6477
6478 * coding.c (code_convert_string): Add record_unwind_protect to
6479 assure setting inhibit_pre_post_conversion back to zero. Take
6480 care of the multibyteness of the working buffer.
6481
6482 * coding.c (inhibit_pre_post_conversion): New variable.
6483 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6484 ignore post-read-conversion and pre-write-conversion property of
6485 the coding system.
6486 (code_convert_region_unwind): New function.
6487 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6488 running pre-write-conversion and post-read-conversion.
6489 (code_convert_string): Likewise.
6490
cd876a91
GM
64911999-10-17 Miles Bader <miles@gnu.org>
6492
6493 * editfns.c: Doc fix.
6494
64951999-10-17 Miles Bader <miles@gnu.org>
6496
6497 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6498 argument preconditions of find_before_next_newline in the case
6499 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6500 was indeed at the edge.
6501
65021999-10-17 Miles Bader <miles@gnu.org>
6503
6504 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6505 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6506
6507 * editfns.c (text_property_eq, text_property_stickiness): Don't
6508 use initializers for auto variables of type Lisp_Object.
6509 (find_field): Likewise. Use braces around nested ifs.
6510 (Fline_end_position): Store the raw eol in a variable, so that the
6511 final expression doesn't look so ugly.
6512 (Fconstrain_to_field): Doc fix.
6513 (preceding_pos): Renamed from `preceeding_pos'.
6514 (text_property_stickiness, find_field): Call preceding_pos,
6515 not preceeding_pos.
6516
65171999-10-17 Miles Bader <miles@gnu.org>
6518
6519 * editfns.c (Ffield_string_no_properties): New function.
6520 (text_property_stickiness, preceeding_pos): New functions.
6521 (Ffield_string): Remove PROPS parameter.
6522 (find_field): Add MERGE_AT_BOUNDARY parameter.
6523 Rewrite to use stickiness of `field' property to resolve
6524 ambiguous cases.
6525 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6526 (Fconstrain_to_field): Likewise.
6527 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6528 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6529 Supply new MERGE_AT_BOUNDARY argument to find_field.
6530 (Fline_beginning_position, Fline_end_position): Supply new
6531 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6532 Pass a value of Qt for the ONLY_IN_LINE argument to
6533 Fconstrain_to_field (only matters if N != 1).
6534 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6535 to Fconstrain_to_field.
6536
6537 * minibuf.c (Fminibuffer_complete_word): Use
6538 Ffield_beginning to find the prompt end.
6539
65401999-10-17 Miles Bader <miles@gnu.org>
6541
6542 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6543 behavior when NEW_POS is nil.
6544 (find_field): Use XSETFASTINT instead of make_number.
6545 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6546 input string by seeing where the field begins, instead of
6547 looking at text-properties.
6548
65491999-10-17 Miles Bader <miles@gnu.org>
6550
6551 * editfns.c (Qfield): New variable.
6552 (find_field, Ferase_field, Ffield_string,
6553 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6554 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6555 (make_buffer_string_both): Remove minibuffer-prompt hack.
6556 (syms_of_editfns): Initialize Qfield, and subr entries for
6557 field functions above.
6558 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6559 minibuf_save_list.
6560 Don't initialize minibuffer prompt length.
6561 Wrap prompt text-properties around the entire prompt.
6562 Add 'prompt text-property to prompt.
6563 Get final value with Ffield_string instead of make_buffer_string.
6564 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6565 minibuf_save_list.
6566 (do_completion): Get minibuffer input with Ffield_string
6567 instead of Fbuffer_string.
6568 Erase minibuffer input with Ferase_field instead of erase_buffer.
6569 (Fminibuffer_complete_and_exit): Likewise.
6570 Test whether buffer is empty by looking for the 'prompt text
6571 property at the end.
6572 Set prompt length by looking for the end of the prompt text property,
6573 and save prompt length for later use (since there is no longer a
6574 buffer variable to get it from).
6575 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6576 (syms_of_minibuf): Remove initializations of
6577 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6578 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6579 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6580 Don't initialize prompt_end_charpos field.
6581 * syntax.c (Fforward_word): Likewise.
6582 Constrain to any field.
6583
3f6f7508
GM
65841999-10-16 Gerd Moellmann <gerd@gnu.org>
6585
6586 * window.c (enum save_restore_action): New.
6587 (save_restore_orig_size): Change parameter list. Add
6588 functionality to check for valid orig_top and orig_height members
6589 in a window tree.
6590 (grow_mini_window): Call save_restore_orig_size with new parameter
6591 list.
6592 (shrink_mini_window): Restore old window sizes only if old
6593 size information is valid in all windows in a window tree.
427ec082 6594
06482119
GM
65951999-10-15 Gerd Moellmann <gerd@gnu.org>
6596
2710454d
GM
6597 * xmenu.c (set_frame_menubar): Don't call
6598 x_set_menu_resources_from_menu_face here.
6599 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6600
06482119
GM
6601 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6602
17fa2837
DL
66031999-10-14 Dave Love <fx@gnu.org>
6604
6605 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6606
45f93416
GM
66071999-10-14 Gerd Moellmann <gerd@gnu.org>
6608
6609 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6610 fails and h_errno is TRY_AGAIN.
6611
c765b723
DL
66121999-10-13 Dave Love <fx@gnu.org>
6613
6614 * filelock.c (lock_file): Move gcpro of `fn'.
6615
dace7f4e
GM
66161999-10-10 Gerd Moellmann <gerd@gnu.org>
6617
6618 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6619
83c8f461 66201999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6621
6622 * print.c (print): When removing objects from Vprint_number_table,
6623 only scan the newly added objects.
6624 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6625 unconditionally force it to stay in the table.
6626
85177c86
GM
66271999-10-09 Gerd Moellmann <gerd@gnu.org>
6628
6629 * xfns.c (prepare_image_for_display): Don't try to load image if
6630 loading it failed before.
6631 (lookup_image, prepare_image_for_display): Remember if loading the
6632 image failed.
6633 (xpm_load): Add missing UNBLOCK_INPUT.
6634
6635 * dispextern.h (struct image): New member load_failed_p.
6636
11e4de5d
SM
66371999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6638
f28eba7b 6639 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6640 in the docstring.
6641
f1da8f06
GM
66421999-10-08 Gerd Moellmann <gerd@gnu.org>
6643
6644 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6645 Don't call XSetInputFocus because that can generate additional
6646 FocusIn events.
427ec082 6647
c37bbd4f
GM
66481999-10-07 Jeffrey C Honig <jch@bsdi.com>
6649
6650 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6651
83c8f461 66521999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6653
6654 * process.c (wait_reading_process_input): When trying to suck
6655 input from one process, for accept-process-output,
6656 exit that loop if we get EAGAIN or EWOULDBLOCK.
6657
577d9e2f
GM
66581999-10-07 Gerd Moellmann <gerd@gnu.org>
6659
6660 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6661 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6662 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6663 Fpixmap_spec_p and Qpixmap_spec_p.
6664 (load_face_colors, check_lface_attrs,
6665 merge_face_vector_with_property,
6666 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6667 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6668 Fbitmap_spec_p.
6669
f5737ad2
GM
66701999-10-07 Gerd Moellmann <gerd@gnu.org>
6671
6672 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6673 MODE_LINE_FACE_ID.
6674
6675 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6676 (struct x_resources) [USE_X_TOOLKIT]: New.
6677 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6678 [USE_MOTIF]: New.
6679 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6680 [USE_LUCID]: New.
6681 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6682 (Qmenu): New.
6683 (syms_of_xfaces): Initialize Qmenu.
6684 (realize_basic_faces): Realize face `menu'.
6685 (resolve_face_name): New.
6686 (lface_from_face_name): Use it.
6687 (Finternal_set_lisp_face_attribute): Ditto.
6688 (Fpixmap_spec_p): Rewritten. Extend doc string.
6689
6690 * xmenu.c (set_frame_menubar, xmenu_show): Call
6691 x_set_menu_resources_from_menu_face.
6692
6693 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6694 (toplevel): Include X11/Intrinsic.h.
6695
6a1aa823
DL
66961999-10-03 Ken'ichi Handa <handa@gnu.org>
6697
6698 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6699 correctly.
6700
26901792
DL
67011999-09-30 Kenichi Handa <handa@etl.go.jp>
6702
6703 * category.c (modify_lower_category_set): Set default value of
6704 TABLE correctly.
6705
6706 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6707 size correctly.
6708
67091999-09-29 Gerd Moellmann <gerd@gnu.org>
6710
6711 * editfns.c (Fpropertize): Renamed from Fproperties.
6712
67131999-09-29 Gerd Moellmann <gerd@gnu.org>
6714
6715 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6716 frame that hasn't been initialized yet.
6717
83c8f461 67181999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6719
6720 * keymap.c (Fsingle_key_description): Make tem big enough.
6721 (describe_buffer_bindings): Make buf big enough.
6722
83c8f461 67231999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6724
6725 * intervals.c (get_local_map): Use indirect_function,
6726 not Findirect_function.
6727
26901792
DL
67281999-09-27 Dave Love <fx@gnu.org>
6729
6730 * cm.h: Remove unneeded declaration of ospeed.
6731
67321999-09-26 Gerd Moellmann <gerd@gnu.org>
6733
6734 * lisp.h (toplevel): Add prototype for
6735 next_single_char_property_change.
6736
6737 * textprop.c (next_single_char_property_change): New.
6738
6739 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6740 next_single_char_property_change.
6741
67421999-09-25 Gerd Moellmann <gerd@gnu.org>
6743
6744 * editfns.c (Fproperties): New.
6745 (syms_of_editfns): Defsubr it.
6746
6747 * xfns.c (lookup_image): Set image's timestamp because it's
6748 used when we look it up.
6749
67501999-09-23 Gerd Moellmann <gerd@gnu.org>
6751
6752 * window.c (enlarge_window): Add window parameter instead of using
6753 selected_window.
6754 (Fdisplay_buffer): Call it with window parameter instead of
6755 setting selected_window.
6756 (Fenlarge_window, Fshrink_window): Ditto.
6757 (shrink_mini_window): If there is no recorded height and position
6758 info, resize mini-window to height 1.
6759
6760 * xfns.c (image_error): Use add_to_log.
6761
6762 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6763 (load_face_font_or_fontset, load_color,
6764 merge_face_vector_with_property): Ditto.
6765
6766 * dispextern.h: Add prototype for add_to_log.
6767
6768 * xfaces.c (add_to_log): Move to xdisp.c.
6769
6770 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6771 parameter.
6772
67731999-09-23 Gerd Moellmann <gerd@gnu.org>
6774
6775 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6776 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6777
6778 * xdisp.c (resize_mini_window): Use grow_mini_window and
6779 shrink_mini_window.
6780
6781 * window.c (window_min_size): Add parameter ignore_fixed_p.
6782 (change_window_height): Call window_min_size with new parameter.
6783 (shrink_window_lowest_first, save_restore_orig_size,
6784 grow_mini_window, shrink_mini_window): New.
6785 (make_window, replace_window): Initialize orig_top and
6786 orig_height.
6787 (enlarge_window): Renamed from change_window_height. Make it
6788 static.
6789 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6790 enlarge_window instead of change_window_height.
6791
6792 * window.h (struct window): New members orig_top, orig_height.
6793 (toplevel): Add prototypes for grow_mini_window and
6794 shrink_mini_window. Remove prototype for change_window_height.
6795
67961999-09-21 Eli Zaretskii <eliz@gnu.org>
6797
6798 * frame.c (frame_name_fnn_p): Fix previous change.
6799
68001999-09-20 Gerd Moellmann <gerd@gnu.org>
6801
6802 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6803
6804 * dispnew.c (direct_output_for_insert): Cast arguments to
6805 safe_bcopy to char *.
6806
6807 * lread.c (readchar): Remove unused variables.
6808 (read_filtered_event, read1, Fmapatoms): Ditto.
6809 (toplevel): Include intervals.h.
6810
6811 * eval.c (Fsignal): Remove unused variables.
6812 (Fcommandp, do_autoload): Ditto.
6813
6814 * lisp.h: Add prototype for safe_bcopy, fatal.
6815
6816 * editfns.c (init_editfns): Remove unused variables.
6817 (Fgoto_char, Fchar_after, Fformat): Ditto.
6818 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6819
6820 * data.c (find_symbol_value): Remove unused variables.
6821 (Faref, Fstring_to_number): Ditto.
6822 (toplevel): Include stdio.h.
6823 (Fnumber_to_string): Cast XINT to long for %ld.
6824
6825 * casefiddle.c (casify_object): Remove unused variables.
6826 (casify_region): Ditto.
6827
427ec082 6828 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6829 conditinally compiled section in #ifdef.
6830 (toplevel): Include stdio.h.
6831
6832 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6833 keys_of_keymap, syms_of_keymap): Remove unused variables.
6834
68351999-09-20 Gerd Moellmann <gerd@gnu.org>
6836
6837 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6838 whose corresponding window rows have been disabled in
6839 try_window_id.
6840
68411999-09-20 Gerd Moellmann <gerd@gnu.org>
6842
6843 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6844 that window start is out of range.
6845 (handle_display_prop, handle_single_display_prop): Replace
6846 marginal area specifications like `left-margin' with `(margin
6847 left-margin)'.
6848 (Qmargin): New.
6849 (syms_of_xdisp): Initialize Qmargin.
6850
68511999-09-19 Gerd Moellmann <gerd@gnu.org>
6852
6853 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6854 describe_syntax, skip_chars): Remove unused variables.
6855 (back_comment, forw_comment): Add braces to if-statement with
6856 if-else as dependent statement.
6857
6858 * process.c (list_processes_1): Remove unused variables.
6859 (Fopen_network_stream, create_process): Add parentheses to
6860 conditional expressions.
6861 (create_process): Put declaration of sigchld in #if 0.
6862 (Fopen_network_stream): Removed unused variables.
6863 (Fopen_network_stream, wait_reading_process_input,
6864 wait_reading_process_input, send_process, send_process): Ditto.
6865 (toplevel): Add prototypes for set_waiting_for_input and
6866 keyboard_bit_set.
6867
6868 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6869
6870 * textprop.c (Fset_text_properties): Remove unused variables.
6871 (text_property_list, verify_interval_modification,
6872 interval_has_all_properties): Ditto.
6873
6874 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6875 (Fcall_process): Remove unused variable.
6876
6877 * keyboard.c (Frecursive_edit): Remove unused variable.
6878 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6879 timer_check, make_lispy_event, menu_bar_items,
6880 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6881 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6882 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6883 read_key_sequence): Ditto. Fread_key_sequence,
6884 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6885 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6886 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6887 (Fexecute_extended_command): Cast XINT to long for %ld.
6888 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6889 (toplevel): Include sys/types.h.
6890
6891 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6892 (toplevel): Add prototypes for stuff_char, and
6893 code_convert_string_norecord.
6894
68951999-09-19 Gerd Moellmann <gerd@gnu.org>
6896
6897 * buffer.h: Add prototype for r_re_alloc.
6898
6899 * insdel.c (copy_text): Removed unused variables.
6900 (count_combining_after, count_combining_after, insert_1_both,
6901 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6902 (adjust_after_replace, replace_range): Add parentheses to logical
6903 expressions. Remove unused variables.
6904 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6905 expression.
6906
6907 * alloc.c (Fgarbage_collect): Remove unused variable.
6908 (compact_strings): Add parentheses around assignments in
6909 conditional context.
6910 (toplevel): Put declaration of unused function clear_marks
6911 in #if 0 like its definition.
6912
6913 * lisp.h: Add prototype for shrink_regexp_cache,
6914 sweep_weak_hash_tables.
6915
69161999-09-19 Dave Love <fx@gnu.org>
6917
6918 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6919
6920 * doc.c (read_bytecode_char): Declare arg.
6921
6922 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6923 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6924
69251999-09-18 Richard Stallman <rms@gnu.org>
6926
6927 * xdisp.c (echo_area_display): Turn off code that returned
6928 without doing anything when using a terminal frame.
6929
83c8f461 69301999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6931
6932 * unexelf.c (unexec): Don't get confused by a short section
6933 just before the bss section.
6934
26901792
DL
69351999-09-16 Gerd Moellmann <gerd@gnu.org>
6936
6937 * emacs.c (main): Remove unused variables.
6938 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6939
6940 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6941 init_fileio_once, syms_of_sound, init_xfns, init_fns
6942 init_sound, check_message_stack.
6943
6944 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6945
6946 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6947 ambiguous else warning.
6948 (split_interval_left): Remove unused variables.
6949 (previous_interval, adjust_intervals_for_deletion,
6950 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6951 (icount, idepth, zero_length): Move into #if 0 section below
6952 original position where these are used.
6953
6954 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6955
6956 * buffer.c (Fkill_buffer): Remove unused variables.
6957 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6958 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6959 init_buffer_once, (syms_of_buffer): Ditto.
6960
6961 * xrdb.c (get_fallback): Remove unused variable.
6962 (x_load_resources): Ditto. Put local variable used for Motif only
6963 in #ifdef USE_MOTIF.
6964
69651999-09-16 Gerd Moellmann <gerd@gnu.org>
6966
6967 * minibuf.c (read_minibuf): Remove unused variables.
6968 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6969 (do_completion): Move assignment out of conditional context.
6970 (Fdisplay_completion_list): Add parentheses to conditional expression.
6971
6972 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6973
6974 * lisp.h: Add prototype for no_switch_window.
6975
6976 * window.c (Fset_window_buffer): Remove unused variables.
6977 (Fset_window_margins): Ditto.
6978
6979 * xdisp.c (resize_mini_window): Temporarily set the selected
6980 window's or Vminibuf_scroll_window's height to "fixed" around
6981 the call the change_window_height.
6982
6983 * window.c (window_fixed_size_p): Check window's height_fixed_p
6984 flag.
6985
6986 * window.h (struct window): New member height_fixed_p.
6987
6988 * dispnew.c (direct_output_forward_char): Don't use this method
6989 if showing a message or a message was just cleared because we
6990 might need to resize the mini-window.
6991
69921999-09-16 Gerd Moellmann <gerd@gnu.org>
6993
6994 * frame.c (Fdelete_frame): Correct local variable pointing to
6995 selected frame after selecting new frame.
6996
69971999-09-15 Richard Stallman <rms@gnu.org>
6998
6999 * puresize.h (BASE_PURESIZE): Increase to 525000.
7000
7001 * filelock.c (Vtemporary_file_directory): New variable.
7002 (syms_of_filelock): Set up Lisp variable.
7003
70041999-09-15 Gerd Moellmann <gerd@gnu.org>
7005
7006 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
7007 (encode_terminal_code): Remove unused variables.
7008 (turn_off_face): Ditto.
7009 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
7010
7011 * dispnew.c (update_frame_line): If writing whole desired line,
7012 don't clear to end of line if already at the end.
7013
70141999-09-15 Gerd Moellmann <gerd@gnu.org>
7015
7016 * xdisp.c (resize_mini_window): Don't report changed window
7017 height if it actually hasn't changed.
7018
427ec082 7019 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
7020 unused variables.
7021 (mark_shell_size_user_specified): Put in #if 0 because not used.
7022 (create_frame_gcs): Put in #if 0 because currently unused.
7023 (first_frame_p): Ditto.
7024
7025 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
7026 single_submenu, update_frame_menubar, set_frame_menubar,
7027 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
7028 variables.
7029
7030 * print.c (PRINTFULLP): Removed because it is no longer used and
7031 is misleading.
7032 (Ferror_message_string): Remove unused variables.
7033 (print_object): Cast argument of sprintf to long for `%ld'
7034 specifier. Remove unused variable.
7035
70361999-09-14 Gerd Moellmann <gerd@gnu.org>
7037
7038 * sound.c (Fplay_sound): Remove usused variables.
7039 (be2hs): Put in #if 0 because it's currently not used.
7040
70411999-09-14 Ken Raeburn <raeburn@gnu.org>
7042
7043 * print.c (Ferror_message_string, print_error_message,
7044 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
7045 member access.
7046
70471999-09-14 Gerd Moellmann <gerd@gnu.org>
7048
7049 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
7050
7051 * frame.c (Fnext_frame): Remove unused variable(s).
7052 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
7053 (store_frame_param): Add parentheses to conditional expression.
7054 (Fmodify_frame_parameters): Remove unused variables.
7055 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
7056 Ditto.
7057
7058 * xfns.c (x_set_background_color): Remove unused variable(s).
7059 (x_set_border_pixel): Ditto.
7060 (x_set_menu_bar_lines): Put local variable used only for
7061 non-toolkit case in #ifdef/#endif.
7062 (x_figure_window_size): Remove unused variable(s).
427ec082 7063 (x_figure_window_size, x_window, lookup_image,
26901792
DL
7064 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
7065 png_load, jpeg_load, gif_load, x_create_tip_frame,
7066 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
7067
7068 * xterm.c (x_scroll_bar_handle_click): Compile only if
7069 not USE_TOOLKIT_SCROLL_BARS.
7070 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
7071
7072 * dispextern.h: Add prototypes for gamma_correct and
7073 x_kill_gs_process.
7074
7075 * xterm.c (x_produce_glyphs): Remove unused variable(s).
7076 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
7077 x_set_toolkit_scroll_bar_thumb): Ditto.
7078 (x_scroll_bar_create): Move local variable to the
7079 conditionally compiled section of code where it is used.
7080 (x_scroll_bar_create): Remove unused variable(s).
7081 (x_scroll_bar_remove, XTread_socket): Ditto.
7082 (XTread_socket) <ConfigureNotify>: Move variables used for
7083 non-toolkit case into conditionally compiled section of code.
7084
7085 * window.h (freeze_window_starts): Fix typo in prototype.
7086
7087 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
7088 variable(s).
7089
7090 * lisp.h: Add prototype for debug_print.
7091
7092 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
7093 to use do-while.
7094
7095 * fns.c (SXHASH_COMBINE): Add missing parentheses.
7096 (Fchar_table_range, Fset_char_table_default, mapcar1,
7097 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
7098
7099 * lisp.h: Add prototype for getloadavg.
7100
71011999-09-14 Andreas Schwab <schwab@gnu.org>
7102
7103 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
7104
7105 * lisp.h: Declare close_file_unwind.
7106
71071999-09-14 Richard Stallman <rms@gnu.org>
7108
7109 * filelock.c (get_boot_time): Make the temp name in the proper dir.
7110
71111999-09-13 Gerd Moellmann <gerd@gnu.org>
7112
7113 * xdisp.c (redisplay_window): Make sure start_at_line_beg
7114 is always set correctly.
7115
71161999-09-13 Dave Love <fx@gnu.org>
7117
7118 * xdisp.c (move_it_in_display_line_to): Make type consistent with
7119 declaration.
7120
71211999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7122
7123 * xdisp.c (QCfile): Move here from xfns.c.
7124 (syms_of_xdisp): Initialize it.
7125 (message2_nolog): Change for Lisp_Object selected_frame.
7126 (message3_nolog, message_with_string, message,
7127 setup_echo_area_for_printing, truncate_echo_area,
7128 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7129
71301999-09-13 Dave Love <fx@gnu.org>
7131
7132 * xterm.c: Don't continue #define args for benefit of old cc.
7133 (xt_action_hook): Indent #error for benefit of K&R cc.
7134
71351999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7136
7137 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7138 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7139 (XRINGBELL): Removed.
7140
71411999-09-13 Dave Love <fx@gnu.org>
7142
7143 * xfns.c (x_put_x_image): Make type consistent with declaration.
7144
7145 * fns.c (Fmake_hash_table): Fix string continuation.
7146
71471999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
7148
7149 * xfns.c (QCfile): Moved to xdisp.c.
7150 (syms_of_xfns): Don't initialize QCfile.
7151 (check_x_frame): Change for Lisp_Object selected_frame.
7152 (check_x_display_info, x_get_resource_string): Ditto.
7153
71541999-09-13 Gerd Moellmann <gerd@gnu.org>
7155
7156 * minibuf.c (choose_minibuf_frame): Don't try to set the
7157 mini-buffer window's buffer, if the buffer is invalid.
7158
7159 * xfns.c (QCfile): Moved to xdisp.c.
7160 (syms_of_xfns): Don't initialize QCfile.
7161
7162 * xdisp.c (QCfile): Move here from xfns.c.
7163 (syms_of_xdisp): Initialize it.
7164
7165 * lisp.h (selected_frame): Add external declaration.
7166
7167 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7168 (Fx_store_cut_buffer_internal): Ditto.
7169 (Fx_rotate_cut_buffers_internal): Ditto.
7170
7171 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7172 selected_frame.
7173 (Finternal_set_lisp_face_attribute): Ditto.
7174 (Finternal_get_lisp_face_attribute): Ditto.
7175 (Finternal_lisp_face_empty_p): Ditto.
7176 (Fdump_face): Ditto.
7177
7178 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7179 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7180 set_terminal_window, set_scroll_region, reassert_line_highlight,
7181 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7182 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7183 encode_terminal_code, write_glyphs, term_init): Ditto.
7184
7185 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7186 (kbd_input_ast, read_input_waiting): Ditto.
7187
7188 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7189 selected_frame.
7190 (read_minibuf): Ditto.
7191
7192 * keyboard.c (command_loop_1): Change for Lisp_Object
7193 selected_frame.
7194 (cmd_error_internal, command_loop_1, read_char,
7195 kbd_buffer_get_event, read_avail_input,
7196 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7197 interrupt_signal, quit_throw_to_read_char): Ditto.
7198
7199 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7200 (Ffontset_info): DItto.
7201
7202 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7203
7204 * dispnew.c (selected_frame): Make it a Lisp_Object.
7205 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7206 (direct_output_for_insert, direct_output_forward_char,
7207 init_display): Ditto.
7208
7209 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7210 selected_frame.
7211 (set_internal): Ditto.
7212
7213 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7214 (record_buffer): Ditto.
7215
7216 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7217 (do_switch_frame): Change for Lisp_Object selected_frame.
7218 (Fselected_frame): Ditto.
7219 (Fframe_first_window): Use SELECTED_FRAME.
7220 (Fframe_root_window): Change for Lisp_Object selected_frame.
7221 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7222 Fprevious_frame, other_visible_frames, Fdelete_frame,
7223 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7224 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7225 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7226 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7227 Fset_frame_height, Fset_frame_width): Ditto.
7228
72291999-09-13 Gerd Moellmann <gerd@gnu.org>
7230
7231 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7232 (message3_nolog, message_with_string, message,
7233 setup_echo_area_for_printing, truncate_echo_area,
7234 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7235
7236 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7237 (Fx_popup_dialog): Ditto.
7238
7239 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7240 (check_x_display_info, x_get_resource_string): Ditto.
7241
7242 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7243 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7244 (XRINGBELL): Removed.
7245
7246 * window.c (Fminibuffer_window): Change for Lisp_Object
7247 selected_frame.
7248 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7249 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7250 Fcurrent_window_configuration, init_window_once): Ditto.
7251
7252 * frame.h (SELECTED_FRAME): New.
7253
72541999-09-12 Ken Raeburn <raeburn@gnu.org>
7255
7256 * category.c (word_boundary_p): Use XCAR and XCDR.
7257 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7258 Fregister_code_conversion_map): Likewise.
7259 * coding.c (setup_coding_system, detect_coding_system,
7260 Ffind_operation_coding_system, Fset_coding_priority_internal):
7261 Likewise.
7262 * doc.c (get_doc_string, Fdocumentation,
7263 store_function_docstring): Likewise.
7264 * editfns.c (save_restriction_restore): Likewise.
7265 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7266 skip_debugger, find_handler_clause, Fautoload, Fapply,
7267 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7268 Likewise.
7269 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7270 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7271 Fread_file_name): Likewise.
7272 * filelock.c (unlock_all_files): Likewise.
7273 * insdel.c (Fcombine_after_change_execute): Likewise.
7274 * intervals.c (adjust_intervals_for_insertion): Likewise.
7275 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7276 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7277 store_in_keymap, Fcopy_keymap, define_as_prefix,
7278 current_minor_maps, Faccessible_keymaps,
7279 accessible_keymaps_char_table, Fkey_description,
7280 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7281 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7282 describe_map): Likewise.
7283 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7284 read_list, init_lread): Likewise.
7285 * search.c (Fmatch_data): Likewise.
7286 * sunfns.c (Fsun_menu_internal): Likewise.
7287 * syntax.c (describe_syntax): Likewise.
7288 * undo.c (record_insert, record_delete, Fundo_boundary,
7289 truncate_undo_list): Likewise.
7290 * vmsproc.c (child_sig): Likewise.
7291
7292 * editfns.c (Fformat): Use XFLOAT_DATA.
7293
72941999-09-12 Gerd Moellmann <gerd@gnu.org>
7295
7296 * keyboard.c (command_loop_1): Resize mini-window to the
7297 exact size of a message displayed, if any.
7298
7299 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7300 to exact size if exact_p is non-zero.
7301 (display_echo_area_1): Call resize_mini_window with
7302 new parameter.
7303 (redisplay_internal): Ditto.
7304 (resize_echo_area_axactly): New.
7305
7306 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7307 new parameter.
7308
7309 * dispextern.h: Change prototype of resize_mini_window.
7310 Add prototype for resize_echo_area_axactly.
7311
7312 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7313 (syms_of_xfaces): Defsubr accordingly.
7314
7315 * xdisp.c (hscroll_window_tree): Choose cursor row from
7316 desired or current matrix.
7317 (redisplay_internal): Hscroll before updating.
7318
73191999-09-12 Gerd Moellmann <gerd@gnu.org>
7320
7321 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7322 of minibuffer_prompt_length.
7323
7324 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7325 of minibuffer_prompt_length.
7326 (read_minibuf_unwind): Ditto.
7327 (Fminibuffer_complete_and_exit): Ditto.
7328 (Fminibuffer_complete_word): Ditto.
7329 (Fminibuffer_prompt_end): Ditto.
7330
7331 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7332 of minibuffer_prompt_length.
7333 (Fline_beginning_position): Ditto.
7334
7335 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7336 of minibuffer_prompt_length.
7337 (Fmake_indirect_buffer): Ditto.
7338 (Fkill_buffer): Ditto.
7339 (Ferase_buffer): Ditto.
7340
7341 * buffer.h (prompt_end_charpos): Replaces
7342 minibuffer_prompt_length.
7343
427ec082 7344 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7345 without the prompt.
7346
7347 * editfns.c (make_buffer_string_both): Take out the code
7348 to handle mini-buffer prompts.
7349 (Fbuffer_string): Handle the prompt here, instead.
7350
7351 * xfaces.c (lface_from_face_name): Resolve face aliases.
7352 (Qmode_line): Replaces Qmodeline.
7353 (realize_basic_faces): Use Qmode_line.
7354 (syms_of_xfaces): Initialize Qmode_line.
7355
73561999-09-12 Gerd Moellmann <gerd@gnu.org>
7357
7358 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7359 current column after inserting prompt.
7360 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7361
7362 * xfaces.c (Qframe_update_face_colors): New.
7363 (syms_of_xfaces): Initialize call.
7364 (update_face_from_frame_parameter): Call that function when
7365 the frame's background changes.
7366
73671999-09-12 Richard Stallman <rms@gnu.org>
7368
7369 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7370
73711999-09-12 Ken Raeburn <raeburn@gnu.org>
7372
7373 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7374 mark_object, mark_buffer): Use XCAR and XCDR.
7375 * bytecode.c (Fbyte_code): Likewise.
7376 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7377 Likewise.
7378 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7379 getenv_internal): Likewise.
7380 * dired.c (file_name_completion): Likewise.
7381 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7382 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7383 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7384 * indent.c (Fcompute_motion): Likewise.
7385 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7386 list_processes_1, Fstart_process, Fopen_network_stream,
7387 wait_reading_process_input, read_process_output_call,
7388 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7389 status_notify, wait_reading_process_input): Likewise.
7390 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7391 extend_property_ranges): Likewise.
7392 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7393 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7394 x_report_frame_params, x_set_cursor_type, x_icon_type,
7395 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7396 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7397 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7398 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7399 x_display_info_for_name, Fx_display_list): Likewise.
7400 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7401 Fx_popup_menu, Fx_popup_dialog): Likewise.
7402 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7403 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7404 w32_term_init, x_delete_display): Likewise.
7405 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7406 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7407 x_top_window_to_frame, x_set_frame_parameters,
7408 x_report_frame_params, x_set_cursor_type, x_icon_type,
7409 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7410 Fx_display_list, x_create_tip_frame): Likewise.
7411 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7412 Fx_popup_menu, Fx_popup_dialog): Likewise.
7413 * xselect.c (x_own_selection, x_get_local_selection,
7414 x_handle_selection_request, x_handle_selection_clear,
7415 x_clear_frame_selections, wait_for_property_change_unwind,
7416 wait_for_property_change, x_handle_property_notify,
7417 copy_multiple_data, x_get_foreign_selection,
7418 lisp_data_to_selection_data, clean_local_selection_data,
7419 x_handle_selection_notify, Fx_get_selection_internal,
7420 x_disown_buffer_selections): Likewise.
7421 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7422 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7423 Likewise.
7424
7425 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7426 XFLOAT_DATA.
7427 * bytecode.c (Fbyte_code): Likewise.
7428 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7429 fmod_float): Likewise.
7430
74311999-09-11 Richard Stallman <rms@gnu.org>
7432
7433 * xdisp.c (run_window_scroll_functions): If hook functions switch
7434 buffers, switch back after.
7435
74361999-09-11 Ken Raeburn <raeburn@gnu.org>
7437
7438 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7439 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7440 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7441 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7442 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7443 XCDR.
7444 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7445 XCDR.
7446
74471999-09-10 Richard Stallman <rms@gnu.org>
7448
7449 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7450 not RevertToPointerRoot.
7451 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7452 Fix the code to clear around the scroll bar.
7453
74541999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7455
7456 * print.c: Support print-circle and related features.
7457 (Vprint_gensym_alist): Removed.
7458 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7459 Vprint_number_table): New variables.
7460 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7461 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7462 (print, print_preprocess, print_preprocess_string, print_object):
7463 New/modified functions with print-circle feature. Use
7464 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7465 (syms_of_print): Defined new Lisp variables `print-circle',
7466 `print-continuous-numbering', `print-number-table'.
7467
74681999-09-10 Gerd Moellmann <gerd@gnu.org>
7469
7470 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7471 as background color specification instead of an integer.
7472 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7473 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7474 (clear_image_cache, syms_of_xfns): Use it.
7475 (Qpostscript): Replaces Qghostscript.
7476 (gs_type): Use it.
7477 (gs_image_p): Ditto.
7478 (syms_of_xfns): Initialize Qpostscript.
7479
74801999-09-10 Richard Stallman <rms@gnu.org>
7481
7482 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7483
74841999-09-09 Richard Stallman <rms@gnu.org>
7485
7486 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7487
7488 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7489
74901999-09-09 Gerd Moellmann <gerd@gnu.org>
7491
7492 * fns.c (Fmakehash): Accept just one optional argument TEST.
7493
7494 * xfns.c (QCindex): New.
7495 (syms_of_xfns): Initialize QCindex.
7496 (gif_load): Use it instead of `:image'.
7497
74981999-09-09 Richard Stallman <rms@gnu.org>
7499
7500 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7501 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7502
75031999-09-08 Gerd Moellmann <gerd@gnu.org>
7504
7505 * xdisp.c (Qwhen): Replaces QCwhen.
7506 (syms_of_xdisp): Initialized it instead of QCwhen.
7507 (handle_single_display_prop): Use it instead of QCwhen.
7508
75091999-09-08 Ken'ichi Handa <handa@gnu.org>
7510
7511 * charset.c (translate_char): Reset MSBs of arguments of
7512 MAKE_CHAR.
7513 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7514
75151999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7516
7517 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7518
7519 * fns.c (Fbase64_decode_region): Don't place point outside of the
7520 current accessible portion.
7521
75221999-09-07 Richard Stallman <rms@gnu.org>
7523
7524 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7525 parent is an ancestor of SUBMAP; otherwise, add it as the
7526 ultimate ancestor.
7527
75281999-09-07 Gerd Moellmann <gerd@gnu.org>
7529
7530 * xdisp.c (handle_single_display_prop): Change conditional
7531 display property to `:when FORM . VALUE'.
7532
75331999-09-07 Richard Stallman <rms@gnu.org>
7534
7535 * fileio.c (Fwrite_region): Doc fix.
7536
75371999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7538
7539 * fileio.c (Qexcl): New variable.
7540 (report_file_error): Handle EEXIST specially.
7541 (Fwrite_region): Special handling for CONFIRM = `excl'.
7542 (syms_of_fileio): Initialize Qexcl.
7543
75441999-09-07 Gerd Moellmann <gerd@gnu.org>
7545
7546 * xfns.c (x_set_foreground_color): Call
7547 update_face_from_frame_parameter.
7548 (x_set_background_color): Ditto.
7549 (x_set_mouse_color): Ditto.
7550 (x_set_cursor_color): Ditto.
7551 (x_set_border_color): Ditto.
7552 (x_set_scroll_bar_foreground): Ditto.
7553 (x_set_scroll_bar_background): Ditto.
7554
7555 * xfaces.c (recompute_basic_faces): Clear face cache.
7556 (Finternal_set_lisp_face_attribute): Modify frame parameters
7557 if attributes of certain faces are changed.
7558 (update_face_from_frame_parameter): New.
7559
7560 * xfaces.c (realize_basic_faces): Realize new basic faces.
7561
7562 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7563 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7564
7565 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7566 (syms_of_xfaces): Intialize new symbols.
7567
7568 * fns.c (Fmakehash): Take one argument, test, make all the
7569 rest keyword arguments.
7570
7571 * window.c (Fset_window_margins): Make window the first argument.
7572 (set_window_buffer): Call Fset_window_margins with window as first
7573 argument.
7574
75751999-09-07 Gerd Moellmann <gerd@gnu.org>
7576
7577 * xfaces.c (Qfringe): Replaces Qmargin.
7578
75791999-09-07 Kenichi Handa <handa@etl.go.jp>
7580
7581 * charset.h: Lots of comments fixed.
7582 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7583 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7584
7585 * charset.c : Lots of comments fixed.
7586 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7587 (CHAR_COMPONENTS_VALID_P): Name changed from
7588 CHAR_COMPONENT_VALID_P. Caller changed.
7589
75901999-09-06 Richard Stallman <rms@gnu.org>
7591
7592 * insdel.c (syms_of_insdel): Define Lisp variable
7593 inhibit-modification-hooks.
7594
75951999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7596
7597 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7598 unexaix.c.
7599
7600 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7601
76021999-09-06 Dave Love <fx@gnu.org>
7603
7604 * unexaix.c: New version incorporating Michael Sperber's changes
7605 from XEmacs. Should solve problems on AIX 4.3.
7606
7607 * lread.c (Vbyte_boolean_vars): New variable.
7608 (defvar_bool, syms_of_lread): Use it.
7609
76101999-09-05 Richard Stallman <rms@gnu.org>
7611
7612 * minibuf.c (read_minibuf): Put all three properties on the
7613 same range, the whole prompt.
7614
76151999-09-05 Gerd Moellmann <gerd@gnu.org>
7616
7617 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7618 (Fplay_sound, syms_of_sound): Use it.
7619 (parse_sound): Allow float volume values in the range [0, 1].
7620 (Fplay_sound): Ditto.
7621
7622 * window.c (Fset_window_vscroll): Make window the first argument,
7623 amount to scroll the second. Take non-negative vscroll as
7624 argument.
7625 (Fwindow_vscroll): Return non-negative vscroll.
7626
7627 * xfns.c (Fx_show_tip): Improve documentation.
7628
76291999-09-05 Gerd Moellmann <gerd@gnu.org>
7630
7631 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7632 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7633 `top-line' and `top_line' to `header-line' and `header_line'.
7634 Likewise for similar spellings.
7635
76361999-09-05 Gerd Moellmann <gerd@gnu.org>
7637
7638 * xdisp.c (row_containing_pos): New.
7639 (try_window_id): Use it.
7640
7641 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7642 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7643 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7644 Likewise for upper-case etc.
7645
76461999-09-05 Gerd Moellmann <gerd@gnu.org>
7647
7648 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7649 Fix reference to renamed variable.
7650
76511999-09-04 Gerd Moellmann <gerd@gnu.org>
7652
7653 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7654 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7655 Qfixed_window_size.
7656 (syms_of_window): Ditto.
7657
7658 * fns.c (Fmakehash): Exchange optional test and size arguments.
7659
76601999-09-03 Gerd Moellmann <gerd@gnu.org>
7661
7662 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7663 under newly created scroll bar.
7664 (expose_window): If window is not yet fully initialized, do
7665 nothing. This can happen when toolkit scroll bars are used and a
7666 window is split. Reconfiguring the scroll bars will generate an
7667 expose for a newly created window.
7668
7669 * frame.h (struct frame): New member `gamma'.
7670
7671 * xfns.c: Include math.h. Add extern declaration for atof in case
7672 we don't see one.
7673 (Qscreen_gamma): New.
7674 (struct x_frame_parm_table): Add prototypes, add
7675 x_set_screen_gamma.
7676 (gamma_correct): New function.
7677 (defined_color): Call it.
7678 (x_set_screen_gamma): New.
7679 (x_set_title): Add parameter old_value.
7680 (RES_TYPE_FLOAT): New.
7681 (x_get_arg): Handle RES_TYPE_FLOAT.
7682 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7683 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7684 new prototype.
7685 (lookup_rgb_color): Ditto.
7686 (syms_of_xfns): Initialize Qscreen_gamma.
7687
7688 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7689 New. Allocate color for lwlib widgets.
7690 (x_alloc_nearest_color): Change parameter list include the
7691 frame on which to allocate colors. Gamma-correct colors.
7692 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7693 parameter list.
7694
7695 * xterm.h: Change protorype of x_alloc_nearest_color.
7696
76971999-09-03 Richard Stallman <rms@gnu.org>
7698
7699 * callproc.c: Delete the system-independent include of stdlib.h
7700 (leaving only the one in the WINDOWSNT conditional).
7701
77021999-09-03 Andrew Choi <choi@cs.hku.hk>
7703
7704 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7705 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7706
26901792
DL
7707 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7708 Window types and macros.
7709
7710 * frame.h: Do nothing if included a second time.
7711 (enum output_method): Add mac_output frame type.
7712 (union output_data): Add new alternative `mac'.
7713 (FRAME_MAC_P): New macro.
427ec082 7714
26901792
DL
7715 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7716 (syms_of_frame_1): Initialize Qmac.
7717 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7718 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7719 (Fmodify_frame_parameters) [macintosh]: Call
7720 mac_set_frame_parameter in macterm.c.
427ec082 7721
26901792
DL
7722 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7723 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7724
26901792
DL
7725 * make-docfiles.c: Correctly handle input files with Mac-style
7726 eol's.
427ec082 7727
26901792 7728 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7729
26901792
DL
7730 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7731 file of an X Window environment.
427ec082 7732
26901792
DL
7733 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7734 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7735
26901792
DL
7736 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7737 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7738 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7739 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7740 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7741 New functions, replacing POSIX features.
427ec082 7742
26901792
DL
7743 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7744 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7745 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7746
7747 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7748 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7749 (myPasswdDir, TempDirName, sys_siglist): New variables.
7750
7751 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7752 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7753 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7754 Define empty stubs so Emacs will link.
7755
77561999-09-03 Gerd Moellmann <gerd@gnu.org>
7757
7758 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7759
7760 * window.h: New member frozen_window_start_p.
7761
7762 * window.c (foreach_window, foreach_window_1): New.
7763 (freeze_window_start, freeze_window_starts): New.
7764 (make_window): Initialize frozen_window_start_p.
7765 (replace_window): Ditto.
7766 (Fset_window_point): Remove references to deleted variables.
7767 (Fset_window_start): Ditto.
7768
7769 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7770 resize_mini_initial_height): Removed.
7771 (syms_of_xdisp): Remove references to these variables.
7772 (resize_mini_window): Don't save window configuration, freeze
7773 window starts instead. Enlarge window until displaying an empty
7774 buffer, then shrink it. Make the function externally visible.
7775 (redisplay_window): Treat frozen window start like forced start,
7776 but accept point outside of the window.
7777
7778 * dispextern.h: Add function prototype for resize_mini_window.
7779
7780 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7781 reaching minibuf_level 0.
7782
7783 * lisp.h: Remove extern declarations for variables deleted from
7784 xdisp.c.
7785
7786 * dispnew.c (adjust_frame_glyphs): Remove reference to
7787 Vresize_mini_config.
7788
77891999-09-03 Gerd Moellmann <gerd@gnu.org>
7790
7791 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7792 to USE_TOOLKIT_SCROLL_BARS.
7793
7794 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7795 here.
7796 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7797 under newly created scroll bar. Put toolkit scroll bars in the
7798 middle of the area reserved for the scroll bar.
7799
78001999-09-03 Kenichi Handa <handa@etl.go.jp>
7801
7802 The following changes are for the new handling of mulitbyte
7803 sequence. Now, except for a composite character, no multibyte
7804 character in string/buffer has trailing garbage bytes. For
7805 instance, the length of string "\201\300\300" is now 2, the first
7806 character is Latin-1 A-grave, the second is raw \300.
7807
7808 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7809 are negative.
7810 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7811 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7812 (PARSE_COMPOSITE_SEQ): New macro.
7813 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7814 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7815 (CHAR_PRINTABLE_P): New macro.
7816 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7817 (STRING_CHAR_AND_LENGTH): Likewise.
7818 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7819 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7820 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7821
7822 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7823 (SPLIT_CHARACTER_SEQ): New macro.
7824 (SPLIT_MULTIBYTE_SEQ): New macro.
7825 (CHAR_COMPONENT_VALID_P): New macro.
7826 (non_ascii_char_to_string): Generate a multibyte sequence as far
7827 as possible.
7828 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7829 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7830 (split_non_ascii_string): Likewise.
7831 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7832 (char_printable_p): New function.
7833 (translate_char): Check character by NATNUMP instead of INTEGERP.
7834 (unibyte_char_to_multibyte): Call char_valid_p instead of
7835 VALID_MULTIBYTE_CHAR_P.
7836 (Fmake_char_internal): Check the arguments more rigidly.
7837 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7838 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7839 (Fmultibyte_char_to_unibyte): Check the validity of character by
7840 CHAR_VALID_P.
7841 (chars_in_text): Call multibyte_chars_in_text.
7842 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7843 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7844 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7845
7846 * data.c (Faset): Adjust the way to check byte-combining
7847 possibility for the new handling of multibyte sequence.
7848
7849 * editfns.c (Fsubst_char_in_region): Likewise.
7850
7851 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7852 (string_char_to_byte): Likewise.
7853 (string_byte_to_char): Likewise.
7854
7855 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7856 macro STRING_CHAR_AND_LENGTH. Caller changed.
7857
7858 * insdel.c (count_combining_composition): New function.
7859 (count_combining_before): Adjust the way to check byte-combining
7860 possibility for the new handling of multibyte sequence. Call
7861 count_combining_composition for a composite character.
7862 (count_combining_after): Likewise.
7863
7864 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7865 (print): Likewise.
7866
7867 * dispextern.h (struct it): Change the size of the member
7868 `ctl_chars'.
7869
7870 * xdisp.c (get_next_display_element): Display incomplete multibyte
7871 sequence (e.g. \222\300) by octal form.
7872
78731999-09-02 Gerd Moellmann <gerd@gnu.org>
7874
7875 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7876
7877 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7878 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7879
78801999-09-02 Gerd Moellmann <gerd@gnu.org>
7881
7882 * buffer.c (set_buffer_internal): Never set
7883 windows_or_buffers_changed.
7884
7885 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7886 if we have displayed to the bottom of the window.
7887
7888 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7889 in both directions. Extend documentation.
7890
78911999-09-01 Gerd Moellmann <gerd@gnu.org>
7892
7893 * minibuf.c (read_minibuf): Flush display after setting cursor to
7894 column 0.
7895
78961999-08-31 Gerd Moellmann <gerd@gnu.org>
7897
7898 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7899 already defined. This avoids a warning from buffer.c.
7900
79011999-08-30 Gerd Moellmann <gerd@gnu.org>
7902
7903 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7904 of both margins.
7905 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7906 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7907 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7908
7909 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7910 once instead of twice.
7911 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7912
7913 * xterm.c: Remove unused bitmaps.
7914 (continued_bits, continuation_bits, overlay_bits): Change images.
7915 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7916 instead of FRAME_X_FLAGS_AREA_WIDTH.
7917 (x_after_update_window_line): Ditto.
7918 (x_draw_bitmap): Likewise.
7919 (x_draw_row_bitmaps): Likewise.
7920 (x_draw_glyph_string_box): Likewise.
7921 (x_draw_glyphs): Likewise.
7922 (x_scroll_run): Likewise.
7923 (expose_window_tree): Likewise.
7924 (note_mode_line_highlight): Likewise.
7925 (XTset_vertical_scroll_bar): Likewise.
7926 (x_clip_to_row): Likewise.
7927 (x_set_window_size): Likewise.
7928
7929 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7930 of 2 * that value.
7931
7932 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7933 2 * that value.
7934 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7935 FRAME_FLAGS_AREA_WIDTH.
7936
7937 * window.c (coordinates_in_window): Use
7938 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7939 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7940 instead of twice.
7941
427ec082 7942 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7943 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7944 (EmacsFrameSetCharSize): Ditto.
7945
7946 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7947 instead of FRAME_FLAGS_AREA_WIDTH.
7948
7949 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7950 FRAME_FLAGS_AREA_COLS once.
7951 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7952 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7953
79541999-08-30 Gerd Moellmann <gerd@gnu.org>
7955
7956 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7957 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7958
79591999-08-30 Gerd Moellmann <gerd@gnu.org>
7960
7961 * fns.c (QCweakness): Replaces QCweak.
7962 (Fmake_hash_table): Ditto.
7963 (Fmakehash): Ditto.
7964 (syms_of_fns): Ditto.
7965
79661999-08-29 Richard Stallman <rms@gnu.org>
7967
7968 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7969
7970 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7971
7972 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7973 Add support for nested comments.
7974
d7d0dac0
SM
7975 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7976 Consolidate the forward comment code into the new `forw_comment'.
7977 (forw_comment): New subroutine. Added support for nested comments.
7978 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7979 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7980
79811999-08-28 Ken Raeburn <raeburn@gnu.org>
7982
7983 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7984 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7985 defined, to help detect code that uses knowledge of the Lisp
7986 internals that it shouldn't have.
7987 (XFLOAT_DATA): New macro.
7988
79891999-08-25 Gerd Moellmann <gerd@gnu.org>
7990
7991 * syntax.c (Fforward_word): If in a mini-buffer and moving
7992 backwards, stop in front of the prompt to prevent accidentially
7993 moving into the read-only prompt.
7994
7995 * window.c (Frecenter): Clear frame if called with nil or no arg.
7996
7997 * xdisp.c (resize_mini_window): Don't resize if
7998 Vmax_mini_window_height is nil. Otherwise, use a default if
7999 Vmax_mini_window_height is not ot a number.
8000 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
8001
80021999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
8003
8004 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
8005 * m/iris4d.h: Use unexelf for IRIX 5.*.
8006 * m/iris5d.h: Use unexelf for IRIX 6.*.
8007 * unexsgi.c: Deleted.
8008
8009 * unexelf.c: Auto-detect .sbss section.
8010 (round_up): Make it static.
8011 (unexec): Declare alignment as Elf Word. Skip ``Program
8012 segment above .bss'' test on MIPS without .sbss.
8013 Copy sections .got and .sdata1 sections. Adjust offsets in
8014 sections .sdata, .lit4, .lit8, .got and .sdata1.
8015
80161999-08-25 Gerd Moellmann <gerd@gnu.org>
8017
8018 * xdisp.c (try_window_id): Remove typo.
8019
80201999-08-24 Gerd Moellmann <gerd@gnu.org>
8021
8022 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
8023 unchanged text at the bottom when computing the cursor position.
8024 (message3_nolog): Raise frame only if minibuffer_auto_raise is
8025 set.
8026
8027 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
8028
80291999-08-24 Gerd Moellmann <gerd@gnu.org>
8030
8031 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
8032 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
8033 (syms_of_xfaces): Ditto.
8034
8035 * window.c (Fset_window_point): Reset Vresize_mini_config.
8036 (Fset_window_start): Ditto.
8037 (set_window_buffer): Ditto.
8038
8039 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
8040
8041 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
8042 before calling try_window.
8043 (echo_area_display): If height has changed, update other windows.
8044 (resize_mini_frame, resize_mini_initial_height): New.
8045 (resize_mini_window): Save/restore window configuration
8046 differently.
8047
427ec082 8048 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
8049 resize_mini_initial_height): Add extern declarations.
8050
8051 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
8052 CANON_X_UNIT.
8053
8054 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
8055 being redefined in jconfig.h.
8056
80571999-08-23 Ken'ichi Handa <handa@gnu.org>
8058
8059 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
8060
80611999-08-22 Gerd Moellmann <gerd@gnu.org>
8062
8063 * alloc.c (mark_glyph_matrix): Mark strings only.
8064
8065 * xdisp.c (redisplay_internal): Clear garbaged frames after
8066 resizing mini-window.
8067
80681999-08-22 Gerd Moellmann <gerd@gnu.org>
8069
8070 * xdisp.c (unwind_with_echo_area_buffer): Use
8071 set_buffer_internal_1 instead of set_buffer_internal.
8072 (with_echo_area_buffer): Ditto.
8073
8074 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
8075 only if buffer is displayed somewhere.
8076
8077 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
8078
8079 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
8080 (gap_right): Ditto.
8081 (modify_region): Ditto.
8082
8083 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
8084
8085 * xdisp.c (Vresize_mini_config): New.
8086 (resize_mini_window): Use it to save restore original window
8087 configuration
8088 (syms_of_xdisp): Initialize it.
8089
8090 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
8091
8092 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
8093
8094 * xdisp.c (reconsider_clip_changes): New.
8095 (redisplay_internal, redisplay_window): Call it.
8096 (mark_window_display_accurate, redisplay_internal): Set current
8097 matrix' buffer, begv, zv.
8098
8099 * window.c (Fset_window_hscroll): Set
8100 prevent_redisplay_optimizations_p instead of clip_changed.
8101 (Fset_window_hscroll): Ditto.
8102 (temp_output_buffer_show): Ditto.
8103 (Fset_window_vscroll): Ditto.
8104
8105 * buffer.c (reset_buffer): Set clip_changed to 0 and
8106 prevent_redisplay_optimizations_p to 1.
8107 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
8108
8109 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
8110 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
8111 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
8112 END_UNCHANGED): New.
8113 (struct buffer_text): Add beg_unchanged, end_unchanged,
8114 unchanged_modified, overlay_unchanged_modified.
8115
8116 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8117 overlay_unchanged_modified): Removed.
8118 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
8119 (unwind_with_echo_area_buffer): Don't restore them.
8120 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
8121 (text_outside_line_unchanged_p, redisplay_internal,
8122 try_scrolling): Use/set buffer-specific beg/end_unchanged.
8123 (redisplay_window): Let try_window_id be called if more than one
8124 window is displayed. Use/set buffer-specific beg/end_unchanged.
8125 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
8126 try_window_id):
8127 Use buffer-specific beg/end_unchanged.
8128
8129 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
8130 overlay_unchanged_modified): Remove extern declarations.
8131
8132 * keyboard.c (command_loop_1): Set beg/end_unchanged per
8133 buffer.
8134
8135 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
8136 (gap_right): Ditto.
8137 (adjust_after_replace): Likewise.
8138 (replace_range, del_range_2, modify_region): Likewise.
8139
8140 * dispnew.c (direct_output_for_insert): Set beg_unchanged
8141 and unchanged_modified per buffer.
8142
8143 * coding.c (code_convert_region): Compute beg/end_unchanged per
8144 buffer.
8145
8146 * buffer.c (modify_overlay): Compute beg/end_unchanged
8147 per buffer.
427ec082 8148 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
8149 structure.
8150
81511999-08-22 Gerd Moellmann <gerd@gnu.org>
8152
8153 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8154
8155 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8156 (Qkey_value_weak): Removed.
8157 (make_hash_table): Use nil, `key', `value', t for weakness.
8158 (Fmake_hash_table): Ditto.
8159 (copy_hash_table): New.
8160 (Fcopy_hash_table): New.
8161
81621999-08-22 Gerd Moellmann <gerd@gnu.org>
8163
8164 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8165 new parameter.
26901792
DL
8166
81671999-08-21 Gerd Moellmann <gerd@gnu.org>
8168
8169 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8170 well.
427ec082 8171 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8172 have changed.
8173 (display_echo_area): Reset displayed echo_area_buffer to nil
8174 at the end if we're displaying a nil message.
8175
81761999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8177
26901792
DL
8178 * fns.c (hash_lookup): Test with EQ before calling key comparion
8179 function.
8180 (hash_remove): Ditto.
8181 (cmpfn_eq): Removed.
8182 (cmpfn_eql): Don't test with EQ.
8183 (cmpfn_equal): Ditto.
8184 (make_hash_table): Set comparison function for `eq' to null.
8185
8186 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8187 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8188
8189 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8190
8191 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8192 xterm.c: Call change_frame_size and do_pending_window_change with
8193 new parameter.
8194
8195 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8196 (change_frame_size): Ditto.
8197 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8198 and not called from a safe place.
8199 (window_change_signal): Call change_frame_size with new parameter.
8200
8201 * dispextern.h: Change prototypes for do_pending_window_change
8202 and change_frame_size.
8203
8204 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8205 window's buffers equals current_buffer; this is not the
26901792
DL
8206 case during echo area display.
8207
82081999-08-21 Gerd Moellmann <gerd@gnu.org>
8209
8210 * xdisp.c, minibuf.c: Remove conditional compilation on
8211 NO_PROMPT_IN_BUFFER.
8212
8213 * minibuf.c (Fminibuffer_prompt_end): New.
8214 (syms_of_minibuf): Defsubr it. Remove
8215 minibuffer-prompt-in-buffer.
8216 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8217 Extend documentation.
8218
8219 * xdisp.c (get_next_display_element): Display \r as ^M.
8220
8221 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8222 under scroll bar widget.
8223
82241999-08-21 Gerd Moellmann <gerd@gnu.org>
8225
8226 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8227 anywhere.
8228 (unwind_redisplay): Return nil.
8229 (clear_garbaged_frames): New.
8230 (redisplay_internal): Use it.
8231 (echo_area_display): Ditto.
8232 (resize_mini_window): Mew.
8233 (display_echo_area_1): Use it to resize echo area window.
8234 (redisplay_internal): Use it to resize active mini-window.
8235
8236 * dispextern.h, lisp.h: Add function prototypes.
8237
427ec082 8238 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8239 cursor_in_echo_area case only for a mini-window showing
8240 a message. Don't let cursor end up after the end of a row.
8241
8242 * xdisp.c (echo_area_glyphs, echo_area_message,
8243 echo_area_glyphs_length, previous_echo_glyphs,
8244 previous_echo_area_message, previous_echo_area_glyphs_length):
8245 Removed.
8246 (Vmessage_stack, echo_area_buffer, echo_buffer,
8247 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8248 (message2_nolog): Use set_message and clear_message.
8249 (message3): Rename parameter len to nbytes to make clear what
8250 it is.
8251 (message3_nolog): Ditto. Use set_message and clear_message.
8252 (update_echo_area): Rewritten.
8253 (with_echo_area_buffer): New.
8254 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8255 (setup_echo_area_for_printing): New.
8256 (display_echo_area, display_echo_area_1): New.
8257
8258 (current_message, current_message_1): New.
427ec082 8259 (push_message, restore_message, pop_message,
26901792
DL
8260 check_message_stack): New.
8261 (truncate_echo_area): Rewritten.
8262 (truncate_message_1): New.
8263 (set_message, set_message_1, clear_message): New.
8264 (echo_area_display): Rewritten.
8265 (redisplay_internal): Check for needed echo area update
8266 differently.
8267 (redisplay_preserve_echo_area): Rewritten.
427ec082 8268 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8269 message differently.
8270 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8271 Remove initialzation of removed variables.
8272 (init_xdisp): Remove references to removed variables.
8273
8274 * dispnew.c (adjust_frame_message_buffer): Removed references
8275 to echo_area_glyphs and previous_echo_glyphs.
8276 (direct_output_for_insert): Check for mini-window displaying
8277 echo area message differently.
8278 (update_frame): Likewise.
8279 (set_window_cursor_after_update): Likewise. In echo area,
8280 don't try to set cursor on rows that aren't enabled.
8281
8282 * print.c: Remove conditional compilation on `standalone'.
8283 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8284 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8285 longer used in that way.
8286 (PRINTDECLARE): Add multibyte.
8287 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8288 (printbufidx): Removed.
8289 (printchar, strout): Rewritten.
8290
8291 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8292 a struct kboard.
8293 (echo_kboard): New.
8294 (echo_now): Set echo_kboard to the current kboard.
8295 (cancel_echoing): Set echo_kboard to null.
8296 (cmd_error_internal): Use clear_message, remove references
8297 to echo_area_glyphs and echo_area_message.
8298 (command_loop_1): Check for echo area messages differently.
8299 (read_char): Likewise.
8300 (record_menu_key): Use clear_message.
8301 (Fexecute_extended_command): Check for echo area messages
8302 differently. Use push_message, restore_message, pop_message.
8303
8304 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8305 pop_message.
8306
8307 * emacs.c (shut_down_emacs): Call check_message_stack.
8308
8309 * lisp.h: Add function prototypes and extern declarations for
8310 new functions and variables.
8311
8312 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8313 pop_message.
8314
427ec082 8315 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8316 setting echo_area_glyphs.
8317 (Fminibuffer_completion_help): Ditto.
8318
8319 * editfns.c (Fcurrent_message): Rewritten.
8320
8321 * frame.c, window.h: Remove references to echo_area_glyphs
8322 and previous_echo_glyphs.
8323
83241999-08-21 Dave Love <fx@gnu.org>
8325
8326 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8327 * aix4-1.h: Likewise.
8328
8329 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8330
83311999-08-20 Gerd Moellmann <gerd@gnu.org>
8332
8333 * xfns.c: Remove tiff34 prefix from include.
8334
83351999-08-20 Dave Love <fx@gnu.org>
8336
8337 * cm.c: Revert previous change.
8338
83391999-08-19 Gerd Moellmann <gerd@gnu.org>
8340
8341 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8342 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8343
83441999-08-18 Dave Love <fx@gnu.org>
8345
8346 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8347 stdlib.h.
8348
8349 * doprnt.c: Use stdlib.h, unistd.h.
8350
8351 * config.in: Add HAVE_TERMCAP_H.
8352
8353 * cm.c: Use termcap.h.
8354
83551999-08-18 Gerd Moellmann <gerd@gnu.org>
8356
8357 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8358 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8359 cannot be created we will already have crashed earlier. Call
8360 lw_set_main_areas with a null menu-bar widget, so that we have
8361 a reasonable default.
8362 (Fx_create_frame): Rearranged so that Lisp errors during frame
8363 initialization cause less damage. Initialize menu bar widget
8364 here.
8365
83661999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8367
26901792
DL
8368 * dispnew.c (update_frame_line): Fix previous change. If writing
8369 whole line clear to end of frame.
8370
83711999-08-17 Gerd Moellmann <gerd@gnu.org>
8372
8373 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8374 and `right-bitmap-area' if position is in the bitmap areas. This
8375 avoids an error when clicking on the bitmap areas. Instead, they
8376 are currently treated like clicks inside the window.
8377 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8378 (Qleft_bitmap_area, Qright_bitmap_area): New.
8379 (syms_of_window): Initialize new symbols.
8380
8381 * dispnew.c (update_frame_line): If writing whole line,
8382 don't write trailing spaces unless we must.
8383
8384 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8385 (redisplay_internal): Register unwind_redisplay with
8386 register_unwind_protect.
8387 (try_window_reusing_current_matrix): If new start > old start,
8388 give up if start pos of first reusable row is not equal to new
8389 start.
8390
8391 * eval.c (Fsignal): Don't reset redisplaying_p here.
8392
8393 * xterm.c (expose_area): If row extends face to end of line,
8394 write the whole line.
8395
83961999-08-16 Gerd Moellmann <gerd@gnu.org>
8397
8398 * dispextern.h (struct it): Remove member
8399 show_trailing_whitespace_p.
8400
8401 * dispnew.c (direct_output_for_insert): Use
8402 Vshow_trailing_whitespace instead of former iterator member
8403 show_trailing_whitespace_p.
8404 (direct_output_forward_char): Don't do it if hightlighting
8405 trailing whitespace.
8406
8407 * xdisp.c (Qshow_trailing_whitespace): Removed.
8408 (Vshow_trailing_whitespace): Added.
8409 (init_iterator): Remove initialization code for
8410 show_trailing_whitespace_p.
8411 (redisplay_internal): Don't try cursor movement in this_line
8412 if showing trailing whitespace.
8413 (redisplay_window): Likewise for cursor movement in current
8414 matrix and try_window_id.
8415 (try_window_reusing_current_matrix): Likewise.
8416 (trailing_whitespace_p): Return 0 if trailing whitespace is
8417 in front of point.
8418 (display_line): Use Vshow_trailing_whitespace instead of
8419 former iterator member show_trailing_whitespace_p.
8420 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8421
84221999-08-16 Gerd Moellmann <gerd@gnu.org>
8423
8424 * window.c (Fpos_visible_in_window_p): Rewritten.
8425
8426 * xfaces.c (add_to_log): Renamed from display_message.
8427 Don't display messages in echo area.
8428
8429 * xterm.c (x_draw_glyph_string_box): Use the background width
8430 of the glyph string for the width of the box.
8431
84321999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8433
8434 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8435
84361999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8437
8438 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8439 background first, and then set other parameters that might
8440 depend upon their new values.
8441
84421999-08-15 Gerd Moellmann <gerd@gnu.org>
8443
8444 * xfaces.c (Vfont_list_limit): New.
8445 (syms_of_xfaces): Make it a user-variable.
8446 (DEFAULT_FONT_LIST_LIMIT): New.
8447 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8448 maximally that number of fonts, otherwise use
8449 DEFAULT_FONT_LIST_LIMIT.
427ec082 8450 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8451 until we have all fonts.
8452 (Fxfont_list): Additionally return the full names of fonts and
8453 their registry and encoding.
8454
427ec082 8455 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8456 Simplify clearing "under" scroll bar.
8457
8458 * window.c (Qfixed_window_size): New.
8459 (syms_of_window): Initialiaze it.
8460 (check_all_windows): Add return type void.
8461 (window_fixed_size_p): New. Return non-zero if window
8462 is fixed-size.
8463 (window_min_size_1): New.
8464 (window_min_size): Handle fixed-size windows.
8465 (size_window): New. Rewritten combination of set_window_height and
8466 set_window_width that handles fixed-size windows.
8467 (set_window_height): Call it.
8468 (set_window_width): Call it.
8469 (Fsplit_window): Give an error on attempt to split a fixed-size
8470 window.
8471 (change_window_height): Partly rewritten to handle fixed-size
8472 windows.
8473
84741999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8475
8476 * process.c (Fopen_network_stream): Fix previous change.
8477
84781999-08-13 Karl Heuer <kwzh@gnu.org>
8479
8480 * xdisp.c (line_number_display_limit_width): New var.
8481 (decode_mode_spec): Use it instead of hardcoded value.
8482 (syms_of_xdisp): Defvar it.
8483
84841999-08-13 Richard M. Stallman <rms@gnu.org>
8485
8486 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8487 (run_hook_with_args): Likewise.
8488
8489 * window.h (struct window): New field too_small_ok.
8490
427ec082 8491 * window.c (set_window_height, set_window_width):
26901792
DL
8492 If window starts out "too small", set its too_small_ok flag.
8493 If window's too_small_ok flag is set, don't delete it
8494 unless it is so small it would cause a crash.
8495
84961999-08-13 Gerd Moellmann <gerd@gnu.org>
8497
8498 * window.c (MINSIZE): Removed.
8499 (window_min_size): New.
8500 (set_window_height): Use window_min_size.
8501 (change_window_height): Ditto.
8502
85031999-08-12 Gerd Moellmann <gerd@gnu.org>
8504
8505 * indent.c (vmotion): Don't add in mini-buffer prompt width
8506 if prompts are inserted into mini-buffer.
8507
85081999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8509
8510 * config.in: Add HAVE_GETADDRINFO.
8511 * process.c (Fopen_network_stream): Use getaddrinfo.
8512
85131999-08-11 Gerd Moellmann <gerd@gnu.org>
8514
8515 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8516 glyphs to -1.
8517
8518 * xdisp.c (face_before_or_after_it_pos): If position after
8519 or before iterator's current position in the buffer is out
8520 of bounds, return the iterator's original face id.
8521
8522 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8523 just swap glyphs pointers between current and desired row.
8524 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8525 desired matrix method string to current matrix.
8526
85271999-08-11 Kenichi Handa <handa@etl.go.jp>
8528
8529 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8530
8531 * lread.c (read_escape): For Control modifier, pay attention to
8532 multibyte character.
8533 (read1): Likewise. Singal error or a multibyte character which
8534 has a modifer bit. Check validity of Shift modifer.
8535
8536 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8537 the same as Lisp reader.
8538
85391999-08-10 Richard M. Stallman <rms@gnu.org>
8540
8541 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8542
85431999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8544
8545 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8546
85471999-08-10 Eli Zaretskii <eliz@gnu.org>
8548
8549 * msdos.c (IT_set_face): Abort if the default face is not realized
8550 and cached.
8551 (IT_write_glyphs): Reset the screen face to the default face
8552 before writing glyphs.
8553
8554 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8555 colors from the frame here.
8556 (realize_tty_face) [MSDOS]: Do it here. Update the face
8557 attributes with the actual name of the color taken from the
8558 frame.
8559
8560 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8561 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8562
8563 * frame.c (Fframe_parameters): Swap foreground and background
8564 colors returned in frame parameters if the frame has reverse in
8565 its parameter alist.
8566 (Fmake_terminal_frame): Make a unique copy of face_alist for
8567 each frame.
8568
85691999-08-07 Richard Stallman <rms@gnu.org>
8570
8571 * buffer.c (Fprevious_overlay_change): Just return
8572 the answer obtained from overlays_at.
8573
8574 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8575 Use XpmCloseness and attrs.closeness instead.
8576
85771999-08-06 Richard Stallman <rms@gnu.org>
8578
8579 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8580
85811999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8582
427ec082 8583 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8584 Ffile_attributes_lessp): New functions.
8585 (Fdirectory_files): Use directory_files_internal.
8586 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8587 Ffile_attributes_lessp.
8588
8589 * w32.c (stat): Check for directory ending in separator when
8590 doing readdir fast path.
8591
8592 * w32fns.c (x_set_icon_type): Support setting frame icons.
8593 * w32term.c (x_bitmap_icon): New function.
8594 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8595
26901792
DL
85961999-08-06 Gerd Moellmann <gerd@gnu.org>
8597
8598 * xdisp.c (set_iterator_to_next): After delivering a character
8599 from a display vector, restore face and charset to what they were
8600 before the display vector was processed.
8601
86021999-08-06 Gerd Moellmann <gerd@gnu.org>
8603
8604 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8605 on_newline_p.
8606 (set_iterator_to_next): After delivering last char
427ec082 8607 from display vector, reseat on next visible line start if
26901792
DL
8608 dpvec_char_len < 0.
8609 (next_element_from_buffer): Set dpvec_char_len to -1 for
8610 selective display.
8611
86121999-08-06 Gerd Moellmann <gerd@gnu.org>
8613
8614 * xdisp.c (compute_line_metrics): If first line's physical ascent
8615 is larger than its logical ascent, use the physical ascent, and
8616 make the row taller. Set row's overlapping_p flag.
8617
8618 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8619 (direct_output_for_insert): Ditto.
8620
8621 * dispextern.h (struct glyph_row): Add overlapping_p.
8622
8623 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8624
8625 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8626 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8627
8628 * dispnew.c (direct_output_for_insert): Don't use this method if
8629 row is overlapped by others.
8630 (update_text_area): Write full line if current line is overlapped.
8631 (redraw_overlapped_rows): New.
8632 (update_window): Call it.
8633 (redraw_overlapping_rows): New.
8634 (update_window): Call it.
8635 (scrolling_window): Make sure overlapped_p flag in current rows is
8636 unchanged.
8637 (row_equal_p): Take rows overlapped_p flag into account.
8638
8639 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8640
8641 * xterm.c (x_fix_overlapping_area): New.
8642 (x_redisplay_interface): Add x_fix_overlapping_area.
8643
8644 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8645
86461999-08-06 Gerd Moellmann <gerd@gnu.org>
8647
8648 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8649 (struct glyph_string): Add member for_overlaps_p.
8650 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8651 of overlapping rows, clip to window bottom.
8652 (x_fill_glyph_string): Add parameter overlaps_p.
8653 (x_fill_composite_glyph_string): Ditto.
8654 (BUILD_GLYPH_STRINGS): Ditto.
8655 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8656 (x_draw_glyph_string): Don't draw anything but the foreground
8657 if glyph string draws row overlaps.
8658
8659 * dispnew.c (direct_output_for_insert): Don't use this
8660 optimization for rows that overlap others.
8661 (update_window_line): Return non-zero if display has changed.
8662 (update_text_area): Ditto.
8663 (update_window): Record if display has been changed.
8664
8665 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8666
8667 * dispextern.h (struct redisplay_interface): Add
8668 fix_overlapping_area.
8669
8670 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8671
8672 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8673
8674 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8675 ascent and descent.
8676 (x_produce_stretch_glyph): Ditto.
8677 (x_produce_glyphs): Ditto.
8678
8679 * xdisp.c (init_iterator): Reset physical line height info
8680 after producing special glyphs.
8681 (display_toolbar_line): Set physical line height info.
8682 (compute_line_metrics): Ditto.
8683 (display_line): Ditto.
8684 (display_string): Ditto.
8685
8686 * term.c (produce_glyphs): Set iterator's physical height
8687 information.
8688
8689 * dispnew.c (blank_row): Compute glyph row's physical height.
8690 (row_equal_p): Take physical row heights into account.
8691 (direct_output_for_insert): Ditto.
8692 (update_text_area): Ditto.
8693
8694 * dispextern.h (struct glyph_row): Add phys_ascent and
8695 phys_height.
8696 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8697 max_phys_descent.
8698
86991999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8700
8701 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8702 Fswitch_to_buffer.
8703 (no_switch_buffer): New function.
8704 (Fswitch_to_buffer): Call them. Don't get confused
8705 by "same-window" buffers in a dedicated frame.
8706
8707 * window.c (display-buffer): Don't get confused
8708 by "same-window" buffers in a dedicated frame.
8709
87101999-08-04 Andreas Schwab <schwab@gnu.org>
8711
8712 * insdel.c (insert_from_string_1): Check gap size against number
8713 of outgoing bytes, not incoming bytes.
8714
87151999-08-03 Tom Breton <tob@world.std.com>
8716
8717 * lread.c (read1): Added circular reading code to #N=.
8718 (SUBSTITUTE): New macro.
8719 (seen_list): New variable.
8720 (substitute_object_in_subtree): New function.
8721 (substitute_object_recurse): New function.
8722 (substitute_in_interval): New function.
8723
87241999-08-02 Eli Zaretskii <eliz@gnu.org>
8725
8726 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8727
8728 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8729 noninteractive, for termcap frames as well.
8730
8731 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8732 frames.
8733
87341999-08-01 Richard Stallman <rms@gnu.org>
8735
8736 * fns.c (internal_equal): Correct overlay comparison.
8737
83c8f461 87381999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8739
427ec082 8740 * xfns.c (x_set_internal_border_width):
26901792
DL
8741 Call do_pending_window_change. Don't block input, don't call XFlush.
8742 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8743 (x_set_scroll_bar_width, x_set_font): Likewise.
8744
8745 * frame.c (Fset_frame_height): Call do_pending_window_change.
8746 (Fset_frame_width, Fset_frame_size): Likewise.
8747
8748 * xterm.c (x_set_window_size): When calling change_frame_size,
8749 specify 1 for DELAY.
8750
8751 * widget.c (EmacsFrameSetCharSize): Don't call
8752 do_pending_window_change here.
8753
87541999-07-30 Dave Love <fx@gnu.org>
8755
8756 * config.in: Add HAVE_STDLIB_H.
8757
87581999-07-30 Richard M. Stallman <rms@gnu.org>
8759
8760 * process.c (create_process): Detect failure of `pipe'.
8761
87621999-07-30 Keisuke Nishida <kei@psn.net>
8763
8764 * alloc.c (allocate_vectorlike): Add missing increment.
8765
8766 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8767
8768 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8769 before calling indirect_function.
8770
87711999-07-30 Eli Zaretskii <eliz@gnu.org>
8772
8773 * dispextern.h (load_color, lookup_derived_face): Declare
8774 prototypes.
8775
8776 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8777 it will be done later.
8778
8779 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8780 init_frame_faces if non-interactive.
8781 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8782 array with a call to msdos_stdcolor_name. The font name is now
8783 "ms-dos", consistent with realize_tty_face.
8784
8785 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8786 MSDOS frame.
8787
8788 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8789 x_set_toolbar_lines.
8790
8791 * xfaces.c (load_color): Remove static from definition and remove
8792 prototype.
8793 [MSDOS]: Add a DOS-specific version of load_color.
8794 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8795 (lookup_derived_face): New function.
8796 (realize_default_face): Support MSDOS frames.
8797 [MSDOS]: If fore/background colors are unspecified, inherit them
8798 from the frame.
8799 (realize_face): Support MSDOS frames.
8800 (realize_tty_face): Support MSDOS frames.
8801 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8802 load_color to try to find a suitable approximation. If the face
8803 is inverse-video, swap the foreground and background colors.
8804
8805 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8806 functions.
8807
8808 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8809
8810 * msdos.h: Remove redundant declarations (most of them are now in
8811 dispextern.h).
8812
8813 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8814 Use default frame colors if the face doesn't specify them; invert
8815 the colors if highlight is ON.
8816 (IT_write_glyphs): Rewritten for the new redisplay engine.
8817 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8818 how the hook is called by term.c.
8819 (IT_copy_glyphs): New function, copies an area of the display in
8820 video RAM.
8821 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8822 redisplay now calls it even if char_ins_del_ok is zero.
8823 (IT_set_frame_parameters): Prototype changed. Calls the new
8824 load_color. Puts the new fore/background colors into the default
8825 face on current frame.
8826 (IT_menu_display): Rewritten to handle the new struct glyph
8827 instead of a char array.
8828 (XMenuActivate): Call lookup_derived_face to create and use
8829 special faces for the pop-up and drop-down menus.
8830
88311999-07-29 Gerd Moellmann <gerd@gnu.org>
8832
8833 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8834 XawScrollbarSetThumb if thumb parameters haven't changed because
8835 that function apparently isn't optimized for this case.
8836
88371999-07-29 Eli Zaretskii <eliz@gnu.org>
8838
8839 * msdos.c (getdefdir): Don't return failure indication when
8840 _fixpath sets errno to ENOSYS.
8841
88421999-07-28 Gerd Moellmann <gerd@gnu.org>
8843
8844 * xdisp.c (string_char_and_length): New. Use it everywhere
8845 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8846
88471999-07-28 Kenichi Handa <handa@etl.go.jp>
8848
8849 * fns.c (count_combining): New function.
8850 (struct textprop_rec): New structure.
8851 (concat): Copy text properties correctly when byte combining
8852 occurs.
8853
88541999-07-28 Gerd Moellmann <gerd@gnu.org>
8855
8856 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8857 if display is mono.
8858 (x_draw_row_bitmaps): If face has stipple, don't switch
8859 to foreground color for clearing areas, and set the fill style.
8860
8861 * xfaces.c (load_face_colors): Load background color if setting
8862 stipple, too.
427ec082 8863 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8864 FillStippled.
8865
88661999-07-26 Ken'ichi Handa <handa@gnu.org>
8867
8868 * xterm.c (x_find_ccl_program): Add casting.
8869
8870 * w32fns.c (w32_find_ccl_program): Add casting.
8871
88721999-07-27 Gerd Moellmann <gerd@gnu.org>
8873
8874 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8875
8876 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8877 because this will try to access a nonexisting widget.
8878
88791999-07-26 Markus Rost <rost@gnu.org>
8880
427ec082 8881 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8882 (Fputhash): Ditto.
8883 (Fremhash): Ditto.
8884
88851999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8886
26901792
DL
8887 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8888 value to frame width and height.
8889
8890 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8891 into account for full-width windows. Don't add scroll bar width
8892 to width of clip rect.
8893 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8894 (x_set_glyph_string_background_width): Add 1 to background width.
8895 (x_draw_glyphs): Take internal border into account for full-width
8896 lines.
8897
88981999-07-26 Richard M. Stallman <rms@gnu.org>
8899
8900 * xfns.c (x_set_mouse_color): Always unload the old color.
8901 Don't allow nil as color value.
427ec082 8902 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8903 Always unload the old color.
8904
8905 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8906
89071999-07-26 Karl Heuer <kwzh@gnu.org>
8908
8909 * fns.c (Fy_or_n_p): Doc fix.
8910
89111999-07-26 Kenichi Handa <handa@etl.go.jp>
8912
8913 * ccl.h (setup_ccl_program): The type is changed to `int'.
8914
8915 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8916 stored in the following CCL code. Adjusted for the change of
8917 Vccl_program_table.
8918 (resolve_symbol_ccl_program): Adjusted for the new style of
8919 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8920 is resolving failed.
8921 (ccl_get_compiled_code): New function.
8922 (setup_ccl_program): Function type changed from `void' to `int'.
8923 Resolve symbols in CCL_PROG.
8924 (Fccl_program_p): New function.
8925 (Fccl_execute): Get compiled CCL code by just calling
8926 setup_ccl_program.
8927 (Fccl_execute_on_string): Likewise.
8928 (Fregister_ccl_program): Adjusted for the change of
8929 Vccl_program_table.
8930
8931 * coding.c (setup_coding_system): Get compiled CCL code by just
8932 calling setup_ccl_program.
8933
8934 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8935 calling setup_ccl_program.
8936
8937 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8938 calling setup_ccl_program.
8939
89401999-07-23 Gerd Moellmann <gerd@gnu.org>
8941
8942 * xfaces.c (frame_update_line_height): Just use the height of the
8943 frame's fontset or font, instead of taking face fonts into
8944 account.
8945
8946 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8947
89481999-07-23 Richard M. Stallman <rms@gnu.org>
8949
8950 * window.c (Fsplit_window): For default size, round up for left window.
8951
89521999-07-21 Joe Ramey <ramey@ti.com>
8953
d7d0dac0 8954 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
8955 has returned -1 (lockfile exists but is not a symlink?).
8956
89571999-07-20 Gerd Moellmann <gerd@gnu.org>
8958
8959 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8960 because of a change in cursor_gc made in 20.4.
8961
89621999-07-19 Gerd Moellmann <gerd@gnu.org>
8963
8964 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8965 for YNegative, if using X toolkit.
8966
427ec082 8967 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8968 from positions returned.
8969
89701999-07-17 Gerd Moellmann <gerd@gnu.org>
8971
8972 * xrdb.c (x_load_resources): Set double-click time defaults
8973 for Motif list boxes from double-click-time.
8974
8975 * fns.c (Vhash_table_tests): Remvoed.
8976 (Qhash_table_test): New.
8977 (syms_of_fns): Initialize Qhash_table_test.
8978 (Fmake_hash_table): Look up user-defined tests in symbol prop
8979 `hash-table-test'.
8980 (Fdefine_hash_table_test): Store test and hash function as
8981 symbol prop `hash-table-test'.
8982 (make_hash_table): Add parameters user_test and user_hash.
8983
8984 * window.c (set_window_buffer): Set window margins for tty
8985 frames, too.
8986 (Fset_window_margins): Ditto.
8987
8988 * term.c (append_glyph): Use glyph area of iterator instead of
8989 always TEXT_AREA.
8990
8991 * dispnew.c (update_frame_1): Add left margin width to cursor
8992 hpos.
8993 (direct_output_for_insert): Ditto.
8994 (direct_output_forward_char): Ditto.
8995
8996 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8997
8998 * dispextern.h (struct glyph_matrix): Add top_line_p.
8999
90001999-07-16 Gerd Moellmann <gerd@gnu.org>
9001
9002 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
9003 instead.
9004
9005 * fns.c (cmpfn_eq): Add hash code parameters.
9006 (cmpfn_eql): Ditto.
9007 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
9008 (cmpfn_user_defined): Likewise.
9009
90101999-07-15 Gerd Moellmann <gerd@gnu.org>
9011
9012 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
9013
9014 * fns.c (maybe_resize_hash_table): Correct computation of
9015 index vector size.
9016 (make_hash_table): Ditto.
9017 (Fmakehash): New.
9018
9019 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
9020
9021 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
9022 (survives_gc_p): Make it externally visible.
9023 (mark_object): Ditto.
9024
9025 * fns.c (remove_hash_entry): Removed.
9026 (sweep_weak_hash_tables): New.
9027
9028 * print.c (print): Print more information about hash tables.
9029
9030 * xfns.c (image_spec_hash): Removed.
9031 (lookup_image): Use sxhash instead of image_spec_hash.
9032 (image_spec_equal_p): Removed.
9033 (lookup_image): Use Fequal instead of image_spec_equal_p.
9034
90351999-07-14 Gerd Moellmann <gerd@gnu.org>
9036
9037 * lisp.h (P_): Moved to top of file.
9038
9039 * fns.c (make_hash_table): Set new members.
9040
9041 * alloc.c (mark_object): Mark hash table's user_hash_function.
9042 Mark index vector for weak hash tables.
9043
9044 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
9045 user_hash_function, cmpfn, and hashfn.
9046
9047 * fns.c (build_hash): Removed.
9048 (hash_test): Removed.
9049 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
9050 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
9051
90521999-07-13 Gerd Moellmann <gerd@gnu.org>
9053
9054 * alloc.c (survives_gc_p): New.
9055
9056 * print.c (print): Add hash table handling.
9057
9058 * alloc.c (mark_object): Add code to mark hash tables.
9059
9060 * lisp.h (GC_HASH_TABLE_P): New.
9061
9062 * emacs.c (main): Call init_fns.
9063
9064 * fns.c (init_fns): New.
9065
9066 * fns.c: Add hash table implementation.
9067
9068 * lisp.h (PVEC_HASH_TABLE): New.
9069 (struct Lisp_Hash_Table): New.
9070 (XHASH_TABLE): New.
9071 (XSET_HASH_TABLE): New.
9072 (HASH_TABLE_P): New.
9073 (CHECK_HASH_TABLE): New.
9074 (DEFAULT_HASH_SIZE): New.
9075 (DEFAULT_REHASH_THRESHOLD): New.
9076 (DEFAULT_REHASH_SIZE): New.
9077
9078 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
9079 (x_write_glyphs): Compute overwritten cursor using real start
9080 and end positions of display.
9081 (x_insert_glyphs): Ditto.
9082
90831999-07-10 Gerd Moellmann <gerd@gnu.org>
9084
9085 * keyboard.c (read_char): Use message3_nolog to show help-echo.
9086
9087 * dispnew.c (blank_row): Add y-position as parameter. Compute
9088 visible height.
9089
9090 * xdisp.c (next_element_from_string): Give padding spaces
9091 a position of -1.
9092
427ec082 9093 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
9094 marginals areas on tty frames in a future version.
9095 (allocate_matrices_for_frame_redisplay): Ditto.
9096
9097 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
9098 to zero if number of glyphs in the row is <= 1.
9099
91001999-07-09 Gerd Moellmann <gerd@gnu.org>
9101
9102 * dispnew.c (buffer_posn_from_coords): Take left marginal area
9103 into account.
9104
9105 * xdisp.c (handle_display_prop): Don't reset area if handing
9106 a property from a string that came from a `display' property.
9107 (handle_single_display_prop): Don't handle recursive `display'
9108 properties.
9109 (handle_single_display_prop): Handle some display property
9110 forms for terminal frames.
9111 (Qimage): Moved here from xfns.c.
9112
9113 * dispextern.h (struct it): New field string_from_display_prop_p.
9114
9115 * xterm.c (x_clip_to_row): Don't let clip_rect include top
9116 line.
9117
91181999-07-08 Gerd Moellmann <gerd@gnu.org>
9119
9120 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
9121
9122 * window.c (set_window_buffer): Set window's vscroll to zero.
9123
9124 * xdisp.c (QCwhen): New.
9125 (display_prop_end): New.
9126 (handle_single_display_prop): Use it.
9127 (debug_method_add): Print buffer name if tracing.
9128 (try_window_reusing_current_matrix): Compute visible height
9129 of reused rows. Fix cursor position calculation in case of
9130 top-line.
9131
9132 * dispextern.h (struct redisplay_interface): Add parameter
9133 cursor_on_p to update_window_end_hook.
9134
9135 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
9136
91371999-07-07 Gerd Moellmann <gerd@gnu.org>
9138
427ec082 9139 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
9140 doesn't become negative when decrementing it.
9141
9142 * eval.c (Fsignal): Reset redisplaying_p to zero.
9143
9144 * xdisp.c (try_window_reusing_current_matrix): Call hooks
9145 for window update.
9146 (try_window_id): Ditto.
9147
9148 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
9149 (x_scroll_run): Ditto.
9150 (any_help_event_p): New.
9151 (x_initialize): Set it to zero.
9152 (XTread_socket): Clear help echo only if any_help_event_p.
9153
9154 * xdisp.c (init_iterator): Set top_line_p.
9155 (start_display): Use correct initial y if top-line is present.
9156 (make_cursor_line_fully_visible): Bug fixes for top-line.
9157 (try_scrolling): Ditto.
9158 (try_window_reusing_current_matrix): Ditto.
9159
9160 * dispextern.h (struct it): Add top_line_p.
9161
9162 * dispnew.c (shift_glyph_matrix): Move some computations out
9163 of the loop.
9164
427ec082 9165 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9166 XFLOATINT.
9167
91681999-07-06 Gerd Moellmann <gerd@gnu.org>
9169
9170 * dispnew.c (update_frame_1): When setting cursor in echo area,
9171 skip only over padding spaces at the end.
9172
9173 * xfaces.c (realize_tty_face): Set face's font_name field to
9174 "tty".
9175
9176 * term.c (update_end): Turn cursor on only if selected window's
9177 cursor_off_p flag is not set.
9178
91791999-07-05 Gerd Moellmann <gerd@gnu.org>
9180
9181 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9182 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9183 (TS_cursor_invisible): New.
9184 (term_init): Initialize TS_cursor_invisible.
9185 (tty_hide_cursor): New.
9186 (tty_show_cursor): New.
9187 (update_end): Show tty cursor.
9188 (update_begin): Hide tty cursor to prevent cursor flickering
9189 during redisplays triggered by timers (stealth fontification).
9190
9191 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9192
9193 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9194 in scroll bars.
9195 (x_handle_toolbar_click): Set modifier bits.
9196
91971999-07-04 Gerd Moellmann <gerd@gnu.org>
9198
9199 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9200 instead of a pointer to a volatile input_event.
427ec082 9201 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9202 declaration of local variable `sp'.
9203 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9204 to kbd_fetch_ptr.
9205
92061999-07-03 Gerd Moellmann <gerd@gnu.org>
9207
9208 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9209 only if buffer is modified. Return quickly if changes are
9210 above window start.
9211
92121999-07-02 Gerd Moellmann <gerd@gnu.org>
9213
9214 * dispextern.h (HSCROLL_WINDOWS): Removed.
9215
9216 * xdisp.c (mark_window_display_accurate): Don't set
9217 w->region_showing.
9218 (redisplay_internal): Don't call redraw_garbaged_frames.
9219
92201999-07-01 Gerd Moellmann <gerd@gnu.org>
9221
9222 * xdisp.c (echo_area_display): Don't display truncation marks
9223 for messages because 20.4 doesn't do it either.
9224 (redisplay_window): Case same window start. Instead of giving
9225 up when cursor is partially visible, make it fully visible.
9226 (mark_window_display_accurate): Some cleanup. Record window's
9227 last cursor information.
9228 (debug_method_add): Improved.
9229 (redisplay_internal): Record last cursor info only if not
9230 consider_all_windows_p.
9231
9232 * dispnew.c (update_window): Update top line after scrolling.
9233 (blank_row): Renamed from make_empty_enabled_row.
9234 (increment_glyph_row_buffer_positions): Increment positions
9235 in buffers, only.
9236
9237 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9238 string.
9239
92401999-06-30 Gerd Moellmann <gerd@gnu.org>
9241
9242 * dispnew.c (update_window): Check that updated row is visible.
9243
9244 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9245 top of window differently.
9246
9247 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9248 if region is showing.
9249
9250 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9251 avoiding matrix reallocation. Set window_vscroll in matrix.
9252
9253 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9254
26901792
DL
9255 * xdisp.c (debug_method_add): New.
9256 (debug_redisplay_method): Removed.
9257 (try_window_reusing_current_matrix): Handle case where old
9258 window start is the same as new window start.
9259
9260 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9261 an array instead of a pointer.
9262
26901792
DL
9263 * xfns.c (Fx_show_tip): Undo previous change.
9264
9265 * xterm.c (x_append_glyph): Clear glyph->u.val.
9266
9267 * dispextern.h (struct glyph): Increase size of face_id bit-field
9268 for CHAR_GLYPH to 12.
9269
92701999-06-29 Gerd Moellmann <gerd@gnu.org>
9271
9272 * xfaces.c (x_charset_registry): Make it externally visible.
9273
92741999-06-28 Gerd Moellmann <gerd@gnu.org>
9275
427ec082 9276 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9277 instead of WINDOW_WANTS_MODELINE_P.
9278
9279 * xterm.c (clear_mouse_face): Make externally visible.
9280
9281 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9282
9283 * xterm.c (expose_line): Handle exposure of top-lines.
9284
9285 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9286 if mouse_face_mouse_frame is null.
9287
9288 * xdisp.c (redisplay_window): If window is echo_area_window,
9289 and update_mode_line is set, update menubar and toolbar.
9290
9291 * dispnew.c (space_glyph): Set its charpos to -1.
9292 (update_frame_1): Ignore trailing padding spaces.
9293
9294 * xdisp.c (next_element_from_c_string): Set position of padding
9295 glyphs to -1.
9296
92971999-06-27 Gerd Moellmann <gerd@gnu.org>
9298
9299 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9300 XQueryColor.
9301
9302 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9303 (set_cursor_from_row): Skip over glyphs having a null object at
9304 the start of rows.
9305 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9306 glyphs.
9307 (handle_invisible_prop): Compute next change only when needed.
9308 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9309 line.
9310
93111999-06-26 Gerd Moellmann <gerd@gnu.org>
9312
9313 * xrdb.c (x_load_resources): Don't set resource for double-click
9314 time.
9315
9316 * xdisp.c (try_window_id): Return quickly if all changes are
9317 below the window's current matrix end.
9318
9319 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9320 parameter.
9321
9322 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9323 in desired not in current matrix.
9324 (try_window_reusing_current_matrix): Rotate matrices starting
9325 at start_vpos instead of 0.
9326
9327 * xterm.c (expose_window): Use window_text_bottom_y.
9328 (fast_find_position): Ditto.
9329
9330 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9331 (try_window_reusing_current_matrix): Ditto.
9332 (get_last_unchanged_at_beg_row): Ditto.
9333 (init_iterator): Ditto.
9334
9335 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9336 more row.
9337 (check_matrix_invariants): Use window_text_bottom_y.
9338 (update_window): Ditto.
9339 (scrolling_window): Ditto.
9340
9341 * xdisp.c (window_text_bottom_y): New.
9342
93431999-06-25 Gerd Moellmann <gerd@gnu.org>
9344
9345 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9346 clearing mouse face.
9347 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9348 event.xcrossing.focus is not set, and focus is in the menu bar,
9349 set focus frame as if event.xcrossing.focus were set.
9350
93511999-06-24 Gerd Moellmann <gerd@gnu.org>
9352
9353 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9354 * keyboard.c (make_lispy_movement): Ditto.
9355
9356 * window.c (coordinates_in_window): Return 4 if on top line.
9357 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9358
9359 * xdisp.c (window_box_height): Subtract top line height.
9360 (window_box): Add top line height to top y position if top line
9361 exists.
9362 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9363 the top line row of the window. Set initial y-position to
9364 window's top line height plus delta.
9365 (start_display): Choose start glyph row depending on whether
9366 window has a top line.
9367 (try_scrolling): Take top line height into account for aggressive
9368 scrolling.
9369 (compute_window_start_on_continuation_line): Take top line into
9370 account.
427ec082 9371 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9372 trigger a new redisplay.
9373 (try_window_reusing_current_matrix): Take top line into account.
9374 (find_last_row_displaying_text): Ditto.
9375 (get_last_unchanged_at_beg_row): DItto.
9376 (try_window_id): Ditto.
9377 (compute_line_metrics): Ditto.
9378
9379 * dispnew.c (shift_glyph_matrix): Compute visible row height
9380 taking top line of window into account.
9381 (update_window): Update top line. If scrolling_window detects
9382 that all rows are equal, only set cursor.
9383 (update_window_line): Call after_update_window_line_hook if
9384 mode_line_p flag of rows has changed.
9385 (scrolling_window): Add parameter top_line_p. Return -1 if
9386 all rows are equal.
9387 (mode_line_string): Add parameter mode_line_p. Handle strings
9388 in top lines.
9389
9390 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9391 (MATRIX_FIRST_TEXT_ROW): New.
9392 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9393 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9394 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9395 (MATRIX_TOP_LINE_HEIGHT): New.
9396 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9397 (CURRENT_TOP_LINE_HEIGHT): New.
9398 (DESIRED_TOP_LINE_HEIGHT): New.
9399 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9400 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9401 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9402 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9403
9404 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9405 lines.
9406 (x_draw_row_bitmaps): Take top line into account when clearing
9407 bitmap area.
9408 (x_estimate_mode_line_height): Replacement for
9409 x_frame_mode_line_height.
9410 (x_get_glyph_string_clip_rect): Take top line into account.
9411 (x_clear_end_of_line): Ditto.
9412 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9413 top lines.
9414 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9415 (x_erase_phys_cursor): Take top line into account.
9416
9417 * xdisp.c (window_box_height): Subtract top line height if
9418 window wants a top line.
9419 (display_mode_lines): New.
9420 (redisplay_window): Call it.
9421 (display_mode_line): Add parameters face_id and format.
9422
9423 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9424 (MATRIX_TOP_LINE_HEIGHT): New.
9425
9426 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9427
9428 * term.c (estimate_mode_line_height): Renamed from
9429 frame_mode_line_height. Add parameter face_id.
9430 (estimate_mode_line_height_hook): Renamed from
9431 frame_mode_line_height_hook.
9432 (produce_special_glyphs_hook): Removed.
9433 (produce_glyphs_hook): Removed.
9434
94351999-06-23 Gerd Moellmann <gerd@gnu.org>
9436
9437 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9438 (struct glyph_row): Add mode_line_p.
9439
9440 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9441 (Qtop_line): New.
9442 (syms_of_xfaces): Initialize Qtop_line.
9443
9444 * dispextern.h (TOP_LINE_FACE_ID): New.
9445
9446 * buffer.c (init_buffer_once): Set default for
9447 top_line_format to nil.
9448 (init_buffer_once): Init top_line_format.
9449 (default-top-line-format): New.
9450 (top-line-format): New buffer-local variable.
9451
9452 * buffer.h: Add top_line_format.
9453
9454 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9455
94561999-06-17 Dave Love <fx@gnu.org>
9457
9458 * xfns.c: Move the PNG section before the JPEG one to avoid
9459 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9460
26901792
DL
94611999-06-17 Gerd Moellmann <gerd@gnu.org>
9462
9463 * xfns.c (x_kill_gs_process): Don't free colors.
9464
94651999-06-17 Dave Love <fx@gnu.org>
9466
9467 * s/gnu-linux.h: Zap spurious ~.
9468
94691999-06-16 Gerd Moellmann <gerd@gnu.org>
9470
9471 * xfns.c (gif_load): Improve multi-image support.
9472
94731999-06-15 Gerd Moellmann <gerd@gnu.org>
9474
9475 * xfns.c (gif_load): Support multi-image files.
9476
9477 * Makefile.in (LIBGIF): Use libungif.
9478
9479 * configure.in (HAVE_GIF): Use libungif instead of libgif
9480 because the former doesn't contain patented compression code.
9481
9482 * xdisp.c (compute_window_start_on_continuation_line): Don't
9483 do it if line start is too far away from window start.
9484
94851999-06-14 Gerd Moellmann <gerd@gnu.org>
9486
9487 * buffer.c (init_buffer_once): Set buffer_local_flags for
9488 scroll_*_aggressively.
9489 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9490 (init_buffer_once): Set defaults for these variables.
9491 (syms_of_buffer): Add default-scroll-*-aggressively.
9492
9493 * buffer.h (scroll_up_aggressively): New.
9494 (scroll_down_aggressively): New.
9495
9496 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9497 a static PNG library.
9498
9499 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9500 in case it's a static library.
9501
9502 * Makefile.in (ctagsfiles): Split so that files starting
9503 with an `x' are found before files starting with `w32'.
9504 (ctagsfiles1): New.
9505 (ctagsfiles2): New.
9506 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9507
9508 * xdisp.c (compute_window_start_on_continuation_line): New.
9509 (redisplay_window): Use it.
9510 (INFINITY): New.
9511 (reseat_to_string): Use it.
9512 (hscroll_window_tree): Ditto.
9513 (compute_window_start_on_continuation_line): Ditto.
9514 (redisplay_window): Don't force display with a new window start.
9515
95161999-06-06 Gerd Moellmann <gerd@gnu.org>
9517
9518 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9519 if widget not present.
9520
9521 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9522
95231999-06-04 Gerd Moellmann <gerd@gnu.org>
9524
9525 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9526 value of realize_basic_faces.
9527 (load_face_font_or_fontset): Store full font name in face.
9528 (realize_default_face): Use full font name.
9529
26901792
DL
9530 * xterm.c (x_produce_glyphs): Set member char_to_display.
9531 (x_append_glyph): Store char_to_display in glyphs.
9532
9533 * dispextern.h (struct it): Add char_to_display.
9534
9535 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9536 if faces haven't been initialized.
9537 (Fx_create_frame): Call face-set-after-frame-default after
9538 faces have been initialized, and widget has been created.
9539
9540 * puresize.h (BASE_PURESIZE): Increased.
9541
95421999-06-01 Gerd Moellmann <gerd@gnu.org>
9543
9544 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9545 (Finternal_set_lisp_face_attribute): If frame is t when
9546 :font attribute is set, use the selected frame.
9547 (clear_face_cache): Add parameter clear_fonts_p.
9548 (Fclear_face_cache): Add optional parameter thorougly.
9549
9550 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9551 in table.
9552 (Fclear_face_cache): New.
9553 (choose_face_fontset_font): If fontset doesn't contain font
9554 pattern for the given charset, use CHARSET_ASCII.
9555 (Finternal_set_lisp_face_attribute): Fix handling of nil
9556 stipple attribute.
9557 (Finternal_set_lisp_face_attribute): Fix handling of changing
9558 font-related face attributes of the default face.
9559 (set_lface_from_font_name): Set only attributes that aren't
9560 specified.
9561
95621999-05-31 Gerd Moellmann <gerd@gnu.org>
9563
9564 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9565 font support.
9566 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9567 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9568 scalable fonts depending on the setting of SCALABLE_FONTS.
9569 (first_font_matching): List more than one font to find the
9570 first non-scalable matching font.
9571 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9572 depending on SCALABLE_FONTS.
9573 (better_font_p): New parameter compare_pt_p. If zero, don't
9574 compare point sizes of fonts.
9575 (exact_face_match_p) [SCALABLE_FONTS]: New.
9576 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9577 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9578 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9579 (syms_of_xfaces): Add scalable-fonts-allowed.
9580
95811999-05-26 Gerd Moellmann <gerd@gnu.org>
9582
9583 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9584 mask only if image contains simple transparency information.
9585 Otherwise, combine image with frame background color.
9586
9587 * configure.in (--with-png, HAVE_PNG): New.
9588
9589 * config.in (HAVE_PNG): New.
9590
9591 * Makefile.in: Add PNG library.
9592
9593 * xfns.c: Add PNG support.
9594
95951999-05-25 Gerd Moellmann <gerd@gnu.org>
9596
9597 * xdisp.c (init_xdisp): Initialize echo_area_message and
9598 previous_echo_area_message to nil.
9599
9600 * keyboard.c (read_char): Rename local variable echo_area_message
9601 because it shadows the global one.
9602
96031999-05-05 Gerd Moellmann <gerd@gnu.org>
9604
9605 * xterm.c (note_mode_line_highlight): Restructured.
9606
9607 * window.c (coordinates_in_window): Handle windows that don't have
9608 a mode line because their buffer's mode-line-format is nil.
9609 Recognize the mode line under x positions that correspond to
9610 flags areas and left scroll bar.
9611
96121999-05-02 Dave Love <fx@gnu.org>
9613
9614 * xterm.c (note_mouse_highlight): Separate help-echo processing
9615 from check on mouse-face so that it works generally.
9616
96171999-04-21 Gerd Moellmann <gerd@gnu.org>
9618
9619 * sound.c (Fplay_sound): Run hook play-sound-hook.
9620 (Qplay_sound_hook): New.
9621
96221999-04-20 Gerd Moellmann <gerd@gnu.org>
9623
9624 * xdisp.c (update_echo_area): Handle echo_area_message.
9625
96261999-04-19 Gerd Moellmann <gerd@gnu.org>
9627
9628 * editfns.c (Fmessage): Use message3.
9629
9630 * print.c (printchar): Set echo_area_message to nil.
9631 (strout): Ditto.
9632
9633 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9634 (Fminibuffer_completion_help): Ditto.
9635
9636 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9637 (command_loop_1): Test echo_areA_message.
9638 (read_char): Ditto.
9639 (record_menu_key): Set echo_area_message to nil.
9640 (Fexecute_extended_command): Test echo_area_message.
9641 (Fexecute_extended_command): Handle echo_area_message.
9642
9643 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9644 is set.
9645
9646 * editfns.c (Fcurrent_message): If echo_area_message is set,
9647 return a substring of that string.
9648
9649 * dispnew.c (direct_output_for_insert): Test echo_area_message
9650 in addition to echo_area_glyphs.
9651 (set_window_cursor_after_update): Ditto.
9652 (update_frame_1): Ditto.
9653
9654 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9655 old Lisp message string.
9656
9657 * xdisp.c (echo_area_message): New.
9658 (previous_echo_area_message): New.
9659 (syms_of_xdisp): Initialize and staticpro new variables.
9660 (echo_area_display): Display echo_area_message if set.
9661 (message2_nolog): Set echo_area_message and
9662 previous_echo_area_message.
9663 (echo_area_display): Set previous_echo_area_message.
9664 (redisplay_internal): Display echo area if echo_area_message
9665 or previous_echo_area_message are set.
9666 (redisplay_preserve_echo_area): Test/set echo_area_message and
9667 previous_echo_area_message.
9668 (redisplay_window): Test echo_area_message.
9669 (message3_nolog): New.
9670 (message3): New.
9671
9672 * editfns.c (Fformat): Add text properties to the result string
9673 from properties of the format string and properties of string
9674 arguments.
9675
9676 * textprop.c (text_property_list): New.
9677 (add_text_properties_from_list): New.
9678 (extend_property_ranges): New.
9679
96801999-03-29 Gerd Moellmann <gerd@gnu.org>
9681
9682 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9683 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9684 Use these symbols for the box face attribute instead of the
9685 removed ones.
9686
96871999-03-12 Gerd Moellmann <gerd@gnu.org>
9688
9689 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9690 Correct wrong test for slant.
9691
96921999-03-10 Gerd Moellmann <gerd@gnu.org>
9693
9694 * xfaces.c: Use `unspecified' for unspecified face attributes,
9695 use t and nil for on/off.
9696
96971999-03-06 Gerd Moellmann <gerd@gnu.org>
9698
9699 * buffer.c (syms_of_buffer): Extend doc string of
9700 mode-line-format.
9701
9702 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9703 (first_font_matching): New.
9704 (set_lface_from_font_name): Use it if font name is a pattern.
9705 (font_field_wildcard_p): Removed.
9706
9707 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9708 Recompute visible height of rows.
9709
9710 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9711 Don't accept non-strings for help-echo from overlays.
9712
97131999-03-04 Dave Love <fx@gnu.org>
9714
9715 * xterm.c (note_mouse_highlight): Check overlays for help-text
9716 property.
9717 (XTread_socket): Fix compiler warning.
427ec082 9718
26901792
DL
97191999-03-05 Gerd Moellmann <gerd@gnu.org>
9720
427ec082 9721 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9722 overlay to 10. Call overlays_at so that it doesn't try to
9723 extend the vector.
9724
9725 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9726 height.
9727
9728 * dispnew.c (row_equal_p): Compare visible row height, only.
9729 (update_text_area): Draw whole line if visible heights of
9730 rows differ.
9731 (update_window_line): Call after_update_window_line_hook
9732 if visible row height has changed.
9733
9734 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9735 (struct glyph_row): New member visible_height.
9736
9737 * xfaces.c (font_field_wildcard_p): New.
9738 (set_lface_from_font_name): Remove parameter force_p. Accept
9739 font names containing wildcards.
9740
97411999-03-04 Gerd Moellmann <gerd@gnu.org>
9742
9743 * xterm.c (x_after_update_window_line): Clear internal border
9744 when windows_or_buffers_changed.
9745
9746 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9747 buffer has a nil mode_line_format.
9748
97491999-03-03 Gerd Moellmann <gerd@gnu.org>
9750
9751 * xterm.c (x_setup_relief_colors): Use either background color
9752 or specified color.
9753
9754 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9755
9756 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9757
9758 * xterm.c (x_draw_box_rect): New.
9759 (x_draw_glyph_string_box): Renamed from
9760 x_draw_glyph_string_relief. Call x_draw_box_rect.
9761
9762 * xfns.c (QCrelief): New.
9763 (syms_of_xfns): Initialize it.
9764
9765 * dispextern.h (struct glyph): Rename left_shadow_p to
9766 left_box_line_p, right_shadow_p to right_box_line_p.
9767 (MAX_RELIEF_THICKNESS): Removed.
9768 (struct it): Rename members having `relief' in their names
9769 to contain `box' instead.
9770
9771 * xfaces.c (realize_x_face): Handle new box attribute values.
9772 (QCrelief, Qbox): Removed.
9773 (QCshadow, QCcolor, Qraised, Qsunken): New.
9774 (syms_of_xfaces): Initialize new symbols.
9775
97761999-03-02 Gerd Moellmann <gerd@gnu.org>
9777
9778 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9779
9780 * xfaces.c (LFACE_RELIEF): Removed.
9781 (merge_face_vector_with_property): Remove handling of `:relief'.
9782 (Finternal_set_lisp_face_attribute): Ditto.
9783 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9784 (Finternal_get_lisp_face_attribute): Ditto.
9785 (realize_default_face): Ditto.
9786 (lface_hash): Don't compute hash from relief.
9787
9788 * dispextern.h (struct face): Replace member `relief' by
9789 `box_line_width'. Add member `box'.
9790 (face_box_type): New.
9791
9792 * xterm.c (x_produce_glyphs): If face has overline, add overline
9793 thickness + 1 to ascent.
9794
97951999-03-01 Gerd Moellmann <gerd@gnu.org>
9796
9797 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9798 strike-through, and boxes.
9799 (x_draw_glyph_string_underline): Removed.
9800
9801 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9802 (Qoverline, Qstrike_through, Qbox): New.
9803 (syms_of_xfaces): Define these symbols.
9804 (check_lface_attrs): Add checks for overline, strike-through,
9805 and box.
9806 (Finternal_set_lisp_face_attribute): Set new attributes.
9807 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9808 (load_color): Handle new attributes.
9809 (realize_x_face): Ditto.
9810 (merge_face_vector_with_property): Ditto.
9811 (free_face_colors): Ditto.
9812 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9813 (Finternal_get_lisp_face_attribute): Ditto.
9814 (Finternal_lisp_face_attribute_values): Ditto.
9815
9816 * dispextern.h (lface_attribute_index): Add enumerators for
9817 overstrike, strike-through, and box.
9818 (struct face): Add members for overline, strike-through, and
9819 box.
9820
98211999-02-17 Dave Love <fx@gnu.org>
9822
9823 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9824 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9825 files.
9826
98271999-02-16 Gerd Moellmann <gerd@gnu.org>
9828
9829 * keyboard.c (toolbar_items): Call access_keymap with third
9830 parameter 1, so that we don't get inherited toolbar item
9831 definitions.
9832
9833 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9834 the window end vpos when in empty first line of window.
9835
98361999-02-15 Gerd Moellmann <gerd@gnu.org>
9837
9838 * xfaces.c (set_font_frame_param): New.
9839 (Finternal_set_lisp_face_attribute): Call it.
9840
9841Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9842
9843 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9844 Accept specifications of color for underline.
9845
98461999-02-13 Gerd Moellmann <gerd@gnu.org>
9847
9848 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9849 `frame' is t, operate on face defaults for new frames. If it
9850 is nil, operate on the selected frame.
9851
98521999-02-12 Gerd Moellmann <gerd@gnu.org>
9853
9854 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9855 (update_window): Put the call to check_matrix_invariants in #if 0.
9856
9857Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9858
9859 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9860 Remove definition of UNDERLINE_COLOR.
9861
9862Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9863
9864 * xfaces.c (free_face_colors): Free the color for underline.
9865
9866 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9867 to the GC.
9868
9869Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9870
9871 * dispextern.h (UNDERLINE_COLOR): Defined.
9872 (struct face): Added two new members.
9873 underline_color, underline_defaulted_p.
9874
427ec082 9875 * xfaces.c (merge_face_vector_with_property):
26901792 9876 (check_lface_attrs): Accept the string value for underline.
427ec082 9877 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9878
9879 * xfaces.c (load_color): Change the last argument type to enum
9880 lface_attribute_index from int. And addec code for underling coloring.
9881 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9882
26901792
DL
98831999-02-12 Gerd Moellmann <gerd@gnu.org>
9884
9885 * xfns.c (Fx_image_header): Removed.
9886
98871999-02-07 Gerd Moellmann <gerd@gnu.org>
9888
9889 * xterm.c: Don't include <bitmaps/gray>.
9890 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9891
9892 * xfns.c (Fx_image_header): Add missing `\n\'.
9893 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9894
98951999-02-01 Gerd Moellmann <gerd@gnu.org>
9896
9897 * xterm.c (x_scroll_bar_create): Set background pixel from
9898 specified scroll bar color.
9899 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9900
9901 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9902 (x_set_scroll_bar_background): Ditto.
9903
9904 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9905
9906 * xfns.c (x_default_scroll_bar_color_parameter): New.
9907 (Fx_create_frame): Call it.
9908
99091999-01-31 Gerd Moellmann <gerd@gnu.org>
9910
9911 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9912 values in x_output structure.
26901792
DL
9913 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9914 (syms_of_xfns): Initialize these symbols.
9915
9916 * xterm.h (struct x_output): Add scroll bar pixel colors.
9917
9918 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9919 (x_set_scroll_bar_foreground): New.
9920 (x_set_scroll_bar_background): New.
9921
26901792
DL
99221999-01-12 Gerd Moellmann <gerd@gnu.org>
9923
9924 * xdisp.c (handle_single_display_prop): New.
9925 (handle_display_prop): Call it.
9926 (handle_raise_prop): Removed.
9927 (handle_height_prop): Removed.
9928 (handle_space_width_prop): Removed.
9929 (handle_face_prop): Remove handling of raised text.
9930 (handle_display_prop): Do it here.
9931
9932 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9933 (RAISE_PROP_IDX): Removed.
9934 (HEIGHT_PROP_IDX): Removed.
9935 (SPACE_WIDTH_PROP_IDX): Removed.
9936
9937 * xdisp.c (Qdisplay): Replaces Qglyph.
9938 (handle_display_prop): Formerly handle_glyph_prop.
9939
99401999-01-11 Gerd Moellmann <gerd@gnu.org>
9941
9942 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9943 (handle_stop): Set position in display vector to -1. Don't
9944 check overlay strings when set up to deliver characters from a
9945 display vector.
9946 (set_iterator_to_next): At the end of a run of characters from a
9947 display vector, check whether the display vector display replaces
9948 the display of a character.
9949
99501999-01-05 Gerd Moellmann <gerd@gnu.org>
9951
9952 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9953 X window hasn't been created yet.
9954
99551998-12-06 Gerd Moellmann <gerd@gnu.org>
9956
9957 * sound.c: New.
9958
99591998-12-04 Gerd Moellmann <gerd@gnu.org>
9960
9961 * config.in (HAVE_SOUND): New.
9962
9963 * emacs.c (main): Call syms_of_sound and init_sound.
9964
9965 * Makefile.in (obj): Add sound.o.
9966
9967 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9968
9969 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9970 (HAVE_SYS_SOUNDCARD_H): New.
9971
99721998-12-03 Gerd Moellmann <gerd@gnu.org>
9973
9974 * buffer.h (struct buffer): indicate_empty_lines renamed from
9975 indicate_zv_lines.
9976
9977 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9978 (default-indicate-zv-lines): Likewise.
9979
9980 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9981 to indicate_empty_line_p.
9982
9983 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9984 to next_element_from_buffer.
9985
9986 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9987
9988 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9989 and `N-'.
9990
9991 * xfns.c (xbm_scan): New.
9992 (xbm_read_hexint): Removed.
9993 (xbm_read_bitmap_file_data): Use xbm_scan.
9994
9995 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9996
99971998-12-02 Gerd Moellmann <gerd@gnu.org>
9998
9999 * xfns.c (xbm_read_hexint): New.
10000 (xbm_read_bitmap_file_data): New.
10001 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
10002 instead of XReadBitmapFileData.
10003
10004 * xdisp.c (handle_raise_prop): Compute voffset from current font.
10005
10006 * xfaces.c (face_with_height): New.
10007
10008 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
10009 (eval_form): Renamed from eval_mode_element.
10010 (handle_face_prop): Use it.
10011 (Qheight): Replaces Qsmaller.
10012 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 10013 (handle_face_prop): If iterator's font_height is not an
26901792
DL
10014 integer, evaluate it to get the font height to use.
10015
10016 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
10017 (struct it): Use `font_height' instead of `smaller'.
10018
100191998-12-01 Gerd Moellmann <gerd@gnu.org>
10020
10021 * xdisp.c (reseat_1): New.
10022 (reseat): Call it.
10023 (move_it_vertically_backward): Ditto.
10024 (redisplay_window): Don't abort when cursor not found in recenter.
10025
100261998-11-30 Gerd Moellmann <gerd@gnu.org>
10027
10028 * xdisp.c (reseat_at_next_visible_line_start): When not
10029 currently delivering display elements from the current buffer,
10030 restore buffer position first.
10031 (init_from_display_pos): Don't set IT's position from the
10032 position passed to this function.
10033
100341998-11-28 Gerd Moellmann <gerd@gnu.org>
10035
10036 * config.in (PROTO): Removed.
10037
10038 * xterm.h: Change PROTO to P_.
10039
100401998-11-26 Gerd Moellmann <gerd@gnu.org>
10041
10042 * xterm.c (take_vertical_position_into_account): New.
10043 (x_produce_image_glyph): Call it.
10044 (x_produce_stretch_glyph): Ditto.
10045 (x_produce_glyphs): Ditto.
10046 (x_fill_glyph_string): Adjust base line for glyph's voffset.
10047 (x_fill_composite_glyph_string): Ditto.
10048 (x_fill_image_glyph_string): Ditto.
10049 (x_fill_stretch_glyph_string): Ditto.
10050
10051 * xdisp.c (display_line): Always compute row height from
10052 max_ascent and max_descent.
10053
10054 * dispextern.h (struct glyph): Add voffset.
10055 (struct it): Replace height by descent, max_height by max_descent.
10056
10057 * xterm.c (x_append_glyph): Set voffset
10058 (x_append_stretch_glyph): Ditto.
10059 (x_produce_image_glyph): Ditto.
10060 (x_produce_glyphs): Take voffset into account.
10061 (x_produce_image_glyph): Ditto.
10062 (x_produce_stretch_glyph): Ditto.
10063
10064 * dispextern.h (struct it): Add voffset.
10065 * xdisp.c (push_it): Save voffset.
10066 (pop_it): Restore it.
10067
10068 * xdisp.c (it_props): Add entry for `raise'.
10069 (handle_raise_prop): New.
10070
10071 * dispextern.h (RAISE_PROP_IDX): New.
10072
10073 * xdisp.c (Qraise): New.
10074 (syms_of_xdisp): Define Qraised.
10075
10076 * xterm.c (x_scroll_bar_move): Clear to the left and right
10077 of toolkit scroll bars differently.
10078 (x_scroll_bar_move): Removed.
10079 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
10080
10081 * dispextern.h: Make it compilable --with-x=no.
10082 * alloc.c: Ditto.
10083 * emacs.c: Ditto.
10084 * dispnew.c: Ditto.
10085 * keyboard.c: Ditto.
10086 * term.c: Ditto.
10087 * xdisp.c: Ditto.
10088 * xfaces.c: Ditto.
10089 * xfns.c: Ditto.
10090 * xmenu.c: Ditto.
10091
100921998-11-25 Gerd Moellmann <gerd@gnu.org>
10093
10094 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
10095
100961998-11-24 Gerd Moellmann <gerd@gnu.org>
10097
10098 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
10099 update slider size, only.
10100 (xm_scroll_callback): Set dragging member of the scroll bar.
10101 (xt_action_hook): Reset last_scroll_bar_part.
10102 (XTredeem_scroll_bar): Reset bar->dragging to nil.
10103
26901792
DL
10104 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
10105 window on newly created frames that don't have one.
10106
101071998-11-23 Gerd Moellmann <gerd@gnu.org>
10108
10109 * xdisp.c (restore_overlay_strings): Removed.
10110 (restore_dpvec): Removed.
10111 (init_from_display_pos): Inline both functions above.
10112
10113 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
10114 (parse_image_spec): Handle it.
10115 (xbm_format): Use it.
10116 (xpm_format): Ditto.
10117 (pbm_format): Ditto.
10118 (jpeg_format): Ditto.
10119 (tiff_format): Ditto.
10120 (gif_format): Ditto.
10121 (gs_format): Ditto.
10122
10123 * xdisp.c (set_window_cursor): Removed.
10124 (redisplay_internal): Case cursor motion in cursor line of
10125 selected window; use set_cursor_from_row.
10126
101271998-11-22 Gerd Moellmann <gerd@gnu.org>
10128
10129 * widget.c (EmacsFrameSetCharSize): Take widget's border width
10130 into account.
10131
101321998-11-21 Gerd Moellmann <gerd@gnu.org>
10133
10134 * xterm.c (expose_frame): Redraw menu bar window.
10135
10136 * xdisp.c (display_menu_bar): Record hpos instead of x-position
10137 in menu item.
10138
10139 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
10140 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
10141
10142 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
10143 to determine vertical_scroll_bar_extra.
10144 (EmacsFrameSetCharSize): Ditto.
10145 * xfns.c (x_figure_window_size): Ditto.
10146
10147 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
10148 (x_draw_bitmap): Ditto.
10149
10150 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10151 * xfaces.c (realize_basic_faces): Realize it.
10152
101531998-11-20 Gerd Moellmann <gerd@gnu.org>
10154
10155 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10156 under LessTif Use the widget of the frame as parent for the
26901792
DL
10157 menu, again.
10158
101591998-11-19 Gerd Moellmann <gerd@gnu.org>
10160
10161 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10162 When EnterNotify, don't generate a mouse movement event if
10163 notification is from a busy-cursor child window.
10164
10165 * xterm.h (struct x_output): Add busy_window, remove cursor.
10166
10167 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10168 Use a transparent window to display the busy-cursor.
10169 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10170
101711998-11-17 Gerd Moellmann <gerd@gnu.org>
10172
10173 * xdisp.c (check_window_end): New, for debugging.
10174 (CHECK_WINDOW_END): New.
10175 (try_window_id): Use it.
10176
10177 * xterm.c (process_expose_from_menu): Return int.
10178
10179 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10180 TOOLBAR_EVENT events in last_nonmenu_event.
10181
101821998-11-16 Gerd Moellmann <gerd@gnu.org>
10183
10184 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10185 window end isn't reliable, so set window_end_valid to nil.
10186 (redisplay_internal): If overlay arrow has changed, set
10187 windows_or_buffers_changed to redisplay thoroughly.
10188
10189 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10190 necessary.
10191
10192 * xfns.c (file_dialog_cb): New.
10193 (Fx_file_dialog): New.
10194 * fileio.c (Fread_file_name): Call it.
10195
427ec082 10196 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10197 selection dialog.
10198
101991998-11-14 Gerd Moellmann <gerd@gnu.org>
10200
10201 * xterm.c (note_mouse_highlight): Don't highlight when popup
10202 is active.
10203
26901792
DL
10204 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10205 timer-event-handler. This busy cursor tends to be anoying if
10206 fontifying stealthily.
10207
10208 * dispnew.c (direct_output_for_insert): Give up if current row
10209 contains trailing whitespace.
10210
102111998-11-13 Gerd Moellmann <gerd@gnu.org>
10212
10213 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10214
10215 * xdisp.c (handle_fontified_prop): New.
10216 (Vfontification_functions): New.
10217 (Qfontification_functions): New.
10218 (it_props): Add handle_fontified_prop.
10219
102201998-11-12 Gerd Moellmann <gerd@gnu.org>
10221
10222 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10223 Otherwise, under LessTif, after the popup has gone, all button
10224 press events come in for the frame's widget, and release events
10225 come in for the edit_widget.
10226 * xterm.c (XTread_socket): Remove workaround for that problem.
10227 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10228 XmScrollBarSetValues.
10229 (SET_SAVED_MENU_EVENT): Give it statement form.
10230
26901792
DL
10231 * xfaces.c (display_message): If waiting_for_input, don't display
10232 the message.
10233
10234 * window.c (scroll_command): If not acting on current_buffer,
10235 make redisplay consider all windows.
10236
10237 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10238
10239 * xdisp.c (handle_glyph_prop): Set it->object for images to
10240 the object having the glyph property.
10241
10242 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10243 invisible.
10244
102451998-11-11 Gerd Moellmann <gerd@gnu.org>
10246
10247 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10248 (x_term_init): Create the gray pixmap.
10249 (x_setup_relief_color): Use it.
10250 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10251 internal border at the top of a frame.
10252 (x_init_glyph_string): Likewise.
427ec082 10253 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10254 full-width lines.
10255 (XTflash): Don't flash the toolbar window.
10256
10257 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10258 in case of ButtonPress events.
10259
102601998-11-10 Gerd Moellmann <gerd@gnu.org>
10261
10262 * xrdb.c (x_load_resources): Add grey background colors as
10263 defaults for menus, scroll bars, and dialogs.
10264
10265 * insdel.c (prepare_to_modify_buffer): Move setting
10266 windows_or_buffers_changed from modify_region here.
10267
10268 * xfns.c (Fx_show_tip): Inhibit redisplay.
10269 (Fx_hide_tip): Ditto.
10270 (Fx_image_header): New.
10271
102721998-11-09 Gerd Moellmann <gerd@gnu.org>
10273
10274 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10275 when clearing current window matrices.
10276
102771998-11-08 Gerd Moellmann <gerd@gnu.org>
10278
10279 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10280 position from a string position. Use the right end position
10281 if the property spans a whole overlay string.
10282
102831998-11-07 Gerd Moellmann <gerd@gnu.org>
10284
10285 * xmenu.c (menubar_selection_callback): Remove workaround for
10286 Lesstif not calling XmNpopdownCallback because it doesn't
10287 handle the case where users don't select any menu item.
10288
26901792
DL
10289 * insdel.c (modify_region): Set windows_or_buffers_changed.
10290
10291 * buffer.c (set_buffer_internal): Don't set
10292 windows_or_buffers_changed.
10293
26901792
DL
10294 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10295
26901792
DL
10296 * xmenu.c (menubar_selection_callback): Add workaround for
10297 Lesstif not calling XmNpopdownCallback.
10298
10299 * xdisp.c (eval_mode_element): New.
10300 (eval_mode_handler): New.
10301 (display_mode_element): Use eval_mode_element.
10302
10303 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10304 Remove code looking at text props of default value.
10305
10306 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10307
26901792
DL
103081998-11-06 Gerd Moellmann <gerd@gnu.org>
10309
427ec082 10310 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10311 BUTTON_TYPE_NONE.
10312 (single_submenu): Likewise for panes and menu items.
10313 (set_frame_menubar): Set button_type of menu bar to none.
10314 (xmenu_show): Likewise.
10315 (single_submenu): Set widget values selected slot.
10316 (xmenu_show): Likewise.
10317
26901792
DL
10318 * xmenu.c (push_menu_item): Add parameters `type' and
10319 `selected'. Store it in menu_items.
10320 (MENU_ITEMS_ITEM_TYPE): New.
10321 (MENU_ITEMS_ITEM_SELECTED): New.
10322 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10323
10324 * xfns.c (clear_image_cache): Get the current time, before
10325 doing anything.
10326 (cache_image): Set prev pointer of next image.
10327 (clear_image_cache): Clear current matrices if any image was
10328 freed.
10329
10330 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10331
10332 * xfns.c (x_set_cursor): New.
10333 (Fx_display_busy_cursor): New.
10334 (Fx_undisplay_busy_cursor): New.
10335
10336 * xterm.h (struct x_output): Add busy_cursor.
10337
10338 * xfns.c (Vx_busy_pointer_shape): New.
10339 (x_set_mouse_color): Create busy cursor.
10340
10341 * process.c (wait_reading_process_input): Show and hide busy
10342 cursor.
10343
10344 * keyboard.c (command_loop_1): Display busy cursor.
10345
10346 * eval.c (Fsignal): Hide busy cursor.
10347
10348 * buffer.c (set_buffer_internal): Don't set
10349 windows_or_buffers_changed.
10350
10351 * xterm.c (redo_mouse_highlight): New.
10352
103531998-11-04 Gerd Moellmann <gerd@gnu.org>
10354
26901792
DL
10355 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10356 (x_build_heuritic_mask): New.
10357 (lookup_image): Call it.
10358
10359 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10360 (previous_help_echo): New.
10361 (XTread_socket): Generate help event with nil message when
10362 leaving a region with help-echo.
10363 (note_mouse_highlight): Handle `help-echo' over text.
10364 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10365 CirculateRequest.
10366 (clear_mouse_face): Don't clear if tooltip is shown.
10367 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10368 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10369
10370 * keyboard.c (Vshow_help_function): New.
10371 (read_char): Use it.
10372
103731998-11-03 Gerd Moellmann <gerd@gnu.org>
10374
10375 * xfns.c (x_create_tip_frame): New.
10376 (Fx_show_tip): New.
10377 (Fx_hide_tip): New.
10378
427ec082 10379 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10380 a widget.
10381
10382 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10383 to full_width_p. Add internal_border_p.
10384
103851998-11-02 Gerd Moellmann <gerd@gnu.org>
10386
10387 * xterm.c (note_mode_line_highlight): Check the charpos of
10388 the glyph under the mouse pointer before accessing text
10389 properties at that position.
10390
103911998-11-01 Gerd Moellmann <gerd@gnu.org>
10392
10393 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10394
10395 * xdisp.c (auto-raise-toolbar-buttons): New.
10396 (build_desired_toolbar_string): Handle the flag.
10397 (toolbar-button-margin): New.
10398 (toolbar-button-relief): New.
10399 (build_desired_toolbar_string): Use margin and relief.
10400
10401 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10402 for FreeBSD.
10403 (note_mode_line_highlight): New.
10404 (note_mouse_highlight): Call it.
10405
104061998-10-31 Gerd Moellmann <gerd@gnu.org>
10407
10408 * s/freebsd.h (NARROWPROTO): New.
10409
10410 * xdisp.c (display_string): New parameter face_string.
10411 (display_mode_element): When displaying a symbol with a string
10412 value, use text properties from the symbol's default value, maybe.
10413
10414 * xrdb.c (x_load_resources): Add font defaults for menus and
10415 dialogs.
10416
104171998-10-30 Gerd Moellmann <gerd@gnu.org>
10418
10419 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10420
104211998-10-29 Gerd Moellmann <gerd@gnu.org>
10422
10423 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10424 produced for characters with codes < 32 under certain
10425 circumstances.
10426
10427 * xdisp.c (redisplay_window): Handle values of PT in front
10428 of invisible, intangible text.
427ec082 10429 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10430 displaying lines.
10431 (display_mode_element): Assign to glyphs written for a mode
10432 line spec `%x' as object the Lisp format string, as position
10433 the position of the `%' in that string.
10434 (display_string): If displaying a C string, optionally get
10435 the face to use from a Lisp string.
10436
10437 * xterm.c (expose_window_tree): Include mode line height.
10438
10439 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10440
104411998-10-27 Gerd Moellmann <gerd@gnu.org>
10442
10443 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10444 over mode line.
10445
104461998-10-26 Gerd Moellmann <gerd@gnu.org>
10447
10448 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10449
10450 * xdisp.c (redisplay_window): If mode line height has changed,
10451 arrange for a thorough immediate redisplay using the correct mode
10452 line height.
10453 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10454
10455 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10456 (CURRENT_MODE_LINE_HEIGHT): New.
10457 (DESIRED_MODE_LINE_HEIGHT): New.
10458
10459 * keyboard.c (make_lispy_event): Add string and string position
10460 info to mouse-click events.
10461 (read_key_sequence): Handle `local-map' property of mode line
10462 strings.
10463
10464 * keyboard.h (POSN_STRING): New.
10465
104661998-10-25 Gerd Moellmann <gerd@gnu.org>
10467
10468 * dispnew.c (mode_line_string): Mew.
10469
10470 * xterm.c (xt_action_hook): New.
10471 (x_create_toolkit_scroll_bar): Add action hook.
10472 (xm_scroll_callback): Implement dragging.
10473
10474 * keyboard.c (Qend_scroll): New.
10475 (scroll_bar_parts): Add it.
10476
10477 * termhooks.h (scroll_bar_end_scroll): New.
10478
10479 * xterm.c (XTread_socket): Bug fix.
10480
104811998-10-24 Gerd Moellmann <gerd@gnu.org>
10482
10483 * xdisp.c (redisplay_window): Finish scroll bars after
10484 redisplaying toolbar.
10485
10486 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10487 (syms_of_keyboard): Add Qbottom.
10488
10489 * termhooks.h (scroll_bar_to_top): New.
10490 (scroll_bar_to_bottom): New.
10491
10492 * xdisp.c (redisplay_window): Always resize toolbar window if
10493 auto_resize_toolbar_p is non-zero.
10494 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10495 (window_box): New.
10496 (window_box_height): New.
10497 (window_box_width): New.
10498 (window_box_left): New.
10499 (window_box_right): New.
10500 (window_box_edges): New.
10501
105021998-10-23 Gerd Moellmann <gerd@gnu.org>
10503
10504 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10505 XawScrollbarSetThumb in FreeBSD.
10506 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10507 to true.
10508
10509 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10510 is out of range.
10511
10512 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10513 (x_term_init): Initialize it.
10514
10515 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10516
10517 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10518 cursor.
10519
105201998-10-22 Gerd Moellmann <gerd@gnu.org>
10521
10522 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10523 differently when using toolkit scroll bars.
10524
10525 * xterm.c (x_send_scroll_bar_event): New.
10526 (x_scroll_bar_to_input_event): New.
10527 (xaw3d_scroll_callback): New.
10528 (xaw3d_jump_callback): New.
10529 (xm_scroll_callback): New.
10530 (x_toolkit_scroll_p): New.
10531 (XTread_socket): Handle scroll bar client message.
10532 (x_term_init): Initialize Xatom_Scrollbar.
10533 (x_scroll_bar_create): Set cursor.
10534 (xm_scroll_callback):
10535 (x_create_toolkit_scroll_bar): New.
10536 (x_set_toolkit_scroll_bar_thumb): New.
10537 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10538 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10539
10540 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10541
105421998-10-21 Gerd Moellmann <gerd@gnu.org>
10543
10544 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10545 (XTread_socket): Don't handle mouse button events for scroll bars
10546 if using toolkit scroll bars.
10547 (XTset_vertical_scroll_bar): Set thumb size and position for
10548 Athena scroll bar.
10549
10550 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10551
10552 * xterm.c (XTread_socket): Dispatch expose event to widget
10553 if using toolkit scroll bars.
10554 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10555 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10556 if using toolkit scroll bars.
10557 (x_scroll_bar_move): Handle tookit scroll bars.
10558
10559 * Makefile.in (LIBW): Use Xaw3d if present.
10560
10561 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10562 (HAVE_XAW3D): New.
427ec082 10563
26901792
DL
10564 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10565 (HAVE_XAW3D): New.
10566
427ec082 10567 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10568 right vertical scroll bar.
10569
105701998-10-20 Gerd Moellmann <gerd@gnu.org>
10571
10572 * xfns.c (xpm_load): Support reading XPM images from string
10573 buffers containing data in the same format as an XPM file.
10574 Support `:color-symbols'.
10575 (xpm_format): Add `:data'.
10576 (xpm_keyword_index): Add XPM_DATA.
10577 (syms_of_xfns): Add `:color-symbols'.
10578 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10579 (xpm_valid_color_symbols_p): New.
10580 (xpm_image_p): Call it.
10581
10582 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10583 attribute to the image if item is not enabled.
10584
10585 * xfns.c (x_laplace): New.
10586 (x_laplace_read_row): New.
10587 (x_laplace_write_row): New.
10588 (lookup_image): Handle common image attributes here. New
10589 attribute `:algorithm'.
10590
10591 * xfaces.c (clear_face_cache): Call clear_image_cache.
10592
10593 * xterm.c (x_inverted_image_mask): Removed.
10594 (x_draw_image_foreground_1): New.
10595 (x_draw_image_glyph_string): Draw images with mask to a temporary
10596 pixmap to reduce flickering.
10597
10598 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10599 (display_toolbar_line): Remove parameter `margin'.
10600
106011998-10-19 Gerd Moellmann <gerd@gnu.org>
10602
10603 * xdisp.c (toolbar_lines_needed): New.
10604 (auto-resize-toolbars): New.
10605
10606 * xfns.c (cache_image): Correct call to xrealloc.
10607
10608 * dispnew.c (Fset_toolbar_height): Removed.
10609
10610 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10611 FRAME_MENU_BAR_LINES.
10612
10613 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10614 instead of FRAME_MENU_BAR_LINES.
10615 (check_frame_size): Ditto.
10616
10617 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10618 instead of FRAME_MENU_BAR_LINES.
10619 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10620 (build_frame_matrix): Ditto.
10621 (change_frame_size_1): Ditto.
10622
10623 * frame.h (FRAME_TOOLBAR_LINES): New.
10624 (FRAME_TOP_MARGIN): New.
10625
10626 * window.c (struct save_window_data): Add frame_toolbar_lines.
10627 (Fset_window_configuration): Handle toolbar lines.
10628 (Fcurrent_window_configuration): Save toolbar lines.
10629
10630 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10631
10632 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10633
10634 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10635
10636 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10637 (x_set_toolbar_lines): New.
10638
10639 * keyboard.c (cmd_error_internal): Bug fix.
10640
10641 * xterm.c: Remove double include of syssignal.h.
10642
106431998-10-18 Gerd Moellmann <gerd@gnu.org>
10644
10645 * xterm.c (x_toolbar_item): New.
10646 (x_handle_toolbar_click): Use it.
10647 (note_toolbar_highlight): Use it.
10648
10649 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10650 and toolbar_items_vectors.
10651
10652 * xterm.c (help_echo): New.
10653 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10654 (x_set_glyph_string_gc): Handle them.
10655 (x_after_update_window_line): Don't do anything in pseudo-windows.
10656 (x_produce_image_glyph): Take image margin and face relief into
10657 account.
10658 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10659 (x_draw_glyph_string_background): Optimize case when face has
10660 relief.
10661 (x_setup_relief_color): Take frame instead of glyph string
10662 parameter.
10663 (x_draw_relief_rect): New.
10664 (x_draw_glyph_string_relief): Call it.
10665 (x_draw_image_glyph_string_foreground): Handle margin and image
10666 relief.
10667 (x_draw_image_glyph_string_background): Ditto.
10668 (expose_frame): Redraw toolbar window.
10669 (expose_window): Don't draw cursor for pseudo-windows.
10670 (x_y_to_hpos_vpos): Handle pseudo-windows.
10671 (frame_to_window_pixel_xy): New.
10672 (note_mouse_highlight): Call note_toolbar_highlight.
10673 (x_handle_toolbar_click): New.
10674 (note_toolbar_highlight): New.
10675 (show_mouse_face): Change int parameter `hl' to parameter of
10676 type enum draw_glyphs_face. Handle image highlighting.
10677 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10678 non-nil. Use x_handle_toolbar_click.
10679
10680 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10681
10682 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10683 IMAGE_BOOL_VALUE.
10684 (parse_image_spec): Handle them.
10685 (image_spec_value): Additional parameter found.
427ec082 10686 (free_image): Remove image from the vector `images' of the
26901792
DL
10687 image cache.
10688 (clear_image_cache): Additional parameter force_p.
10689 (Fclear_image_cache): New.
10690 (x_find_image_file): New.
10691 (xbm_load): Handle `:margin' and `:relief'. Use
10692 x_find_image_file.
10693 (xpm_load): Likewise.
10694 (pbm_load): Likewise.
10695 (jpeg_load): Likewise.
10696 (tiff_load): Likewise.
10697 (gif_load): Likewise.
10698
10699 * keyboard.c (Qhelp_echo): New symbol.
10700 (read_char): Handle `toolbar' and `help_echo' events.
10701 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10702 (make_lispy_event): Handle TOOLBAR_EVENT.
10703 (toolbar_items): New.
10704 (process_toolbar_item): New.
10705 (PROP): New.
10706 (init_toolbar_items): New.
10707 (append_toolbar_item): New.
10708 (read_char_x_menu_prompt): Handle `toolbar' event.
10709 (read_key_sequence): Ditto.
10710
10711 * xfaces.c (Qtoolbar): New.
10712 (realize_basic_faces): Realize `toolbar' face.
10713 (face_at_string_position): Remove parameter modeline_p, add
10714 base_face_id.
10715
10716 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10717 to read data.
10718
107191998-10-17 Gerd Moellmann <gerd@gnu.org>
10720
10721 * xdisp.c (init_iterator): Replace parameter modeline_p with
10722 base_face_id.
10723 (next_element_from_string): Call get_next_display_element
10724 recursively after handling text properties.
10725 (prepare_menu_bars): Call update_toolbar.
10726 (update_toolbar): New.
10727 (build_desired_toolbar_string): New.
10728 (display_toolbar_line): New.
10729 (redisplay_toolbar): New.
10730 (toolbar_item_info): New.
10731 (redisplay_window): Call redisplay_toolbar.
10732 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10733
10734 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10735 window.
10736 (clear_desired_matrices): Ditto.
10737 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10738 (free_glyphs): Free matrices of toolbar window.
10739 (update_frame): Update toolbar window.
10740 (change_frame_size_1): Take toolbar into account.
10741 (Fset_toolbar_height): New.
10742
10743 * dispextern.h (struct it): Remove member modeline_p, add
10744 base_face_id.
10745 (struct image): Add members relief and margin.
10746 (IMAGE_ASCENT): Include margin in height.
10747
107481998-10-14 Gerd Moellmann <gerd@gnu.org>
10749
10750 * xfns.c (Fclear_image_cache): New.
10751
10752 * xfaces.c (realize_basic_faces): Realize toolbar face.
10753 (face_at_string_position): Remove parameter modeline_p, add
10754 base_face_id.
10755
10756 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10757
107581998-10-13 Gerd Moellmann <gerd@gnu.org>
10759
10760 * keyboard.c (syms_of_keyboard): Intern `:help'.
10761
107621998-10-12 Gerd Moellmann <gerd@gnu.org>
10763
10764 * xterm.c (note_toolbar_highlight): New.
10765 (note_mouse_highlight): Call it.
10766
10767 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10768 (coordinates_in_window): Handle toolbar window.
10769
10770 * keyboard.c (toolbar_items): New.
10771 (process_toolbar_item): New.
10772 (parse_toolbar_item): New.
10773 (init_toolbar_items): New.
10774 (append_toolbar_item): New.
10775
10776 * dispextern.h (enum toolbar_item_idx): New.
10777 (enum toolbar_item_image): New.
10778
10779 * frame.h (struct frame): Add toolbar-related members.
10780
10781 * xfaces.c (face_at_string_position): Remove assertion that
10782 current_buffer == window's buffer. This is not the case when
10783 called for the toolbar window.
10784
10785 * frame.c (make_frame): Initialize toolbar members.
10786
10787 * alloc.c (mark_object): Mark toolbar data of frames.
10788
10789 * frame.h (struct frame): Add toolbar-related members
10790 toolbar_window, desired_toolbar_items, current_toolbar_items,
10791 desired_toolbar_string, current_toolbar_string,
10792 n_desired_toolbar_items, n_current_toolbar_items. Add
10793 window_height.
10794
10795 * xterm.c (x_after_update_window_line): Don't draw bitmap
10796 areas for pseudo-windows.
10797 (expose_frame): Handle toolbar window.
10798 (expose_window): Don't do cursor stuff for pseudo-windows.
10799
10800 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10801
108021998-10-11 Gerd Moellmann <gerd@gnu.org>
10803
10804 * frame.c (make_frame): Initialize toolbar_window.
10805
10806 * alloc.c (mark_object): Make the toolbar window.
10807
10808 * dispnew.c (update_frame): Update frame's toolbar_window.
10809 (clear_current_matrices): Likewise.
10810 (clear_desired_matrices): Likewise.
10811 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10812 (free_glyphs): Free the toolbar window and its matrices.
10813
10814 * frame.h (struct frame): Add toolbar_window.
10815
10816 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10817 with relief.
10818
108191998-10-10 Gerd Moellmann <gerd@gnu.org>
10820
427ec082 10821 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10822 window start is not in the range BEGV..ZV.
10823
108241998-10-09 Gerd Moellmann <gerd@gnu.org>
10825
10826 * xdisp.c (try_scrolling): Experimentally handle the case
10827 that scroll-preserve-screen-position is set to `always'.
10828
10829 * window.c (Vscroll_preserve_screen_position): Replacement for
10830 scroll_preserve_screen_position.
10831
108321998-10-08 Gerd Moellmann <gerd@gnu.org>
10833
10834 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10835 doesn't like it.
10836 * xdisp.c: Ditto.
10837
10838 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10839
108401998-10-06 Gerd Moellmann <gerd@gnu.org>
10841
427ec082 10842 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10843 i_byte when prompts are inserted into minibuffers.
10844
10845 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10846 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10847 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10848
108491998-10-04 Gerd Moellmann <gerd@gnu.org>
10850
10851 * xdisp.c (make_cursor_line_fully_visible): New.
10852 (try_scrolling): New.
10853 (redisplay_window): Move scrolling code to try_scrolling.
10854 (make_cursor_line_fully_visible): Handle case of window too small
10855 to show a single line.
10856 (redisplay_window): Case forced window start---use
10857 make_cursor_line_fully_visible.
10858 (redisplay_window): Case cursor movement via current matrix.
10859 If ending up on a partially visible line, make it fully visible
10860 instead of recentering.
10861 (try_scrolling): Additional parameter scroll_smoothly.
10862
10863 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10864
108651998-09-28 Gerd Moellmann <gerd@gnu.org>
10866
10867 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10868 instead of y-position for scroll-preserved-screen-position.
10869
108701998-09-07 Gerd Moellmann <gerd@gnu.org>
10871
10872 * dispnew.c (update_frame_line): If current row is not enabled,
10873 write the whole line.
10874
108751998-09-06 Gerd Moellmann <gerd@gnu.org>
10876
10877 * lisp.h (HAVE_FACES): Removed.
10878
10879 * dispextern.h (HAVE_FACES): Removed.
10880
10881 * config.in (HAVE_FACES): Removed.
10882
10883 * dispnew.c (HAVE_FACES): Removed.
10884
10885 * xdisp.c (HAVE_FACES): Removed.
10886
10887 * xfaces.c (HAVE_FACES): Removed.
10888
108891998-09-05 Gerd Moellmann <gerd@gnu.org>
10890
10891 * xdisp.c (init_iterator): If face_change_count is non-zero,
10892 free realized faces.
10893
10894 * xfaces.c (free_all_realized_faces): Make it externally visible.
10895 (Finternal_set_lisp_face_attribute): Increment
10896 windows_or_buffers_changed.
10897
10898 * dispnew.c (direct_output_for_insert): Give up if
10899 face_change_count is non-zero.
10900 (direct_output_forward_char): Ditto.
10901
10902 * xfaces.c (face_change_count): New.
10903
109041998-09-04 Gerd Moellmann <gerd@gnu.org>
10905
10906 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10907 of range.
10908
109091998-09-03 Gerd Moellmann <gerd@gnu.org>
10910
10911 * term.c (Ftty_display_color_p): New.
10912
109131998-09-02 Gerd Moellmann <gerd@gnu.org>
10914
10915 * xfaces.c (Ftty_defined_colors): New.
10916
10917 * xterm.c (x_produce_glyphs): Fix computation of
10918 contains_overlapping_glyphs_p for ASCII.
10919
10920 * dispnew.c (Fshow_cursor): Don't change cursor state while
10921 redisplaying.
10922 (direct_output_for_insert): If a glyph with lbearing or rbearing
10923 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10924
109251998-09-01 Gerd Moellmann <gerd@gnu.org>
10926
10927 * term.c (OUTPUT_IF): Make replacement text have statement form.
10928 (OUTPUT1_IF): Ditto.
10929 (TS_italic_mode, TS_end_italic_mode): Removed.
10930 (TS_bold_mode): Removed.
10931 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10932 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10933 (TS_enter_reverse_mode): New.
10934 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10935 (TN_magic_cookie_glitch_ul): New.
10936 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10937 (TS_exit_attribute_mode): New.
10938 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10939 (TS_set_foreground, TS_set_background): New.
10940 (reset_terminal_modes): Switch colors back to default.
10941 (write_glyphs): Turn face on before writing text, turn it off
10942 afterwards.
10943 (insert_glyphs): Ditto.
10944 (term_init): Initialize new terminal capability variables.
10945 (turn_on_face): Turn a face on.
10946 (turn_off_face): Turn a face off.
10947
10948 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10949 (GLYPH_CHAR): Ditto.
10950 (GLYPH_FACE): Ditto.
10951
10952 * xfaces.c (Vface_tty_color_alist): New.
10953 (face-register-tty-color): New.
10954 (face-clear-tty-colors): New.
10955
10956 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10957 (struct it): Remove member faces_p since we now always have faces.
10958
109591998-08-31 Gerd Moellmann <gerd@gnu.org>
10960
10961 * dispextern.h (struct face): Add tty appearance flags.
10962
10963 * xdisp.c (init_iterator): Always handle faces.
10964 (extend_face_to_end_of_line): Handle tty frames.
10965
10966 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10967 passed in.
10968
109691998-08-30 Gerd Moellmann <gerd@gnu.org>
10970
10971 * xfaces.c (realize_default_face): Use empty strings to indicate
10972 that the face should use the default foreground/background
427ec082 10973 color of the terminal. Fill font-related attributes with
26901792
DL
10974 appropriate values for tty frames.
10975
10976 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10977
10978 * xfaces.c (realize_default_face): If face `default' is not
10979 yet known, create it.
10980
10981 * frame.c (make_terminal_frame): Call init_frame_faces
10982 unconditionally.
10983
10984 * xfaces.c (init_frame_faces): Make it work for tty frames.
10985 (free_frame_faces): Ditto.
10986 (clear_face_cache): Ditto.
10987 (recompute_basic_faces): Ditto.
10988 (Fframe_face_alist): Ditto.
10989 (free_realized_face): Ditto.
10990 (prepare_face_for_display): Ditto.
10991 (clear_face_gcs): Ditto.
10992 (lookup_face): Ditto.
10993 (smaller_face): Ditto.
10994 (realize_default_face): Ditto.
10995 (realize_face): Ditto.
10996 (realize_face): Dispatch to functions depending on the frame type.
10997 (realize_x_face): X way of realizing faces.
10998 (realize_tty_face): TTY way of realizing faces.
10999
110001998-08-29 Gerd Moellmann <gerd@gnu.org>
11001
11002 * xfaces.c (realize_face): Remove parameter unibyte_registry,
11003 compute it instead.
11004 (lookup_face): Remove local variable unibyte_registry.
11005
110061998-08-22 Gerd Moellmann <gerd@gnu.org>
11007
11008 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
11009 1 pixel longer.
11010
427ec082 11011 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
11012 of face in buffer.
11013
11014 * editfns.c (make_buffer_string_both): If prompt in buffer,
11015 prevent start > end.
11016
11017 * indent.c (Fvertical_motion): Set current_buffer to window's
11018 buffer if it isn't already.
11019
110201998-08-21 Gerd Moellmann <gerd@gnu.org>
11021
11022 * dispextern.h (GLYPH_DEBUG): Use default 0.
11023
11024 * xdisp.c (it_props): New member `smaller'.
11025 (init_iterator): Initialize it.
11026 (Qsmaller): New.
11027 (push_it): Save value of `smaller' value on the stack.
11028 (pop_it): Restore `smaller' from the stack.
11029 (handle_smaller_prop): New.
11030 (handle_face_prop): Use `smaller' text property to select a
11031 suitable face.
11032
11033 * dispextern.h (SMALLER_PROP_IDX): New.
11034 (struct it): Add member `smaller'.
11035
11036 * xfaces.c (smaller_face): New.
11037
11038 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
11039
11040 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
11041 total pixel width of window differently.
11042
11043 * xdisp.c (init_iterator): Compute width of mode line differently.
11044
11045 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
11046 of bitmap areas.
11047
11048 * window.c (Fsplit_window): Include width of bitmap areas in
11049 window width.
11050 (window_internal_width): Subtract width of bitmap areas from
11051 total width.
11052
110531998-08-18 Gerd Moellmann <gerd@gnu.org>
11054
11055 * xdisp.c: Functions reordered for better readability.
11056
11057 * dispnew.c (update_text_area): Handle glyphs with arbitrary
11058 lbearing.
11059 (update_window_tree): Parameter no_scrolling_p removed.
11060 (update_single_window): Ditto.
11061
11062 * xterm.c (x_get_char_font_and_encoding): Renamed to
11063 x_get_char_face_and_encoding.
11064
11065 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
11066 if end of current row reached.
11067
11068 * xterm.c (x_get_glyph_face_and_encoding): New.
11069 (x_get_glyph_overhangs): Call it.
11070
11071 * xdisp.c (Qshow_trailing_whitespace): New.
11072 (Qtrailing_whitespace): New.
11073 (enum prop_handled): New.
11074 (struct props, it_props): New.
11075 (next_overlay_change): New. Works like Fnext_overlay_change
11076 but doesn't use xmalloc.
11077 (handle_stop): Restructured.
11078 (face_before_or_after_it_pos): Case iteration over a string: fix
11079 handling of face before current position.
11080
110811998-08-16 Gerd Moellmann <gerd@gnu.org>
11082
11083 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
11084 reallocation matrix if fonts_changed_p.
11085 (update_text_area): Handle glyphs with lbearing.
11086
110871998-08-14 Gerd Moellmann <gerd@gnu.org>
11088
11089 * xdisp.c (struct props): New.
11090 (it_props): New.
11091 (compute_prop_info): New.
11092 (handle_stop): New.
11093
11094 * textprop.c (validate_interval_range): Make it externally
11095 visible.
11096
11097 * dispnew.c (direct_output_for_insert): Remove calls
11098 to compute_stop_pos.
11099
11100 * dispextern.h (struct it): Remove check_charpos,
11101 next_overlay_pos. Add what_changes.
11102
111031998-08-10 Gerd Moellmann <gerd@gnu.org>
11104
11105 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
11106
11107 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
11108 face_default_registry instead.
11109
11110 * syntax.c (scan_sexps_forward): Set up syntax table before
11111 jumping to initial state label.
11112
111131998-08-09 Gerd Moellmann <gerd@gnu.org>
11114
11115 * dispnew.c (check_matrix_invariants): Handle case of row end pos
11116 >= ZV specially.
11117
111181998-08-08 Gerd Moellmann <gerd@gnu.org>
11119
11120 * xdisp.c (redisplay_window): Case cursor movement---if cursor
11121 ends up in partially visible row, try to scroll. Case forced
11122 window start---handle windows not tall enough to show a single
11123 line.
11124
11125 * window.h (struct window): Member dy renamed vscroll.
11126
11127 * xterm.c (x_list_fonts): Re-activate suppression of scalable
11128 fonts.
11129 (x_draw_stretch_glyph_string): Set clipping if using GC that
11130 hasn't set it yet.
11131
11132 * xdisp.c (redisplay_window): Case forced window start -
11133 don't let cursor end on partially visible row. Use desired
11134 matrix to find a suitable PT if it doesn't appear.
11135 (decode_mode_spec): Merged with 20.2.97.
11136 (try_window_reusing_current_matrix): Give up if old or
11137 new display is vscrolled.
11138 (redisplay_window): Reset vscrolling if forced window start,
11139 or if recentering.
11140
111411998-08-06 Gerd Moellmann <gerd@gnu.org>
11142
11143 * xfaces.c (realize_default_face): Use the fontset name instead of
11144 the alias for the family attribute of the default face because we
11145 can't easily determine a good alias from fontset-alias-alist.
11146 (face_fontset): Use Fquery_fontset to find the fontset.
11147 (font_list): Additional pattern parameter.
11148 (try_font_list): Ditto.
11149 (set_lface_from_font_name): Set face family from font foundry
11150 and family.
11151 (font_list): If family contains a hyphen, build pattern differently.
11152
111531998-08-05 Gerd Moellmann <gerd@gnu.org>
11154
11155 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11156 changed instead of setting the frame garbaged.
11157
11158 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11159 all attribute values. This is wrong if values are unspecified,
11160 i.e. nil.
11161
11162 * xdisp.c (try_window_id): Give up if window start changed.
11163
11164 * xfaces.c (make_realized_face): Store registry as Lisp object.
11165 (load_face_font_or_fontset): Compute registry of a face
11166 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11167 possible.
11168
11169 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11170 differently.
11171
11172 * alloc.c (mark_face_cache): Mark the registry member of faces.
11173
11174 * dispextern.h (struct face): Make registry a Lisp string.
11175
111761998-08-04 Gerd Moellmann <gerd@gnu.org>
11177
11178 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11179 multibyte_p. Handle unibyte text.
11180 (x_append_glyph): Set the multibyte_p flag of glyphs.
11181 (x_produce_image_glyph): Ditto.
11182 (x_append_stretch_glyph): Ditto.
11183 (x_produce_glyphs): Handle unibyte text like ASCII.
11184
11185 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11186 stack.
11187 (pop_it): Restore it.
11188 (face_before_or_after_it_pos): Handle the case that the string or
11189 buffer is unibyte.
11190 (get_overlay_strings): Set the multibyte flag of the iterator if
11191 the new overlay string is multibyte.
11192 (get_glyph_property): Likewise.
11193 (get_next_display_element): Don't check for charset changes in
11194 unibyte text.
11195 (append_space): Compute face differently for unibyte text.
11196 (extend_face_to_end_of_line): Don't return quickly if face has
11197 stipple.
11198
11199 * xfaces.c (load_face_font_or_fontset): Store registry and
11200 encoding of the font in the registry member of the face.
11201 (make_realized_face): Additional parameter `registry'.
11202 (free_realized_face): Free the registry of a realized face.
11203 (face_suitable_for_charset_p): Function form of the macro
11204 with the same name in uppercase.
11205 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11206 (choose_face_font): New parameter unibyte_registry.
11207 (choose_face_fontset_font): Ditto.
11208 (realize_default_face): Remember the registry and encoding of
11209 the specified frame font in Vx_unibyte_registry_and_encoding.
11210 (face_at_buffer_position): Handle unibyte.
11211 (face_at_string_position): Likewise.
427ec082 11212 (realize_face): New parameter unibyte_registry.
26901792
DL
11213 (compute_char_face): Handle the unibyte case.
11214
11215 * dispextern.h (struct glyph): Add bit multibyte_p.
11216 (struct face): New member registry holding the registry and
11217 encoding of the X font of the face.
11218 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11219 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11220 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11221 text.
11222 (struct iterator_stack_entry): Add multibyte_p.
11223
11224 * xdisp.c (string_pos): Use string_char_to_byte.
11225 (char_charset): Removed.
11226
112271998-08-03 Gerd Moellmann <gerd@gnu.org>
11228
11229 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11230 rectangle for a block cursor over an image without a mask.
11231 (x_stretch_block_cursor): Added. Non-zero means don't draw
11232 a block cursor over a stretch as wide as that stretch.
11233 (x_draw_stretch_glyph_string): Use it.
11234 (x_draw_hollow_cursor): Ditto.
11235
11236 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11237 (read_minibuf): Add front-sticky text property for prompt.
11238
11239 * xdisp.c (char_charset): Return charset of a character,
11240 depending on whether or not multi-byte characters are enabled.
11241
11242 * xfaces.c (Fset_face_charset_registry): Removed.
11243 (x_charset_registry): Determine registry from charset plist.
11244
112451998-08-02 Gerd Moellmann <gerd@gnu.org>
11246
11247 * xdisp.c (get_next_display_element): Don't check for charset
11248 changes if multi-byte characters are not enabled.
427ec082 11249
26901792 11250 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11251 redisplay interface.
26901792
DL
11252 * keyboard.c (detect_input_pending_run_timers): Likewise.
11253
11254 * dispextern.h (produce_*glyphs_hook): Removed.
11255 * term.c (produce_*glyphs): Ditto.
11256 (cursor_to): Remove pixel position parameters.
11257
11258 * dispnew.c: Remove hooks for window-based redisplay, introduce
11259 a redisplay interface structure.
11260
11261 * xterm.c (x_per_char_metric): Return default char metrics if per
11262 char metric exists but contains a zero width. Adobe Courier seems
11263 to contain such characters.
11264
11265 * xdisp.c (compute_line_metrics): Compute the width of rows
11266 without stopping at glyphs with zero width.
11267
112681998-08-01 Gerd Moellmann <gerd@gnu.org>
11269
11270 * xdisp.c (display_mode_line): If nothing was displayed at all,
11271 display a space.
11272 (hscroll_window_tree): Don't subtract 1 from target point if equal
11273 to ZV and window is not the selected window.
11274
11275 * dispnew.c (check_matrix_invariants): Remove check for window
11276 start at BEGV or after newline. This happens in rare cases
11277 intentionally.
11278
112791998-07-31 Gerd Moellmann <gerd@gnu.org>
11280
11281 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11282 (syms_of_xfaces): Add Vface_default_registry.
11283 (x_charset_registry): Use it.
11284
11285 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11286 (redisplay_window): Use it.
11287
11288 * dispnew.c (update_text_area): Handle lbearing of deleted text
11289 by backing up one character.
11290
112911998-07-30 Gerd Moellmann <gerd@gnu.org>
11292
427ec082 11293 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11294 decide to do nothing.
11295
11296 * xfaces.c (face_at_string_position): Additional parameter
11297 mode_line_p. If non-zero, merge with the mode line face
11298 instead of the default face.
11299 * dispextern.h (struct it): Add mode_line_p.
11300 * xdisp.c (init_iterator): Set it.
11301 (compute_face_in_string): Use it.
11302 (face_before_or_after_it_pos): Handle strings.
11303 (get_next_display_element): Don't look for relief end in C strings.
11304 (next_element_from_string): Deliver string position instead of
11305 buffer position.
11306
11307 * xterm.c (x_flush): Flush X output buffer.
11308 (XTflash): Use it.
11309
11310 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11311 Allow strings as face names.
11312
11313 * xfns.c (forall_images_in_image_cache): Check that frame is
11314 alive.
11315
11316 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11317 it's also called from x_destroy_window. Since this function is
11318 called from X, freeing stuff allocated with xmalloc is dangerous
11319 here, anyway.
11320
11321 * xfaces.c (free_realized_faces): Don't clear current matrices
11322 of a frame being destroyed.
11323
427ec082 11324 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11325 Fset_window_buffer.
11326
11327 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11328 with an additional argument specifying whether or not hooks may
11329 be called.
11330 (Fset_window_buffer): Call it.
11331
11332 * dispnew.c (clear_desired_matrices): Check that frame has
11333 a valid root window before clearing matrices in the window tree.
11334 (clear_current_matrices): Ditto.
11335 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11336 vchild are valid windows if not nil.
11337
11338 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11339 for :inverse-video.
11340 (Finternal_set_lisp_face_attribute): Ditto.
11341 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11342 (Finternal_get_lisp_face_attribute): Ditto.
11343 (Finternal_lisp_face_attribute_values): Ditto.
11344 (syms_of_xfaces): Define the symbol `:reverse-video'.
11345
11346 * xdisp.c (get_glyph_property): Renamed from
11347 fill_iterator_from_glyph_property.
11348 (next_element_from_buffer): Handle case that no `glyph' property
11349 was found correctly.
11350 (display_line): Extend face to end of line only if we have faces.
11351
113521998-07-29 Gerd Moellmann <gerd@gnu.org>
11353
11354 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11355 additional window argument.
11356
11357 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11358 set_iterator_to_previous_visible_line_start.
11359 (reseat_at_next_visible_line_start): Likewise.
11360 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11361 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11362 (compute_face_in_buffer): Renamed from
11363 compute_face_at_iterator_position.
11364 (compute_face_in_string): Renamed from
11365 compute_face_at_iterator_string_position.
11366 (get_space_width): Renamed from get_iterator_space_width.
11367 (next_overlay_string): Renamed from
11368 set_iterator_to_next_overlay_string.
11369 (get_overlay_strings): Renamed from
11370 get_overlay_strings_at_iterator_position.
11371 (restore_overlay_strings): Renamed from
11372 setup_overlay_strings_from_glyph_pos.
11373 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11374 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11375 (init_to_row_start): Renamed from init_iterator_to_row_start.
11376 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11377
11378 * xterm.c: Merge with 20.2.97.
11379 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11380
11381 * dispextern.h (struct glyph): Replace text_pos position with
11382 simple charpos.
11383
11384 * xdisp.c (this_line_start_pos): Use struct text_pos.
11385 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11386 (enum move_it_result): Renamed from move_iterator_result.
11387 (string_pos_nchars_ahead): Compute text_pos in a string from a
11388 known text_pos plus a character delta.
11389 (string_pos): Compute text_pos in string from charpos.
11390 (c_string_pos): Likewise for a C string.
11391 (number_of_chars): Return number of characters in a possibly
11392 multi-byte C string.
11393 (check_it): Renamed from check_iterator. Check that charpos and
11394 bytepos are in sync.
11395 (push_it): Renamed from save_iterator_settings.
11396 (pop_it): Renamed from restore_iterator_settings.
11397 (move_it_.*): Renamed from move_iterator_.*.
11398 (charset_at_position): Take charpos/bytepos into account.
11399 (back_to_previous_line_start): Set iterator to previous line start.
11400 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11401 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11402 move_iterator_previous_visible_line_start.
11403 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11404 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11405 Handle charpos/bytepos.
11406 (compute_face_at_iterator_position): Handle charpos/bytepos.
11407 (compute_face_at_iterator_string_position): Likewise.
11408 (get_iterator_space_width): Likewise.
11409 (load_overlay_strings): Likewise.
11410 (get_overlay_strings_at_iterator_position): Likewise.
11411 (reseat_iterator): Take a text_pos position argument.
11412 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11413 bytepos.
11414 (init_iterator): Take additional bytepos parameter.
11415 (reseat_iterator_to_string): Handle charpos/bytepos.
11416 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11417 (next_element_from_string): Handle charpos/bytepos.
11418 (next_element_from_c_string): Likewise.
11419 (fill_iterator_from_glyph_property): Likewise.
11420 (next_element_from_buffer): Likewise.
11421 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11422 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11423 (move_it_to): Likewise.
11424 (move_it_vertically_backward): Likewise.
11425 (move_it_vertically): Likewise.
11426 (move_it_by_lines): Likewise.
11427 (hscroll_window_tree): Likewise.
11428 (redisplay_internal): Likewise.
11429 (set_cursor_from_row): Likewise.
11430 (redisplay_window): Likewise.
11431 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11432 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11433 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11434 (try_window_id): Handle charpos/bytepos.
11435 (Ftrace_redisplay_toggle): Return Qnil.
11436 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11437 (insert_left_trunc_glyphs): Likewise.
11438
11439 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11440 do a real merge).
11441 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11442 (increment_glyph_row_buffer_positions): Ditto.
11443 (copy_glyph_row_contents): Ditto.
11444 (check_matrix_invariants): Add additional checks for charpos/
11445 bytepos consistency.
11446 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11447 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11448 `direction-reversed' in #if 0.
11449
11450 * xterm.h: Merge with 20.2.97.
427ec082 11451
26901792
DL
11452 * frame.h: Merge with 20.2.97.
11453
11454 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11455
11456 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11457 start.
11458 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11459 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11460 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11461 (struct it): Various members renamed from .*pos to .*charpos.
11462 (IT_CHARPOS): Access current buffer character position of an
11463 iterator.
11464 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11465 (IT_STRING_CHARPOS): Access current string character position of
11466 an iterator.
11467 (IT_STRING_BYTEPOS): Access current string byte position of
11468 an iterator.
11469 (globally): Add function prototypes from 20.2.97.
11470
11471 * everywhere: Use P_ instead of PROTO for function prototypes
11472 because everyone else seems to use P_.
11473
11474 * dispextern.h (struct text_pos): Structure describing a charpos/
11475 bytepos position in text.
11476 (BYTEPOS): Access the byte position part of a text_pos.
11477 (CHARPOS): Likewise for the character position.
11478 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11479 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11480 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11481 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11482 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11483 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11484 for buffer and string positions.
11485 (struct glyph): Use text_pos.
11486 (struct it): Renamed from display_iterator. Use text_pos.
11487
114881998-07-23 Gerd Moellmann <gerd@gnu.org>
11489
11490 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11491 pixmap.
11492
114931998-07-21 Gerd Moellmann <gerd@gnu.org>
11494
11495 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11496 * xterm.c (x_draw_row_bitmaps): Use it.
11497 * dispnew.c (row_equal_p): Ditto.
11498 (update_window_line): Ditto.
11499
11500 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11501 flag of images.
11502
11503 * dispextern.h (struct image): Removed member loading_failed_p.
11504 It's probably better to have the chance to try to load an image
11505 again.
11506
115071998-07-20 Gerd Moellmann <gerd@gnu.org>
11508
11509 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11510 at ZV if `indicate-zv-lines' is non-nil.
11511 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11512
11513 * dispnew.c (row_equal_p): Compare displays_text_p and
11514 ends_at_zv_p flags of rows.
11515 (update_window_line): Ditto.
11516
11517 * buffer.h (struct buffer): New member indicate_zv_lines.
11518
11519 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11520 (init_buffer_once): New variable `default-indicate-zv-lines'.
11521 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11522
11523 * xdisp.c (redisplay_window): Don't try moving the cursor
11524 if current glyph row w->last_cursor.vpos isn't enabled.
11525
11526 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11527
11528 * window.c (Fset_window_vscroll): Allow only negative scroll
11529 values. Others don't seem to make sense, and this way it's easy
11530 to restore a vscroll of zero.
11531
11532 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11533 allocated.
11534 (x_draw_image_glyph_string_background): Don't clip if pixmap
11535 could not be created.
11536
11537 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11538 be created.
11539 (xbm_load): Ditto.
11540 (gs_load): Ditto.
11541
11542 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11543 glyphs into account.
11544
11545 * xfaces.c (realize_default_face): Don't set font family of
11546 the default face from the fontset alias name for `fontset-startup'.
11547
11548 * xfns.c (gs_load): Pass frame's pixel foreground and background
11549 color to the Lisp loader.
11550
115511998-07-19 Gerd Moellmann <gerd@gnu.org>
11552
11553 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11554 libtiff34.
11555
11556 * configure.in (--with-tiff, HAVE_TIFF): Added.
11557
11558 * config.in (HAVE_TIFF): Added.
11559
11560 * Makefile.in (LIBTIFF): Added.
11561
11562 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11563
11564 * Makefile.in (LIBJPEG): Added.
11565
11566 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11567 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11568 jpeglib.h.
11569
427ec082 11570 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11571 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11572 configure must be run with `--x-includes=/usr/X11R6/include:
11573 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11574
115751998-07-18 Gerd Moellmann <gerd@gnu.org>
11576
11577 * config.in (HAVE_JPEG): Added.
11578
11579 * xfns.c (ct_init): Initialize color table used to map RGB colors
11580 from images to X pixel colors.
11581 (ct_free): Free color table.
11582 (ct_lookup): Look an RGB color up.
11583 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11584 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11585 image specification.
11586 (pbm_scan_number): Scan a decimal ASCII number from a file.
11587 (pbm_load): Load a PPM image.
11588
11589 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11590 necessary. Take canonical character units as parameter.
11591 (Fwindow_vscroll): Return canonical character units.
11592
11593 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11594 w->dy to display height for which glyph rows must be allocated.
11595
115961998-07-17 Gerd Moellmann <gerd@gnu.org>
11597
11598 * xfaces.c (face_at_string_position): Merge in region face
11599 so that it won't overwrite the font in the region.
11600 (face_at_buffer_position): Ditto.
11601 (realize_basic_faces): Don't realize region face.
11602
11603 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11604
11605 * xterm.c (x_set_glyph_string_background_width): Don't let
11606 cursor face extend to end of line.
11607
11608 * xdisp.c (append_space): If adding space of default face,
11609 make sure glyph ist produced with right face.
11610
11611 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11612 background color of a glyph string.
11613 (x_draw_glyph_string_background): Call it.
11614 (x_draw_glyph_string_bg_rect): Ditto.
11615 (x_draw_stretch_glyph_string): Ditto.
11616
116171998-07-15 Gerd Moellmann <gerd@gnu.org>
11618
11619 * xdisp.c (init_iterator): Initialize it->current_y to the
11620 window's vscroll w->dy.
11621
11622 * window.c (Fwindow_vscroll): Return number of pixels window
11623 is vscrolled smoothly.
11624 (Fset_window_vscroll): Set the number.
11625
11626 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11627 to_pos in truncated part of a line.
11628
116291998-07-14 Gerd Moellmann <gerd@gnu.org>
11630
11631 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11632 doesn't fit on the line, truncate it, despite truncate_lines nil.
11633 (display_line): Ditto.
11634
11635 * xfns.c: Experimental support for Ghostscript images.
11636
11637 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11638 (XTread_socket): React on events from Ghostscript.
11639 (expose_frame): If width or height are zero, redraw entire frame.
11640 (XTread_socket): Call expose_frame after receiving event from
11641 Ghostscript.
11642
11643 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11644 for Ghostscript support.
11645
11646 * xdisp.c (redisplay_internal): Return quickly if called
11647 recursively.
11648
11649 * alloc.c (NSTATICS): Increased to 1024.
11650
116511998-07-08 Gerd Moellmann <gerd@gnu.org>
11652
11653 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11654 iterator's glyph row.
11655 (x_produce_stretch_glyph): Call it.
11656 (x_produce_glyphs): Handle `space-width' property; call
11657 x_append_stretch_glyph.
11658
11659 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11660 property.
11661 (get_iterator_space_width): Determine value of `space-width'
11662 property at iterator's position.
11663 (reseat_iterator): Call it.
11664 (next_element_from_string): Ditto.
11665 (next_element_from_buffer): Ditto.
11666 (init_iterator): Initialize space_width of iterator.
11667 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11668 moved, but cursor blinks.
11669 (redisplay_internal): Set w->last_cursor_off_p after update.
11670
11671 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11672 (struct display_iterator): Add new member space_width.
11673
11674 * window.h (struct window): Add last_cursor_off_p.
11675
116761998-07-07 Gerd Moellmann <gerd@gnu.org>
11677
11678 * Saved.
11679
11680 * window.c (Fpos_visible_in_window_p): Case window not up to
11681 date---return nil if iterator hasn't reached position.
11682
116831998-07-06 Gerd Moellmann <gerd@gnu.org>
11684
11685 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11686 overlays have changed.
11687 (redisplay_window): Case cursor movement. Don't try it if
11688 last_cursor.vpos is out of range.
11689
11690 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11691 way, the display optimization for the line containing the cursor
11692 is used more frequently, esp. when we have a blinking cursor.
11693 (display_line): Don't set this_line_.* variables.
11694
11695 * xterm.c (x_redraw_cursor): Removed.
11696 (x_display_and_set_cursor): Set cursor type depending on
11697 cursor_off_p flag of window.
11698
11699 * dispnew.c (redraw_cursor_hook): Removed.
11700 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11701 member of the selected window.
11702
11703 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11704
11705 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11706 Return glyph area under x/y.
11707 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11708
11709 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11710 after redisplaying.
11711
117121998-07-05 Gerd Moellmann <gerd@gnu.org>
11713
11714 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11715 are all outside of a line of text.
11716 (redisplay_internal): Use it.
11717
117181998-06-30 Gerd Moellmann <gerd@gnu.org>
11719
11720 * xdisp.c (next_element_from_buffer): After skipping over
11721 invisible text, look for the `glyph' property.
11722 (set_iterator_stop_pos): Ignore check positions in front
11723 of an iterator's current position.
11724
11725 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11726 anymore or which are marked as not having valid contents.
11727
11728 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11729 realized faces if new attribute value is equal to old value.
11730
117311998-06-29 Gerd Moellmann <gerd@gnu.org>
11732
11733 * xfaces.c (Finternal_make_lisp_face): Increment
11734 lface_id_to_name_size when lface_id_to_name is reallocated.
11735
117361998-06-27 Gerd Moellmann <gerd@gnu.org>
11737
11738 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11739 as minimum of endpos and overlay_pos.
11740 (load_overlay_strings): Set next_overlay_pos of iterator to
11741 -1 if we don't have to check for more overlay strings.
11742
117431998-05-09 Gerd Moellmann <gerd@gnu.org>
11744
11745 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11746 do anything if iterator is at ZV because scan_buffer doesn't
11747 work otherwise.
11748
11749 * xterm.c (x_encode_char): Inline it.
11750 (x_get_char_font_and_encoding): Simplified.
11751 (x_per_char_metric): Inline it.
11752
11753 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11754
11755 * xdisp.c (get_next_display_element): Check for end of relief
11756 face moved here from next_element_from_buffer.
11757
11758 * xterm.c (x_produce_image_glyph): Add relief thickness.
11759 (x_produce_stretch_glyph): Ditto.
11760
117611998-05-08 Gerd Moellmann <gerd@gnu.org>
11762
11763 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11764 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11765
11766 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11767 from a glyph property.
11768 (x_produce_glyphs): Use it.
11769
11770 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11771
427ec082 11772 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11773 in text area.
11774 (x_produce_glyphs): Ditto.
11775
427ec082 11776 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11777 marginal areas.
11778
427ec082 11779 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11780 background of an image glyph string.
427ec082 11781 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11782 the background of a glyph string.
11783 (x_draw_image_glyph_string_foreground): Draw the foreground of
11784 an image glyph string.
11785 (x_inverted_image_mask): Return the inverted mask of an image.
11786
11787 * xfns.c (x_draw_image): Removed.
11788
11789 * dispextern.h (struct image_type): Remove drawing function.
11790
11791 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11792
11793 * xdisp.c (get_next_display_element): In marginal areas, translate
11794 newlines, tabs, etc. like normal control characters.
11795
11796 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11797 and color.
11798 (free_realized_faces): Set frame garbaged.
11799
11800 * xfaces.c (syms_of_xfaces): Add defsubr for
11801 internal-lisp-face-attribute-values.
11802
118031998-05-07 Gerd Moellmann <gerd@gnu.org>
11804
11805 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11806 full.
11807 (x_produce_image_glyph): Set IT->nglyphs to 1.
11808 (x_draw_image_glyph_string): Use inverted mask to draw background.
11809
11810 * dispextern.h (struct image_type): Additional clipping rect
11811 parameters for drawing functions.
11812
427ec082 11813 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11814 a glyph string.
11815 (x_draw_image_glyph_string): Use it and pass the rect to the
11816 image drawing function.
11817
11818 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11819 first character with `glyph' property as image position. Set
11820 iterator back to that position as long as the image hasn't been
11821 consumed with set_iterator_to_next.
11822 (set_cursor_from_row): Accept when glyph with given position is
11823 not found in the row. Set cursor x to end of line in that case,
11824 so that we can hscroll.
11825 (redisplay_internal): Correct computation of delta by which
11826 positions have changed in redisplay optimization for cursor
11827 row of selected window.
11828
11829 * xdisp.c (display_line): Remove start_pos.
427ec082 11830 (display_line): Fix bug preventing display optimization for
26901792
DL
11831 cursor line of selected window.
11832 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11833 instead.
11834
11835 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11836 (update_text_area): Take glyph pixel width into account
11837 when trying to find a resync point.
11838 (row_equal_p): Compare glyphs in all areas.
11839
118401998-05-06 Gerd Moellmann <gerd@gnu.org>
11841
11842 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11843
11844 * dispextern.h (struct glyph_row): Use unsigned hash value.
11845
11846 * xdisp.c (display_line): Simplified and made faster by setting
11847 the cursor with set_cursor_from_row.
11848 (set_cursor_from_row): Handle rows of desired matrix.
11849
118501998-05-05 Gerd Moellmann <gerd@gnu.org>
11851
11852 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11853 with type != CHAR_GLYPH.
11854 (fill_iterator_from_glyph_property): Return void. Set
11855 method to next_element_from_image.
11856 (next_element_from_image): Dummy function for delivering a
11857 single image id.
11858 (set_iterator_to_next): Add method next_element_from_image.
11859 (redisplay_window): When recentering, and cursor vpos is -1
11860 after display, assume middle of window is in first line displayed
11861 in window, and display again.
427ec082 11862 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11863 the position of the first character having the glyph property.
11864
11865 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11866 * xfns.c (x_draw_image): Use it.
11867 * xterm.c (x_produce_image_glyph): Use it.
11868
11869 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11870
11871 * Makefile.in: Extraneous #define of LIBXPM removed.
11872
11873 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11874 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11875 stretch glyph.
11876 (x_compute_glyph_string_overhangs): Compute overhangs only
11877 for text glyph strings.
11878 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11879 (x_draw_glyph_string): Call it.
11880
11881 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11882 (struct glyph): Add sub-structure for stretchable glyphs.
11883 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11884
11885 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11886 #ifdef HAVE_FACES.
11887
11888 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11889
11890 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11891 setup_iterator_from_glyph_property. Don't do it for terminal
11892 frames.
11893
11894 * xterm.c (x_produce_image_glyph): Produce glyph for image
11895 that can't be loaded.
11896
11897 * xfns.c (lookup_image): If image can't be loaded, set its
11898 width and height so that we can draw a rectangle.
11899 (x_draw_image): Draw a rectangle for images that don't have
11900 a pixmap.
11901 (make_image): Set hash value.
11902 (image_spec_equal_p): Use image_spec_value.
11903
11904 * xterm.c (expose_frame): Don't try to redraw if basic faces
11905 haven't benn realized yet.
427ec082 11906 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11907 is not as tall as row.
11908
119091998-05-04 Gerd Moellmann <gerd@gnu.org>
11910
11911 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11912 (LIBX)[HAVE_X11]: Add LIBXPM.
11913
11914 * xfns.c (xpm_image_p): Implementation of image type functions
11915 for XPM.
11916 (xpm_load): Ditto.
11917
11918 * dispextern.h (struct image): Add mask pixmap for XPM.
11919
11920 * xfns.c (x_draw_image): Handle images with masks.
11921
11922 * configure.in: --with-xpm added. Code detecting -lXpm added.
11923
11924 * config.in: Add HAVE_XPM.
11925
11926 * xfns.c (xbm_draw): Removed.
11927 (x_draw_image): Default implementation for drawing images.
11928 (xbm_keyword_index): Remove XBM_DEPTH.
11929 (xbm_format): Remove `:depth'.
11930 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11931 (xbm_load_image_from_file): Added for the same reason.
26901792 11932
427ec082 11933 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11934 glyph string.
11935 (x_draw_image_glyph_string): Pass ybase to image draw function.
11936
11937 * xfns.c (make_image): Set default baseline.
11938
11939 * xterm.c (x_produce_image_glyph): Compute ascent of image
11940 from its height and baseline percentage.
11941
11942 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11943 (xbm_format): Add description for `:baseline'.
11944 (xbm_image_spec_from_file): Add keywords from original spec to
11945 result.
11946 (xbm_load): Set baseline of image.
11947 (xbm_image_p): Check range for baseline.
11948
11949 * dispextern.h (struct image): Add member baseline.
11950
11951 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11952
11953 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11954
11955 * xdisp.c (get_next_display_element): Do character translations
11956 only if delivering characters.
11957
119581998-05-03 Gerd Moellmann <gerd@gnu.org>
11959
427ec082 11960 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11961 DISP_CHARACTER.
11962
11963 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11964 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11965
119661998-05-02 Gerd Moellmann <gerd@gnu.org>
11967
11968 * xfns.c (prepare_image_for_display): Set image timestamp.
11969 (clear_image_cache): Clear images if image's timestamp +
11970 Vimage_eviction_seconds is > now.
11971 (syms_of_xfns): New variables image-eviction-seconds, and
11972 image-types.
11973 (add_image_format): Add to image-types.
11974 (xbm_load): Support new image spec format.
11975 (x_alloc_image_color): Allocate a color for an image.
11976
11977 * dispextern.h (struct image): Add timestamp.
11978
11979 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11980 vectors of bool-vectors.
11981 (xbm_lisp_object_from_file): Build new format image spec.
11982
119831998-05-01 Gerd Moellmann <gerd@gnu.org>
11984
11985 * xfaces.c (init_frame_faces): Initialize image cache.
11986 (free_frame_faces): Free it.
11987
11988 * xterm.c (x_delete_display): Don't free image cache.
11989
11990 * emacs.c (main): Call init_xfns.
11991
119921998-04-30 Gerd Moellmann <gerd@gnu.org>
11993
11994 * alloc.c (mark_object): Mark objects in image cache.
11995
427ec082 11996 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11997 widget_store_internal_border_width.
11998
11999 * widget.c (widget_store_internal_border): Return void.
12000
12001 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
12002 void.
12003 (init_x_parm_symbols): Return void.
12004 (x_report_frame_params): Ditto.
12005 (x_set_border_pixel): Ditto.
12006 (syms_of_xfns): Ditto.
12007 (x_destroy_all_bitmaps): Use xfree instead of free.
12008
12009 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
12010
12011 * xterm.c (x_term_init): Initialize image_cache of display info.
12012 (x_delete_display): Free image cache.
12013
12014 * xterm.h (struct x_display_info): Add image_cache.
12015
12016 * xfns.c (make_image_cache): Allocate a new image cache.
12017 (free_image_cache): Free an image cache.
12018 (make_image): Allocate an image.
12019 (free_image): Free an image.
12020
12021 * dispextern.h (struct image): Structure describing an image.
12022 (struct image_cache): Structure describing an image cache.
12023
120241998-04-29 Gerd Moellmann <gerd@gnu.org>
12025
12026 * xdisp.c (check_iterator_glyph_property): Return int. Value is
12027 non-zero if iterator is filled with something to return.
12028 (next_element_from_buffer): Immediately return if
12029 setup_iterator_from_glyph_prop has filled iterator with pixmap.
12030 (next_element_from_string): Likewise.
12031
12032 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
12033
12034 * dispextern.h (struct glyph): Add pixmap_id.
12035 (display_element_type): Add DISP_PIXMAP.
12036
12037 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
12038 malloc/free.
12039
12040 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
12041 (clear_face_cache): Call it.
12042
12043 * xterm.c (x_query_font): Don't look at empty font table slots.
12044 (x_compute_min_glyph_bounds): Likewise.
12045 (x_term_init): Initialize font_table to null.
12046 (x_load_font): Change allocation of font_info structures so
12047 that it is possible to free fonts.
12048
427ec082 12049 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
12050 Only free fonts from filled font table entries.
12051
12052 * xfaces.c (best_matching_font): Support use of scalable fonts.
12053 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
12054
12055 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
12056 and resy.
12057 * xterm.c (x_term_init): Compute resx and resy.
12058
12059 * xfaces.c (split_font_name): Don't reject scalable fonts.
12060
427ec082 12061 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
12062 in #if 0.
12063
12064 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
12065 point size cannot be determined.
12066
12067 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
12068 width over all fonts on a frame.
12069 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
12070 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
12071 macros.
12072
12073 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
12074 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
12075 (x_load_font): Use x_compute_min_char_bounds.
12076
12077 * xterm.h (struct x_display_info): New members smallest_char_width
12078 and smallest_font_height.
12079
120801998-04-28 Gerd Moellmann <gerd@gnu.org>
12081
12082 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
12083 the same name if GC of face is zero.
12084
12085 * dispextern.h (struct face): Member non_ascii_gc removed.
12086
12087 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 12088 for characters < 0177 in default face. Prepare face for
26901792
DL
12089 display before returning it.
12090 (x_produce_glyphs): Use it->charset.
12091 (x_get_char_font_and_encoding): Simplified.
12092 (x_encode_char): Remove parameter `font'.
12093
12094 * xfaces.c (choose_face_font): If registry from charset symbol
12095 doesn't contain a `-', make it a pattern by appending "*-*".
12096
12097 * xdisp.c (check_iterator_glyph_property): Adjust limit for
12098 glyph_check_pos computation to character boundary.
12099
121001998-04-27 Gerd Moellmann <gerd@gnu.org>
12101
12102 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
12103
12104 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
12105 ASCII face for a given Lisp face id.
12106
12107 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
12108 account.
427ec082 12109 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
12110 new position is < original position.
12111 (check_iterator_glyph_property): Handle glyph property in strings.
12112 (next_element_from_string): Call above function.
12113 (next_element_from_display_vector): Handle faces in glyphs.
12114 (get_next_display_element): Set face_id of glyphs for
12115 control chars to zero.
12116
12117 * Makefile.in (term.o): Add dependency on dispextern.h.
12118
12119 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
12120 (display_line): Handle marginal areas.
12121 (move_iterator_in_display_line_to): Likewise.
12122
12123 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
12124
12125 * xfaces.c (face_at_buffer_position): Don't merge with nil
12126 text property.
12127 (face_at_string_position): Ditto.
12128
12129 * dispextern.h (struct display_iterator): Use a stack of saved
12130 values instead of saving check positions etc. individually.
12131
12132 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
12133 maybe pop the iterator's stack.
12134 (save_iterator_settings): Push a value on iterator's stack.
12135 (get_overlay_strings_at_iterator_position): Use it.
12136 (restore_iterator_settings): Pop the stack.
12137 (set_iterator_to_next_overlay_string): Use it.
12138
12139 * xfaces.c (try_font_list): Use alternative font families.
12140
121411998-04-26 Gerd Moellmann <gerd@gnu.org>
12142
12143 * xfaces.c (Fset_face_font_sort_order): Set the order in which
12144 font selection matches fonts.
12145 (Fface_font_sort_order): Return the font sort order.
12146 (best_matching_font): Find best matching font based on sort order.
12147 (cmp_font_names): Sort by given sort order.
12148
12149 * dispextern.h (struct display_iterator): New member faces_p.
12150 * xdisp.c (init_iterator): Initialize it->faces_p.
12151 (compute_face_at_iterator_string_position): Use it.
12152 (compute_face_at_iterator_position): Use it.
12153 (init_iterator): Use it.
12154 (display_mode_line): Ditto.
12155
12156 * xdisp.c (get_next_display_element): Put code choosing a face
12157 when the charset changes in #ifdef HAVE_FACES.
12158
427ec082 12159 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12160 lookup_face_for_charset.
12161
12162 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12163 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12164
121651998-04-25 Gerd Moellmann <gerd@gnu.org>
12166
12167 * xfaces.c (best_matching_font): Return the name of the best
12168 matching font in an array of font_name structures.
12169 (choose_face_font): Use it.
12170 (choose_face_fontset_font): Use it.
12171 (find_best_weight_font): If final font found has same weight as
12172 the font we started with, return the original font because it is a
12173 better match for the resolution of the display.
12174 (find_best_slant_font): Likewise.
12175 (merge_face_vector_with_property): Check more invalid attribute
12176 values.
12177 (lface_suitable_for_charset_p): Replaced by a macro with the same
12178 name in upper-case.
12179
121801998-04-24 Gerd Moellmann <gerd@gnu.org>
12181
12182 * dispextern.h (struct face): Member
12183 fontset_chosen_for_realization_p removed.
12184
12185 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12186 end of the collision list, so that we find more specific faces
12187 first.
12188 (lookup_face_for_charset): Look up a new face if face->fontset >=
12189 0, and charset != CHARSET_COMPOSITION.
12190
12191 * xfaces.c (split_font_name): Return zero if point size of font
12192 couldn't be computed.
12193 (realize_default_face): Use ASCII font of a fontset to determine
12194 font-related attributes of the default face.
12195 (face_fontset): Return fontset id for face family.
12196 (font_list): Additional parameter font_pattern. If non-nil,
12197 return fonts matching that pattern.
12198
121991998-04-23 Gerd Moellmann <gerd@gnu.org>
12200
12201 * xfaces.c (choose_face_fontset): If new fontset cannot be
12202 constructed, or fontset name cannot be split, return the id of the
12203 standard fontset.
12204
12205 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12206 When Emacs starts, it may be called for the initial frame which
12207 isn't an X frame.
12208
12209 * dispextern.h (struct face): New members foreground_defaulted_p,
12210 background_defaulted_p.
12211 (struct face): Members `mask' and `cache' removed.
12212
12213 * xfaces.c (load_color): Set them.
12214 (free_face_colors): Check them.
427ec082 12215 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12216 font unknown.
12217
12218 * xfaces.c (free_font): Removed.
12219 (load_face_font_or_fontset): Renamed from load_font.
12220 (load_face_font_or_fontset): Use message2 instead of signalling.
12221 (load_color): Likewise.
12222 (load_pixmap): Likewise.
12223
12224 * xterm.h (struct x_display_info): Add screen_dpi.
12225 * xterm.c (x_term_init): Initialize it.
12226 * xfaces.c (xlfd_point_size): Use it.
12227 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12228 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12229 similar to that of the frame appear first in the result.
12230
12231 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12232 is set for the face to cache, add it to the end of the collision
12233 list.
12234 (try_font_list): If fonts for given family and registry cannot
12235 be found, first try to keep the registry, and choose a different
12236 family.
12237 (choose_face_font): Allow nfonts == 0.
12238 (try_font_list): Give up if no font matches given registry.
12239
122401998-04-22 Gerd Moellmann <gerd@gnu.org>
12241
12242 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12243 font info id of the face.
12244
12245 * xfaces.c (load_font): Set font_info_id.
12246 (realize_face): Ditto.
12247
12248 * dispextern.h (struct face): Change member font_info to
12249 font_info_id.
12250
12251 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12252 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12253
12254 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12255 isn't ASCII, get the ASCII face before adding a space.
12256 (append_space): Likewise.
12257 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12258 to -1 so that it will compute the right face for the truncation
12259 glyphs.
12260
12261 * xfaces.c (realize_face): Set
12262 face->fontset_chosen_for_realization_p.
12263 (lookup_face_for_charset): If fontset wasn't specified originally
12264 and new charset != CHARSET_COMPOSITION, get a new face for that
12265 charset.
12266
12267 * dispextern.h (struct face): New member
12268 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12269 realize_face has chosen a fontset to display composite characters
12270 for a Lisp face not specifying a fontset.
12271
12272 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12273 face and line already filled here. Don't do anything if current
12274 face hasn't a relief or has a background equal to the frame
12275 background.
12276
12277 * xfaces.c (split_font_name): Additional parameter numeric_p.
12278 Don't compute numeric values if it is non-zero.
12279 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12280 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12281 font whose name cannot be split into fields.
12282
122831998-04-21 Gerd Moellmann <gerd@gnu.org>
12284
427ec082 12285 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12286 possibly using less restrictive patterns.
12287 (choose_face_font): Use it.
12288
12289 * xterm.c (x_get_char_font_and_encoding): For charset !=
12290 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12291
12292 * dispextern.h (struct face): New member font_info.
12293
12294 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12295 specifying a fontset as well as those not having a fontset.
12296 (free_font): Make it empty.
12297 (realize_face): Use changed load_font.
12298
12299 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12300 fit for charset, get the right one.
12301
12302 * xfaces.c (load_font): Take frame and name parameter, return
12303 font.
12304 (free_font): Likewise.
12305 (split_font_name): Compute numeric values for height, swidth etc.
12306 (cmp_font_names): Use them.
12307 (find_best_width_font): Ditto.
12308 (find_best_height_font): Ditto.
12309 (find_best_weight_font): Ditto.
12310 (find_best_slant_font): Ditto.
12311 (lface_hash): Add weight, slant, swidth and relief to hash value.
12312 (lface_equal_p): Make it faster.
12313 (lface_from_symbol): Use assq_no_quit.
12314 (Fnote_default_face_changed): Removed.
12315 (cmp_font_names): Use strcmp instead of xstricmp.
12316 (face_charset_registries): Removed.
12317
123181998-04-20 Gerd Moellmann <gerd@gnu.org>
12319
12320 * frame.h (CHECK_FRAME): Give this macro a statement form.
12321 (CHECK_LIVE_FRAME): Ditto.
12322
12323 * xfaces.c (find_best_width_font): Find the best matching font
12324 for a given width.
12325 (find_best_height_font): Likewise for height.
12326 (find_best_weight_font): Likewise for weight.
12327 (find_best_slant_font): Likewise for slant.
12328 (choose_face_font): Use them.
12329 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12330 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12331 global face attributes.
12332
12333 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12334 Lisp face attributes.
12335
123361998-04-19 Gerd Moellmann <gerd@gnu.org>
12337
12338 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12339 and :italic for compatibility.
12340 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12341 :bold and :italic. Handle boolean resource values for
26901792
DL
12342 :underline and :italic.
12343
12344 * xfns.c (display_x_get_resource): Make it externally visible.
12345
12346 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12347 If that frame is non-null, return the frame-local face.
12348 (Finternal_make_lisp_face): Additional frame argument.
12349 (lface_attributes): Get face attributes from global and frame-local
12350 definitions.
12351 (Finternal_lisp_face_equal_p): Additional frame argument.
12352 (merge_lisp_face_vector_with_property): Ditto.
12353 (Frealize_basic_faces): Removed.
12354 (Finternal_get_lisp_face_attribute): Additional frame argument.
12355 (Finternal_lisp_face_p): Ditto.
12356 (load_color) [MSDOS]: Removed because it isn't clear how
12357 to do this for MS-DOS.
12358
12359 * xfaces.c (lface_from_symbol): Get global face definition
12360 from face-global-alist.
12361
12362 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12363 as values for :underline and :inverse-video.
12364 (Finternal_set_lisp_face_attribute): Allow nil values.
12365
123661998-04-17 Gerd Moellmann <gerd@gnu.org>
12367
12368 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12369
12370 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12371 (Finternal_make_lisp_face): Add new face to Vall_faces.
12372
12373 * xdisp.c (echo_area_display): Remove code recomputing faces.
12374 (redisplay_internal): Ditto.
12375 (init_iterator): Do it here.
12376
12377 * xfaces.c (choose_face_font): Check that swidth doesn't change
12378 for subusequent attributes.
12379 (xlfd_point_size): Return int.
12380
12381 * xdisp.c (redisplay_internal, echo_area-display): If realized
12382 faces have been cleared, call recompute_basic_faces.
12383
12384 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12385 face_attributes_changed_p.
427ec082 12386 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12387 all frames.
12388 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12389
12390 * xdisp.c (redisplay_internal): If face attributes have been
12391 changed since the last redisplay, recompute basic faces.
12392 (echo_area_display): Ditto.
12393
12394 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12395
12396 * xfaces.c (min_char_bounds): If face cache not yet present,
12397 don't try to get font dimensions from faces.
12398
12399 * xterm.c (x_frame_mode_line_height): If face cache not present
12400 set, return default height.
12401
12402 * alloc.c (mark_face_cache): Check for null faces. Correct
12403 index bug.
12404
12405 * dispextern.h (struct face): Renamed from struct rface. Member
12406 underline renamed underline_p. Make it a bit-field.
12407
12408 * xfaces.c (init_frame_faces): Allocate face cache.
12409 (free_frame_faces): Free face cache.
12410 (recompute_basic_faces): Realize basic faces only if face cache is
12411 allocated, i.e. after init_frame_faces has been called.
12412
12413 * frame.c (make_frame): Initialze face cache with null.
12414
12415 * xfaces.c (same_size_fonts): Removed.
12416
427ec082 12417 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12418 s->gc != 0.
12419 (x_set_mouse_face_gc): Ditto.
12420 (x_set_mode_line_face_gc): Ditto.
12421
427ec082
SS
12422 * xfaces.c (realize_default_face): Return int. Value is
12423 zero if frame params don't contain enough information to
26901792
DL
12424 realize the default face.
12425 (realize_basic_faces): Ditto.
12426 (init_frame_faces): Realize basic faces.
12427
12428 * xfns.c (x_set_font): First store real font name in frame
12429 parameters, then call recompute_basic_faces.
12430
12431 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12432
124331998-04-16 Gerd Moellmann <gerd@gnu.org>
12434
12435 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12436
12437 * xfns.c (Fx_face_fixed_p): Removed.
12438 (Fx_list_fonts): Moved to xfaces.c.
12439
12440 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12441 face_at_buffer_position. Parameter charset removed; always
12442 compute face for CHARSET_ASCII.
12443 (face_at_string_position): Renamed from
12444 compute_face_at_string_pos. Parameter charset removed; always
12445 compute for CHARSET_ASCII.
427ec082 12446 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12447 face_cache.
12448 (lookup_face): Ditto.
12449 (compute_char_face): Renamed from compute_glyph_face.
12450
12451 * xdisp.c (init_iterator): Initialize charset member.
12452 (reseat_iterator_to_string): Ditto.
12453 (get_charset_at_buffer_position): Determine charset at
12454 buffer position in current_buffer.
12455 (reseat_iterator): Call above function.
12456 (compute_face_at_iterator_position): Call
12457 compute_face_at_buffer_pos.
12458 (compute_face_at_iterator_string_position): Call
12459 compute_face_at_string_pos.
12460 (get_face_from_id): Removed.
12461 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12462 Call get_charset_at_buffer_position.
12463 (reseat_iterator): Determine face if charset at pos differs
12464 from iterator's charset.
12465 (reseat_iterator_to_glyph_pos): Removed.
12466
12467 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12468 Determine charset from buffer position.
12469 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12470 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12471
12472 * dispextern.h (struct display_iterator): Add member charset.
12473
124741998-04-15 Gerd Moellmann <gerd@gnu.org>
12475
12476 * xfaces.c (compute_char_face): Removed.
12477
12478 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12479 with new parameter list.
12480
12481 * xfaces.c (region_face): Removed.
12482 (allocate_face): Removed.
12483 (copy_face): Ditto.
12484 (face_eql): Removed.
12485 (intern_face): Removed.
12486 (clear_face_cache): Removed.
12487 (load_font): Ditto.
12488 (unload_font): Ditto.
12489 (load_color): Ditto.
12490 (unload_color): Ditto.
12491 (new_computed_face): Ditto.
12492 (intern_computed_face): Ditto.
12493 (ensure_face_ready): Ditto.
12494 (merge_faces): Ditto.
12495 (compute_base_face): Ditto.
12496 (merge_face_list): Ditto.
12497 (Fmake_face_internal): Removed.
12498 (Fset_face_attribute_internal): Ditto.
12499 (face_name_id_number): Removed.
12500 (Fframe_face_alist): Ditto.
12501 (Fset_frame_face_alist): Ditto.
12502 (Finternal_next_face_id): Ditto.
12503
12504 * xterm.h (struct x_output): Remove computed_faces, and
12505 param_faces. Remove macros accessing them.
12506
12507 * xfaces.c: Entirely new face implementation added.
12508
125091998-04-11 Gerd Moellmann <gerd@gnu.org>
12510
12511 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12512 `charpos'.
12513
125141998-04-10 Gerd Moellmann <gerd@gnu.org>
12515
12516 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12517 scroll bar window to reduce flickering. Clear entire height.
12518
12519 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12520 current_x and hpos to zero after moving to previous line
12521 start.
12522
125231998-04-03 Gerd Moellmann <gerd@gnu.org>
12524
12525 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12526
12527 * xfaces.c (xlfd_point_size): Compute relative point size of
12528 fonts from font and frame resolution.
12529 (sort_fonts): New function to sort fonts, temporarily setting
12530 font_frame to the frame in effect.
12531 (xlfd_point_size): Take additional frame parameter to be able
12532 to get at the display's resolution.
12533
12534 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12535 BLACK_PIX_DEFAULT.
12536 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12537 screen of display.
12538
125391998-03-31 Gerd Moellmann <gerd@gnu.org>
12540
12541 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12542
12543 * fontset.h: Add external declarations for Vfontset_alias_alist
12544 and Vglobal_fontset_alist.
12545
12546 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12547 (realize_default_face): If frame parameters contain an artificial
12548 font name naming a fontset, set the family of the default face to
12549 the fontset name given by the registry.
12550
12551 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12552
125531998-03-22 Gerd Moellmann <gerd@gnu.org>
12554
12555 * alloc.c (mark_object): Add function prototype. Add cast to
12556 Lisp_Object pointer in call to mark_object for symbol names
12557 because this otherwise gives a warning from gcc 2.8.1.
12558 (mark_face_cache): Mark Lisp objects in realized faces.
12559
125601998-03-19 Gerd Moellmann <gerd@gnu.org>
12561
12562 * frame.h (struct frame): Add member face_cache.
12563
12564 * alloc.c (mark_object): Mark face cache.
12565 (mark_face_cache): Mark Lisp faces in face cache of frame.
12566
12567 * frame.c (make_frame): Initialize face_cache.
12568 (Fdelete_frame): Free it.
12569
125701998-03-18 Gerd Moellmann <gerd@gnu.org>
12571
12572 * xfaces.c: Very first skeleton of functions for face realization,
12573 face merging, face cache etc.
12574
12575 * dispextern.h (struct rface): Realized faces. Will replace
12576 struct face when tested.
12577 (struct face_cache): Realized face caches.
12578
12579 * xdisp.c (init_iterator): Initialize area member of display
12580 iterator.
12581
125821998-03-17 Gerd Moellmann <gerd@gnu.org>
12583
12584 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12585
12586 * dispextern.h (struct display_iterator): New member area.
12587
12588 * xterm.c (note_overwritten_text_cursor): Note when the text
12589 cursor of a window is overwritten.
12590
12591 * xdisp.c (set_cursor_from_row): If PT is not found in the
12592 row, display the cursor at the start of the row.
12593
12594 * dispnew.c (direct_output_forward_char): Call
12595 set_cursor_from_row.
12596
12597 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12598 position is not in an overlay string, set iterator's position and
12599 method explicitly so.
427ec082 12600 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12601 Make it externally visible.
12602 (redisplay_window): Call set_cursor_from_row so that there is only
12603 one place where the cursor position is calculated from a current
12604 row.
12605
12606 * dispextern.h (struct display_iterator): New member
12607 overlay_strings_at_end_processed_p.
12608
12609 * xdisp.c (check_iterator): Perform sanity checks on
12610 display_iterators.
12611 (next_element_from_buffer): Check for overlay strings at ZV.
12612
126131998-03-16 Gerd Moellmann <gerd@gnu.org>
12614
12615 * buffer.c (init_buffer_once): Add left_margin_width and
12616 right_margin_width to buffer_local_flags.
12617
12618 * dispnew.c (margin_glyphs_to_reserve): Function computing
12619 number of glyphs to reserve for a marginal area.
12620 (adjust_glyph_matrix): Call it.
12621 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12622 is not alive.
12623
12624 * window.c (Fset_window_margins): Allow floats.
12625
12626 * buffer.c (syms_of_buffer): Add buffer-local variables
12627 left-margin-width and right-margin-width. Add defaults
12628 default-left-margin-width and default-right-margin-width.
12629
12630 * buffer.h (struct buffer): New members left_margin_width
12631 and right_margin_width.
12632
12633 * window.c (Fset_window_margins): Make window the last and
12634 optional argument.
12635
12636 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12637 flag no_marginal_areas_p differently.
12638 (x_clear_end_of_line): Ditto.
12639 (x_draw_glyph_string_relief): Compute width of relief differently
12640 for rows with flag no_marginal_areas_p.
12641
12642 * dispnew.c (update_window_line): Update marginal areas only
12643 for rows that don't have no_marginal_areas_p set.
12644
12645 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12646 (display_menu_bar): Ditto.
12647
12648 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12649
12650 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12651 marginal areas in window-based redisplay.
12652
12653 * dispextern.h (struct glyph_matrix): New members
12654 left_margin_glyphs and right_margin_glyphs.
12655
126561998-03-15 Gerd Moellmann <gerd@gnu.org>
12657
12658 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12659
12660 * charset.c (non_ascii_char_to_string): Use char type parameters
12661 because the function is used that way from outside. Use unsigned
12662 char internally.
12663
12664 * window.c (change_window_height): Return void.
12665 (make_dummy_parent): Return void.
12666 (init_window_once): Return void.
12667 (syms_of_window): Ditto.
12668 (keys_of_window): Ditto.
12669 (delete_window): Correct return with and without value.
12670
12671 * buffer.c (record_buffer): Return void.
12672
12673 * marker.c (unchain_marker): Return void.
12674
12675 * window.c (unshow_buffer): Return void.
12676 (replace_window): Ditto.
12677 (delete_window): Ditto.
12678
12679 * term.c (delete_glyphs_hook): Void return type.
12680 (ring_bell_hook): Ditto.
12681 (set_terminal_window_hook): Ditto.
12682
12683 * sysdep.c (init_sigio): Return void.
12684
12685 * xterm.c (x_set_window_size): Return void.
12686 (x_calc_absolute_position): Ditto.
12687 (x_set_offset): Ditto.
12688 (x_focus_on_frame): Ditto.
12689 (x_unfocus_frame): Ditto.
12690 (x_make_frame_visible): Ditto.
12691 (x_make_frame_invisible): Ditto.
12692 (x_iconify_frame): Ditto.
12693 (x_destroy_window): Ditto.
12694 (x_wm_set_window_state): Ditto.
12695 (x_wm_set_icon_pixmap): Ditto.
12696 (x_wm_set_icon_position): Ditto.
12697 (x_initialize): Ditto.
12698 (x_error_quitter): Ditto.
12699 (x_destroy_window): Use xfree instead of free.
12700
12701 * keyboard.c (clear_waiting_for_input): Return void.
12702
12703 * xterm.c (x_wm_set_size_hint): Return void.
12704 (x_raise_frame): Ditto.
12705 (refreshicon): Ditto.
12706 (x_error_catcher): Ditto.
12707 (x_clear_errors): Ditto.
12708
12709 * keyboard.c (record_asynch_buffer_change): Return void.
12710
bb6677a8
GM
12711 The first line of the following paragraph was garbled for an
12712 unknown reason. It couldn't be fully reconstructed.
178c5d9c 12713
bb6677a8 12714 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12715 (x_lower_frame): Ditto.
12716 (x_scroll_bar_clear): Ditto.
12717 (XTflash): Add default case in switch for -Wall.
12718 (construct_mouse_click): Return Qnil.
12719 (cancel_mouse_face): Return void.
12720 (x_queue_event): Use xmalloc instead of malloc.
12721 (x_unqueue_events): Use xfree instead of free.
12722
12723 * ccl.c (ccl_driver): Return int.
12724
12725 * keyboard.c (stop_polling): Return void.
12726 (start_polling): Ditto.
12727
12728 * term.c (keys): Add braces in initializer list for -Wall.
12729
12730 * sysdep.c (tabs_safe_p): Return int.
12731 (init_baud_rate): Return void.
12732
12733 * xterm.c (x_draw_bitmap): Add default case.
12734 (x_setup_relief_colors): Use DefaultScreen instead of
12735 DefaultScreenOfDisplay.
12736 (x_delete_glyphs): Return void.
12737 (construct_menu_click): Put in #if 0 because it isn't called.
12738
12739 * xdisp.c (load_overlay_strings): Remove extraneous argument
12740 in call to qsort.
12741 (get_overlay_arrow_glyph_row): Add missing return value.
12742
12743 * window.c (set_window_height): Return void.
12744 (set_window_width): Ditto.
12745
12746 * sysdep.c (request_sigio): Return void.
12747 (unrequest_sigio): Ditto.
12748 (get_frame_size): Ditto.
12749
12750 * scroll.c (scroll_cost): Return int.
12751 (do_line_insertion_deletion_costs): Return void.
12752
12753 * frame.c (Fdelete_frame): Use xfree instead of free.
12754
12755 * fileio.c (report_file_error): Return void.
12756
12757 * dispnew.c: Make compilable with -Wall.
12758 * term.c: Ditto.
12759
12760 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12761
127621998-03-14 Gerd Moellmann <gerd@gnu.org>
12763
12764 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12765 increased.
12766 (x_setup_relief_color): Free color only for appropriate visual
12767 classes.
12768
12769 * xterm.c (expose_window): Fix calculation of intersection of mode
12770 line rectangle with exposed rectangle.
12771
12772 * xdisp.c (redisplay_window): Don't do cursor movement based
12773 on current matrix if w->last_point is not valid.
12774
127751998-03-09 Gerd Moellmann <gerd@gnu.org>
12776
12777 * xterm.c (expose_line): Redraw mode line and menu lines
12778 differently because they reach into the scroll bar area.
12779
12780 * xdisp.c (redisplay_window): If redisplaying with same window
12781 start, don't accept cursor on partially visible line.
12782
127831998-03-08 Gerd Moellmann <gerd@gnu.org>
12784
12785 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12786 for wider mode lines.
12787 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12788
12789 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12790 scroll bar width for mode lines.
12791
12792 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12793 vertical scroll bar width in width calculation so that we can
12794 display mode lines wider.
12795
12796 * xdisp.c (redisplay_window): Restore buffers before returning
12797 when fonts have changed.
12798
12799 * dispnew.c (update_window): Mark invisible rows in the current
12800 matrix invalid.
12801
12802 * xdisp.c (try_window_id): Force update of first row displayed
12803 at window end.
12804 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12805
128061998-03-05 Gerd Moellmann <gerd@gnu.org>
12807
12808 * dispextern.h (struct glyph_row): Member max_ascent renamed
12809 ascent. Member max_descent replaced by height.
12810 (struct display_iterator): Member max_descent replaced by height.
12811 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12812
12813 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12814 class makes it unnecessary or dangerous.
12815
12816 * xdisp.c (redisplay_window): Case only point has changed, and
12817 point has moved forward. Move forward over overlay strings.
12818 (display_line): Don't set cursor if first glyph from PT is part of
12819 a continuation line.
12820
128211998-02-21 Gerd Moellmann <gerd@gnu.org>
12822
12823 * xdisp.c (start_display): When computing continuation lines
12824 width, add current_x to the continuation lines width because
12825 move_iterator_to will stop in front of the buffer position moved
12826 to.
12827
128281998-02-20 Gerd Moellmann <gerd@gnu.org>
12829
12830 * xdisp.c (redisplay_window): Don't try try_window_id if
12831 windows_or_buffers_changed.
12832
12833 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12834 determine a color.
12835 (x_setup_relief_color): Allocate/ change one relief.
12836 (x_setup_relief_colors): Call above function.
12837
12838 * xterm.h (struct relief): New structure type holding relief info:
12839 GCs, colors, and whether colors are allocated.
12840
427ec082 12841 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12842 produces the same color, try adding a delta to RGB values.
12843 (x_setup_relief_colors): Free color cells.
12844
427ec082 12845 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12846 black_relief_pixel holding the foreground colors allocated for
12847 relief GCs. New members white_allocated_p, black_allocated_p.
12848
12849 * xterm.c (x_scroll_run): Don't set updated_window to null.
12850 This resets updated_window when called from scrolling_window.
12851
12852 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12853
26901792
DL
12854 * xterm.c (x_scroll_run): Additional window parameter. Set
12855 and reset updated_window.
12856
12857 * dispnew.c (line_dance_hook): Additional window parameter.
12858
12859 * xdisp.c (try_window_reusing_current_matrix): Don't call
12860 update_window_begin/end here. The end function would display the
12861 cursor on a wrong position and the additional functionality of
12862 update_window_begin is not needed anyway. Just set
12863 updated_window.
12864 (try_window_id): Ditto.
12865
12866 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12867 Don't redraw cursor during redisplay.
12868
12869 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12870
12871 * xdisp.c (redisplay_window): For window-based redisplay, alway
12872 try try_window_id.
12873
12874 * xterm.c (struct glyph_string): New member two_byte_p that is
12875 non-zero if 16-bit drawing functions must be used.
12876 (x_fill_composite_glyph_string): Set it.
12877 (x_fill_glyph_string): Set it.
12878 (x_draw_glyph_string_foreground): Use it.
12879 (x_draw_vertical_border): Make line 1 pixel less tall.
12880 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12881 side by 1 pixel if window is not right-most hasn't vertical scroll
12882 bars.
12883 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12884 out of bounds.
12885 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12886 hl == DRAW_CURSOR.
12887
12888 * xdisp.c (start_display): Check that window start is at line
12889 start if GLYPH_DEBUG != 0.
12890
12891 * window.c (window_scroll_pixel_based): Move assertion to
12892 start_display.
12893
128941998-02-19 Gerd Moellmann <gerd@gnu.org>
12895
427ec082 12896 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12897 frame hasn't the focus.
12898
12899 * window.c (make_window): Initialize dy.
12900 (replace_window): Ditto.
12901
12902 * window.h (window): New member dy specifying the amount by which
12903 a window is scrolled "smoothly".
12904
12905 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12906 y-position because it can be negative.
26901792
DL
12907 (x_draw_row_bitmaps): Don't clear with negative y-position like
12908 above.
12909 (x_clear_end_of_line): Same theme as above.
12910
12911 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12912 exact match exists, the nearest existing color. Patterned after
12913 defined_color.
12914 (x_alloc_lighter_color): Allocate a color that is lighter or
12915 darker than a given color by a specified factor.
427ec082 12916 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12917 the background color of a glyph string face.
12918 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12919
12920 * xfns.c (x_make_gc): Don't allocate relief GCs.
12921 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12922 (setup_frame_gcs): Don't change relief GCs.
12923
12924 * xterm.h (struct x_output): New member relief_background giving
12925 the background pixel color for which relief GCs can be used.
12926 Set by x_setup_relief_colors.
12927
12928 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12929 for mode and menu lines.
12930
12931 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12932
12933 * dispnew.c (direct_output_for_insert): Call
12934 set_next_iterator_stop_pos after having changed it2.endpos.
12935
129361998-02-17 Gerd Moellmann <gerd@gnu.org>
12937
12938 * dispnew.c (update_window): Work on selected_window, only.
12939
12940 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12941 hpos is >= number of glyphs in the cursor row.
12942
12943 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12944 called.
12945
129461998-02-16 Gerd Moellmann <gerd@gnu.org>
12947
12948 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12949 and menu lines.
12950
12951 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12952 enough glyphs to display a mode line or menu line which draws over
12953 flags areas.
12954
12955 * xterm.c (XTset_vertical_scroll_bar): Use
12956 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12957 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12958 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12959 or menu.
12960 (x_set_glyph_string_clipping): Set clipping differently if drawing
12961 a mode line or menu line.
12962
12963 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12964
12965 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12966 menu lines.
12967 (x_scroll_bar_create): Don't clear flags areas.
12968 (x_draw_row_bitmaps): Clear visible row height, only.
12969
12970 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12971
129721998-02-15 Gerd Moellmann <gerd@gnu.org>
12973
12974 * dispnew.c (direct_output_for_insert): When checking for tabs in
12975 the line, set it2.endpos to ZV.
427ec082 12976
26901792
DL
12977 * window.h (struct window): New member cursor_off_p.
12978 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12979 for X.
12980 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12981 be called to display or erase the cursor.
12982 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12983 or selected_window.
12984
12985 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12986
12987 * dispnew.c (update_window_line): Special handling of inverse
12988 lines in #if 0 removed.
12989
12990 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12991 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12992 (x_clear_frame): Renamed from XTclear_frame.
12993 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12994 (x_ins_del_lines): Renamed from XTins_del_lines.
12995 (x_change_line_height): Renamed from XTchange_line_height.
12996 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12997 (x_clear_cursor): Renamed from clear_cursor.
12998 (x_update_begin): Renamed from XTupdate_begin.
12999 (x_update_end): Renamed from XTupdate_end.
13000 (x_update_window_begin): Renamed from XTupdate_window_begin.
13001 (x_update_window_end): Renamed from XTupdate_window_end.
13002 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
13003 (x_produce_glyphs): Renamed from XTproduce_glyphs.
13004 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
13005 (x_produce_special_glyphs): Implementation in #if 0 removed.
13006
13007 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
13008 flag in the dump.
13009
13010 * dispnew.c (update_text_area): Handling of glyphs with pixel
13011 width zero removed. Decrement desired stop pos if desired row
13012 fills its line.
13013
13014 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
13015 width zero removed.
13016 (BUILD_GLYPH_STRINGS): Set glyph string flag
13017 extends_to_end_of_line_p based on row's flag fill_line_p and face
13018 background and stipple. Make sure it works for composite characters.
13019
13020 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
13021 fill_line_p. For window-based redisplay, add a space only if
13022 the row is empty so that we know the face to draw.
13023
13024 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
13025 means draw the face of the last glyph in the text area to the
13026 right end of the text area.
13027
13028 * xdisp.c (init_iterator): Show region in window mini-buffer
13029 window refers to.
13030
427ec082 13031 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
13032 region_showing_p removed. Test for region_beg > 0 instead.
13033
13034 * dispnew.c (update_text_area): Clear to end of line if cursor is
13035 beyond the end of the desired line. Necessary because we don't
13036 have a phys_cursor_glyph with which to erase the cursor. We don't
13037 have one because this method of drawing a cursor doesn't work with
13038 lbearing/rbearing.
13039
13040 * xterm.c (XTinsert_glyphs): Block input.
13041
130421998-02-14 Gerd Moellmann <gerd@gnu.org>
13043
13044 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
13045 glyph strings.
13046 (x_draw_glyph_string_background): Fill background with background
13047 pixel for the first glyph of a composite character.
13048
13049 * xdisp.c (try_window): Change return type to int. Value is zero
13050 if fonts were loaded during redisplay.
13051 (redisplay_window): Return if fonts have been loaded during
13052 redisplay.
13053 (append_space): New parameter default_face_p.
13054
130551998-02-13 Gerd Moellmann <gerd@gnu.org>
13056
13057 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
13058 don't let a partially visible line in a current matrix stay
13059 enabled.
13060
130611998-02-09 Gerd Moellmann <gerd@gnu.org>
13062
13063 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
13064 in #if PROMPT_IN_BUFFER.
13065
13066 * xdisp.c (display_line): If row ends in ZV, make the space
13067 that is added to place the cursor on it appear in default face.
13068
427ec082 13069 * xterm.c (expose_area): New function redrawing a single
26901792
DL
13070 glyph row area.
13071 (expose_line): Use it to redraw all areas of a row.
13072
13073 * dispextern.h (move_operation_enum): New enum
13074 move_operation_enum.
13075
13076 * window.c (window_scroll_pixel_based): Remove now unnecessary
13077 code that made sure that it->current_y doesn't become negative.
13078
13079 * xdisp.c (move_iterator_in_display_line_to): New parameter
13080 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
13081 (move_iterator_to): Ditto.
13082
13083 * dispextern.h (struct glyph_matrix): New member window_width.
13084
13085 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
13086 case of changing window height.
13087
13088 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 13089 border to the left.
26901792
DL
13090
13091 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
13092 says this aspect of Emacs is currently redesigned.
13093
13094 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
13095 have to draw a vertical border.
13096
13097 * window.c (window_scroll_pixel_based): When scrolling down by
13098 screen-fulls, make sure it.current_y doesn't get negative because
13099 this would confuse move_iterator_vertically.
13100
13101 * xdisp.c (move_iterator_vertically_backward): Bug fix for
13102 the case continuation lines are involved.
13103 (try_window_id): Don't set the cursor into scroll margins.
13104
131051998-02-08 Gerd Moellmann <gerd@gnu.org>
13106
13107 * xterm.c (x_append_glyph): Don't compute left_overhang and
13108 right_overhang.
13109 (XTproduce_glyphs): left_overhang and right_overhang removed.
13110 Set it->glyph_row->contains_overlapping_glyphs_p.
13111
13112 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
13113 and right_overhang removed.
13114
13115 * dispextern.h (struct glyph_row): New member
13116 contains_overlapping_glyphs_p used to optimize glyph drawing.
13117 (struct display_iterator): left_overhang and right_overhang
13118 removed.
13119 (struct glyph): Ditto.
13120
13121 * xterm.c (x_draw_relief): Removed.
13122 (x_draw_bitmap): Renamed from draw_bitmap.
13123 (x_draw_glyphs): Completely new implementation of draw_glyphs
13124 capable of handling arbitrary lbearing and rbearing values.
13125 Several sub-functions not mentioned here.
13126
131271998-01-30 Gerd Moellmann <gerd@gnu.org>
13128
13129 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 13130 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
13131 other cases.
13132 (draw_glyphs): Move start to the left and end to the right if they
427ec082 13133 overlap with previous or following characters.
26901792 13134 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 13135 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
13136 character under the cursor would be invisible.
13137 (x_draw_bar_cursor): Don't draw over previous character if it
13138 has right_overhang.
13139
13140 * window.c (get_phys_cursor_glyph): Return the glyph under a
13141 window's physical cursor.
427ec082 13142
26901792
DL
13143 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
13144 (x_draw_bar_cursor): Ditto.
13145 (x_erase_phys_cursor): Ditto.
13146 (x_phys_cursor_in_rect_p): Ditto.
13147 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
13148
13149 * window.c (make_window): Remove reference to phys_cursor_glyph.
13150 (replace_window): Ditto.
13151
13152 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13153 now always a glyph present for placing the cursor on it in
26901792
DL
13154 each glyph row, even at the end of a line.
13155
13156 * xdisp.c (append_space): Function to add a space to an iterators
13157 glyph row.
13158 (display_line): Add spaces at the end of lines that are used to
13159 place the cursor on them.
13160 (compute_line_metrics): If row consists of a space only that was
427ec082 13161 added to place the cursor on it, use that space's height as the
26901792
DL
13162 line height.
13163
131641998-01-29 Gerd Moellmann <gerd@gnu.org>
13165
13166 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13167 glyphs.
13168
131691998-01-28 Gerd Moellmann <gerd@gnu.org>
13170
13171 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13172 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13173
13174 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13175 right_overhang.
26901792
DL
13176 (struct display_iterator): Ditto.
13177
13178 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13179 glyphs have different ascent or descent than original row.
13180
13181 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13182 row->max_descent only if unknown.
13183 (display_line): Compute row->max_ascent and row->max_descent.
13184 (display_string): Ditto.
13185
13186 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13187 phys_cursor_descent.
26901792
DL
13188
13189 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13190 (x_draw_hollow_cursor): Ditto.
13191 (x_erase_phys_cursor): Ditto.
13192 (x_display_and_set_cursor): Set them.
13193 (x_append_glyph): Don't set glyph members that were removed.
13194
13195 * dispextern.h (struct glyph): Members ascent, descent,
13196 contributes_to_line_height_p removed.
13197
131981998-01-25 Gerd Moellmann <gerd@gnu.org>
13199
13200 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13201 names for face ids of frame default face and mode line face.
13202
13203 * xdisp.c (compute_face_at_iterator_string_position): If
13204 displaying a mode line use MODE_LINE_FACE_ID instead of
13205 DEFAULT_FACE_ID.
13206
13207 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13208 (display_string): Ditto, additional parameter lisp_string.
13209 (display_line): Call display_string with Lisp mini-buffer prompt
13210 string.
13211 (display_menu_bar): Call display_string with Lisp string.
13212 (display_mode_element): Ditto.
13213 (next_element_from_string): Make it work for non-overlay Lisp
13214 strings with field width and precision.
13215
13216 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13217 PROMPT_IN_BUFFER.
13218
13219 * xfaces.c (compute_string_char_face): Fix face computation
13220 for overlay strings.
13221
13222 * xdisp.c (struct overlay_entry): Add member after_string_p.
13223 (load_overlay_strings): Simplify.
13224
13225 * window.c (delete_window): Defer glyph matrix adjustment.
13226 (Fsplit_window): Ditto.
13227 (change_window_height): Ditto.
13228 (Fset_window_configuration): Ditto.
13229 (Fset_window_margins): Ditto.
13230 * frame.c (set_menu_bar_lines): Ditto.
13231 (Fmake_terminal_frame): Ditto.
13232 * dispnew.c (change_frame_size_1): Ditto.
13233
132341998-01-24 Gerd Moellmann <gerd@gnu.org>
13235
13236 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13237
427ec082 13238 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13239 position has overlay strings.
13240
13241 * xdisp.c (display_line): Don't set cursor if row ends in middle
13242 of overlay string.
13243 (Fdump_redisplay_state): Print complete row start and end
13244 position.
13245 (redisplay_window): Cursor movement when matrix hasn't changed---
13246 if PT < last_point, maybe move forward if row ends at PT and
13247 in middle of char.
13248
13249 * minibuf.c (read_minibuf): Save the value of
13250 minibuffer_prompt_length in minibuf_save_list.
13251 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13252
13253 * xdisp.c (redisplay_window): Add assertion for cursor movement
13254 case, PT < last_point.
13255 (move_iterator_in_display_line_to): If to_pos specified, move
13256 over before-strings.
13257
13258 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13259 start.string_index > 0.
13260
13261 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13262 is set. Retry redisplay if fonts_changed_p is set before update.
13263
13264 * xterm.c (x_load_font): Set fonts_changed_p.
13265
13266 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13267
13268 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13269
13270 * xdisp.c (try_window): Check fonts_changed_p.
13271 (try_window_reusing_current_matrix): Ditto.
13272 (try_window_id): Ditto.
13273
13274 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13275 (fonts_changed_p): Flag indicating a font change since the last
13276 glyph matrix adjustment.
13277
13278 * xterm.c (x_per_char_metric): Use font->max_bounds as
13279 char metric of the font's default char if the default char
13280 hasn't per char metric itself.
13281
13282 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13283 for font change.
13284 (min_char_bounds): Check face->font != NULL.
427ec082 13285 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13286 case of invalid min_bounds contents.
13287 (min_char_bounds): Call font_min_bounds.
13288
132891998-01-22 Gerd Moellmann <gerd@gnu.org>
13290
13291 * xdisp.c (start_display): Don't set it->prompt_width if
13292 PROMPT_IN_BUFFER.
13293 (move_iterator_in_display_line_to): Ditto.
13294 (display_line): Don't display prompt via display_string if
13295 PROMPT_IN_BUFFER.
13296
13297 * minibuf.c (Fminibuffer_prompt_width): Return value from
13298 current_buffer if PROMPT_IN_BUFFER.
427ec082 13299 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13300 mini-buffer and make it read-only.
13301 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13302 minibuffer_prompt_length instead of BEGV.
13303 (Fminibuffer_complete_word): Ditto.
13304 (Fminibuffer_complete_word): Ditto.
13305
13306 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13307 is less than mini-buffer prompt width, use prompt width as start.
13308
13309 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13310 position is less than mini-buffer prompt width, use the prompt
13311 width as start.
13312
13313 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13314 end of prompt if applied to a mini-buffer and BEG reached.
13315
133161998-01-21 Gerd Moellmann <gerd@gnu.org>
13317
13318 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13319 length to start position.
13320
13321 * buffer.c (Fget_buffer_create): Initialize
13322 minibuffer_prompt_length.
13323 (Fmake_indirect_buffer): Ditto.
13324 (Fkill_buffer): Ditto.
13325
13326 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13327 if PROMPT_IN_BUFFER.
13328
133291998-01-19 Gerd Moellmann <gerd@gnu.org>
13330
13331 * xdisp.c (next_element_from_string): Make it work for arbitrary
13332 Lisp strings.
13333 (set_iterator_to_next): Advance to next overlay string only
13334 if it->string is an overlay string.
13335
13336 * dispextern.h (struct display_iterator):
13337 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13338
427ec082 13339 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13340 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13341
13342 * xdisp.c (next_element_from_string): Renamed from
13343 next_element_from_overlay_string.
427ec082 13344 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13345 compute_face_at_iterator_overlay_string_position.
13346
13347 * dispextern.h (struct display_iterator): Member overlay_string
13348 renamed string.
13349
13350 * xdisp.c (next_element_from_c_string): Renamed from
13351 next_element_from_string.
13352
13353 * dispextern.h (struct glyph_pos): Reversed meaning of
13354 overlay_string_index and string_index.
13355
13356 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13357 this function always return the first character of an overlay
13358 string.
13359
133601998-01-18 Gerd Moellmann <gerd@gnu.org>
13361
13362 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13363 forced or new pos > next_invisible_check_pos.
13364 (redisplay_window): Don't try same window start if PT < window
13365 start.
13366 (move_iterator_vertically): Bug fix satisfying post-condition
13367 when ZV is reached and no newline in front.
13368 (move_iterator_vertically_backward): New implementation.
13369 (move_iterator_vertically_backward): Bug fixes.
13370
13371 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13372 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13373 (adjust_glyphs_for_font_change): Always adjust.
13374
13375 * dispnew.c (struct dim): Use int.
13376
13377 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13378 (allocate_face): Initialize it.
13379 (load_font): Use XLoadQueryFont again instead of x_load_font.
13380 (unload_font): Use XFreeFont again.
13381 (min_char_bounds): Iterate over fonts of faces. Use frame's
13382 font sizes as default. Remove parameter except_last_font_p.
13383
13384 * dispextern.h (struct face): Add font_name.
13385
133861998-01-17 Gerd Moellmann <gerd@gnu.org>
13387
13388 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13389 to start of line if ending at ZV and no newline in front.
13390 (move_iterator_to): If to_y specified, always first move to x = 0,
13391 so that move stops at line start instead of line end. This is
13392 probably what callers would expect to happen.
13393
13394 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13395 can handle different line heights.
13396 (window_scroll_line_based): Formerly window_scroll.
13397 (window_scroll): Call both.
13398
13399 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13400 (move_iterator_in_display_line_to): Ditto.
13401 (display_line): Ditto.
13402
13403 * minibuf.c (read_minibuf): Conditionally insert prompt into
13404 buffer instead of handling prompts specially. Change other
13405 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13406
13407 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13408 upper window. Optimize calls to xrealloc if same width.
13409
13410 * xdisp.c (redisplay_window): Don't use
13411 try_window_reusing_current_matrix if window scroll functions
13412 exist.
13413
13414 * dispextern.h (struct display_iterator): Member
13415 redisplay_end_trigger_p removed.
13416
13417 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13418 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13419
134201998-01-16 Gerd Moellmann <gerd@gnu.org>
13421
13422 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13423 nil. Optimize truncate-lines t and moving backward.
13424 (move_iterator_to_previous_visible_line_start): Contains the heart
13425 of the previous set_iterator_to_previous_visible_line_end. Don't
13426 reseat the iterator. Used by move_iterator_by_lines.
13427 (set_iterator_to_previous_visible_line_start): Call function
13428 above.
13429 (move_iterator_in_display_line_to): Check TO_POS before doing
13430 anything else. Otherwise to_pos == PT would move to x of PT+1.
13431
13432 * indent.c (Fvertical_motion): Use display_iterator.
13433
13434 * xdisp.c (move_iterator_by_lines): New function moving by screen
13435 lines.
13436 (redisplay_window): Use it.
13437 (move_iterator_to): Correct branch of to_vpos specified.
13438 (move_iterator_vertically_backward): Increment nlines after having
13439 backed up over some lines because the last line was not backed up
13440 over.
13441 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13442 calculate it->vpos and it->current_y relative to this row.
427ec082 13443 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13444 have a big effect and it is complex.
13445 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13446
134471998-01-15 Gerd Moellmann <gerd@gnu.org>
13448
13449 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13450 join nicely. Lines with widths > 2 don't join nicely under X.
13451 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13452 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13453 width 1; remove references to relief_gc_line_width.
13454 * xfns.c (x_make_gc): Ditto.
13455
13456 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13457 if relief changes.
13458 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13459 to get a relief because they can be negative.
13460
13461 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13462 positions are for the middle of lines under X.
13463
13464 * xdisp.c (try_window_id): Always search for the cursor by setting
13465 w->cursor.vpos = -1. Search in unchanged rows at the top and
13466 bottom if cursor not found in displayed lines.
427ec082 13467 (display_mode_line): First extend face, then set right shadow
26901792
DL
13468 flag. Otherwise the wrong glyph gets the right shadow.
13469
13470 * dispnew.c (direct_output_for_insert): Give up if line contains
13471 a tab. The number of spaces inserted for a tab changes if we
13472 insert glyphs in front of it.
13473
13474 * xterm.c (x_list_fonts): Changes undone because the Lisp
13475 implementation for make-face-smaller, make-face-larger, and
13476 make-face-fixed can do without them.
13477
13478 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13479 inserted.
13480
13481 * xdisp.c (try_window_id): First compute beg_unchanged, then
13482 compare with window start pos.
13483
13484 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13485 fixed-width font.
13486 (syms_of_xfns): defsubr for x-face-fixed-p.
13487
13488 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13489 enabled, don't do anything because this row will be newly drawn
13490 anyway and because we can additionally no longer determine the row
13491 height.
13492
13493 * xdisp.c (display_line): Bug fix cursor positioning.
13494
13495 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13496 removed. x-list-fonts.c is now obsolete.
13497 (Qfixed, Qvariable): Moved here from xfaces.c.
13498
134991998-01-14 Gerd Moellmann <gerd@gnu.org>
13500
13501 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13502 FETCH_BYTE for truncated lines.
13503 (display_line): Set cursor differently.
13504 (display_line): Fixed bug setting last_pos_on_this_line wrong
13505 for truncated lines.
13506
13507 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13508 redisplay.
13509
13510 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13511
13512 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13513 assertion that character dimensions are not zero.
13514
13515 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13516 input is blocked.
13517
13518 * xdisp.c (decode_mode_spec): Faster implementation of line number
13519 display.
13520
13521 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13522 bitmaps if bitmaps don't fill the entire area.
13523 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13524
427ec082 13525 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13526 pixel height of flags bitmaps.
13527
13528 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13529 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13530
13531 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13532 in pixels of a flags area of a frame.
13533 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13534 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13535 occupied by a flags area.
13536
135371998-01-13 Gerd Moellmann <gerd@gnu.org>
13538
13539 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13540 window_end_valid.
13541
13542 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13543 GLYPH_DEBUG != 0.
13544
13545 * xdisp.c (display_line): Correct wrong calculation of row->x for
13546 the case of nglyphs == 1.
13547 (hscroll_window_tree): Renamed from hscroll_windows.
13548 (hscroll_windows): New function calling hscroll_window_tree that
13549 clears desired matrices on a frame when hscroll has been changed.
13550 (redisplay_p): Global flag set during redisplay.
13551 (redisplay_internal): Set and clear redisplay_p.
13552
13553 * xfaces.c (min_char_bounds): Add assertion that width and height
13554 are not zero at the end. Initialize *height and *width to -1,
13555 instead of using BITS_PER_SHORT. If font has min_bounds.width
13556 zero, use its max_bounds.width.
13557
13558 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13559 width and height.
13560
135611998-01-12 Gerd Moellmann <gerd@acm.org>
13562
13563 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13564 changed. Don't clear desired matrices.
13565
13566 * xdisp.c (hscroll_windows): Compute pt after setting
13567 current_buffer.
13568 (redisplay_window): Don't do cursor movement based on current
13569 matrix if just_this_one_p is zero.
13570
13571 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13572 specifying that fixed-width, variable-width fonts or both
26901792
DL
13573 should be returned.
13574
13575 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13576 (syms_of_xfaces): Initialize them.
13577
13578 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13579 cached information.
13580
135811998-01-11 Gerd Moellmann <gerd@acm.org>
13582
13583 * xdisp.c (display_mode_line): Extend face to end of line.
13584
13585 * xdisp.c (echo_area_display): Don't call display_string with
13586 echo_area_glyphs_length == 0 which would mean infinite precision.
13587 (redisplay_internal): Adjust window_end_vpos if necessary.
13588
135891998-01-07 Gerd Moellmann <gerd@acm.org>
13590
13591 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13592
135931998-01-05 Gerd Moellmann <gerd@acm.org>
13594
13595 * xdisp.c (get_row_start_continuation_line_width): Removed.
13596 (init_iterator_to_row_start): Set it.current_x from row.
13597 (try_window_id): Set it.continuation_lines_width directly from
13598 row.
13599
13600 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13601 selected_window.
13602 (hscroll_windows): Center cursor in window.
13603 (hscroll_windows): Call move_iterator_in_display_line_to.
13604
136051998-01-04 Gerd Moellmann <gerd@acm.org>
13606
13607 * xdisp.c (hscroll_windows): Check hscroll < 0.
13608 (redisplay_window): Allow quick cursor movement if overlay arrow
13609 but frame uses window-based redisplay.
13610 (display_line): Take special case for nglyphs == 1 out of #if 0.
13611 (display_line): Set row->ends_at_zv_p after the loop displaying
13612 glyphs because ZV can be in truncated text.
13613 (hscroll_windows): Use init_iterator_to_row_start.
13614
13615 * dispnew.c (scrolling_window): Calculation of overlapping
13616 runs fixed.
13617 (row_equal_p): Compare continued_p and continuation_line_p.
13618
136191998-01-02 Gerd Moellmann <gerd@acm.org>
13620
13621 * xterm.c (x_get_mode_line_face_gc): Renamed from
13622 x_get_modeline_face_gc.
13623
13624 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13625 buffer position to look for text properties.
13626 (get_face_from_cursor_pos): Use it.
13627 (compute_face_at_iterator_position): Use it.
13628 (next_element_from_buffer): Use it.
13629
13630 * dispnew.c (scrolling_window): Decrement run's y-position
13631 when extending it backwards.
13632
13633 * xterm.c (do_line_dance): Don't ever copy more than window height.
13634
136351998-01-01 Gerd Moellmann <gerd@acm.org>
13636
13637 * xdisp.c (redisplay_window): Cursor motion in unchanged
13638 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13639 (init_iterator_to_next_row_start): Special handling of lines
13640 ending in middle of char removed.
13641 (hscroll_windows): Hscroll windows only if window_end_valid is not
13642 nil.
13643 (try_window_reusing_current_matrix): Call hscroll_windows.
13644 (init_iterator_to_row_start): Initialize iterator for display
13645 starting at a position given by a glyph_row->start.
13646 (redisplay_window): Don't use vmotion because it gives wrong
13647 results if lines are continued and variable width fonts are used.
13648
427ec082 13649 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13650 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13651 the middle of a character.
427ec082 13652 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13653 the middle of a character.
13654
13655 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13656 it.
13657 (next_element_from_display_vector): Use it->dpvec_index.
13658 (reseat_iterator): Reset it.
13659 (init_iterator): Reset it.
13660 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13661 it->pos.dpvec_index from a glyph_pos structure.
13662 (init_iterator_from_glyph_pos): Call the function above.
13663 (reseat_iterator_to_glyph_pos): Ditto.
13664
13665 * dispnew.c (direct_output_forward_char): Don't use this method at
13666 overlay boundaries or near invisible text.
13667 (direct_output_forward_char): Step through glyph row to find
13668 cursor position.
13669
427ec082 13670 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13671 frame font if line height differs from font height.
13672
13673 * xdisp.c (set_iterator_to_next): Renamed from
13674 move_iterator_forward to avoid confusion with other move_.*
13675 functions.
13676
13677 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13678
136791997-12-31 Gerd Moellmann <gerd@acm.org>
13680
13681 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13682 same naming convention as for other GC functions.
13683 (draw_glyphs): Don't fill background when drawing a cursor and
13684 font height is less than line height.
13685
136861997-12-30 Gerd Moellmann <gerd@acm.org>
13687
13688 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13689 init_iterator_.*.
13690
13691 * xdisp.c (move_iterator_forward): Restore it->len from
13692 it->dpvec_char_len if dpend reached.
13693 (get_next_display_element): Don't consume translated char
13694 prematurely.
13695 (display_line): Don't set this_.* variables if row is continued.
13696 (start_display): Move to start of continuation line if ending
13697 up at end of continued line.
13698
13699 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13700
13701 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13702 checking TO_X and continuation lines.
13703 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13704 of a continued line, don't consider this line as unchanged because
13705 it may no longer be continued.
13706
137071997-12-29 Gerd Moellmann <gerd@acm.org>
13708
13709 * xdisp.c (try_window_id): Catch the case that moving over
13710 continuation lines moves first_unchanged_at_end_row to a row not
13711 displaying text.
13712
13713 * dispextern.h (struct glyph_row): New member
13714 continuation_lines_width. Member continuation_line_p removed.
427ec082 13715 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13716 continuation line.
13717 * xdisp.c (display_line): Set row->continuation_lines_width.
13718 (get_row_start_continuation_line_width): Set continuation lines
13719 width of iterator from continuation lines width of glyph row.
13720 (get_row_start_continuation_line_width): Make it inline.
13721 (set_window_cursor): Make it inline.
13722 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13723 (Fdump_redisplay_state): Ditto.
427ec082 13724
26901792
DL
13725 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13726 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13727
13728 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13729 after determining the continuation lines width for
13730 last_unchanged_at_beg_row.
13731
13732 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13733
13734 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13735 which support faces.
13736 (init_display_iterator): Ditto.
13737 (move_iterator_via_matrix): Skip over truncation glyph at the row
13738 start on terminal frames.
13739 (hscroll_windows): Choose hscroll margin differently for window
13740 system and terminal frames.
13741
137421997-12-28 Gerd Moellmann <gerd@acm.org>
13743
13744 * xdisp.c (hscroll_windows): Change hscroll of windows.
13745 (redisplay_internal): Call it.
13746
427ec082 13747 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13748 doesn't fit completely on the line.
13749 (direct_output_forward_char): Give up for non-ASCII chars.
13750 (direct_output_forward_char): Set redisplay_performed_directly_p.
13751
13752 * dispextern.h (struct display_iterator): Make first_visible_x
13753 and last_visible_x ints; this is for very long truncated lines.
13754
13755 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13756 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13757 positioning problems with the mouse.
13758 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13759 >= it->last_visible_x instead of >.
13760 (display_line): Ditto.
13761
13762 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13763 loaded.
13764 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13765 non-ASCII chars differently. Always produce 1 glyph for composite
13766 chars. If font not found, use CHARSET_WIDTH to calculate width of
13767 non-ASCII chars.
13768 (x_get_char_font_and_encoding): Return null if font could not be
13769 loaded. Reset font to null if fontset could not be loaded.
13770 (draw_glyphs): Fill background if font not found.
13771 (draw_glyphs): Unused parameter just_foreground_p removed. New
13772 parameter composite_glyph.
13773 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13774 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13775 draw_glyphs when calling it recursively for composite chars.
13776
137771997-12-27 Gerd Moellmann <gerd@acm.org>
13778
13779 * xterm.c: Patches from handa.etl.go.jp integrated.
13780 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13781 find a font_info.
13782
13783 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13784 for nglyphs == 1.
13785
13786 * xterm.c (x_draw_relief): Draw relief lines.
13787 (draw_glyphs): Call x_draw_relief.
13788
137891997-12-26 Gerd Moellmann <gerd@acm.org>
13790
13791 * xfns.c (x_make_gc): Create relief GC's.
13792
13793 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13794 (setup_frame_gcs): Initialize them.
13795 (EmacsFrameDestroy): Free them.
13796
427ec082 13797 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13798 last_unchanged_at_beg_row is continued or a continuation line.
13799 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13800 (redisplay_window): Case point has changed, and it has not
26901792
DL
13801 moved off the frame. Don't increment row if PT equals the row
13802 end if the row ends in ZV.
13803
13804 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13805 (expose_line): Call it.
13806 (x_after_update_window_line): Call it.
13807
13808 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13809 reached.
13810
13811 * xterm.c (x_after_update_window_line): Draw continuation line
13812 bitmap.
13813
13814 * dispnew.c (update_window_line): Call
13815 after_update_window_line_hook when row's continuation_line_p
13816 changes.
13817
13818 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13819
13820 * xdisp.c (display_line): Handle continued lines on window system
13821 frames differently since continuation glyphs are not displayed.
13822 (move_iterator_in_display_line_to): Ditto.
13823 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13824 into account.
13825 (move_iterator_vertically_backward): Handle dy == 0 specially.
13826 (redisplay_window): Catch the case of small windows when
13827 recentering where moving back window_height/2 moves us beyond the
13828 top of the display area of the window.
13829
138301997-12-18 Gerd Moellmann <gerd@acm.org>
13831
13832 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13833 dvpos removed.
13834
138351997-12-17 Gerd Moellmann <gerd@acm.org>
13836
13837 * dispnew.c (direct_output_forward_char): Correct new cursor
13838 x-position.
13839
138401997-12-16 Gerd Moellmann <gerd@acm.org>
13841
13842 * xterm.c (x_after_update_window_line): Remove unused parameters.
13843 (XTclear_end_of_line): Clear to display_height instead of
13844 display_height - 1.
13845
13846 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13847 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13848 rows have different y-positions, or different height.
13849
138501997-12-14 Gerd Moellmann <gerd@acm.org>
13851
13852 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13853
13854 * window.c (coordinates_in_window): Call frame_mode_line_height.
13855
13856 * xterm.c (x_draw_3d_border): Removed.
13857 (x_draw_row_borders): Removed.
13858
13859 * dispnew.c (update_window): References to
13860 FRAME_MODE_LINE_BORDER_WIDTH removed.
13861
13862 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13863 (FRAME_MODE_LINE_HEIGHT): Removed.
13864
13865 * xterm.c (draw_3d_borders_p): Removed.
13866 (draw_glyphs): Ditto.
13867 (XTwrite_glyphs): Ditto.
13868 (expose_line): Ditto.
13869 (x_initialize): Ditto.
13870
13871 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13872 frame_mode_line_height.
13873
13874 * term.c (frame_mode_line_height): Get the pixel height of a
13875 frame's mode line.
13876 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13877 versions.
13878
26901792
DL
13879 * xterm.c (x_initialize): Set the hook.
13880 (XTframe_mode_line_height): X version of frame_mode_line_height.
13881
13882 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13883 output buffer.
13884 (display_string): Don't add right truncation mark if line ends in
13885 padding space.
13886 (init_display_iterator): If called with modeline_p non-zero, set
13887 face_id to 1, which is the id of the mode line face.
13888
13889 * keyboard.c (cmd_error_internal): Write to stderr if selected
13890 frame is Vterminal_frame under X. This is the case when a font
13891 cannot be loaded when Emacs starts. Replace test for
13892 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13893
13894 * xfaces.c (compute_overlay_string_char_face): Compute the
13895 face of a character in an overlay string.
13896 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13897 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13898 Use it.
13899
13900 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13901 set_iterator_to_next_overlay.
13902 (struct overlay_entry): Structure used to sort overlay strings.
13903 (compare_overlay_entries): Compare overlay strings.
13904 (load_iterator_with_overlay_strings): Load a chunk of overlay
13905 strings.
13906 (get_overlay_strings_at_iterator_position): Call it.
13907 (next_element_from_overlay_string): Set it->object to the overlay
13908 string. Prepare for setting it->position to a string position.
13909 (get_overlay_strings_at_iterator_position): Renamed from
13910 get_overlays_at_iterator_position.
13911 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13912 chunks of overlay strings.
13913 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13914
13915 * dispextern.h (struct display_iterator): New vector
13916 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13917 overlays and n_overlays.
13918 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13919 renamed to string_index.
13920
139211997-12-13 Gerd Moellmann <gerd@acm.org>
13922
13923 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13924 when allocating a vector.
13925 (release_iterator): Removed.
13926 (restore_iterator): Removed.
13927 (copy_iterator): Removed.
13928
139291997-12-08 Gerd Moellmann <gerd@acm.org>
13930
13931 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13932 clearing a mini-buffer window that is not active.
13933 (redisplay_window): Do not scroll one line too early when last
13934 window line is completely visible.
13935 (init_display_iterator): Leave some room to display the cursor
13936 after the last glyph on a continued line.
13937
13938 * xterm.h (struct x_output): trunc_area_extra renamed
13939 flags_areas_extra.
13940 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13941
13942 * dispnew.c (update_window_line): Call
13943 after_update_window_line_hook when current row is not enabled
13944 which is the case after a frame has been cleared.
13945
13946 * xdisp.c (display_mode_line): Reset row flags for truncation
13947 on right side for the mode line.
13948
13949 * xterm.c (bitmap_type): Type of bitmap to display in flags
13950 area of frame.
13951 (x_after_update_window_line): Use the enum.
13952 (draw_bitmap): Ditto.
13953
139541997-12-07 Gerd Moellmann <gerd@acm.org>
13955
13956 * xterm.c (x_clip_to_row): Include width of both flag areas.
13957 (do_line_dance): Ditto.
13958 (expose_window_tree): Ditto.
13959 * dispnew.c (update_window_line): Call
13960 after_update_window_line_hook for right truncation and continuation.
13961 * xdisp.c (init_display_iterator): Don't subtract width of
13962 continuation glyphs for window-based redisplay.
13963 * xterm.c (draw_bitmap): Draw continuation bitmap.
13964 * widget.c (set_frame_size): Double trunc_area_extra.
13965 (EmacsFrameSetCharSize): Ditto.
13966 * xfns.c (x_figure_window_size): Ditto.
13967 * xterm.c (x_set_window_size): Ditto.
13968 (x_after_update_window_line): Draw right truncation mark.
13969
13970 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13971
13972 * window.h: Include blocker around dispextern.h removed.
13973
13974 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13975
26901792
DL
13976 * dispextern.h (struct display_iterator): Former ovstr made a
13977 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13978 next_ovstr_invisble_check_pos; check at these positions for
13979 face changes and changes in invisible text property.
13980 (struct glyph_pos): Former ovlen now overlay_string_index.
13981
13982 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13983 overlay_string.
13984 (set_iterator_to_next_overlay_string): Set overlay_string and
13985 pos.overlay_string_index.
13986 (get_overlays_at_iterator_position): Use overlay_string and
13987 overlay_string_index.
13988 (next_element_from_overlay_string): Use overlay_string and
13989 overlay_string_index.
13990 (move_iterator_forward): Increment overlay_string_index.
13991 (try_window_id): Use overlay_string and overlay_string_index.
13992 (move_iterator_forward): At end of dpvec, maybe use method
13993 next_element_from_overlay_string for the case a character from an
13994 overlay string was translated via a display table.
13995 (reseat_iterator_to_string): Take a Lisp string.
13996 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13997 (compute_face_at_iterator_overlay_string_position): Compute face
13998 based on text properties for an overlay string.
13999 (next_element_from_overlay_string): Check invisible and face text
14000 properties.
178c5d9c 14001
26901792
DL
14002 (set_iterator_to_next_overlay_string): Restore face id before
14003 overlay strings when no more overlay strings are found to return.
14004 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 14005
bb6677a8
GM
14006 A line in the following paragraph was garbled for an unknown
14007 reason. It couldn't be fully reconstructed.
178c5d9c 14008
bb6677a8 14009 (compute_base_face): Made public.
26901792
DL
14010 (merge_face_list): Ditto.
14011 (intern_computed_face): Ditto.
14012
427ec082 14013 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
14014 window if PT > w->last_point. Goto try_to_scroll if bottom Y
14015 of row is > instead of >= last_y.
14016
14017 * buffer.h (overlays_at): Function prototype.
14018
14019 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
14020 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
14021
427ec082 14022 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
14023 memory of a display_iterator.
14024 (copy_iterator): Copy an iterator.
14025 (restore_iterator): Restore an iterator from a backup copy.
14026 (global): Use the functions above.
14027 * window.c (Fpos_visible_in_window_p): Call release_iterator.
14028 * dispnew.c (direct_output_for_insert): Call release_iterator.
14029
14030 * dispextern.h (struct display_iterator): Allocate overlays
14031 vector dynamically.
14032
140331997-12-06 Gerd Moellmann <gerd@acm.org>
14034
14035 * Makefile.in (window.o): Depends on dispextern.h.
14036
14037 * buffer.c (overlays_at): Make it work when extending vectors
14038 and an initial vector of zero size.
14039
14040 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
14041 from set_cursor_to_previous_visible_line_end.
14042 (set_iterator_to_next_visible_line_start): Renamed from
14043 set_cursor_to_next_visible_line_end.
14044 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
14045 (compute_face_at_iterator_position): Renamed from
14046 compute_cursor_face.
14047 (set_iterator_to_next_overlay_string): Renamed from
14048 cursor_to_next_overlay_string.
14049 (get_overlays_at_iterator_position): Renamed from
14050 get_overlays_for_cursor.
14051 (reseat_iterator): Renamed from reseat_cursor.
14052 (setup_iterator_overlays_from_glyph_pos): Renamed from
14053 setup_overlays_from_pos.
14054 (init_string_iterator): Renamed from init_string_cursor.
14055 (get_next_display_element): Renamed from next_display_element.
14056 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 14057 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
14058 dynamically.
14059
14060 * xdisp.c: display_cursor renamed display_iterator.
14061 * dispextern.h: Ditto.
14062 * dispnew.c: Ditto.
14063
140641997-12-01 Gerd Moellmann <gerd@acm.org>
14065
14066 * window.c (mark_window_cursors_off): Function comment added.
14067 (window_topmost_p, window_rightmost_p): Removed because not used.
14068
140691997-11-30 Gerd Moellmann <gerd@acm.org>
14070
14071 * emacs.c (main): Function prototypes removed in profiling code.
14072 Use safe_bcopy as start of text.
14073
14074 * dispnew.c (update_frame_line): update_line -> update_frame_line;
14075 mirrored_make_current -> make_current.
14076
14077 * xdisp.c: (store_frame_title_char): New function to store a
14078 single character for the frame title with re-allocation of
14079 frame_title_buf.
14080 (init_xdisp): Intialize frame_title_.* variables to null.
14081
14082 * dispnew.c (quit_error_check): Removed.
14083
14084 * eval.c (Fsignal): Call to quit_error_check removed.
14085 * keyboard.c (quit_throw_to_read_char): Ditto.
14086
140871997-11-23 Gerd Moellmann <gerd@acm.org>
14088
14089 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
14090 to mean a zero relief.
14091
26901792
DL
140921997-11-19 Gerd Moellmann <gerd@acm.org>
14093
14094 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
14095 unconditionally.
14096 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
14097 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
14098 (check_glyph_memory): Define function body unconditionally.
14099
141001997-11-17 Gerd Moellmann <gerd@acm.org>
14101
14102 * dispnew.c (scrolling_window): Alternative version of this
14103 function removed.
14104
141051997-11-16 Gerd Moellmann <gerd@acm.org>
14106
14107 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
14108 of height CANON_Y_UNIT.
14109 * dispextern.h: Prototype for that function.
427ec082 14110 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
14111 produce empty rows. Use make_empty_enabled_row instead.
14112
14113 * dispnew.c (scrolling_window): New version using diff-like
14114 algorithm activated.
427ec082 14115
26901792
DL
141161997-11-15 Gerd Moellmann <gerd@acm.org>
14117
14118 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
14119 (clear_desired_matrices): Ditto.
14120 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
14121 for menu_bar_window.
14122
14123 * alloc.c (mark_object): Mark menu_bar_window of frames.
14124
14125 * xterm.c (XTupdate_window_end): Don't display cursor if
14126 pseudo_window_p.
14127
14128 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
14129 set mini_p.
14130 (update_window): Don't set cursor if pseudo_window_p.
14131
14132 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
14133
14134 * window.h (struct window): New flag pseudo_window_p set to
14135 1 for windows that aren't really part of the window tree, like
14136 menu_bar_window's of frames.
14137 * window.c (make_window): Initialize it.
14138 (replace_window): Ditto.
14139 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
14140
14141 * frame.c (make_frame): Initialize menu_bar_window to nil.
14142
14143 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
14144 FACE_RELIEF
14145
14146 * xfaces.c (copy_face): shadow_thickness -> relief.
14147 (face_eql): Ditto.
14148 (merge_faces): Ditto.
14149 (compute_base_face): Ditto.
14150 (Fset_face_attribute_internal): Ditto.
14151 * dispextern.h (struct face): Ditto.
14152
14153 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14154 it is non-nil.
14155
14156 * xdisp.c (display_menu_bar): Display the menu bar in
14157 f->menu_bar_window if appropriate.
14158 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14159
14160 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14161 dummy window and window matrices for f->menu_bar_window.
14162 (free_glyphs): Free the dummy window and its glyph matrices.
14163
14164 * frame.h (struct frame): New member menu_bar_window.
14165
141661997-11-09 Gerd Moellmann <gerd@acm.org>
14167
14168 * dispnew.c (scrolling_window): New version with diff-like
14169 algorithm.
14170
14171 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14172 old_start always start displaying at start of
14173 first_row_to_display. The previous scheme failed if the last row
14174 was fully visible.
14175
14176 * dispnew.c (update_window): Remove cost calculations. Remove
14177 redundant preempt_count calculations.
14178
14179 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14180 differently.
14181
14182 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14183
427ec082 14184 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14185 WITH_MARGINAL_AREAS is defined.
14186
427ec082 14187 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14188 removed.
14189
14190 * dispnew.c (scrolling): Call line_hash_code because hash values
14191 are not set in the frame matrix.
14192
14193 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14194 (redisplay_window): Check line_ins_del_ok before calling
14195 try_window_id.
14196 (try_window_reusing_current_matrix): Give up for terminal frames
14197 if window is not full width or we cannot insert/delete lines.
14198 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14199 frames.
14200
14201 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14202 Lisp_Object to mark_object.
14203
14204 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14205 window rows have the same glyph pointers.
14206 (try_window_id): Call it.
14207
14208 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14209 a glyph matrix.
14210 (mark_object): Call it.
14211
14212 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14213 truncations.
14214 (display_line): Ditto.
14215 (display_line): Ditto for DISP_CONTINUATION.
14216 (display_line): Truncation on right: test current_x >
14217 last_visible_x.
14218 (skip_in_display_line_to): Ditto.
14219 (skip_via_matrix): Stop skipping in glyph row at face extending
14220 glyphs or at padding spaces.
14221
14222 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14223
14224 * xdisp.c (display_line): Use glyph->object == 0 for padding
14225 glyphs.
14226 (redisplay_window): Don't let cursor move over padding
14227 spaces.
14228
14229 * dispextern.h (struct glyph): Fix comment for object.
14230
142311997-11-08 Gerd Moellmann <gerd@acm.org>
14232
14233 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14234 has a mode line.
14235 * xdisp.c (redisplay_window): Use it.
14236 (display_mode_line): Check that window wants mode line.
14237
142381997-11-03 Gerd Moellmann <gerd@acm.org>
14239
14240 * xdisp.c (display_menu_bar): Enable menu bar rows.
14241
14242 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14243 (x_erase_phys_cursor): Ditto.
14244 (x_draw_bar_cursor): Ditto.
14245
142461997-11-02 Gerd Moellmann <gerd@acm.org>
14247
14248 * dispnew.c (update_marginal_area): Update a marginal area.
14249 (update_text_area): Update text area.
14250 (update_window_line): Call both.
14251
14252 * xterm.c (XTclear_end_of_line): Translate coordinates area
14253 dependent.
14254
14255 * dispnew.c (updated_area): Row area being updated in
14256 update_window_line.
14257 (update_window_line): Set it.
14258 (update_marginal_area): Clear to end of line if not in text area.
14259
14260 * window.c (Fset_window_margins): Increment
14261 windows_or_buffer_changed. Adjust glyphs.
14262
14263 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14264 area X coordinates to frame coordinates.
427ec082 14265 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14266 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14267 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14268
14269 * xterm.c (draw_glyphs): Use text area width as display width.
14270
14271 * xdisp.c (init_display_info): Subtract widths of marginal areas
14272 from last_visible_x.
14273
14274 * alloc.c (mark_object): Mark objects in glyphs only if they are
14275 overlays. Mark only if current_matrix != 0. Activate the code.
14276
14277 * window.c (Fset_window_margins): Set margins.
14278 (Fwindow_margins): Return margin area widths.
14279 (syms_of_window): Add defsubr's.
14280
14281 * window.h (struct window): left_margin_width, right_margin_width.
14282
14283 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14284 and cols.
14285
14286 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14287 truncation/overlay arrow area.
14288 (struct frame): trunc_area_pixel_width, and _cols.
14289
14290 * window.c (Fsplit_window): Use it.
14291
14292 * window.c (Fsplit_window): Set cursor vpos to -1 after
14293 splitting.
14294 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14295 split windows.
14296
14297 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14298 of bounds cursor positions.
26901792
DL
14299
14300 * xdisp.c (redisplay_internal): Check that after cursor motion
14301 within line, PT is on same line.
14302
14303 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14304 FRAME_TRUNC_WIDTH.
14305
14306 * xterm.h (struct x_output): trunc_area_extra.
14307 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14308 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14309 * widget.c (set_frame_size): Set it.
14310 (EmacsFrameSetCharSize): Ditto.
14311 * xfns.c (x_figure_window_size): Ditto.
14312 * xterm.c (x_set_window_size): Ditto.
14313
14314 * dispnew.c (check_matrix_invariants): First try to check window
14315 ends (in #if 0).
14316
14317 * xdisp.c (try_window_reusing_current_matrix): Try window
14318 redisplay with different window start.
14319
143201997-11-01 Gerd Moellmann <gerd@acm.org>
14321
14322 * window.c (make_window): Set window_end_pos/vpos.
14323 (Fsplit_window): Zero last_cursor, window_end_valid.
14324 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14325
14326 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14327
143281997-10-31 Gerd Moellmann <gerd@acm.org>
14329
14330 * window.c (make_window): Initialize last_cursor.
14331 (replace_window): Ditto.
14332
143331997-10-29 Gerd Moellmann <gerd@acm.org>
14334
14335 * window.h: New member last_cursor.
14336 * dispnew.c (direct_output_for_insert): Set it.
14337 (direct_output_forward_char): Ditto.
14338 * xdisp.c (redisplay_internal): Ditto.
14339
143401997-10-28 Gerd Moellmann <gerd@acm.org>
14341
14342 * xdisp.c (redisplay_internal): Optimization 1 change partially
14343 reverted. Check this again later.
14344 (skip_via_matrix): Remove redundent test for
427ec082 14345 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14346
143471997-10-27 Gerd Moellmann <gerd@acm.org>
14348
14349 * dispnew.c (update_window_line): Call
14350 after_update_window_line_hook only for interesting constellations.
14351 (free_glyph_matrix): Fix memory leak.
14352
14353 * window.h: Include blocker WINDOW_H_INCLUDED, include
14354 dispextern.h.
14355 (struct window): phys_cursor_glyph as struct glyph. * window.c
14356 (make_window): Initialize it.
427ec082 14357 (replace_window): Ditto.
26901792
DL
14358 * dispnew.c (free_window_matrices): Remove freeing of
14359 phys_cursor_glyph.
14360 (check_matrix_invariants): Renamed from check_current_matrix_...
14361 * xterm.c: All references to phys_cursor_glyph changed.
14362
14363 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14364
14365 * xfaces.c: Comment update.
14366
14367 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14368 pointer. Remove phys_cursor_ascent, descent, etc.
14369 * dispnew.c (free_window_matrices): Free it.
14370 * window.c (make_window): Allocate it.
14371 (replace_window): Ditto.
14372 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14373 (x_display_and_set_cursor): Fill it.
14374 (x_phys_cursor_in_rect_p): Use it.
14375 (x_draw_hollow_cursor): Ditto.
14376 (x_draw_bar_cursor): Ditto.
14377 (x_erase_phys_cursor): Ditto.
14378
14379 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14380
14381 * xterm.c (XTget_display_info): Handle 3D facess.
14382 (draw_glyphs): Ditto.
14383
14384 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14385
14386 * xfaces.c (Fset_face_attribute_internal): New face attribute
14387 shadow-thickness.
14388 (copy_face): Handle shadow_thickness.
14389 (face_eql): Ditto.
14390 (merge_faces): Ditto.
14391 (compute_base_face): Ditto.
14392
14393 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14394 (struct display_info): Ditto.
14395 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14396 * xdisp.c (compute_cursor_face): Set it.
14397 (advance_display_cursor): Clear it.
14398
14399 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14400 (init_string_cursor): Init face_id to zero.
14401
14402 * dispextern.h (struct face): New member shadow_thickness.
14403
427ec082 14404 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14405 search to 100.
14406
14407 * dispnew.c (update_window_line): Try to resynch with current line
14408 to prevent mode line flickering.
14409
144101997-10-26 Gerd Moellmann <gerd@acm.org>
14411
427ec082 14412 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14413 on cursor_in_echo_area >= 0.
14414
14415 * xdisp.c (echo_area_display): Clear desired matrix before
14416 displaying into it.
14417 (display_menu_bar): Clear glyph row instead of hoping it is not
14418 enabled. This is safer.
14419
14420 * dispnew.c (check_current_matrix_invariants): Check only
14421 visible rows.
14422
14423 * xdisp.c (try_window_id): Handle window end setting in case of
14424 display to end of window, but only non-text lines displayed.
14425
14426 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14427 (check_current_matrix_invariants): Check used counts.
14428
14429 * Revisiob v114.
14430
14431 * dispnew.c (scrolling): Use hash codes from rows.
14432
14433 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14434
14435 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14436
144371997-10-25 Gerd Moellmann <gerd@acm.org>
14438
14439 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14440 * dispnew.c (update_window): Use it.
14441 (clear_glyph_matrix): Clear it.
14442 * xdisp.c (try_window_id): Set it.
14443
14444 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14445
14446 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14447
14448 * dispextern.h: More comments etc.
14449
144501997-10-24 Gerd Moellmann <gerd@acm.org>
14451
14452 * dispnew.c (set_window_cursor_after_update): Set cursor
14453 for cursor_in_echo_area == 0 to (0, 0).
14454
14455 * dispextern.h (struct glyph_row): New flags continuation_line_p
14456 and displays_text_p.
14457 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14458 * xdisp.c (display_line): Set them.
14459 (try_window_id): Move to start of continuation line to find out
14460 continuation_line_width.
14461 (first_unchanged_current_row): Don't retract row if continued,
14462 truncated etc.
14463
14464 * xterm.c: Map X coordinates.
14465
144661997-10-23 Gerd Moellmann <gerd@acm.org>
14467
14468 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14469 left text.
14470
14471 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14472
14473 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14474
f28eba7b 14475 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14476
14477 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14478
14479 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14480 Set this to functions to be called before/after window updates.
14481 (direct_output_for_insert): Call them.
14482 (update_window): Ditto.
14483 (update_frame): Call update_begin/ update_end for windows.
14484
14485 * xterm.c (XTupdate_window_begin): Called before window updates.
14486 (XTupdate_end): Called after window updates.
14487 (x_initialize): Set hooks to above.
14488
14489 * xdisp.c (init_display_info): Initialize c and len of
14490 display_info.
14491
14492 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14493 fonts more than once.
14494
144951997-10-22 Gerd Moellmann <gerd@acm.org>
14496
14497 * xdisp.c (display_line): Handle most common case of current_x <
14498 last_visible_x separately.
14499
14500 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14501
14502 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14503 so that face extending space doesn't compare equal to normal space
14504 with same face.
14505
14506 * xdisp.c (display_line): Make sure we have a position for
14507 a line end in an otherwise blank line if face is extended.
14508
14509 * dispnew.c (direct_output_for_insert): Increment row end position.
14510
427ec082 14511 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14512 window_end_pos.
14513
14514 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14515
14516 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14517
14518 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14519 start and end positions in rows.
14520 (increment_glyph_row_buffer_positions): Stop adjusting at
14521 glyphs with positions <= 0.
14522
14523 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14524 position including position in overlay.
26901792
DL
14525 (struct glyph_row): Use it for start and end positions.
14526 (struct display_cursor): Use it.
14527 * xdisp.c: Use it.
14528 (display_line): Set row start and end positions.
14529
14530 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14531 assignment.
14532
145331997-10-21 Gerd Moellmann <gerd@acm.org>
14534
14535 * dispnew.c (update_window): Add scrolling_window again. It's
14536 necessary for scroll_step != 0.
14537
14538 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14539 scrolling.
14540
14541 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14542
14543 * xterm.c (XTupdate_end): Flush only for messages.
14544
14545 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14546 first_unchanged_row.
14547
14548 * xterm.c (XTupdate_end): Flush if miniwindow.
14549
14550 * dispnew.c (matrix_row_last_pos): New function.
14551 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14552 Large comment moved to xdisp.c.
26901792
DL
14553
14554 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14555 (skip_via_matrix): Check window_end_valid instead of
14556 display_completed.
14557
14558 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14559 (update_window): scrolling_window commented out. It has negative
14560 effect most of the time.
14561
14562 * xdisp.c (try_window_id): Correct parameters to
14563 scroll_glyph_matrix_range.
14564
427ec082 14565 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14566
14567 * window.h: Comments for window_end_pos/vpos.
14568
f28eba7b 14569 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14570 of the window in which we are skipping.
14571
14572 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14573
14574 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14575 reached.
14576
145771997-10-20 Gerd Moellmann <gerd@acm.org>
14578
14579 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14580 a face extending glyph.
14581
427ec082 14582 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14583 (set_cursor_from_row): Set cursor position from a glyph row.
14584
14585 * dispnew.c (update_window_line): Write entire line if hash
14586 codes of lines differ.
14587
14588 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14589 if glyph row has an infinite width glyph at its end.
14590
14591 * xdisp.c (last_unchanged_current_row): Respect partially visible
14592 lines when looking for the last row displaying text.
14593 (try_window_id): Handle partially visible lines better.
14594
145951997-10-19 Gerd Moellmann <gerd@acm.org>
14596
14597 * dispnew.c (update_window): Remove unused variable.
14598 (update_window_line): Simplified.
14599
14600 * xterm.c (x_get_char_font_and_encoding): Handle most common
14601 case at the beginning.
14602
14603 * xdisp.c (advance_display_cursor): Dispatch on method and
14604 order if statements by expected call frequency. Fixed unclosed
14605 comment.
14606
14607 * xdisp.c (try_window_id): New implementation.
14608
14609 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14610 rows displaying a line end, only.
14611
146121997-10-18 Gerd Moellmann <gerd@acm.org>
14613
14614 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14615
146161997-10-14 Gerd Moellmann <gerd@acm.org>
14617
14618 * xdisp.c (display_line): Mark empty lines not corresponding to
14619 text with position -1.
14620
14621 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14622 not within window matrix bounds.
14623
14624 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14625 (struct display_info): NGLYPHS_TO_IGNORE removed.
14626 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14627 * term.c: Ditto.
14628 * xterm.c: Ditto.
14629
14630 * xdisp.c (init_display_cursor): Set it.
14631 (display_line): Use it to set W->REGION_SHOWING.
14632
14633 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14634
14635 * region-cache.h: functino prototypes with PROTO.
14636
14637 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14638
14639 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14640 a position.
14641
427ec082 14642 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14643 rectangle based on minimum character bounds.
14644
f28eba7b 14645 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14646 glyph position calculations.
14647 (make_lispy_movement): Use buffer_posn_from_coords and window
14648 relative coordinates.
14649
14650 * xterm.c (construct_mouse_click): Remove #if 0 case.
14651
14652 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14653 given row.
14654
427ec082
SS
14655 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14656 date.
26901792
DL
14657 (skip_to): Use it.
14658 (redisplay_window): Remove code skipping using current matrix.
14659
146601997-10-13 Gerd Moellmann <gerd@acm.org>
14661
14662 * xdisp.c (redisplay_window): Use available current matrix to
14663 skip faster when only point is moved withing the window.
14664
427ec082 14665 * intervals.c: Include stdio.h.
26901792
DL
14666 (find_interval): Trace to stderr to catch some nasty error
14667 that did not yet occur again with tracing.
14668 (set_point): Ditto.
14669
14670 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14671 cursor positioning on partially visible lines.
14672 (set_window_cursor_after_update): Ditto.
14673
f28eba7b 14674 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14675
14676 * window.h (struct window): start_y removed.
14677
14678 * window.c (make_window): start_y removed.
14679 (replace_window): Ditto.
14680
427ec082 14681 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14682 descent values of the last line processed by skip_to.
14683 (redisplay_window): Use them.
14684 (skip_to): Set them.
14685
14686 * dispextern.h (struct display_cursor): New member METHOD.
14687
14688 * xdisp.c: Use function member METHOD.
14689
14690 * xdisp.c (set_next_stop_pos): Determine next position at which to
14691 check for face properties, invisible text properties, and overlays.
14692 (compute_cursor_face): Use it.
14693 (get_overlays_for_cursor): Ditto.
14694 (reseat_cursor): Ditto.
14695 (next_display_element): Ditto.
14696
14697Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14698
14699 * termhooks.h: Some hooks with prototypes.
14700
14701 * term.c: Some hooks with function prototypes.
427ec082 14702
26901792
DL
14703 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14704 computing face if possible.
14705
14706 * xdisp.c (next_display_element): Use face from glyph from display
14707 table only if != 0.
14708
14709 * emacs.c: FreeBSD headers for profiling removed.
14710
427ec082
SS
14711 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14712 display cursor, use DEC_POS instread.
26901792
DL
14713
14714 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14715 all fonts are in the font table.
26901792
DL
14716 (unload_font): Don't XFreeFont.
14717
14718 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14719 row height.
14720
14721 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14722 (x_erase_phys_cursor): Clear only visible part of row.
14723 (x_draw_bar_cursor): Set clipping.
14724 (x_draw_hollow_cursor): Ditto.
14725 (x_display_and_set_cursor): Remove clipping.
14726 (expose_window_tree): Take trunc border into account.
14727 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14728 (expose_window): Use it.
14729
14730 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14731 current_x already beyond max_x.
26901792
DL
14732 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14733 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14734 last_visible_x.
26901792
DL
14735
14736 * scroll.c (scrolling_window_1): Removed.
14737
14738 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14739 based on redisplay method used.
14740 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14741 based redisplay.
14742 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14743 window based redisplay.
14744
14745 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14746 on data structures.
14747
14748 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14749 Handle own storage for purely window based redisplay.
14750 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14751 allocate_matrices.
26901792
DL
14752 (allocate_matrices_for_window_redisplay): Ditto.
14753
14754 * dispextern.h (struct glyph_matrix): window_top_y,
14755 window_height.
14756
14757 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14758 and optimize some common cases of window changes.
14759
14760 * emacs.c (main): Remove own profiling code because 0.95 now
14761 has it in.
14762
14763Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14764
d7d0dac0 14765 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
14766 (expose_window): Draw vertical border.
14767 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14768 don't do anything.
14769
14770 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14771 for non full width windows only if not window redisplay.
14772
14773 * dispnew.c (update_window_tree): Or paused_p return of called
14774 functions.
14775
14776 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14777 of window.
14778
14779 * window.c (Fset_window_configuration): adjust_glyphs being
14780 called twice.
14781 (Fset_window_configuration): Set frame garbaged if not all
14782 leaf windows reused.
14783
147841997-08-21 Gerd Moellmann <gerd@acm.org>
14785
14786 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14787 that rows should really be cleared. Used for current matrices.
14788
d7d0dac0
SM
14789 * dispnew.c (scrolling_window): Bug fix.
14790 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
14791
14792 * dispextern.h (struct run): Remove current_vpos.
14793
14794 * xterm.c (do_line_dance): Only one parameter.
14795
f28eba7b 14796 * xdisp.c (display_line): Set continued_p.
26901792
DL
14797
14798 * dispextern.h (struct glyph_row): New flag continued_p.
14799 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14800 (struct glyph_row):
26901792
DL
14801
14802Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14803
14804 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14805 when calling skip_to for continued lines.
14806
14807 * dispnew.c (change_frame_size_1): Set frame garbaged.
14808
14809 * xterm.c (expose_window): Check enabled_p of rows.
14810
14811 * xdisp.c (redisplay_internal): Compare line heights before and
14812 now for redisplay optimization 2 (hit).
14813 (display_line): Set this_line_pixel_height.
14814
14815 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14816 value.
14817 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14818 (do_line_dance): Simplified and pixel corrected.
14819
14820 * dispnew.c (scrolling_window): Simplified.
14821
14822 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14823
14824 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14825 to mode line row->x.
14826
14827Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14828
14829 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14830 override font of face.
14831 (draw_glyphs): Correct return value.
14832 (XTclear_end_of_line): Compare differently with output cursor
14833 position.
14834 (x_draw_hollow_cursor): 2 parameters, window and row.
14835
14836 * dispnew.c (update_window_line): If rows have different height
14837 or y, write entire line.
14838
f28eba7b 14839 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14840 of info struct.
14841
427ec082 14842 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14843 frame_update_line_height.
14844 (merge_faces): Don't use default font if new font has different
14845 size.
14846
14847Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14848
14849 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 14850 unknown. Some fonts have min_width zero.
26901792 14851 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 14852 line if face is merely extended to that point.
26901792 14853 (draw_glyphs): Don't assume background is filled if
d7d0dac0 14854 just_foreground_p but extending to end of line.
26901792
DL
14855
14856 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14857 for partially visible last lines.
14858 (x_clip_to_row): Ditto.
14859 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14860 display_height since line_height is really a line distance.
14861 (x_display_and_set_cursor): If cursor on padding glyph, use
14862 min_bounds pixel width.
14863
14864Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14865
14866 * xterm.c (x_clip_to_row): Height value was 1 too large.
14867 (XTclear_end_of_line): Clip to display area.
14868
14869 * xfns.c (x_figure_window_sizes): Add trunc border width
14870 to frame pixel width.
14871
14872 * xdisp.c (next_display_element): Don't display overlay strings
14873 within invisible text.
427ec082 14874 (skip_vertically_backward): Skip display lines.
26901792
DL
14875
14876Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14877
14878 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14879
14880 * xdisp.c (next_display_element): Next invisible
14881 text check position computed differently.
14882
14883 * dispextern.h (struct display_cursor): last_invisible_text_pos
14884 and display_ellipsis_for_invisible_p removed.
14885
14886 * xdisp.c (next_display_element): Set last_invisible_text_pos
14887 to the last position at which invisible text was found. Don't
14888 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14889 dpvec for `...' due to invisible text directly.
26901792
DL
14890 (redisplay_internal): Don't assert that cursor is at PT after
14891 skip_to. It may be in invisible text.
14892
427ec082 14893 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14894 x_y_to_hpos_vpos.
14895
427ec082 14896 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14897 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14898 checking for invisible text.
14899
14900 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14901
14902 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14903
d7d0dac0 14904 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
14905 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14906
14907 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14908 Removed.
14909
14910 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14911
14912 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14913 pixel coordinates.
14914 (note_mouse_highlight): Use it.
14915
14916 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14917 under a window system.
14918
427ec082 14919 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14920 necessary.
427ec082 14921 (update_window_line): Add width of face padding glyph to
26901792
DL
14922 displayed widths of rows.
14923
14924 * xterm.c (x_display_and_set_cursor): Set clipping after
14925 erasing cursor.
427ec082
SS
14926
14927 * window.c (Fset_window_configuration): Free only those
26901792
DL
14928 window matrices not reused.
14929 (get_leaf_windows): Build vector of leaf windows.
14930 Corrupted archive restored from v77.
14931
f28eba7b 14932 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14933 like display_line does.
14934
14935 * xdisp.c (display_mode_line): Don't hscroll mode line.
14936
14937 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14938 windows.
14939 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14940 garbage between mode lines when splitting windows horiz.
14941
14942 * dispnew.c (direct_output_for_insert): Bug fix.
14943
14944 * dispextern.h (struct display_cursor): New member string_length.
14945
14946 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14947 (init_string_cursor): Take precision and field_width
26901792
DL
14948 (display_string): Use string cursor, skip over invisible text.
14949
14950Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14951
14952 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14953 (x_display_and_set_cursor): Call it.
14954 (draw_glyphs): Call it
14955 (draw_bitmap): Call it.
14956
427ec082 14957 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14958 (allocate_leaf_matrix): Return flags.
14959 (row_equal_p): Compare enabled_p.
14960
14961 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14962 for type == -1.
14963
14964 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14965 (draw_glyphs): Clip height one pixel taller.
26901792 14966
427ec082 14967 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14968 mini window.
14969
f28eba7b 14970 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14971
427ec082
SS
14972 * xdisp.c (echo_area_display): Call update_single_window if
14973 possible.
26901792
DL
14974
14975 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14976 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14977 (update_single_window): Update a single window like update_frame
14978 does for all windows.
427ec082 14979 (update_window, update_window_tree): Additional argument
26901792
DL
14980 no_scrolling_p.
14981 (update_frame): Pass no_scrolling_p to update_window_tree.
14982 (update_window): Don't call scrolling_window if no_scrolling_p.
14983
14984 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14985 Erase under hollow cursor.
14986 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14987 not enabled. Draw bar cursor 1 pixel smaller.
14988
f28eba7b 14989 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14990 since update will follow soon.
14991
14992 * xdisp.c (echo_area_display): Unitialized variable.
14993
f28eba7b 14994 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14995 overlay arrow bitmap.
14996
f28eba7b 14997 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14998 up to the final \n as part of the line for cursor positioning.
26901792 14999
f28eba7b
SM
15000 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
15001 (x_after_update_window_line): Clear trunc marks.
26901792
DL
15002
15003 * xterm.h (FRAME_X_TRUNC_WIDTH).
15004
f28eba7b 15005 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
15006 of a window reserved for truncation mark.
15007
427ec082 15008 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
15009
15010 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 15011 hook.
26901792
DL
15012
15013 * xdisp.c (display_line): Set overlay_arrow_p in row.
15014
15015 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
15016
15017 * xterm.c (x_after_update_window_line): Draw truncation marks.
15018
15019 * xdisp.c (display_line): Insert truncation for lines with
15020 current_x > 0.
15021
15022 * xterm.c (x_draw_row_borders): Convert y to frame coords.
15023 Correct y by 1.
15024 (x_display_cursor): Use default font width if width not
427ec082 15025 known.
26901792 15026
f28eba7b 15027 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
15028
15029 * dispnew.c (set_window_cursor_after_update): Don't assume
15030 all rows are enabled.
15031
15032 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
15033 of cursor.pos.
15034 (skip_in_display_line_to): Check cursor.position after call to
15035 next_display_element.
15036
427ec082 15037 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
15038 buffer position.
15039
15040 * xdisp.c (display_line): Set row->y here.
15041 (skip_in_display_line_to): Test for to_pos after all glyphs
15042 have been added to hpos so that hpos is at the end of all
15043 glyphs for to_pos.
15044 (start_display): Remove assertion.
15045
d7d0dac0 15046 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
15047 (update_window): Don't set row->y here.
15048
15049 * xdisp.c (next_display_element): Don't translate control chars
15050 from display table entries.
15051
427ec082 15052 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
15053 update end to prevent cursor flickering. Revert changes to
15054 setting cursor.endpos.
15055
15056Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
15057
15058 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
15059 to PT because this prevents multi-byte characters from being
15060 recognized.
15061
427ec082
SS
15062 * xdisp.c (skip_to, display_line): Advance cursor at end of
15063 truncated line.
26901792
DL
15064
15065 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
15066 replaced by XRectangle.
15067
d7d0dac0 15068 * dispnew.c (scrolling_window): New method.
26901792
DL
15069
15070 * xterm.c (do_line_dance): New implementation, new method.
427ec082 15071
26901792
DL
15072 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
15073 visible part of line.
15074
15075 * dispnew.c (update_window_line): Fill inverse video lines
15076 with infinite width space.
15077 (update_window): Handle completely empty matrices.
15078 (set_window_cursor_after_update): Bug fix.
15079
427ec082 15080 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
15081
15082 * dispnew.c (update_window_line): Don't ignore spaces, don't
15083 fill with spaces.
15084
15085 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
15086 the first glyph having width 0.
15087
15088 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 15089 a glyph that extends to the end of the line.
26901792
DL
15090
15091 * xdisp.c (display_line): Insert one padding glyph
15092
15093 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
15094 amount from info.current_x.
15095 (display_line): Ditto.
15096
15097 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
15098 (change_frame_size_1): Correct cursor.x if frame gets too small.
15099 (update_window_line): Start at row->x.
15100
15101 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
15102 in xdisp.c).
15103
15104 * xterm.c (set_output_cursor): Use window relative X/Y.
15105 (global): Use window relative output cursor x/y.
15106 (draw_glyphs): Remove y param. Pass window relative x/y.
15107
15108 * dispnew.c (update_window): Start rows at start_y.
15109 (update_window): Don't try scrolling because it wouldn't work
15110 with variable height lines, anyway.
15111
15112 * dispextern.h (struct glyph_row): Remove shift_left_by,
15113 add x.
15114
15115 * window.h: (struct window): New member start_y.
15116
15117 * window.c (replace_window): Initialize start_y.
15118 (make_window): Ditto.
15119
15120Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
15121
15122 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 15123 the mode line.
26901792 15124
427ec082
SS
15125 * dispnew.c (update_window): Take mode line border into
15126 account.
26901792
DL
15127
15128 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 15129 of border around mode line.
26901792
DL
15130
15131 * xterm.c (x_draw_row_borders): Bug fix.
15132 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
15133 drawing functions.
15134
15135 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 15136 around modeline instead of inverting it.
26901792 15137
427ec082 15138 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
15139
15140 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
15141 window relative pixel coordinates as arguments.
15142
15143 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
15144 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
15145 COORDS mit new arguments.
15146
15147Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
15148
15149 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15150 DISPLAY_LINE.
26901792
DL
15151
15152 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15153 pixel coords.
15154 (make_lispy_movement): Same.
15155
15156 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15157 with new parameter meaning.
15158
15159 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15160 from canon units to pixels.
15161 (coordinates_in_window): Pixel based.
15162 (Fcoordinates_in_window_p): Convert result pixel values back
15163 to canonical units.
15164
15165 * window.h: phys_cursor_ascent + descent instead of height.
15166
15167 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15168 chars with charset width 1.
26901792
DL
15169
15170 * dispnew.c (direct_output_for_insert): Set updated_row.
15171
15172Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15173
15174 * dispextern.h (struct glyph): Padding flag removed.
15175
15176Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15177
15178 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15179
15180 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15181
15182 * dispnew.c (update_window_line): Use pixels.
15183
15184 * xdisp.c (compute_line_metrics): Correct pixel_width by
15185 shift_left_by.
15186
15187 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15188 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15189 glyph_row -> right_to_left_p. Change references to it.
15190
15191Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15192
15193 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15194
15195 * xterm.c (XTinsert_glyphs): Implement it.
15196
15197 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15198 of a call from DIRECT_OUTPUT_FOR_INSERT.
15199
15200 * window.h (struct cursor_pos): Keeps both matrix positions
15201 and pixel positions.
15202 (struct window): Use it.
15203
15204 * dispnew.c (direct_output_for_insert): New version.
15205
15206 * xdisp.c (redisplay_internal): Don't do anything if it has
15207 already be done directly.
15208
15209 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15210 for any character.
15211
15212Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15213
15214 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15215
15216Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15217
15218 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15219 (struct glyph): ASCENT, DESCENT.
15220 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15221 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15222
15223 * xterm.c (XTget_display_info): Correct tab computation.
15224
15225 * term.c (get_display_info): Correct tab computation.
15226
15227 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15228 Renamed from CHAR_CURSOR.
15229
15230Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15231
15232 * xdisp.c (display_text_line): Mostly pixel oriented.
15233
15234 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15235
15236 * term.c (append_intermediate_glyph): Generate padding glyphs.
15237
15238 * xdisp.c (display_text_line): More into final direction.
15239
15240 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15241 (XTget_char_info): Use tabs as multiples of spaces.
15242
15243 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15244 Use tabs as multiples of spaces.
15245
15246 * dispextern.h (struct char_info ): WHAT field.
15247
15248 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15249 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15250
15251Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15252
15253 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15254 value.
15255 (init_char_info): Initialize with glyph row.
15256
15257 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15258
15259 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15260
15261 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15262 glyphs.
15263
15264 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15265 moved to xdisp.c.
15266
15267 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15268
15269 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15270 generation.
15271 (XTget_char_info): Ditto.
15272
15273 * term.c (get_char_info): Intermediate glyph generation.
15274 (append_intermediate_glyph): Ditto.
15275
15276Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15277
427ec082 15278 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15279 CHAR_CURSOR.
15280 (init_char_cursor): Initialize a CHAR_CURSOR.
15281 (get_char_and_advance): Get next character to display.
15282
15283 * dispextern.h (struct char_cursor): Cursor for iterating over
15284 display text of CURRENT_BUFFER.
15285
15286Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15287
15288 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15289
15290 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15291 New member MAX_PIXEL_HEIGHT.
15292
15293 * xterm.c (x_per_char_metric): Get per character metrics.
15294 (XTget_char_info): More cases covered.
15295
15296 * term.c (get_char_and_info): Get next character and character
15297 display information.
15298 (get_char_info): Get character display information.
15299
15300 * dispextern.h: Character display information.
15301
427ec082 15302 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15303 encode character.
15304 (XTget_char_info): Get display information about a character.
15305
15306Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15307
15308 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15309 zero if window is mini-window.
15310
15311 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15312 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15313
427ec082 15314 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15315 (clear_glyph_row): Clear pixel height.
15316 (update_window): Use PIXEL_HEIGHT.
15317
15318 * xdisp.c (display_string): Set row pixel height temporarily.
15319 (display_text_line): Ditto.
15320
427ec082 15321 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15322 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15323
427ec082 15324 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15325 line in default font.
15326 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15327 in default font.
15328 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15329
15330 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15331 in pixels.
15332
15333 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15334
15335 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15336 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15337 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15338 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15339 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15340 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15341 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15342 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15343 pixel values related to windows.
15344
15345Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15346
15347 * xterm.c (XTflash): Flash last line of frame.
15348
15349 * dispextern.h (cursor_in_echo_area): Extern declaration.
15350
15351 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15352 freezes stem from 16-bit functions.
26901792
DL
15353
15354 * xterm.c (x_display_and_set_cursor): Don't display hollow
15355 cursor in mini windows.
15356
15357 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15358 (make_window): Ditto.
15359
15360 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15361 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15362 and X_DISPLAY_BAR_CURSOR.
15363 (x_display_cursor): Use it.
15364 (x_update_window_cursor): Use it.
15365
15366 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15367 selected.
26901792
DL
15368
15369 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15370 of X and Y to denote matrix positions.
15371 (x_display_cursor): Ditto.
15372
15373 * dispnew.c (scrolling_window): Scrolling for windows.
15374
15375Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15376
15377 * dispnew.c (build_frame_matrix): Work on windows with update
15378 flag set.
15379 (build_frame_matrix_from_window_tree): Ditto.
15380 (build_frame_matrix_from_leaf_window): Ditto.
15381
15382 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15383 building frame matrix.
427ec082 15384 (redisplay_internal): Set window update flags instead of
26901792
DL
15385 building frame matrix.
15386
15387 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15388 building frame matrix.
15389
15390 * window.c (make_window): Initialize new members.
15391 (replace_window): Ditto.
15392
15393 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15394 I don't believe this is really necessary.
15395
15396 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15397 border glyph once.
26901792
DL
15398
15399Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15400
427ec082 15401 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15402 window tree off.
15403
427ec082 15404 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15405 window matrix.
15406 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15407 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15408 (x_update_cursor): Work on windows.
15409 (x_display_bar_cursor): Ditto.
15410 (x_draw_single_glyph): Ditto.
15411
15412 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15413
15414 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15415 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15416 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15417 parameter.
26901792 15418
d7d0dac0 15419 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15420
15421 * window.c (window_rightmost_p, window_topmost_p): Based on
15422 window tree.
15423
15424 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15425 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15426
15427 * window.h: PHYS_CURSOR_.* added.
15428
15429 * frame.h (struct frame): Cursor information removed.
15430
15431 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15432 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15433
15434 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15435
15436 * window.c (window_internal_width): Scroll bars no longer
15437 part of window.
15438
d7d0dac0 15439 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15440
d7d0dac0 15441 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15442
15443 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15444 (redisplay_internal): Ditto.
15445 (redisplay_window): Ditto.
15446 (redisplay_window): Ditto.
15447 (display_text_line): Ditto.
15448 (display_mode_line): Ditto.
15449
15450 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15451
15452 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15453 (direct_output_for_insert): Ditto.
15454 (direct_output_forward_char): Ditto.
15455 (update_frame_1): Ditto.
15456
15457Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15458
15459 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15460 being updated.
26901792
DL
15461 (update_window): Set and clear it.
15462
15463 * dispnew.c (update_window_line, update_window, scrolling_window):
15464 First versions.
15465
15466 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15467 bar for window borders.
15468 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15469 with spaces.
15470 (fill_up_glyph_row_with_spaces): Call above function.
15471
15472 * xdisp.c (display_text_line): Don't add vertical bar for
15473 window borders.
15474 (display_string): Ditto.
15475
15476 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15477 (replace_window): Ditto.
15478
15479 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15480
15481 * xfns.c (Fx_contour_region): Use selected window cursor position.
15482 (Fx_uncontour_region): Ditto.
15483 (Fx_select_region): Ditto.
15484
15485 * frame.c (make_frame): Remove CURSOR_X/Y.
15486
15487 * xdisp.c (redisplay_internal): Use window cursor position.
15488
15489 * dispnew.c (update_frame_1): Use cursor position of selected
15490 window.
15491 (change_frame_size_1): Ditto.
15492
15493 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15494 (XTwrite_glyphs): Use cursor position of selected window.
15495
d7d0dac0 15496 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15497
15498 * dispnew.c (set_cursor_to): Set window cursor position.
15499 (direct_output_for_insert): Use window cursor position.
15500 (init_display): Don't use frame cursor position.
15501
15502 * window.h: CURSOR_VPOS/HPOS added.
15503
15504 * frame.h (struct frame): CURSOR_X/Y removed.
15505 (FRAME_CURSOR_X): Removed.
15506 (FRAME_CURSOR_Y): Ditto.
15507
15508 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15509 (direct_output_forward_char): Ditto.
15510
d7d0dac0 15511 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15512
15513 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15514
15515 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15516
15517Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15518
15519 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15520 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15521
15522 * dispextern.h: Changed function names.
15523
15524 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15525 < 2.
15526 (clear_window_matrices): Formerly two functions for desired
15527 and current matrix.
15528 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15529 (update_frame): Return return value from UPDATE_FRAME_1.
15530
15531Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15532
15533 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15534 LAST_TEXT_VPOS.
15535
15536 * frame.c (set_menu_bar_lines): Adjust matrices.
15537
15538 * dispnew.c (set_cursor_to): Set cursor position.
15539
15540 * minibuf.c (read_minibuf): Build frame matrix.
15541
15542 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15543 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15544 relative.
26901792
DL
15545 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15546 reason.
15547
427ec082 15548 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15549 menu bar.
15550 (clear_window_records): Clear window rows.
15551 (clear_frame_records): Clear window and frame rows.
15552 (clear_glyph_matrix): Set all rows of a matrix to empty.
15553
d7d0dac0
SM
15554 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15555 Update frame if set.
26901792
DL
15556 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15557 removed.
15558 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15559 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15560
15561 * dispnew.c (assign_row): Assign one glyph row to another.
15562 (mirrored_make_current): Use it.
15563 (mirror_make_current): Use it.
15564 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15565 used counters for the current glyph row.
427ec082 15566
26901792
DL
15567
15568Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15569
15570 * lisp.h: Prototype for SCAN_BUFFER.
15571
15572 * xdisp.c (redisplay_windows): Simplified.
15573
15574 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15575 with debug checks.
15576 (window_to_frame_hpos): Convert window to frame hpos with checks.
15577 (frame_to_window_vpos): Convert frame to window vpos with checks.
15578 (frame_to_window_hpos): Convert frame to window hpos with checks.
15579
15580 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15581
15582 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15583
15584 * xdisp.c (redisplay_internal): Another instance of
15585 DISPLAY_TEXT_LINE with window relative VPOS.
15586 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15587
15588 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15589 only.
15590
15591 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15592 (redisplay_internal): Ditto.
15593
15594 * dispnew.c (cancel_window_line): Use window matrix. Changed
15595 name to CANCEL_WINDOW_LINE.
15596
15597 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15598 relative VPOS.
15599
427ec082
SS
15600 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15601 to frame vpos.
26901792
DL
15602 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15603 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15604 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15605
15606 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15607 window relative VPOS.
15608 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15609 relative VPOS.
15610
15611 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15612 MATRIX_BUFFER_POSITIONS.
15613
15614 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15615
15616 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15617
427ec082 15618 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15619 matrix. Change name to scroll_full_width_window.
15620
15621 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15622 NONINTERACTIVE.
26901792
DL
15623
15624Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15625
15626 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15627 and window matrices.
26901792
DL
15628 (adjust_window_charstarts): Use window matrix.
15629 (cancel_my_columns): Use window matrix.
15630 (direct_output_for_insert): Use window matrix, only.
15631
15632 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15633 (display_string): Call display_glyphs.
15634 (display_menu_bar_string): Display a string in a menu bar line.
15635 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15636 (display_text_line): Use window matrix.
15637 (try_window): Use window relative positions.
15638
15639Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15640
15641 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15642 (0, 0).
26901792 15643 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15644 top-most windows.
26901792
DL
15645
15646 * window.h (WINDOW_TOPMOST_P): Added.
15647
15648 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15649 (redisplay_window): Ditto.
15650 (display_text_line): Ditto.
15651 (display_menu_bar): Ditto.
15652 (display_mode_line): Ditto.
15653 (display_mode_line): Use window matrix.
15654 (display_string): Use window matrix.
15655 (display_mode_element): Ditto.
15656 (echo_area_display): Don't display if frame has no pools yet.
15657 (echo_area_display): Work with window matrix for mini window.
15658 (redisplay_window): Use window marix for mini window.
15659 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15660 use that for DISPLAY_STRING.
26901792
DL
15661
15662 * dispextern.h: Prototype for prepare_desired_row.
15663
d7d0dac0 15664 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15665
15666 * dispnew.c (adjust_window_charstarts): Always allocate window
15667 matrices.
15668 (clear_glyph_row): Only reset used counters and flags.
15669
15670Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15671
15672 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15673 line is non-empty.
26901792
DL
15674 (realloc_glyph_pool): Don't add 1 to the pool size.
15675 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15676
15677 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15678 (line_draw_cost): Ditto.
15679 (update_line): Ditto.
15680 (update_line): Use SPACE_GLYPH.
15681 (count_blanks): Additional parameter LEN.
15682
15683 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15684 (display_text_line): Don't add null-glyph end marker.
15685 (display_string): Use SPACE_GLYPH.
15686 (display_string): Don't use null-glyph end marker.
15687
15688 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15689
15690 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15691 (fill_up_glyph_row_with_spaces): Ditto.
15692 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15693 rows, instead of null-glyphs.
15694 (direct_output_for_insert): Don't add null-glyph end marker.
15695
15696 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15697 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15698 (do_scrolling): Ditto.
15699
15700 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15701 frame matrix in window matrices.
26901792 15702 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15703 Maybe do corresponding assignments in window matrices.
26901792 15704 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15705 rows agree about glyph pointers.
26901792
DL
15706 (check_matrix_pointers): Ditto.
15707 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15708 maybe mirror the operation in window matrices.
26901792 15709 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15710 frame matrix row was made current.
26901792
DL
15711
15712Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15713
15714 * dispnew.c (check_matrix_pointer_lossage): Check against
15715 pointer lossage in matrices.
15716 (get_glyph_matrix_row): Removed.
15717
15718 * scroll.c (do_scrolling): Simplified.
15719 (do_direct_scrolling): Simplified.
15720 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15721 DO_.*SCROLLING.
427ec082 15722
26901792
DL
15723
15724 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15725 (rotate_vector): Removed.
15726 (rotate_pointers): Removed.
15727 (scroll_frame_lines): Simplified.
15728
15729Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15730
15731 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15732
15733 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15734 what the name says.
15735 (clear_glyph_row): Make a glyph row structure empty.
15736 (make_matrix_row_current): Make a glyph row current.
15737 (make_window_matrix_row_current): Perform analogous row swaps
15738 for window matrices.
15739 (update_line): Call make_matrix_row_current.
15740
15741Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15742
15743 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15744 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15745 INVERSE_P.
15746 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15747 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15748
15749 * all files: use above new names.
15750
15751 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15752 SCROLL_GLYPH_MATRIX.
26901792 15753 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15754 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15755 buffer positions in a glyph row.
15756 (increment_glyph_matrix_buffer_positions): Increment buffer
15757 positions in a range of rows.
15758 (scroll_glyph_matrix): Scroll a glyph matrix.
15759 (swap_glyphs_in_rows): Swap glyphs between rows.
15760 (swap_glyph_pointers): Swap pointers between rows.
15761 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15762 (init_display): Initialize SPACE_GLYPH.
15763 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15764 spaces.
26901792
DL
15765
15766Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15767
15768 * xterm.c (dumprectangle): Use vectors in glyph rows.
15769
15770 * xdisp.c (display_text_line): Use vectors in glyph rows.
15771 (display_string): Ditto.
15772
15773 * scroll.c (do_scrolling): Use vectors in glyph rows.
15774 (do_direct_scrolling): Ditto.
15775
15776 * alloc.c (mark_object): Use vectors in glyph rows.
15777 Mark for all frame types.
15778
15779 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15780 glyph rows.
15781 (get_glyph_matrix_row): Ditto.
15782 (matrix_row): Ditto.
15783 (rotate_pointers): Ditto.
15784 (scroll_frame_lines): Ditto.
15785 (preserve_other_columns): Ditto.
15786 (cancel_my_columns): Ditto.
15787 (update_line): Ditto.
15788 (direct_output_for_insert): Ditto.
15789
15790 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 15791 instead of individual members. Use a vector of used counters.
26901792
DL
15792 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15793 (MATRIX_ROW_GLYPH_START): Ditto.
15794 (MATRIX_ROW_GLYPH_END): Ditto.
15795 (MATRIX_ROW_USED): Ditto.
15796 (MATRIX_ROW_SET_USED): Ditto.
15797
15798 * dispnew.c (line_hash_code): Simplified.
15799
15800Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15801
15802 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15803 CHANGE_FRAME_SIZE_1
15804 (preserve_other_columns): Void return.
15805 (cancel_my_columns): Void return type.
15806 (scrolling): Int return type.
15807 (do_pending_window_change): Void return type.
15808 (change_frame_size): Ditto.
15809 (bitch_at_user): Ditto.
15810 (init_display): Ditto.
15811 (syms_of_display): Ditto.
15812
15813 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
15814 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15815 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15816 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15817 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15818 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15819 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 15820 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15821
26901792 15822 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 15823 void.
26901792
DL
15824 (cancel_line): Return void.
15825 (clear_frame_records): Return void.
427ec082 15826
26901792
DL
15827 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15828 (SET_CHAR_GLYPH): Fill a character glyph.
15829 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15830 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15831 glyph.
26901792
DL
15832 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15833 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15834 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15835 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15836 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15837 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15838 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15839 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15840 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15841
15842 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15843
15844 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 15845 come below CURRENT_MATRIX.
26901792
DL
15846
15847 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 15848 member CURRENT_MATRIX.
26901792
DL
15849
15850Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15851
15852 * scroll.c (do_scrolling): Change algorithm to use pointers.
15853 (do_direct_scrolling): Ditto.
15854
15855 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15856 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15857 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15858 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 15859 Returns 1 if pool changed.
26901792
DL
15860 (matrix_row): Additional check for lost pointers to glyph rows.
15861 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
15862 allocation should take place. Addtional parameter
15863 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 15864 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
15865 when window matrix changes. Additional parameter DIM_ONLY_P set
15866 to 1 to indicate that no allocation should take place.
26901792 15867 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 15868 matrices. Optimize frame redraws.
26901792
DL
15869 (free_glyphs): Free pools.
15870 (check_glyph_memory): Check pools not freed.
15871 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15872 (scroll_frame_lines): Change algorithm to use pointers.
15873 (update_line): Ditto.
15874
15875 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15876 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 15877 MATRIX.
26901792
DL
15878
15879Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15880
15881 * dispextern.h (struct glyph_pool): Replacement for former
15882 FRAME_GLYPH_MATRIX.
15883 (struct glyph_matrix): No longer contains sizes of allocated
15884 areas.
15885
15886 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15887 no glyph pools.
15888
15889 * frame.c (make_frame): Initialize pools.
15890
15891Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15892
427ec082 15893 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15894 line moving algorithm has no intermediate steps.
15895 (do_scrolling): Ditto.
15896
15897 * Makefile.in (alloc.o): Add dependency dispextern.h.
15898
15899 * alloc.c: Include dispextern.h for glyph definitions.
15900
15901 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15902 is legal, return 0 otherwise.
15903
15904 * window.h: Add comment that windows are marked specially.
15905
15906 * alloc.c (mark_object): Mark windows specially.
15907
15908
15909Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15910
15911 * dispextern.h (struct glyph): Add member OBJECT
15912 referencing a Lisp object from which a glyph was drawn.
15913 Member TEXT_POSITION renamed POSITION.
15914 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15915
15916 * alloc.c: Include dispextern.h
15917 (mark_object): Mark objects referenced from glyphs.
15918
f28eba7b 15919 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15920
15921 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15922 (do_scrolling): Ditto.
15923
427ec082 15924 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15925 DECODE_MODE_SPEC_BUFFER added.
15926
15927 * window.h: TEMP_MATRIX removed.
15928
15929 * scroll.c: OPHYS_LINES removed.
15930
15931 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15932 FRAME_PTR -> struct frame *.
15933
15934 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15935 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15936
15937 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15938 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15939
15940 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15941 (do_verify_charstarts): Removed.
15942
15943 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15944 (Fdelete_frame): Free glyphs.
15945 (make_frame): Initialize matrix fields in frame.
15946
f28eba7b 15947 * config.in (PROTO): Added.
26901792 15948
f28eba7b 15949 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15950
15951 * window.c (Fdelete_window): Free window matrices.
15952 (Fset_window_configuration): Ditto.
15953 (Fdelete_window): Adjust glyphs.
15954 (Fsplit_window): Ditto.
15955 (change_window_height): Ditto.
15956 (Fset_window_configuration): Ditto.
15957 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15958 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15959
15960 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15961
15962 * window.c: Include dispextern.h
15963
15964 * scroll.c (do_scrolling): Use new glyphs.
15965 (do_direct_scrolling): Ditto.
15966
15967 * xdisp.c: Some function prototypes.
15968 (redisplay_internal): Don't do anything if matrices not yet set.
15969 (redisplay_internal): Use new glyphs.
15970 (try_window_id): Ditto.
15971 (copy_part_of_rope): Ditto.
15972 (display_text_line): Ditto.
15973 (display_menu_bar): Ditto.
15974 (display_mode_line): Ditto.
15975 (display_string): Ditto.
15976
15977 * xterm.c: Prototypes for some local functions.
15978 (dumpglyphs): Use new glyphs.
15979 (XTwrite_glyphs): Ditto.
15980 (dumprectangle): Ditto.
15981 (note_mouse_highlight): Ditto.
15982 (fast_find_position): Ditto.
15983 (show_mouse_face): Ditto.
15984 (x_draw_single_glyph): Ditto.
15985 (x_display_bar_cursor): Ditto.
15986 (x_display_box_cursor): Ditto.
15987 (x_new_font): Adjust glyphs when font change.
15988
15989 * term.c (clear_end_of_line): Use new glyphs.
15990 (write_glyphs): Ditto.
15991 (insert_glyphs): Ditto.
15992
15993 * Makefile.in (term.o): term.c depends on dispextern.h
15994
15995 * term.c: Include dispextern.h
15996
15997 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15998 removed, new inserted.
26901792
DL
15999 (line_hash_code): Use new glyphs.
16000 (line_draw_cost): Ditto
16001 (cancel_line): Ditto
16002 (clear_frame_records): Ditto.
16003 (init_desired_glyphs): Ditto.
16004 (get_display_line): Ditto
16005 (scroll_frame_lines): Ditto.
16006 (preserve_other_columns): Ditto.
16007 (adjust_window_charstarts): Ditto.
16008 (cancel_my_columns): Ditto.
16009 (direct_output_for_insert): Ditto.
16010 (update_frame): Ditto.
16011 (quit_error_check): Made empty.
16012 (scrolling): Use new glyphs.
16013 (count_blanks): Ditto.
16014 (count_match): Ditto.
16015 (update_line): Ditto.
16016 (init_display): Adjust glyphs initially.
16017 (change_frame_size_1): Adjust glyphs.
16018
16019 * dispextern.h: Old glyphs removed, new added.
16020
16021 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
16022
16023 * xterm.h: Prototype for min_char_bounds.
16024
16025 * window.h (struct window): Remove old glyphs, add new.
16026
16027 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 16028
26901792
DL
160291999-07-20 Dave Love <fx@gnu.org>
16030
16031 * buffer.c (syms_of_buffer): Make
16032 default-enable-multibyte-characters a user variable.
16033
160341999-07-14 Richard Stallman <rms@gnu.org>
16035
16036 * Version 20.4 released.
16037
160381999-07-14 Richard Stallman <rms@gnu.org>
16039
16040 * filelock.c (lock_file): Do nothing if purifying.
16041
160421999-07-10 Richard Stallman <rms@gnu.org>
16043
16044 * xterm.c (x_display_bar_cursor): Use the cursor-color
16045 to display the bar, not the cursor foreground pixel.
16046
160471999-07-09 Andrew Innes <andrewi@gnu.org>
16048
16049 * w32console.c (w32_use_full_screen_buffer): New variable.
16050 (syms_of_ntterm): Register it.
16051 (initialize_w32_display): Set initial frame size accordingly,
16052 respecting the LINES and COLUMNS environment variables if set.
16053
16054 * w32inevt.c (w32_console_read_socket): Use it.
16055
160561999-07-07 Kenichi Handa <handa@etl.go.jp>
16057
16058 * callproc.c (Fcall_process): Decide coding system for decoding
16059 after we set to the target buffer. If the output goes to a
16060 unibyte buffer, suppress character code conversion.
16061
16062 * fileio.c (Finsert_file_contents): If reading into a unibyte
16063 buffer, suppress character code conversion.
16064
16065 * process.c (create_process): If the output goes to a unibyte
16066 buffer, suppress character code conversion.p
16067
160681999-07-07 Andreas Schwab <schwab@gnu.org>
16069
16070 * xdisp.c (line-number-display-limit): Doc fix.
16071
160721999-07-05 Richard Stallman <rms@gnu.org>
16073
16074 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
16075 (Fcall_process_region): Likewise.
16076
160771999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16078
16079 * callproc.c (init_callproc): Set exec_directory if
16080 installation_directory is non-nil, without a test of exec_path.
16081
160821999-07-01 Andrew Innes <andrewi@gnu.org>
16083
16084 * w32xfns.c (drain_message_queue): New function.
16085
16086 * w32term.h (drain_message_queue): Add extern.
16087
16088 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
16089 of WaitForMultipleObjects when user input is allowed, so we can
16090 handle incoming window messages. Call drain_message_queue when
16091 there are messages waiting; this ensures that windows created
16092 indirectly from the lisp thread get processed properly, and don't
16093 hang other applications by failing to respond to broadcasts.
16094
160951999-07-01 Andreas Schwab <schwab@gnu.org>
16096
16097 * callint.c (Fcall_interactively): Ignore first element of
16098 event-symbol-elements property.
16099
161001999-07-01 Richard Stallman <rms@gnu.org>
16101
16102 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
16103
161041999-07-01 Kenichi Handa <handa@etl.go.jp>
16105
16106 * minibuf.c (read_minibuf): Set the multibyteness of the
16107 minibuffer before inserting `initial' string.
16108
161091999-06-30 Richard Stallman <rms@gnu.org>
16110
16111 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
16112
161131999-06-29 Richard M. Stallman <rms@gnu.org>
16114
16115 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
16116 Move the handling of MALLOC_CHECK_ envvar here.
16117 (main): Moved from here.
16118
161191999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
16120
16121 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
16122 function, assigned to the global __malloc_initialize_hook pointer.
16123 (main): Move malloc_set_state call into malloc_initialize_hook
16124 so that it happens as early as possible.
16125
161261999-06-27 Richard M. Stallman <rms@gnu.org>
16127
16128 * keyboard.c (read_key_sequence): Properly reinitialize
16129 fkey_map after translating thru Vkey_translation_map.
16130 After translating thru Vfunction_key_map, don't reset
16131 keytrans-start to 0.
16132
161331999-06-24 Geoff Voelker <voelker@cs.washington.edu>
16134
16135 * w32.c (get_emacs_configuration): Use GetVersionEx to
16136 handle NT5.0 correctly. Include build number in configuration.
16137 w32heap.c (osinfo_cache): New variable.
16138 (cache_system_info): Initialize osinfo_cache.
16139 w32heap.h (osinfo_cache): Declare.
16140
161411999-06-24 Richard M. Stallman <rms@gnu.org>
16142
16143 * casefiddle.c (casify_object): Use make_multibyte_string
16144 if we casify a multibyte string.
16145
161461999-06-22 Ken'ichi Handa <handa@gnu.org>
16147
16148 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
16149 del_range_byte instead of del_range_1, set `inserted' to the
16150 number of characters actually inserted.
16151
161521999-06-17 Dave Love <fx@gnu.org>
16153
16154 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16155
161561999-06-18 Paul Eggert <eggert@twinsun.com>
16157
16158 * filelock.c (BOOT_TIME_FILE): New macro.
16159 (get_boot_time): Use it instead of hardwiring the file name.
16160 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16161
161621999-06-17 Dave Love <fx@gnu.org>
16163
16164 * xdisp.c (invalid_eol_type): Make it unsigned.
16165
161661999-06-17 Karl Heuer <kwzh@gnu.org>
16167
16168 * process.c (send_process): Delete unsafe/redundant assignment.
16169
161701999-06-17 Jason Rumney <jasonr@gnu.org>
16171
16172 * w32term.c (dumprectangle): Handle wide characters properly.
16173
161741999-06-16 Andrew Innes <andrewi@gnu.org>
16175
16176 * s/ms-w32.h (strerror): Override the default implementation of
16177 strerror, so we can map winsock error codes.
16178
16179 * w32.c (sys_strerror): New function.
16180
16181 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16182
161831999-06-15 Ken'ichi Handa <handa@gnu.org>
16184
16185 * buffer.c (syms_of_buffer): Don't make
16186 enable-multibyte-characters customizable.
16187
161881999-06-15 Richard M. Stallman <rms@gnu.org>
16189
16190 * editfns.c (Fuser_full_name): Doc fix.
16191
161921999-06-14 Tak Ota <ota@atc.sel.sony.com>
16193
16194 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16195 (get_bitmap_with_cache): Check if CreateBitmap failed.
16196 Adjust cache size dynamically so cache is never larger than the
16197 system limit of GDI resources.
16198 Do cache clearing inline. Move global variables to local scope.
16199
16200
162011999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16202
16203 * unexsgi.c (unexec): Dump the .rodata section from memory
16204 under IRIX6.5 in order to be able to unexec with gcc.
16205
162061999-06-11 Greg Hudson <ghudson@MIT.EDU>
16207
16208 * indent.c (compute_motion): Fix boundary case.
16209
162101999-06-11 Jason Rumney <jasonr@altavista.net>
16211
16212 * w32term.c (cancel_mouse_face): New function. See equiv
16213 changes to xterm.c on 1996-10-31.
16214 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16215 (w32_read_socket): Use cancel_mouse_face.
16216 Update frame position when size is restored.
26901792
DL
16217
162181999-06-04 Richard M. Stallman <rms@gnu.org>
16219
16220 * lread.c (Vuser_init_file): New variable.
16221 (syms_of_lread): Set up Lisp variable.
16222 (Fload): Store the file name there, if var was t before.
16223
162241999-06-04 Paul Eggert <eggert@twinsun.com>
16225
16226 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16227 doesn't work if the system date is changed, or if the system
16228 is suspended. Look at the last-modified time of
16229 /var/run/random-seed instead.
16230
162311999-06-03 Ken'ichi Handa <handa@gnu.org>
16232
16233 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16234 japanese-jisx0208-1978 correctly.
16235
162361999-06-03 Andrew Innes <andrewi@gnu.org>
16237
16238 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16239 as possible to be dumped, for safety.
16240
162411999-06-02 Ken'ichi Handa <handa@gnu.org>
16242
16243 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16244 latin-jisx0201 correctly.
16245
162461999-05-26 Ken'ichi Handa <handa@gnu.org>
16247
16248 * charset.h (Vcharset_table): Comment fixed.
16249
162501999-05-24 Richard Stallman <rms@gnu.org>
16251
16252 * coding.c (syms_of_coding): Doc fix.
16253
16254 * buffer.c (syms_of_buffer): Doc fix.
16255
16256 * filelock.c (lock_if_free): After deleting a stale lock,
16257 try again to lock the file.
16258
162591999-05-22 Andrew Innes <andrewi@gnu.org>
16260
16261 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16262 console window size.
16263 (w32_console_read_socket): Call maybe_generate_resize_event
16264 whenever input events are received, since we don't get told when
16265 the window size changes (as opposed to the buffer size, which we
16266 don't care about).
16267
16268 * w32console.c (clear_frame): Remember that the window width might
16269 be smaller than the screen buffer width.
16270 (write_glyphs): Remove redundant variable attrs. Use
16271 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16272
162731999-05-20 Andrew Innes <andrewi@gnu.org>
16274
16275 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16276 loses focus.
16277
16278 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16279 frame loses focus, and that mouse button state is reset. Ditto
16280 when the menu bar is activated.
16281
162821999-05-18 Richard Stallman <rms@gnu.org>
16283
16284 * abbrev.c (Fdefine_abbrev): Doc fix.
16285
162861999-05-13 Paul Eggert <eggert@twinsun.com>
16287
16288 * filelock.c: Fix performance bug on hosts with large
16289 /var/adm/wtmp files with no boot records.
16290
16291 (boot_time_initialized): New var.
16292 (init_filelock): Initialize it.
16293 (get_boot_time): Use it, instead of nonzero boot_time,
16294 to test whether boot_time is initialized.
16295 Don't invoke utmp routines when dumping.
16296
16297 (get_boot_time): First, try to get the boot time from the
16298 current utmp file, as this can be much faster. Don't try to
16299 get the boot time from utmp and/or wtmp more than once.
16300
16301 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16302 New arg LATEST. All uses changed.
16303
163041999-05-15 Andrew Innes <andrewi@gnu.org>
16305
16306 * w32term.c (dumpglyphs): Use correct colours for drawing
16307 rectangles in place of missing fonts, and make them the right
16308 size.
16309
163101999-05-14 Dave Love <fx@gnu.org>
16311
16312 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16313 non-nil.
16314
163151999-05-11 Andrew Innes <andrewi@gnu.org>
16316
16317 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16318 definition.
16319 (w32_wnd_proc): Reinstall debugging output.
16320 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16321 (syms_of_w32fns): Reinstall new initializer for
16322 Vw32_phantom_key_code.
16323
16324 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16325 names for most non-European charsets, to cope with wildcards or
16326 missing spec dates.
16327 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16328 to avoid deadlock when activating the menu bar.
16329
163301999-05-10 Ken'ichi Handa <handa@gnu.org>
16331
16332 * search.c (boyer_moore): Get charset base value of `untranslated'
16333 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16334
163351999-05-10 Andreas Schwab <schwab@gnu.org>
16336
16337 * fileio.c (Fread_file_name): Correct handling of dollars in file
16338 names. Protect dollars in strings put on the file-name-history.
16339 Substitute homedir by `~' also in default_filename.
16340
16341 * xdisp.c (try_window_id): Fix computation of tab_offset when
16342 backing up over a character that is splitted across lines.
16343
163441999-05-08 Kenichi HANDA <handa@etl.go.jp>
16345
16346 * coding.c (code_convert_region): If eol format is inconsistent,
16347 change coding->symbol to the sibling coding system of Unix like
16348 eol format.
16349
163501999-05-09 Richard M. Stallman <rms@gnu.org>
16351
16352 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16353
16354 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16355
163561999-05-05 Andrew Innes <andrewi@gnu.org>
16357
16358 * w32fns.c (w32_strict_painting): New variable.
16359 (w32_wnd_proc): Use it to select repaint rules.
16360 (syms_of_w32fns): Defvar it.
16361
163621999-05-04 Andrew Innes <andrewi@gnu.org>
16363
16364 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16365 charsets to the standard Windows charset for Japanese.
16366
163671999-05-04 Ken'ichi Handa <handa@gnu.org>
16368
16369 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16370
16371 * ccl.h (struct ccl_program): New member stack_idx.
16372
16373 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16374 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16375 before returing.
16376 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16377
163781999-05-03 Jason Rumney <jasonr@altavista.net>
16379
16380 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16381
163821999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16383
16384 * dired.c (make_time): Make argument type be time_t.
16385
163861999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16387
16388 * msdos.c (unibyte_display_via_language_environment): Add extern.
16389
83c8f461 163901999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16391
16392 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16393 if unibyte_display_via_language_environment is set.
16394 (unibyte_display_via_language_environment):
16395 Variable moved from xfns.c and elsewhere.
16396 (syms_of_xfns): Set up Lisp var.
16397
16398 * xfns.c (unibyte_display_via_language_environment):
16399 Variable moved to xdisp.c.
16400 (syms_of_xfns): Don't set up Lisp var here.
16401
16402 * msdos.c (unibyte_display_via_language_environment):
16403 Variable moved to xdisp.c.
16404 (syms_of_msdos): Don't set up Lisp var here.
16405
16406 * w32fns.c (unibyte_display_via_language_environment):
16407 Variable moved to xdisp.c.
16408 (syms_of_w32fns): Don't set up Lisp var here.
16409
164101999-05-02 Andrew Innes <andrewi@gnu.org>
16411
16412 * s/ms-w32.h (HAVE_FSYNC): New macro.
16413 (fsync): Map to _commit.
16414 (ftruncate): Map to _chsize.
16415
16416 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16417 for ASCII, if enabled, to avoid memory allocation overhead for
16418 implicit Unicode conversion. Also, recognize that ASCII and
16419 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16420 already contains the Unicode characters in that case.
16421 (construct_drag_n_drop): Remove old code that was
16422 trashing the drop location.
16423
16424 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16425 nlines to encoding_buffer_size (real bug was in a ccl program in
16426 lisp/international/coding.el).
16427
16428 * w32reg.c (w32_get_string_resource): Check for name in current
16429 user area, and if not found look in the local machine area.
16430
16431 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16432 (Fw32_shell_execute): New function; used to support browse-url.
16433 (syms_of_w32fns): Register it.
16434 (w32_load_system_font): Force max width to be average
16435 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16436 slowdown.
16437 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16438 already defined.
16439 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16440
16441 * unexw32.c (get_section_info): Dump back the entire EMDATA
16442 section if we can put Emacs' initialized data in a separate
16443 section, otherwise use the my_begdata/my_edata method.
16444
16445 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16446
16447 * coding.c (decode_eol): Set produced/consumed values to zero if
16448 src_bytes is <= 0 on entry.
16449
164501999-05-02 Jason Rumney <jasonr@altavista.net>
16451
16452 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16453 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16454 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16455 field in frame.
16456 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16457 (dumprectangle): Take into account the width of a left-side
16458 scroll bar.
16459
16460 * w32proc.c (sys_kill): Attach to current foreground thread
16461 when grabbing focus; necessary on NT 5.0.
16462
16463 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16464 GetUpdateRect rather than BeginPaint.
16465 (w32_wnd_proc): Attach to current foreground thread
16466 when grabbing focus; necessary on NT 5.0.
16467 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16468 debugging display messages.
16469 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16470 false matching.
16471
164721999-05-02 Kenichi HANDA <handa@etl.go.jp>
16473
16474 * coding.c (setup_raw_text_coding_system): Call
16475 setup_coding_system to initialize the fields of struct
16476 coding_system correctly.
427ec082 16477
26901792
DL
164781999-04-26 Kenichi HANDA <handa@etl.go.jp>
16479
16480 * xterm.c (x_list_fonts): Fix previous change.
16481
164821999-04-26 Richard Stallman <rms@gnu.org>
16483
16484 * config.in (HAVE_LIBXP): Add #undef.
16485 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16486
164871999-04-12 Ken'ichi Handa <handa@gnu.org>
16488
16489 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16490 by them.
16491
164921999-04-12 Karl Heuer <kwzh@gnu.org>
16493
16494 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16495
164961999-04-11 Ken'ichi Handa <handa@gnu.org>
16497
16498 * fontset.c (Fset_fontset_font): Fix previous change.
16499
165001999-04-09 Ken'ichi Handa <handa@gnu.org>
16501
16502 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16503 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16504
165051999-04-08 Richard Stallman <rms@gnu.org>
16506
16507 * process.c (Faccept_process_output): Check validity of PROCESS.
16508
165091999-04-08 Eli Zaretskii <eliz@gnu.org>
16510
16511 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16512
165131999-04-07 Richard Stallman <rms@gnu.org>
16514
16515 * xfns.c (x_set_font): Fix error message.
16516
16517 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16518 (Fnew_fontset, Fset_fontset_font): Check for them here.
16519 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16520 Fix error message syntax.
16521
16522 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16523 from the base buffer.
16524 (Fset_buffer_multibyte): Copy new multibyte status
16525 into the buffer's indirect buffers.
16526
165271999-04-07 Ken'ichi Handa <handa@gnu.org>
16528
16529 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16530 tail.
16531
165321999-04-06 Richard Stallman <rms@gnu.org>
16533
16534 * dired.c (Ffile_attributes): Doc fix.
16535
16536 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16537 Convert 0200 to meta only in a unibyte string.
16538 (Fkey_description): Likewise.
16539
16540 * eval.c (do_autoload): Preserve match data.
16541
165421999-04-06 Kenichi HANDA <handa@etl.go.jp>
16543
16544 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16545 encode_coding to avoid carryover.
16546
16547 * coding.c: Add comments for decode_coding and encode_coding.
16548
16549 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16550 a composite character by skipping its leading code.
16551 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16552 correctly.
16553
16554 * coding.c: Add comments for decode_coding and encode_coding.
16555
16556 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16557 a composite character by skipping its leading code.
16558 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16559 correctly.
16560
165611999-04-06 Eli Zaretskii <eliz@gnu.org>
16562
16563 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16564 table was used.
16565 (jp_kbd_translate_table): Support C-\.
16566 (it_kbd_translate_table): Map `>' correctly.
16567 (it_keyboard): Add `>'.
16568
165691999-04-06 Richard Stallman <rms@gnu.org>
16570
16571 * intervals.c (graft_intervals_into_buffer): Turn off
16572 inhibit_modification_hooks around calling Fset_text_properties.
16573
165741999-04-05 Kenichi HANDA <handa@etl.go.jp>
16575
16576 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16577 glyphs.
16578
165791999-04-05 Eli Zaretskii <eliz@gnu.org>
16580
16581 * msdos.c (jp_kbd_translate_table): Fix last change.
16582
165831999-04-04 Eli Zaretskii <eliz@gnu.org>
16584
16585 * msdos.c (struct kbd_translate): New struct, for key translation
16586 tables private to certain national keyboard layouts.
16587 (struct dos_keyboard_map): Add a pointer to a private translation
16588 table.
16589 (jp_kbd_translate_table): Private table for the Japanese
16590 keyboard.
16591 (jp_keyboard): Japanese keyboard layout.
16592 (it_kbd_translate_table): Private table for the Italian keyboard.
16593 (it_keyboard): Use it_kbd_translate_table.
16594 (keyboard_layout_list): Add the Japanese keyboard.
16595 (dos_rawgetc): Use the keyboard-private translation table, if
16596 available.
16597 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16598
165991999-04-02 Kenichi HANDA <handa@etl.go.jp>
16600
16601 * xdisp.c (redisplay_window): When we call compute_motion with
16602 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16603 (display_text_line): Stop the loop for processing overlay strings
16604 when we reach the right edge of the window.
16605
83c8f461 166061999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16607
16608 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16609 let the data control whether string is unibyte.
16610
166111999-03-30 Richard M. Stallman <rms@gnu.org>
16612
16613 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16614 (pop_kbd_macro): Restore the saved real_this_command.
16615 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16616
166171999-03-26 Richard M. Stallman <rms@gnu.org>
16618
16619 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16620 if buffer-file-name is nil.
16621
166221999-03-25 Jason Rumney <jasonr@altavista.net>
16623
16624 * w32select.c (Fw32_set_clipboard_data): Take into account line
16625 ends when calculating clipboard storage needed for non-ASCII text.
16626
166271999-03-25 Andrew Innes <andrewi@gnu.org>
16628
16629 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16630 (epaths.h): Renamed from paths.h.
427ec082
SS
16631 (clean):
16632 ($(BLD)\filelock.obj):
16633 ($(BLD)\lread.obj):
26901792
DL
16634 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16635
166361999-03-23 Ken'ichi Handa <handa@gnu.org>
16637
16638 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16639 ENCODE_ISO_CHARACTER for the previous change on this macro.
16640
166411999-03-23 Kenichi Handa <handa@etl.go.jp>
16642
16643 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16644 eoltype correctly for backward compatibility.
16645
166461999-03-20 Kenichi HANDA <handa@etl.go.jp>
16647
16648 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16649 invalid, produce the buffer internal byte sequence without encoding.
16650
166511999-03-19 Karl Heuer <kwzh@gnu.org>
16652
16653 * editfns.c (Fformat): Accept %i format.
16654
166551999-03-17 Karl Heuer <kwzh@gnu.org>
16656
16657 * filelock.c (get_boot_time): Test tempname, not filename.
16658
166591999-03-17 Jason Rumney <jasonr@altavista.net>
16660
e5619f6b
JR
16661 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16662 speed display.
16663
16664 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16665 speed display.
16666 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16667 New functions.
16668 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16669 Use bitmap cache.
26901792
DL
16670
16671 * w32fns.c (enum_font_cb2): Set the font height to be the
16672 character height, not the cell height.
16673 (Fw32_select_font): Initialize font dialog with current default font.
16674 (Vw32_system_coding_system): New variable.
16675 (w32_strict_filenames): Add comment.
16676 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16677 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16678 (syms_of_w32fns): Add w32-system-coding-system.
16679
166801999-03-15 Richard M. Stallman <rms@gnu.org>
16681
16682 * xterm.c (XTread_socket) <ConfigureNotify>:
16683 If cursor pos is outside the new frame size, mark cursor as off.
16684
166851999-03-14 Ken'ichi Handa <handa@gnu.org>
16686
16687 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16688
16689 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16690 by them.
16691
166921999-03-14 Richard M. Stallman <rms@gnu.org>
16693
16694 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16695 at beginning.
16696
166971999-03-14 Jason Rumney <jasonr@altavista.net>
16698
16699 * w32fns.c (w32_strict_fontnames): New variable.
16700 (Fx_create_frame): Formatting fix.
16701 (w32_load_system_font): Keep trying to load non-existant font
16702 if w32_strict_fontnames is nil. Formatting fix.
16703 (syms_of_w32fns): Add w32-strict-fontnames.
16704
16705 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16706 (dumpglyphs): Formatting fixes.
16707
167081999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16709
16710 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16711
167121999-03-10 Karl Heuer <kwzh@gnu.org>
16713
16714 * puresize.h (BASE_PURESIZE): Increase to 505000.
16715
167161999-03-09 Richard M. Stallman <rms@gnu.org>
16717
16718 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16719
16720 * filelock.c (init_filelock): New function.
16721
167221999-03-09 Dave Love <fx@gnu.org>
16723
16724 * fileio.c (Ffile_directory_p): Doc fix.
16725
83c8f461 167261999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16727
16728 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16729
167301999-03-08 Richard M. Stallman <rms@gnu.org>
16731
16732 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16733 to only the part that uses get_boot_time_1.
16734
167351999-03-07 Dave Love <fx@gnu.org>
16736
16737 * fileio.c (Finsert_file_contents): Use xfree.
16738
167391999-03-06 Kenichi Handa <handa@etl.go.jp>
16740
16741 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16742 term.o, xselect.o): Depend on ccl.h.
16743
167441999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16745
16746 * makefile.nt: Remove common multiple file compilation commands.
16747
167481999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16749
16750 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16751 newlines added when the arg NO-LINE-BREAK is nil.
16752
167531999-03-04 Karl Heuer <kwzh@gnu.org>
16754
16755 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16756
16757 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16758
167591999-03-04 Dave Love <fx@gnu.org>
16760
16761 * term.c (term_init): Use xmalloc, not malloc.
16762
16763 * callproc.c (Fcall_process): Use xmalloc, xfree.
16764
167651999-03-03 Andreas Schwab <schwab@gnu.org>
16766
16767 * eval.c (Fdefconst): Doc fix.
16768
167691999-03-01 Kenichi Handa <handa@etl.go.jp>
16770
16771 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16772
167731999-03-01 Eli Zaretskii <eliz@gnu.org>
16774
16775 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16776
167771999-02-28 Richard M. Stallman <rms@gnu.org>
16778
16779 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16780
16781 * cmds.c (internal_self_insert): Calculate column properly
16782 in overwrite-of-tab case.
16783
167841999-02-27 Andreas Schwab <schwab@gnu.org>
16785
16786 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16787 malloc in glibc 2.1.
16788
167891999-02-26 Richard Stallman <rms@gnu.org>
16790
16791 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16792
16793 * epaths.in: Renamed from paths.in.
16794 This avoids a conflict with a system header file paths.h on GNU/Linux.
16795
16796 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16797 Use epaths.h istead of paths.h.
16798
167991999-02-26 Andreas Schwab <schwab@gnu.org>
16800
16801 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16802 malloc.
16803
168041999-02-25 Dave Love <fx@gnu.org>
16805
16806 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16807
168081999-02-25 Richard Stallman <rms@gnu.org>
16809
16810 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16811 (WTMP_FILE): Default definition in case not defined.
16812 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16813
26901792
DL
168141999-02-25 Ken'ichi Handa <handa@gnu.org>
16815
16816 * keymap.c (push_key_description): If enable-multibyte-characters
16817 is nil and C is single byte, push C as is.
16818
168191999-02-24 Kenichi Handa <handa@etl.go.jp>
16820
16821 * keymap.c (push_key_description): If enable-multibyte-characters
16822 is non-nil, try to convert unibyte character to multibyte. For
16823 invalid multibyte character, show all bits by octal form.
16824 (Fsingle_key_description): Check the validity of charset for a
16825 generic character.
16826
168271999-02-23 Richard M. Stallman <rms@gnu.org>
16828
16829 * fileio.c (Ffile_regular_p): Undo previous change.
16830
16831 * eval.c (Fdefconst): Doc fix.
16832
16833 * filelock.c (get_boot_time): Don't use BUFSIZ.
16834
168351999-02-22 Andrew Innes <andrewi@gnu.org>
16836
16837 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16838 (EXTRA_LINK): Do version test with strings.
16839
168401999-02-22 Andreas Schwab <schwab@gnu.org>
16841
16842 * fns.c (Fbase64_encode_string): Fix last change.
16843
16844 * termhooks.h (event_kind): Add user_signal.
16845
16846 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16847 (syms_of_keyboard): Initialize them.
16848 (lispy_user_signals): New variable.
16849 (make_lispy_event): Handle user_signal event type.
16850
16851 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16852 (syms_of_emacs): Don't initialize them.
16853 (handle_USR1_signal, handle_USR2_signal): Set event type to
16854 user_signal instead of non_ascii_keystroke, and use plain integers
16855 as code instead of Lisp symbols.
16856
168571999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16858
16859 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16860
168611999-02-21 Richard Stallman <rms@gnu.org>
16862
16863 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16864
16865 * print.c (print_error_message): Don't crash if (cdr data)
16866 is not a list.
16867
168681999-02-21 Eli Zaretskii <eliz@gnu.org>
16869
16870 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16871
168721999-02-20 Andrew Innes <andrewi@gnu.org>
16873
16874 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16875 run, since size can vary from run to run.
16876
16877 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16878 data is included, to enable profiling.
16879 ($(EMACS)): Map file not needed for emacs.exe.
16880
16881 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16882 as malloc before calling uninterrupt_malloc, for consistency.
16883 This also enables profiling to work on WINDOWSNT.
16884
168851999-02-18 Richard Stallman <rms@gnu.org>
16886
16887 * Makefile.in (emacs.o): Depend on termhooks.h.
16888 (filelock.o): Depend on systime.h.
16889
168901999-02-18 Ken'ichi Handa <handa@gnu.org>
16891
16892 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16893 (Fdecode_big5_char): Likewise.
16894
168951999-02-17 Richard Stallman <rms@gnu.org>
16896
16897 * insdel.c (adjust_markers_for_replace): When doing an insertion
16898 (replacing a region of zero length), handle markers at the
16899 insertion point properly.
16900
169011999-02-17 Andrew Innes <andrewi@gnu.org>
16902
16903 * w32fns.c (Vw32_quit_key): New variable.
16904 (post_character_message): Use it.
16905 (syms_of_w32fns): DEFVAR it.
16906
169071999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16908
16909 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16910
169111999-02-16 Richard Stallman <rms@gnu.org>
16912
16913 * filelock.c (within_one_second): New function.
16914 (current_lock_owner): Use that.
16915 (get_boot_time): Use /proc/uptime if available.
16916 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16917 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16918
26901792
DL
169191999-02-16 Richard Stallman <rms@gnu.org>
16920
16921 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16922 (syms_of_emacs): Init and staticpro them.
16923 (handle_USR1_signal): Don't run any code, just queue up an event.
16924 (handle_USR2_signal): Likewise.
16925
169261999-02-16 Eli Zaretskii <eliz@gnu.org>
16927
16928 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16929 an integer, return it as a float. Doc string fixed.
16930
169311999-02-16 Richard Stallman <rms@gnu.org>
16932
16933 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16934 (syms_of_emacs): Init and staticpro them.
16935 (handle_USR1_signal): Don't run any code, just queue up an event.
16936 (handle_USR2_signal): Likewise.
16937
169381999-02-15 Kenichi Handa <handa@etl.go.jp>
16939
16940 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16941 ASCII correctly. Signal error on invalid characters.
16942 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16943
169441999-02-15 Eli Zaretskii <eliz@gnu.org>
16945
16946 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16947 DOS box which doubles the reported size of text in the clipboard.
16948
169491999-02-15 Kenichi Handa <handa@etl.go.jp>
16950
16951 * coding.c (decode_coding_iso2022): Don't set
16952 coding->composed_chars to 0 here.
16953 (setup_coding_system): Set coding->composed_chars to 0 here.
16954
169551999-02-10 Richard Stallman <rms@gnu.org>
16956
16957 * fileio.c (Ffile_regular_p): Use lstat.
16958
169591999-02-09 Richard Stallman <rms@gnu.org>
16960
16961 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16962 (unexec): Test this instead of specific systems.
16963
16964 * m/macppc.h: New file.
16965
169661999-02-08 Dave Love <fx@gnu.org>
16967
16968 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16969
169701999-02-08 Ken'ichi Handa <handa@gnu.org>
16971
16972 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16973 should be set to coding->produced.
16974
169751999-02-07 Paul Fisher <rao@gnu.org>
16976
16977 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16978 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16979
169801999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16981
16982 * editfns.c (Fformat): Doc fix.
16983
169841999-02-06 Richard Stallman <rms@gnu.org>
16985
16986 * process.c (syms_of_process): defsubr it.
16987 (Fprocess_running_child_p): New function.
16988
169891999-02-05 Andrew Innes <andrewi@gnu.org>
16990
16991 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16992 recording drop position.
16993
169941999-02-05 Ken'ichi Handa <handa@gnu.org>
16995
16996 * coding.c (encode_coding_iso2022): Before writing out an invalid
16997 code, reset graphic planes and registers if necessary.
16998
16999 * term.c (encode_terminal_code): Fix previous change.
17000
170011999-02-04 Eli Zaretskii <eliz@gnu.org>
17002
17003 * w16select.c (last_clipboard_text, clipboard_storage_size): New
17004 static variables.
17005 (set_clipboard_data): Save a copy of the text we put into
17006 clipboard in last_clipboard_text.
17007 (get_clipboard_data): If the clipboard text is identical to what
17008 last_clipboard_text holds, pretend there's no data in the clipboard.
17009
170101999-02-03 Richard Stallman <rms@gnu.org>
17011
17012 * s/gnu.h (NLIST_STRUCT): Add #undef.
17013
170141999-02-03 Eli Zaretskii <eliz@gnu.org>
17015
17016 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
17017 encoded, set its pointer and size as returned by encode_coding.
17018
170191999-02-02 Ken'ichi Handa <handa@gnu.org>
17020
17021 * fns.c (Fset_char_table_default): To handle the case that CH is
17022 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
17023
170241999-02-02 Andrew Innes <andrewi@gnu.org>
17025
17026 * w32fns.c (syms_of_w32fns): Change default value of
17027 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
17028 some mice works properly.
17029
170301999-02-02 Eli Zaretskii <eliz@gnu.org>
17031
17032 * w16select.c (set_clipboard_data): Correctly null-terminate the
17033 string to be put into the Windows clipboard. Use xbuf_addr.
17034
170351999-02-01 Richard Stallman <rms@gnu.org>
17036
17037 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
17038
170391999-01-31 Richard Stallman <rms@gnu.org>
17040
17041 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
17042 then don't send the signal if the shell owns the terminal.
17043 (Finterrupt_process): Doc change.
427ec082 17044
26901792
DL
170451999-01-31 Andrew Innes <andrewi@gnu.org>
17046
17047 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
17048 (copy_executable_and_dump_data): Use it to ensure alignment slop
17049 is zeroed.
17050
170511999-01-30 Andrew Innes <andrewi@gnu.org>
17052
17053 * w32.c (init_environment): Change argv[0] to contain the full
17054 path to Emacs.
17055
17056 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
17057
170581999-01-29 Ken'ichi Handa <handa@gnu.org>
17059
17060 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
17061 returned by x_new_font (the resolved one) but use the font name
17062 set in the fontset specification.
17063 (x_load_font): For the height of font, if normarl ascent and
17064 descent value are larger than those in max_bounds field, use the
17065 former.
17066
170671999-01-28 Eli Zaretskii <eliz@gnu.org>
17068
17069 * xdisp.c (decode_mode_spec_coding): Fix previous change.
17070
170711999-01-27 Geoff Voelker <voelker@cs.washington.edu>
17072
17073 * makefile.nt: Use full path to temacs.exe when dumping.
17074
170751999-01-27 Jason Rumney <jasonr@altavista.net>
17076
17077 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
17078 list was reliable.
17079 (enum_fontex_cb1, enum_fontex_cb2): New functions.
17080 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
17081 (w32_list_synthesized_fonts): New function.
17082 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
17083 available instead of EnumFontFamilies. List synthesized fonts if
17084 Vw32_enable_italics is non-nil.
427ec082 17085
26901792
DL
170861999-01-27 Richard Stallman <rms@gnu.org>
17087
17088 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
17089 Don't complain if ttcompat does not exist.
17090
17091 * w32fns.c (x_set_frame_parameters): gcpro as needed.
17092
170931999-01-27 Andrew Innes <andrewi@gnu.org>
17094
17095 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
17096 the lwindow, rwindow and apps keys could not be used as function
17097 keys, because they were being passed to TranslateMessage which
17098 ignores them. Also, key was being changed to SPC.
17099
17100 * makefile.nt: Do make version comparison as strings.
17101
171021999-01-27 Eli Zaretskii <eliz@gnu.org>
17103
17104 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
17105 strings, not characters.
17106
17107 * coding.h: Likewise.
17108
17109 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
17110 string.
17111
171121999-01-26 Dave Love <fx@gnu.org>
17113
17114 * emacs.c (main): Up-date copyright.
17115
171161999-01-25 Dave Love <fx@gnu.org>
17117
17118 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17119
171201999-01-25 Andreas Schwab <schwab@gnu.org>
17121
17122 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
17123
171241999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
17125
17126 * xfns.c (x_set_frame_parameters): gcpro as needed.
17127
17128 * window.c (Fset_window_point): If WINDOW is selected but the
17129 current buffer is not its buffer, don't use Fgoto_char.
17130
171311999-01-22 Richard M. Stallman <rms@gnu.org>
17132
17133 * syntax.c (scan_sexps_forward): Delete duplicate code
17134 to set prev_from_syntax, above start of main loop.
17135 At startinstring, check syntax when checking for a match.
17136
171371999-01-22 Jason Rumney <jasonr@altavista.net>
17138
17139 * w32bdf.c: New file.
17140 * w32bdf.h: New file.
17141 * makefile.nt: Add w32bdf.c and w32bdf.h.
17142
17143 * w32gui.h: Include w32bdf.h.
17144 (W32FontStruct) Add bdf element.
17145
17146 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
17147 Support BDF fonts.
17148
17149 * w32term.c (W32_TEXTOUT): New macro.
17150 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17151 Simplify baseline calculation. Detect SJIS by font, not glyph.
17152 Call SetTextAlign.
17153 (syms_of_w32term): Remove "jisx0212-sjis" from
17154 w32-charset-to-codepage-alist.
17155 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17156 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17157
26901792
DL
17158 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17159 (x_destroy_bitmap): Returns void not int.
17160 (x_set_border_pixel): Returns void.
17161 (w32_load_bdf_font): New function.
17162 (w32_load_system_font): New function, was w32_load_font. List
17163 fonts before loading. Explicitly set encoding for SJIS fonts.
17164 Set default_ascent to 0 as comment indicates.
17165 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17166 (w32_unload_font): Support BDF fonts.
17167 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17168 Autodetect whether to use koi8-r instead of iso8859-5.
17169 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17170 Associate "ksc5601.1992" with JOHAB_CHARSET.
17171 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17172 (w32_to_x_font): Add resolution.
17173 (x_to_w32_font): Use font resolution to calculate height if supplied.
17174 (w32_font_match): Handle wildcards anywhere within field.
17175 (enumfont_t): Remove unused head pointer.
17176 (enum_font_cb2): Dereference elfLogFont.
17177 (w32_list_bdf_fonts): New function.
17178 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17179 valid frame. Remove MessageBox. Support BDF fonts.
17180 (Fw32_find_bdf_fonts): New function.
17181 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17182 Sw32_find_bdf_fonts.
17183
171841999-01-21 Andrew Innes <andrewi@gnu.org>
17185
17186 * makefile.nt (temacs): Use del to delete file, not rm.
17187
171881999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17189
17190 * keyboard.c (read_key_sequence): Fix previous change.
17191
17192 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17193 as the same. Treat "myname:0" as the same as those two.
17194
171951999-01-19 Jason Rumney <jasonr@altavista.net>
17196
17197 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17198 (w32_to_x_charset): Fix charset mappings.
17199
17200 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17201 (dumpglyphs): Move definitions out of block containing goto.
17202 Remove redundant code for BIG5.
17203 Use w32_codepage_for_font instead of
17204 w32_codepage_for_charset. Add cast to int where float
17205 operation is assigned to int.
17206 (Vw32_charset_to_codepage_alist): New variable.
17207 (w32_codepage_for_charset): Removed.
427ec082
SS
17208 (w32_codepage_for_font): New function, replacing
17209 w32_codepage_for_charset.
26901792
DL
17210 (syms_of_w32term): Add and initialize
17211 w32-charset-to-codepage-alist.
17212
172131999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17214
17215 * xselect.c (x_handle_selection_clear): Don't clear the
17216 selection if Emacs still owns it through a different display.
17217
172181999-01-17 Andrew Innes <andrewi@gnu.org>
17219
17220 * w32proc.c: (w32_executable_type): Relax the check to identify
17221 cygwin-compiled applications, because the exact dll name varies
17222 with release. Now only require the name to start "cygwin".
17223
17224 * w32heap.h: (ROUND_UP):
17225 (ROUND_DOWN): New macros.
17226 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17227 (init_heap): New extern.
17228 (data_region_size):
17229 (recreate_heap):
17230 (read_in_bss):
17231 (map_in_heap):
17232 (round_to_next):
17233 (w32_fatal_reload_error):
17234 (get_section_size): Obsolete externs removed.
17235
17236 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17237 current process.
17238 (round_to_next): Obsolete function removed.
17239 (preload_heap_section): New variable.
17240 (data_region_size): Obsolete variable removed.
17241 (allocate_heap): Modified to determine end of static heap section
17242 used during preload, and use that as initial base address for
17243 dynamic heap instead of hard-coded value.
17244 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17245 calls to commit or decommit pages when allocating from static heap
17246 section during preload.
17247 (recreate_heap): Obsolete function removed.
17248 (init_heap): New function to initialize internal sbrk heap
17249 variables. Uses static heap section during preload, otherwise
17250 calls allocate_heap to reserve a heap region dynamically.
17251 (round_heap): Use ROUND_UP macro instead of round_to_next.
17252
17253 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17254 static "bss" section is used for heap space during preload, and
17255 bss data is now written to the proper section area when dumping.
17256 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17257 (heap_index_in_executable): Obsolete variable removed.
17258 (data_section): New variable.
17259 (data_start_va): Renamed to data_start.
17260 (data_start_file): Obsolete variable removed.
17261 (bss_section):
17262 (extra_bss_size):
17263 (bss_section_static):
17264 (bss_start_static):
17265 (bss_size_static):
17266 (extra_bss_size_static):
17267 (heap_section): New variables.
17268 (_start): Remove code based on old unexec method. Call init_heap
17269 to initialize sbrk heap.
17270 (close_file_data): Update size of file when closing, so that
17271 unexec doesn't have to work out exact size in advance.
17272 (get_bss_info_from_map_file):
17273 (get_section_size): Obsolete functions removed.
17274 (rva_to_section): Fix minor bug, and add a work-around for a bug
17275 in very old linkers.
17276 (offset_to_section):
17277 (relocate_offset): New functions.
17278 (OFFSET_TO_RVA):
17279 (RVA_TO_OFFSET):
17280 (RVA_TO_SECTION_OFFSET):
17281 (PTR_TO_RVA):
17282 (PTR_TO_OFFSET):
17283 (OFFSET_TO_PTR): New macros.
17284 (get_section_info): Modify to support new unexec method;
17285 determines address ranges in process that need dumping, and COFF
17286 sections where data will be dumped. Allows for static and global
17287 bss data to be in separate ranges. No longer relies on knowledge
17288 of section names.
17289 (copy_executable_and_dump_data_section): Renamed
17290 copy_executable_and_dump_data. Completely rewritten to copy
17291 executable section by section, so that raw data areas can be
17292 expanded to hold dumped data as necessary. Allows for bss data to
17293 be in same section as initialized data. Reduces size of static
17294 heap section to that used during preload.
17295 (dump_bss_and_heap):
17296 (w32_fatal_reload_error):
17297 (read_in_bss):
17298 (map_in_heap): Obsolete functions removed.
17299 (unexec): Rounds off preload heap to nearest page rather than
17300 virtual allocation unit. Modified to match other changes.
17301
17302 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17303 data_region_size.
17304
17305 * makefile.nt: (TEMACS_TMP): New macro.
17306 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17307 processor to add static heap section in support of new unexec.
17308
17309 * lastfile.c: Include config.h to pick up data layout pragmas.
17310 [WINDOWSNT]: Remove explicit pragma.
17311
173121999-01-12 Kenichi Handa <handa@etl.go.jp>
17313
17314 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17315 correctly.
17316 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17317
173181999-01-11 Dave Love <fx@gnu.org>
17319
17320 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17321
173221999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17323
17324 * keyboard.c (read_key_sequence): In key-translation-map and
17325 function-key-map, handle symbol with array as fn def.
17326 In function-key-map, handle symbol with keymap as fn def,
17327 and autoloaded definitions.
427ec082 17328
26901792
DL
17329 * puresize.h (BASE_PURESIZE): Increment to 500000.
17330
17331 * print.c (Qtemp_buffer_setup_hook): New variable.
17332 (syms_of_print): Init and staticpro that.
17333 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17334
173351999-01-11 Kenichi Handa <handa@etl.go.jp>
17336
17337 * insdel.c (del_range_1): Call signal_after_change.
17338 (del_range_byte): Likewise.
17339 (del_range_both): Likewise.
17340 (del_range_2): Don't call signal_after_change.
17341
17342 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17343 Lisp code here.
17344
173451999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17346
17347 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17348 never run the debugger, and don't bother checking the args
17349 to see whether the debugger should be run.
17350
173511999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17352
17353 * keyboard.c (read_key_sequence):
17354 Tell get_keyelt to look handle autoloads.
17355 Handle symbols defined as keymaps, and autoloaded keymaps.
17356
173571999-01-06 Kenichi Handa <handa@etl.go.jp>
17358
17359 * search.c (search_buffer): Fix previous change.
17360
173611999-01-06 Eli Zaretskii <eliz@gnu.org>
17362
17363 * w16select.c (set_clipboard_data): Terminate the text with a null
17364 character. Don't allow to put binary data into the clipboard.
17365 Return zero in case of success, 1 or 2 otherwise.
17366 (get_clipboard_data): Only bail out if the null character is in
17367 the last 32-byte chunk of clipboard data
17368 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17369 they save binary data, print a message in the echo area saying the
17370 text was not put into the clipboard.
17371
17372 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17373
173741999-01-06 Andreas Schwab <schwab@gnu.org>
17375
17376 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17377 _BSD_SOURCE, the latter is always defined.
17378
173791999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17380
17381 * fns.c (Frequire): Don't fail to unbind bindings.
17382
173831999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17384
17385 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17386
17387 * charset.c (Ffind_charset_region): Fix doc typo.
17388
173891998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17390
17391 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17392 multibyte in unibyte buffers only.
17393
17394 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17395 and pass it to Fmake_sparse_keymap.
17396
173971998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17398
17399 * alloc.c (MMAP_MAX_AREAS): New macro.
17400 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17401 (init_alloc_once): Use that.
17402
17403 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17404
17405 * alloc.c (lisp_malloc, lisp_free): New functions.
17406 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17407 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17408 (n_interval_blocks, n_float_blocks): New variable.
17409 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17410 (n_marker_blocks, n_string_blocks): New variable.
17411 (init_intervals, make_interval): Set a count variable.
17412 Use lisp_malloc instead of setting allocating_for_lisp.
17413 (init_float, make_float, init_cons, Fcons): Likewise.
17414 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17415 (init_marker, allocate_misc, init_strings): Likewise.
17416 (make_uninit_multibyte_string): Likewise.
17417 (gc_sweep, compact_strings): Decrement the count variables.
17418
17419 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17420 into the old_..._hook variables.
17421
174221998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17423
17424 * keyboard.c: In each active map, for each menu bar item, use only
17425 the first submap.
17426 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17427 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17428 (syms_of_keyboard): Staticpro and init it.
17429
427ec082 17430 * xmenu.c (single_keymap_panes):
26901792
DL
17431
174321998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17433
17434 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17435 by complete_deferred_msg.
17436 (post_character_message): Cancel all deferred messages when
17437 quit_char is typed, in order to break out of potential deadlocks.
17438 (cancel_all_deferred_msgs): New function.
17439 (complete_deferred_msg): Don't abort if msg not found; may have
17440 been cancelled.
17441 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17442 (Fw32_send_sys_command): Wait for system command to
17443 complete before returning.
427ec082 17444
26901792
DL
17445 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17446 not set async_iconified flag though.
17447
17448 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17449 (create_child): Use it.
17450 (syms_of_ntproc): Defvar it. Also fix docstrings for
17451 w32-start-process-share-console and w32-start-process-show-window.
17452
17453 * unexw32.c (_start): Force system calls accessing unmounted
17454 devices to fail without prompting.
17455
174561998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17457
17458 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17459 even when starting the dumped Emacs.
17460
17461 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17462 (Fkey_description): Handle lists like vectors.
17463
174641998-12-21 Kenichi Handa <handa@etl.go.jp>
17465
17466 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17467 because of the change of the second argument of Fread_char.
17468
17469 * charset.c (Fcharset_after): Check range. If POS is out of
17470 range, return nil.
17471
17472 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17473
17474 * lread.c (Fread_char): Change the meaning of the second argument.
17475 (Fread_event): Likewise.
17476 (Fread_char_exclusive): Likewise.
17477
17478 * print.c (printchar): Fix previous change.
17479
17480 * process.c (read_process_output): Decide the multibyteness of
17481 string given to a process filter by a coding system used for
17482 decoding the process output.
17483
174841998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17485
17486 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17487 nonascii-translation-table.
17488 * msdos.c (IT_write_glyphs): Likewise.
17489 * fns.c (concat): Likewise.
17490 * charset.c (unibyte_char_to_multibyte): Likewise.
17491 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17492
174931998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17494
17495 * doc.c (Fdocumentation): Change the doc string for prefix
17496 commands to make it a complete sentence in one line.
17497
174981998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17499
17500 * s/irix6-5.h: New file.
17501 * s/irix6-0.h (IRIX6): Define this symbol.
17502 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17503 (bcopy, bcmp, bzero): Likewise.
17504 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17505 (C_SWITCH_MACHINE): New value for irix6.5.
17506
175071998-12-15 Richard Stallman <rms@gnu.org>
17508
17509 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17510 Do free malloc'd memory even in case of failure. Use xfree, not free.
17511 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17512 (base64_decode_1): Don't fail for short lines.
17513
17514 * print.c (printchar): Outputting multibyte characters
17515 to echo area always makes it multibyte.
17516
17517 * search.c (search_buffer): Don't use Boyer-Moore
17518 to search for an invalid multibyte code.
17519 In unibyte case, no need to check whether there are translations
17520 in more than one charset; just set charset_base to 0.
17521
175221998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17523
17524 * print.c (printchar): Cancel previous change.
17525
175261998-12-15 Kenichi Handa <handa@etl.go.jp>
17527
17528 * callproc.c: Include "ccl.h".
17529 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17530 bit in argument_coding.mode to tell encoding procedure to flush
17531 data. While encoding arguments, if argument_coding uses CCL
17532 program, initialize it again after encoding.
17533 (Fcall_process_region): Doc-string modified. Handle the case that
17534 NARGS is 3.
17535
17536 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17537 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17538 Set `ic' to the head of this command.
17539 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17540 code for an invalid code.
17541 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17542 based on VEC.
17543
17544 * charset.c (Qunknown): New variable.
17545 (init_charset_once): Intern and staticpro Qunknown. Initialize
17546 all elements of Vcharset_symbol_table to Qunknown.
17547 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17548 unibyte characters only. For an invalid composition sequence, set
17549 CHARSETS[1] to 1.
17550 (Ffind_charset_region): Call find_charset_in_str with an
17551 appropriate MULTIBYTE arg. If undefined charsets are found,
17552 include `unknown' is the return value.
17553 (Ffind_charset_string): Likewise.
17554 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17555 (str_cmpchar_id): Max composite character code should be less than
17556 GENERIC_COMPOSITION_CHAR.
17557
17558 * charset.h (find_charset_in_str): Update declaration.
17559
17560 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17561 final_char is invalid.
17562 (decode_coding): If coding->type is coding_type_ccl, call
17563 ccl_coding_driver even if SRC_BYTES is zero.
17564 (code_convert_region): Update `inserted' correctly after calling
17565 coding->post_read_conversion. Even after the code converter
17566 consumed all source text, call it once more if it is
17567 coding_type_ccl to flush out data.
17568
17569 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17570 CODING is handled by CCL program, call code_convert_region.
17571
17572 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17573 correctly.
17574 (string_byte_to_char): Likesize.
17575
17576 * print.c (printchar): When outputting a multibyte character to
17577 echo area, always set message_enable_multibyte to 1.
17578
17579 * process.c (read_process_output): If NBYTES is zero and
17580 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17581 and try decoding again.
17582 (Fprocess_send_eof): If the coding system of PROCESS
17583 requires flushing, call send_process with null-string at first.
17584
17585 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17586 with MULTIBYTE arg 0.
17587 * w32select.c (Fw32_set_clipboard_data): Likewise.
17588 * xselect.c (lisp_data_to_selection_data): Likewise.
17589
175901998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17591
17592 * search.c (Freplace_match): Set OPOINT clearly for the case
17593 where point is in the middle of the text to be replaced.
17594
17595 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17596 if compute_motion fails to advance at all, don't back it up.
17597
175981998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17599
17600 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17601
427ec082 17602 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17603
176041998-12-09 Richard Stallman <rms@gnu.org>
17605
17606 * insdel.c (insert_from_buffer_1): Properly count the size
17607 of output from conversion to multibyte even when input
17608 is split across the gap.
17609
176101998-12-09 Karl Heuer <kwzh@gnu.org>
17611
17612 * keyboard.c: Doc fixes.
17613
17614 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17615
176161998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17617
17618 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17619 characters, only convert CRLF to LF.
17620
176211998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17622
17623 * makefile.nt: Do string comparision of _NMAKE_VER.
17624
176251998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17626
17627 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17628 coding.h, and disptab.h
17629
17630 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17631 (syms_of_msdos): DEFVAR_LISP it.
17632 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17633 (internal_terminal_init): Set up insert_glyphs_hook and
17634 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17635 (unibyte_display_via_language_environment): New variable.
17636 (syms_of_msdos): Devfar it.
17637 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17638 Encode the character codes of the glyphs according to the
17639 terminal_coding in effect.
17640
176411998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17642
17643 * fns.c (Fstring_as_unibyte): Doc fix.
17644
176451998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17646
17647 * charset.h: Declare char_valid_p.
17648
176491998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17650
17651 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17652
17653 * msdos.c (init_environment): Record the time we started up.
17654 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17655 fast after startup (aka crash).
17656
176571998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17658
17659 * w32.c (check_windows_init_file): Use decode_env_path when
17660 using EMACSLOADPATH.
17661
176621998-12-02 Jason Rumney <jasonr@altavista.net>
17663
17664 * w32term.c (dumpglyphs): Use unsigned char arrays.
17665 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17666 for various languages.
17667 Compensate for fonts that have underhangs (e.g., Thai).
17668
17669 * w32term.h (FONT_MAX_WIDTH): New macro.
17670
176711998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17672
17673 * keyboard.c (Qlanguage_change): New variable.
17674 (syms_of_keyboard): Init it.
17675 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17676 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17677 keys; add name for Escape key; extend to 256 elements.
17678 (parse_modifiers): Make non-static.
17679
17680 * keyboard.h (parse_modifiers): Declare prototype.
17681
17682 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17683
17684 * w32fns.c (w32_last_error): Fix cut+paste error.
17685 (Vw32_phantom_key_code): New variable.
17686 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17687 (syms_of_w32fns): Init and register them.
17688 (reset_modifiers): Use a more precise test for whether Emacs has
17689 keyboard focus. Synchronize state of all keys that can be used as
17690 modifiers, to overcome problems arising from hot-keys.
17691 (w32_key_to_modifier): Be careful not to call intern() to avoid
17692 requiring thread synchronization.
17693 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17694 (w32_wnd_proc): Ensure lock key indicator lights are updated
17695 promptly on Windows 9x, by passing key events on to the system.
17696 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17697 responding to Windows key events when not wanted.
17698 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17699 Ctrl-NumLock into pause by the system.
17700 (w32_wnd_proc): Don't translate key combinations containing any
17701 modifiers other than shift (and capslock).
17702 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17703 can't determine the key states until we have keyboard focus).
17704 (Fw32_toggle_lock_key): New function.
17705 (syms_of_w32fns): Defsubr it.
17706
17707 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17708 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17709 (w32_console_toggle_lock_key): New function.
17710
17711 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17712
177131998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17714
17715 * search.c (Freplace_match): Set OPOINT clearly for the case
17716 where point is in the middle of the text to be replaced.
17717
17718 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17719 if compute_motion fails to advance at all, don't back it up.
17720
177211998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17722
17723 * xfns.c (Qouter_window_id): New variable.
17724 (syms_of_xfns): Initialize it.
17725 (x_report_frame_params): Set up outer-window-id parameter.
17726
17727 * keymap.c (Fsingle_key_description): Fix previous change.
17728
177291998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17730
17731 * lisp.h (Frequire): Update declaration.
17732
177331998-11-26 Kenichi Handa <handa@etl.go.jp>
17734
17735 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17736 if the charset is ascii.
17737 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17738
17739 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17740 make an appropriate one byte string.
17741 (char_bytes): Handle the case that C is a single byte char or has
17742 modifier bits.
17743
17744 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17745
17746 * cmds.c (internal_self_insert): If C has modifier bits, insert
17747 appropriate one byte char.
17748
177491998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17750
17751 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17752 Clear text properties in the new string.
17753
177541998-11-24 Felix Lee <flee@cygnus.com>
17755
17756 * process.c (read_process_output): Call signal_after_change.
17757
177581998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17759
17760 * buffer.c (syms_of_buffer): Doc fix.
17761
17762 * keyboard.c (syms_of_keyboard): Doc fix.
17763
177641998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17765
17766 * frame.c (Fset_mouse_position): Doc fix.
17767
177681998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17769
17770 * keymap.c (Fmake_keymap): Doc fix.
17771
177721998-11-17 Kenichi Handa <handa@etl.go.jp>
17773
17774 * category.c (word_boundary_p): If C1 or C2 are composite
17775 characters, test their first components.
17776
177771998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17778
17779 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17780 don't do save-excursion, just restore selected window.
17781
17782 * window.c (window_loop): For UNSHOW_BUFFER,
17783 always do consider minibuffer windows.
427ec082 17784
26901792
DL
177851998-11-16 Kenichi Handa <handa@etl.go.jp>
17786
17787 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17788
17789 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17790
17791 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17792
17793 * s/bsdos4.h: New file.
17794
177951998-11-16 Kenichi Handa <handa@etl.go.jp>
17796
17797 * Makefile.in (abbrev.o): Depend on charset.h
17798 (bytecode.o): Depend on charset.h.
17799
17800 * bytecode.c: Include charset.h.
17801
17802 * abbrev.c: Include charset.h.
17803
17804 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17805 the first component.
17806
178071998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17808
17809 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17810
178111998-11-11 Richard Stallman <rms@gnu.org>
17812
17813 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17814
17815 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17816
17817 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17818 (INTERRUPT_INPUT): #define commented out.
17819
17820 * m/aviion-intel.h: New file.
17821
178221998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17823
17824 * fns.c (MAX_ALLOCA): New macro.
17825 (Fbase64_encode_region, Fbase64_encode_string,
17826 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17827 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17828
178291998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17830
17831 * insdel.c (byte_combining_error): Error message improved.
17832
17833 * charset.c (char_valid_p): Handle a composite character correctly.
17834
178351998-11-11 Kenichi Handa <handa@etl.go.jp>
17836
17837 * charset.c (str_cmpchar_id): Check the byte sequence for
17838 composition more rigidly.
17839 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17840 contains an invalid multibyte sequence.
17841
17842 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17843
178441998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17845
17846 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17847 (WM_EMACS_SETKEYBOARDLAYOUT):
17848 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17849 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17850 (LEFT_WIN_PRESSED):
17851 (RIGHT_WIN_PRESSED):
26901792
DL
17852 (APPS_PRESSED): New console keyboard modifier flags.
17853
17854 * w32term.c (convert_to_key_event): Removed.
17855 (is_dead_key): Copied to w32fns.c.
17856 (w32_read_socket): Generate language_change_event. Modify to work
17857 with keyboard handling changes in w32_wnd_proc.
17858
17859 * w32proc.c (sys_kill): Set extended key flag when faking
17860 Ctrl-Break keystrokes.
17861 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17862 arbitrary locale property using a numerical index.
17863 (Vw32_valid_codepages): New variable.
427ec082
SS
17864 (enum_codepage_fn):
17865 (Fw32_get_valid_codepages):
17866 (Fw32_get_console_codepage):
17867 (Fw32_set_console_codepage):
17868 (Fw32_get_console_output_codepage):
17869 (Fw32_set_console_output_codepage):
17870 (Fw32_get_codepage_charset):
17871 (Fw32_get_valid_keyboard_layouts):
17872 (Fw32_get_keyboard_layout):
26901792
DL
17873 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17874 handling functions.
17875 (syms_of_ntproc): Register them.
17876
17877 * w32inevt.c: Include w32term.h and w32heap.h.
17878 (map_keypad_keys):
17879 (Vw32_enable_caps_lock):
17880 (Vw32_enable_num_lock):
17881 (Vw32_pass_lwindow_to_system):
17882 (Vw32_pass_rwindow_to_system):
17883 (Vw32_lwindow_modifier):
17884 (Vw32_rwindow_modifier):
17885 (Vw32_apps_modifier):
17886 (Vw32_scroll_lock_modifier):
17887 (w32_key_to_modifier): Add externs.
17888 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17889 Scroll Lock as potential modifiers; exclude numpad keys from
17890 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17891 code.
17892 (is_dead_key): Copy from w32fns.c.
17893 (w32_kbd_patch_key): Comment attempt to improve handling of
17894 dead-keys, and system bug relating to same on Windows NT. Work
17895 around the bug by calling ToUnicode and then converting to the
17896 correct codepage.
17897 (map_virt_key): Removed obsolete variable.
17898 (lispy_function_keys): Add extern.
17899 (key_event): Major rework of keyboard input handling: optionally
17900 recognize Windows keys and Apps key as modifiers; optionally treat
17901 NumLock, CapsLock and ScrollLock as function keys; let system
17902 translate keystrokes to characters to avoid system bugs relating
17903 to dead-key handling; preserve shift distinction for control
17904 characters. Remove some obsolete code.
17905
17906 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17907 and w32heap.h.
17908
17909 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17910 (Vw32_pass_lwindow_to_system):
17911 (Vw32_pass_rwindow_to_system):
17912 (Vw32_lwindow_modifier):
17913 (Vw32_rwindow_modifier):
17914 (Vw32_apps_modifier):
17915 (Vw32_enable_num_lock):
17916 (Vw32_enable_caps_lock):
17917 (Vw32_scroll_lock_modifier): New variables.
17918 (modifier_set): Return toggle state for Scroll Lock.
17919 (w32_key_to_modifier): New function. Returns chosen modifier bit
17920 for given key.
17921 (w32_get_modifiers): Returns modifier flags for
17922 non-keyboard input events.
17923 (construct_console_modifiers): Renamed from construct_modifiers;
17924 recognize Windows and Apps keys as modifiers.
17925 (w32_get_key_modifiers): New function. Returns modifier flags for
17926 keyboard input events.
17927 (map_keypad_keys): Make non-static. Use second arg as extended
17928 flag.
17929 (w32_grabbed_keys): New variable.
17930 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17931 (register_hot_keys):
17932 (unregister_hot_keys):
17933 (lookup_vk_code):
17934 (w32_parse_hot_key):
17935 (Fw32_register_hot_key):
17936 (Fw32_unregister_hot_key):
17937 (Fw32_registered_hot_keys):
17938 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17939 (post_character_message): New function.
17940 (w32_msg_pump): Handle new messages for using hotkeys and changing
17941 keyboard layout/language.
17942 (w32_wnd_proc): Major rework of keyboard input handling:
17943 optionally recognize Windows keys and Apps key as modifiers;
17944 optionally treat NumLock, CapsLock and ScrollLock as function
17945 keys; let system translate keystrokes to characters to avoid
17946 system bugs relating to dead-key handling; preserve shift
17947 distinction for control characters; forward keyboard
17948 layout/language changes to lisp; detect and convert hot-key events
17949 to normal keystrokes.
17950 (syms_of_w32fns): Register new functions and variables.
17951 (w32_last_error): New function for use in debugging.
17952
179531998-11-10 Kenichi Handa <handa@etl.go.jp>
17954
17955 * category.h (CATEGORY_SET): Adjusted for the change of
17956 cmpchar_component.
17957 (CATEGORY_SET): Likewise.
17958
17959 * charset.c (cmpchar_component): New arg NOERROR. Check
17960 composition char ID more strictly.
17961 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17962 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17963 return 255.
17964 (Fcompose_string): Signal error if STR contains a rule-based
17965 composition character.
17966
17967 * charset.h (cmpchar_component): Proto-type adjusted.
17968
179691998-11-09 Kenichi Handa <handa@etl.go.jp>
17970
17971 * charset.c (string_to_non_ascii_char): Return correct length for
17972 a charset of dimension 2 and composition character.
17973
179741998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17975
17976 * keymap.c (Fsingle_key_description): Handle generic characters.
17977
17978 * process.c (Fprocess_status): Doc fix.
17979
179801998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17981
17982 * charset.c (init_charset_once): Fix previous change.
17983
179841998-11-06 Kenichi Handa <handa@etl.go.jp>
17985
17986 * charset.c (string_to_non_ascii_char): Fix previous change.
17987 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17988
17989 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17990 character correctly.
17991 (STRING_CHAR): Handle an invalid charater correctly.
17992
179931998-11-05 Kenichi Handa <handa@etl.go.jp>
17994
17995 * charset.c (string_to_non_ascii_char): Fix previous change.
17996
17997 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17998
17999 * editfns.c (Fstring_to_char): Don't return a multibyte character
18000 if STRING is a unibyte string.
18001
18002 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
18003 character.
18004
18005 * xdisp.c (display_text_line): Check validity of a multibyte character.
18006 (display_string): Likewise. Handle an invalid character correctly.
18007
180081998-11-05 Karl Heuer <kwzh@gnu.org>
18009
18010 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
18011 If nothing to do, return immediately.
18012 (syms_of_insdel): Initialize combine_after_change_buffer.
18013
180141998-11-05 Richard Stallman <rms@gnu.org>
18015
18016 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
18017
180181998-11-04 Geoff Voelker <voelker@cs.washington.edu>
18019
18020 * w32term.c (w32_enable_unicode_output): Rename from
18021 w32_no_unicode_output.
18022 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
18023 and new semantics.
18024
180251998-11-04 Jason Rumney <jasonr@altavista.net>
18026
18027 * w32fns.c (w32_list_fonts): Report an error if a frame has not
18028 been created yet.
18029
18030 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
18031
180321998-11-04 Kenichi Handa <handa@etl.go.jp>
18033
18034 * charset.c (string_to_non_ascii_char): Change the check for the
18035 varidity of multibyte form.
18036 (update_charset_table): Check validity of BYTES. Don't set
18037 bytes_by_char_head here.
18038 (init_charset_once): Set bytes_by_char_head completely.
18039
18040 * frame.c (do_switch_frame): Cancel previous change.
18041
18042 * print.c (print_string): Check validity of a character.
18043 (print): Likewise.
18044
18045 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
18046
18047 * m/ews4800.h, s/ux4800.h: New files.
18048
180491998-11-03 Theodore Jump <tjump@tertius.com>
18050
18051 * makefile.nt: Compile multiple source files when possible.
18052
18053 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 18054
26901792
DL
180551998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
18056
18057 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
18058 so don't rely on it succeeding.
18059
18060 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
18061 LOGFONT struct if x font doesn't specify the charset.
18062 (x_to_w32_charset): Change >= to == when testing results of
18063 stricmp.
18064
180651998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
18066
18067 * fns.c (Frequire): New arg NOERROR.
18068
180691998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
18070
18071 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
18072
180731998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
18074
18075 * xfaces.c (Qmouse_face): Replace definition with extern decl.
18076 (syms_of_xfaces): Initialization deleted.
18077
18078 * textprop.c (Qmouse_face): Variable definition moved here.
18079 (syms_of_textprop): Initialize it.
18080
18081 * data.c (set_internal): For built-in maybe-local vars,
18082 when BINDFLAG is set, do not mark them as local.
18083
180841998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
18085
18086 * insdel.c (replace_range): Fix previous change.
18087
180881998-10-31 Kenichi Handa <handa@etl.go.jp>
18089
18090 * editfns.c (Fsubst_char_in_region): Fix previous change.
18091 (Ftranslate_region): Fix previous change.
18092
18093 * fns.c (Fbase64_decode_region): Fix previous change.
18094
18095 * frame.c (do_switch_frame): Update minibuf_window if necessary.
18096
18097 * insdel.c (byte_combining_error): New function.
18098 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
18099 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
18100 CHECK_BYTE_COMBINING_FOR_INSERT.
18101 (insert_from_buffer_1): Likewise.
18102 (adjust_after_replace): Check the posibility of inhibitted byte
18103 combining correctly.
18104 (replace_range): Before signaling an error for inhibitted byte
18105 combining, recover the buffer in a safe state.
18106 (del_range_2): Check the posibility of inhibitted byte combining
18107 correctly.
18108
181091998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
18110
18111 * xselect.c (Vselection_coding_system): Doc fix.
18112
18113 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
18114 when we have both char and byte position. Fix type clashes.
18115
18116 * eval.c (Fsignal): Use a separate format string when passing
18117 error message string to fatal, in case it contains %'s.
18118
18119 * editfns.c (Fchar_after): Fix type clashes.
18120
18121 * charset.c (Fchar_bytes): Doc fix.
18122 (char_bytes): Fix returned value to match returned type.
18123 (syms_of_charset): Fix type clash in initialisation of
18124 Vauto_fill_chars.
18125
181261998-10-29 Geoff Voelker <voelker@cs.washington.edu>
18127
18128 * w32console.c (initialize_w32_display): Use buffer coords
18129 instead of buffer size (which may be larger than the window).
18130
18131 * fileio.c (init_fileio_once): New function.
18132
18133 * emacs.c (main): Invoke init_fileio_once.
18134
181351998-10-28 Paul Eggert <eggert@twinsun.com>
18136
18137 * xterm.c (XTread_socket): Check the returned value of
18138 XmbLookupString more carefully.
18139
181401998-10-28 Kenichi Handa <handa@etl.go.jp>
18141
18142 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
18143 (DECODE_CHARACTER_DIMENSION1): Likewise.
18144 (DECODE_CHARACTER_DIMENSION2): Likewise.
18145 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
18146
18147 * editfns.c (Fsubst_char_in_region): Fix previous change.
18148 (Ftranslate_region): Fix previous change.
18149
18150 * insdel.c (check_markers): Check if markers are at character boundry.
18151 (adjust_markers_for_insert): Fix previous change.
18152 (count_combining_before): Don't limit the check at BEGV.
18153 (count_combining_after): Don't limit the check at ZV.
18154 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18155 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18156 (insert_from_string_1): Likewise.
18157 (insert_from_buffer_1): Likewise.
18158 (adjust_after_replace): Inhibit bytes combined across region
18159 boundary. Update end_unchanged correctly.
18160 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18161 end_unchanged correctly.
18162 (del_range_2): Inhibit bytes combined across region boundary.
18163 Update end_unchanged correctly.
18164
181651998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18166
18167 * w32.c (check_windows_init_file): Also look in load path specified
18168 in environment.
18169
18170 * w32console.c (Fset_message_beep): Recognize 'silent.
18171 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18172
26901792
DL
18173 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18174
18175 * w32select.c (Vnext_selection_coding_system): New variable.
18176 (syms_of_w32select): DEFVAR_LISP it.
18177 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18178 non-nil. Always convert multibyte strings.
18179 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18180 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18181
26901792
DL
181821998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18183
18184 * fns.c (Fbase64_decode_string): Doc fix.
18185 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18186 Likewise.
18187
181881998-10-27 Dave Love <fx@gnu.org>
18189
18190 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18191 newline in doc string.
18192
181931998-10-27 Kenichi Handa <handa@etl.go.jp>
18194
18195 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18196 that byte combining before happens.
18197 (Ftranslate_region): Likewise.
18198
18199 * insdel.c (adjust_after_replace): Correctly handle the case that
18200 both byte combining before and byte combining after happen.
18201 (replace_range): Likewise.
18202
182031998-10-26 Kenichi Handa <handa@etl.go.jp>
18204
18205 * category.c (syms_of_category): Doc-string modified.
18206
18207 * coding.c (code_convert_region): Kill the work buffer created by
18208 pre-write-conversion.
18209
182101998-10-25 Jason Rumney <jasonr@altavista.net>
18211
18212 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18213
182141998-10-23 Kenichi Handa <handa@etl.go.jp>
18215
18216 * coding.c (code_convert_region): While preserving the orignal
18217 point, pay attention to the byte combining problem.
18218
18219 * fns.c (Fbase64_decode_region): Pay attention to the byte
18220 combining problem.
18221
18222 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18223 combined_before_bytes and combined_after_bytes into account.
18224 (count_combining_after): Handle the case that LENGTH is zero.
18225 (adjust_after_replace): Record deletion at correct buffer
18226 position. Handle the case that LEN is zero.
18227 (replace_range): Record deletion at correct buffer position.
18228 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18229 combined bytes.
18230
182311998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18232
18233 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18234
26901792
DL
182351998-10-21 Kenichi Handa <handa@etl.go.jp>
18236
18237 * coding.c (setup_coding_system): Fix setting up
18238 coding->spec.ccl.valid_codes for CCL based coding system.
18239 (code_convert_region): Set point to FROM before inserting the
18240 result of pre-write-funciton. Preserve original point.
18241 (code_convert_string): If coding->type is coding_type_ccl, do
18242 conversion even if the length of conversion region is zero.
18243
18244 * fontset.c: Include frame.h before fontset.h.
427ec082 18245 (list_fonts_func): Fix prototype.
26901792
DL
18246
18247 * frame.c: Include frame.h before fontset.h.
18248
18249 * xterm.c: Likewise.
18250
182511998-10-21 Jason Rumney <jasonr@altavista.net>
18252
18253 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18254 general macros. Don't call x_list_font directory, instead call a
18255 function set in list_fonts_func.
18256
18257 * fontset.h (list_fonts_func): Fix prototype.
18258
182591998-10-20 Jason Rumney <jasonr@altavista.net>
18260
18261 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18262
18263 * w32faces.c: Update comments referring to obsolete structs.
18264 (allocate_face, copy_face, face_eql, load_font,
18265 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18266 frame_update_line_height, merge_faces, compute_base_face,
18267 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18268
18269 * w32fns.c: (Vx_pixel_size_width): New global variable.
18270 (unibyte_display_via_language_environment): New global variable.
18271 (x_set_font): Add support for setting fontsets.
18272 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18273 font names to match xlfd-tight-regexp.
18274 (w32_load_font): Rewrite based on x_load_font.
18275 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18276 `iso8859-1' rather than `ansi'.
18277 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18278 end. Move charset into `charset registry' field.
18279 (enum_font_cb2): Check charsets match. Include width in font list.
18280 (w32_list_fonts): Rewrite based on x_list_fonts.
18281 Moved from w32term.c to have access to enumfont_t struct.
18282 (Fx_list_fonts): w32 specific version eliminated. Include
18283 `x-list-fonts.c'.
18284 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18285 functions for fontset support - adapted from x_ equivalents.
18286 (syms_of_w32fns): New lisp variables initialised. Function
18287 pointers for fontset.c set up.
18288
427ec082 18289 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18290 Add ENCODE_BIG5 macro from coding.c.
18291 (w32_no_unicode_output): New variable.
18292 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18293 functions.
18294 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18295 (dumpglyphs): Rewrite based on xterm.c equivalent.
18296 (x_new_font): Use functionality provided in fontset.c.
18297 (x_new_fontset): New function based on the one in xterm.c.
18298 (syms_of_w32term): Add w32-no-unicode-output flag.
18299
427ec082 18300 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18301 (Vx_pixel_size_width_font_regexp,
18302 unibyte_display_via_language_environment): Declare variables.
427ec082 18303 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18304 Declare functions.
18305 (w32_output): New fields font_baseline and fontset.
18306 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18307
18308 * w32xfns.c: Include charset.h and fontset.h.
18309
183101998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18311
18312 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18313
183141998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18315
18316 * msdos.c (mouse_init): Reset the button press/release info of the
18317 mouse driver.
18318 (mouse_preempted): New variable.
18319 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18320 (XMenuActivate): Preempt the mouse during menu-handling loop.
18321 Release the current time slice while idling in the menu-handling
18322 loop. Leave the loop only if the user pressed, then released the
18323 same button. Discard all mouse events that are pending in the
18324 event queue before exiting.
18325
183261998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18327
18328 * editfns.c (Fformat): Increase buffer size for floating format.
18329
183301998-10-17 Kenichi Handa <handa@etl.go.jp>
18331
18332 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18333 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18334 Declare auto-fill-chars as a Lisp variable and initialize it.
18335
18336 * charset.h (Vauto_fill_chars): Extern it.
18337
18338 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18339
183401998-10-16 Kenichi Handa <handa@etl.go.jp>
18341
18342 * casefiddle.c (casify_object): Use make_string instead of
18343 make_specified_string to cope with byte-combining situation.
18344
18345 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18346 1 when encountered with a code of the range 0x80..0x9F.
18347
183481998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18349
18350 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18351 trying $TMP and $TEMP, since the former is always set in msdos.c.
18352 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18353 the temporary files, check $TMPDIR as well.
18354
183551998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18356
427ec082 18357 * process.c (exec_sentinel, read_process_output):
26901792
DL
18358 Restore waiting_for_user_input_p after running Lisp code.
18359
18360 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18361 (command_loop): Likewise.
18362
183631998-10-14 Kenichi HANDA <handa@etl.go.jp>
18364
18365 * data.c (Faset): Fix previous change.
18366
18367 * fns.c (Ffillarray): Fix previous change.
18368
18369 * insdel.c (adjust_markers_for_combining): This function deleted.
18370 (adjust_markers_for_replace): Correctly adjust marker positions.
18371 Don't record these adjustment because they were recorded already.
18372 (combine_bytes): Don't adjust markers here.
18373
183741998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18375
18376 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18377
183781998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18379
18380 * keyboard.c (Fclear_this_command_keys): New function.
18381 (syms_of_keyboard): defsubr it.
18382
18383 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18384
183851998-10-12 Kenichi Handa <handa@etl.go.jp>
18386
18387 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18388
18389 * charset.c (Fstring): Call make_string instead of
18390 make_string_from_bytes.
18391 (Ffind_charset_region): Include `composition' in the returned list
18392 if the region contains any composite characters.
18393 (Ffind_charset_string): Include `composition' in the returned list
18394 if the string contains any composite characters.
18395 (find_charset_in_str): Handle CMPCHARP arg correctly.
18396
18397 * coding.c (shrink_decoding_region): If a charset other than ascii
18398 is initially designated to G0, don't shrink the region.
18399 (shrink_encoding_region): Likewise.
18400
18401 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18402 byte-combining situation.
18403
18404 * fns.c (clear_string_char_byte_cache): New function.
18405 (Ffillarray): Handle multibyte string correctly.
18406
18407 * lisp.h (clear_string_char_byte_cache): Extern it.
18408
18409 * xselect.c (lisp_data_to_selection_data): Call
18410 find_charset_in_str with CMPCHARP arg 0.
18411 * w16select.c (Fw16_set_clipboard_data): Likewise.
18412 * w32select.c (Fw32_set_clipboard_data): Likewise.
18413
184141998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18415
18416 * keyboard.c (parse_menu_item): For top level of menu bar,
18417 accept ordinary commands, and treat them just like a keymap.
18418
184191998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18420
18421 * xdisp.c (redisplay_window): Clear w->window_end_valid
18422 before running the window-scroll-functions hook, if appropriate.
18423
184241998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18425
18426 * data.c (Fstring_to_number): Don't recognize floating point
18427 if base is not 10.
18428
18429 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18430 (check_all_windows): New function for debugging tests.
18431 (syms_of_window): Initialize it.
18432
18433 * window.c (Qwindow_configuration_p): New variable.
18434 (Fwindow_configuration_frame): New function.
18435 (syms_of_window): defsubr it.
18436 (Fset_window_configuration): Return t if frame is live.
18437 Use Qwindow_configuration_p.
18438
18439 * xfns.c (check_x_display_info): Don't use selected_frame
18440 if it is dead.
18441
184421998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18443
18444 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18445
184461998-10-08 Kenichi Handa <handa@etl.go.jp>
18447
18448 * buffer.h (inhibit_modification_hooks): Extern it.
18449
18450 * buffer.c (inhibit_modification_hooks): New variable.
18451 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18452
18453 * charset.c (invalid_character): Prepend `0' to octal
18454 representation. Give error sufficient args.
18455
18456 * coding.c (code_convert_region): Set inhibit_modification_hooks
18457 to 1 before calling Fset_text_properties.
18458
18459 * insdel.c (signal_before_change): If inhibit_modification_hooks
18460 is nonzero, do nothing.
18461 (signal_after_change): Likewise.
18462
184631998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18464
18465 * process.c: Doc fixes.
18466
184671998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18468
18469 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18470
184711998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18472
18473 * w32.c (init_ntproc): Check for Windows init file.
18474 (term_ntproc): Do not check for it here.
18475
184761998-09-28 Kenichi Handa <handa@etl.go.jp>
18477
18478 * coding.c (check_composing_code): Fix previous change. Now it
18479 alwasy returns 0 or -1.
18480 (decode_coding_iso2022): Adjusted for the above change.
18481 (encode_coding_iso2022): When encoding the last block, flush out
18482 tailing garbage bytes.
18483 (setup_coding_system): Delete unnecessary code.
18484 (shrink_decoding_region): Check translation table. If ASCII
18485 should be translated, give up shrinking.
18486 (shrink_encoding_region): Likewise.
18487 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18488 (SHRINK_CONVERSION_REGION): New macro.
18489 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18490 properties here.
18491 (code_convert_region): In the case of encoding, always calulate
18492 correct character number.
18493 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18494 (code_convert_region1): Don't delete text properties here.
18495
18496 * insdel.c (adjust_after_replace): Don't delete text properties here.
18497
18498 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18499
185001998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18501
18502 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18503
185041998-09-26 Kenichi Handa <handa@etl.go.jp>
18505
18506 * coding.h (struct coding_system): New member composed_chars.
18507
18508 * coding.c (check_composing_code): If the current composing
18509 sequence doesn't end properly, return -1.
18510 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18511 (DECODE_CHARACTER_DIMENSION1): Likewise.
18512 (decode_coding_iso2022): Check validity of a composing sequence.
18513 (code_convert_string): If the length of text to be converted is
18514 shrunk to zero, don't perform code conversion.
18515 (shrink_decoding_region): Fix previous change.
18516
18517 * editfns.c (Fformat): Check format control characters.
18518
185191998-09-25 Kenichi Handa <handa@etl.go.jp>
18520
18521 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18522 single CR code correctly.
18523 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18524 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18525
185261998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18527
18528 * w32fns.c (w32_color_map_lookup): New function.
18529 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18530
185311998-09-22 Kenichi Handa <handa@etl.go.jp>
18532
18533 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18534
18535 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18536 strings unibyte.
18537 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18538
185391998-09-22 Kenichi Handa <handa@etl.go.jp>
18540
18541 * callint.c (Fcall_interactively): Don't use input method when
18542 reading a character in the case of `c' code letter.
18543
185441998-09-21 Dave Love <fx@gnu.org>
18545
18546 * editfns.c (Fsave_restriction): Doc fix.
18547
185481998-09-21 Richard Stallman <rms@gnu.org>
18549
18550 * lread.c (build_load_history): Do add to Vload_history
18551 even when dumping Emacs.
18552
185531998-09-18 Kenichi Handa <handa@etl.go.jp>
18554
18555 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18556 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18557 cause error if the program is going to output some bytes. When
18558 outputing a string to notify an error, check the case that
18559 DST_BYTES is zero.
18560
427ec082 18561 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18562
18563 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18564 user or the CCL program executed an invalid command, return
18565 CODING_FINISH_INTERRUPT.
18566 (code_convert_region): Pay attention to the converters return
18567 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18568
185691998-09-16 Kenichi Handa <handa@etl.go.jp>
18570
18571 * coding.c (code_convert_region): Update beg_unchanged and
18572 end_unchanged after we delete the source text.
18573
18574 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18575 position if it is FROM.
18576 (adjust_markers_for_combining): New function.
18577 (combine_bytes): Call adjust_markers_for_combining instead of
18578 adjust_markers_for_replace.
18579 (adjust_after_replace): Record deletion of combining after bytes
18580 with the correct position.
18581 (replace_range): Likewise. Record the actual deletion after
18582 recoding deletions of combining bytes.
18583
18584 * xdisp.c (message_log_check_duplicate): Count byte length of the
18585 latest message correctly.
18586
185871998-09-12 Richard Stallman <rms@gnu.org>
18588
18589 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18590 instead of SET_PT_BOTH.
18591 (try_window_id, display_text_line): Likewise.
18592
185931998-09-12 Karl Heuer <kwzh@gnu.org>
18594
18595 * data.c (Fmake_local_variable): Doc fix.
18596
185971998-09-10 Dave Love <fx@gnu.org>
18598
18599 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18600
186011998-09-10 Richard Stallman <rms@gnu.org>
18602
18603 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18604 (bcopy, bcmp, bzero): Add #undef.
18605
18606 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18607 first exit if selected frame is dead (no live frames remain).
18608 (read_key_sequence): Likewise.
18609
186101998-09-10 Karl Heuer <kwzh@gnu.org>
18611
18612 * emacs.c (main): Mention --display and --eval in help.
18613
186141998-09-07 Paul Eggert <eggert@twinsun.com>
18615
18616 * editfns.c (emacs_memftime): New function.
18617 (Fformat_time_string): Use it to handle null bytes in formats
18618 correctly.
18619
186201998-09-08 Kenichi Handa <handa@etl.go.jp>
18621
18622 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18623 (Ffind_charset_string): For unibyte string, return (ascii).
18624
18625 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18626 arg MARKERS 1.
18627
18628 * insdel.c (adjust_after_replace): Don't add combining bytes to
18629 the args given to adjust_point. Handle correctly the case that
18630 there are both before and after combining bytes.
18631 (replace_range): Likewise.
18632
186331998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18634
18635 * fns.c (base64_decode_1, base64_encode_1): New functions.
18636 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18637 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18638
186391998-09-07 Karl Heuer <kwzh@gnu.org>
18640
18641 * eval.c (error): After enlarging buffer, write to it, not to buf.
18642
18643 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18644
186451998-09-07 Kenichi Handa <handa@etl.go.jp>
18646
18647 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18648 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18649 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18650
18651 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18652 chars in produced byte sequence.
18653 (Ffind_operation_coding_system): Doc-string fixed.
18654
18655 * insdel.c (count_combining_after): Check also preceding bytes at
18656 POS if all characters in STRING are not character head.
18657
186581998-09-06 Paul Eggert <eggert@twinsun.com>
18659
18660 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18661 Don't assume that localtime and gmtime return non-NULL.
18662
186631998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18664
18665 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18666 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18667 New functions.
18668
186691998-09-06 Richard Stallman <rms@gnu.org>
18670
18671 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18672
18673 * lread.c (Fload): Handle case where openp finds a magic file
18674 but it has no `load' handler or that handler calls `load'.
18675 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18676
186771998-09-04 Dave Love <fx@gnu.org>
18678
18679 * buffer.c (enable-multibyte-characters): Doc fix.
18680
186811998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18682
18683 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18684
186851998-09-01 Kenichi Handa <handa@etl.go.jp>
18686
18687 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18688 address in buffer from byte-position.
18689
186901998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18691
18692 * w16select.c (Vnext_selection_coding_system): New variable.
18693 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18694 Vselection_coding_system.
18695 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18696 Vnext_selection_coding_system if non-nil.
18697 (Fw16_get_clipboard_data): Always convert a string that includes
18698 non-ASCII characters. Use Vnext_selection_coding_system if
18699 non-nil.
18700
187011998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18702
18703 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18704 mouse capture.
18705
187061998-08-31 Kenichi Handa <handa@etl.go.jp>
18707
18708 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18709 x_list_font returns.
18710
187111998-08-31 Paul Eggert <eggert@twinsun.com>
18712
18713 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18714 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18715
187161998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18717
18718 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18719 cursor, save and restore previous cursor position in the
18720 minibuffer.
18721
187221998-08-31 Kenichi Handa <handa@etl.go.jp>
18723
18724 * charset.c (unibyte_char_to_multibyte):
18725 Vnonacii_translation_table will convert a 7-bit charcater.
18726 (multibyte_char_to_unibyte): Handle the case that
18727 Vnonacii_translation_table converts a multibyte charcater to a
18728 unibyte charcter of less than 128.
18729 (init_charset_once): Initialize nonascii_insert_offset and
18730 Vnonacii_translation_table.
18731
18732 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18733 processing if CODING requires flushing.
18734 (encode_coding): Likewise.
18735 (code_convert_region): Likewise.
18736 (code_convert_string): Likewise.
18737
18738 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18739 to convert a character less than 160 to multibyte.
18740 * insdel.c (copy_text): Likewise.
18741 (count_size_as_multibyte): Likewise.
18742 * xterm.c (dumpglyphs): Likewise.
18743
187441998-08-29 Paul Eggert <eggert@twinsun.com>
18745
18746 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18747 using negation, not subtraction; this makes a difference with
18748 IEEE floating point arithmetic (and also if integer arithmetic
18749 is ones' complement or signed-magnitude!).
18750
187511998-08-29 Karl Heuer <kwzh@gnu.org>
18752
18753 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18754
187551998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18756
18757 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18758
187591998-08-28 Paul Eggert <eggert@twinsun.com>
18760
18761 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18762 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18763 path only if we're not building with Motif.
18764
187651998-08-28 Kenichi Handa <handa@etl.go.jp>
18766
18767 * insdel.c (adjust_after_replace): Fix the code to record undo
18768 information for the case that `before combining' happens. Remove
18769 text properties which are added to the new text by
18770 offset_intervals.
18771
18772 * coding.c (code_convert_region1): Remove all text properties of
18773 the region.
18774
187751998-08-28 Kenichi Handa <handa@etl.go.jp>
18776
18777 * charset.h (CHAR_BYTES): New macro.
18778
18779 * charset.c (Fchar_bytes): Now always return 1.
18780 (char_bytes): New function.
18781
18782 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18783 range, return nil.
18784 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18785 nil.
18786
18787 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18788 * fns.c (concat): Likewise.
18789 * insdel.c (count_size_as_multibyte): Likewise.
18790 * xdisp.c (message_dolog): Likewise.
18791
187921998-08-27 Kenichi Handa <handa@etl.go.jp>
18793
18794 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18795 correctly. They are for SS2 and SS3 respectively.
18796 (ccl_coding_driver): Fix previous change.
18797
187981998-08-26 Paul Eggert <eggert@twinsun.com>
18799
18800 * xterm.c (fixup_locale): New function. For now, it resets
18801 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18802 resets LC_MESSAGES to "C".
18803 (x_term_init): Use it to fix up the locale after setlocale
18804 (LC_ALL, "").
18805
188061998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18807
18808 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18809 case it was prototyped the old way.
18810
188111998-08-25 Kenichi Handa <handa@etl.go.jp>
18812
18813 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18814 returns a null string. This happens when dxpc 3.7 is being used.
18815
188161998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18817
18818 * keyboard.c (input-method-previous-message): Doc fix.
18819
18820 * coding.c (file-coding-system-alist,
18821 select-safe-coding-system-function): Doc fix.
18822
188231998-08-23 Kenichi HANDA <handa@etl.go.jp>
18824
18825 * coding.c (detect_coding_iso2022): Don't check the byte length of
18826 succeeding codes (0xa0..0xFF) if the codes follows single shift
18827 code (SS2 or SS3).
18828
188291998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18830
18831 * coding.c (detect_coding_system): If detect_eol_type returns
18832 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18833 correctly.
18834
18835See ChangeLog.7 for earlier changes.