(help_echo_object, help_echo_pos): New variables.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
178c5d9c
SS
12000-07-14 Sam Steingold <sds@gnu.org>
2
3 * xfaces.c (realize_x_face): Fix the last patch:
4 check `default_face' before dereferencing.
5
6fe533f6
DL
62000-07-14 Dave Love <fx@gnu.org>
7
8 * syntax.c (back_comment): Add null default in switch for pcc.
9
dd7b81cf
KH
102000-07-14 Kenichi Handa <handa@etl.go.jp>
11
0693904a 12 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 13 default_face's fontset, not using the default fontset.
0693904a 14
dd7b81cf
KH
15 * coding.c (inhibit_iso_escape_detection): New variable.
16 (syms_of_coding): Make it a Lisp variable.
17 (detect_coding_iso2022): If inhibit_iso_escape_detection is
18 nonzero, ignore ISO2022's escape sequence.
19
d5aa31d8
GM
202000-07-14 Gerd Moellmann <gerd@gnu.org>
21
e5acf0ca
GM
22 * alloca.c (malloc) [emacs]: Define as xmalloc.
23
bd23a692
GM
24 * xfns.c (Fx_show_tip): If frame parameters contain a position,
25 use that instead of the mouse position. Add parameters DX and DY.
26
27 * dispextern.h (Fx_show_tip): Adjust number of parameters
28 in prototype.
29
9662da0b
GM
30 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
31 if HELP is a function, call it with OBJECT and POS as parameters
32 to get the help to display.
33 (gen_help_event, kbd_buffer_store_help_event): New functions.
34 (kbd_buffer_get_event): Construct the Lisp help-event differently.
35 (read_char): Call show_help_echo with new parameters.
36
178c5d9c 37 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
38 Add prototypes.
39
40 * xterm.c (help_echo_object, help_echo_pos): New variables.
41 (note_mode_line_highlight): Store additional information about the
42 help-echo in help_echo_object and help_echo_pos. Check both
43 `local-map' and `keymap' properties for changing the cursor
44 (note_mouse_highlight): Store additional information about the
45 help-echo in help_echo_object and help_echo_pos.
46 (note_tool_bar_highlight): Set help_echo_object to nil and
47 help_echo_pos to -1.
48 (XTread_socket): Use gen_help_event instead of filling
49 input_events manually.
50 (syms_of_xterm): Staticpro help_echo_object.
51
52 * xmenu.c (menu_highlight_callback): Use
53 kbd_buffer_store_help_event instead of setting up and input_event
54 structure manually.
55
56 * xdisp.c (eval_form): GCPRO argument sexpr.
57 (call_function): New function.
58 (handle_single_display_prop): Use call_function and FUNCTIONP
59 instead of checking whether if font_height is a symbol and
60 using eval_form.
61
62 * eval.c (internal_condition_case_2): New function.
63
64 * lisp.h (FUNCTIONP): New macro.
65 (internal_condition_case_2, call_function): Add prototypes.
66
d5aa31d8
GM
67 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
68 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
69 Always set `arg' member of input_events.
70 (construct_menu_click): Unused function removed.
71
72 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
73
74 * w32term.c (construct_mouse_click, construct_mouse_wheel)
75 (construct_drag_n_drop, x_scroll_bar_handle_click)
76 (w32_read_socket): Always set `arg' member of input_events.
77
78 * keyboard.c (show_help_echo): Use eval_form. Add comment.
79
80 * lisp.h (eval_form): Add prototype.
81
82 * xdisp.c (eval_form): Make it externally visible.
83
0f1a9b23
GM
842000-07-13 Gerd Moellmann <gerd@gnu.org>
85
86 * xterm.c (x_handle_tool_bar_click): Store the frame in the
87 frame_or_window slot of TOOL_BAR_EVENT input events instead of
88 consing. For prefix events, store the frame in the `arg' slot of
89 the event, otherwise store the key there.
90 (XTread_socket): Instead of consing, use the frame_or_window slot
91 of HELP_EVENTs for the frame, and the `arg' slot for the help
92 string.
93
94 * xmenu.c (menu_highlight_callback): Store help string in the
95 `arg' member of the input event; don't cons.
96 (menubar_selection_callback): Use the `arg' slot of input events
97 to queue additional information, instead of consing.
98
99 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
100
101 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
102 TOOL_BAR_EVENTs.
103 (w32_read_socket): Adapt to changes in HELP_EVENTs.
104
105 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
106 input events to queue additional information, instead of consing.
107
108 * keyboard.c (kbd_buffer_gcpro): Renamed from
109 kbd_buffer_frame_or_window. Now used for all Lisp objects
110 referenced from the input queue.
111 (kbd_buffer_store_event): Always use structure assignment for
112 copying input events. Record all Lisp objects referenced from
113 events in kbd_buffer_gcpro.
114 (kbd_buffer_get_event): Construct Lisp `help-echo' events
115 differently from input events. Test for prefix menu_bar_events
116 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
117 event in kbd_buffer_gcpro to nil.
118 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
119 frame_or_window is equal to its arg member as prefix events.
120 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
121 used by an input event to nil.
122 (init_keyboard): Use two times the size of the input queue
123 for kbd_buffer_gcpro.
124 (syms_of_keyboard): Likewise.
125
126 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
127 USER_SIGNAL_EVENT.
128
129 * termhooks.h (struct input_event): Add member `arg'.
130 (MENU_BAR_EVENT): Renamed from menu_bar_event.
131 (USER_SIGNAL_EVENT): Renamed from user_signal.
132
133 * xfaces.c (ASET): Remove definition.
134
135 * lisp.h (AREF, ASET, ASIZE): New macros.
136
137 * fontset.c (AREF, ASIZE): Remove definitions.
138
139 * fns.c (AREF): Remove definition.
178c5d9c 140
0f1a9b23
GM
141 * composite.c (AREF): Remove definition.
142
712eaef2
GM
1432000-07-12 Gerd Moellmann <gerd@gnu.org>
144
d8ee7803
GM
145 * dispnew.c (redraw_overlapped_rows): Add missing local.
146 (scrolling_window): Remove debug code.
147
712eaef2
GM
148 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
149 Before scrolling, turn off a mouse-highlight in the window
150 being scrolled.
151
152 * xterm.c (x_update_window_end): Add parameter
153 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
154 redisplay in XTframe_up_to_date.
155 (x_clear_mouse_face): New function.
156 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
157
158 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
159 current glyph row.
160 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
161 it when any row is written to that contains glyphs highlighted in
162 mouse-face.
163 (update_window): Call the window update end hook with new
164 parameter MOUSE_FACE_OVERWRITTEN_P.
165 (direct_output_for_insert): Give up if row contains mouse-face.
166
167 * dispextern.h (struct redisplay_interface): Add parameter
168 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
169 (clear_mouse_face): New function pointer member.
170
02010917
SM
1712000-07-11 Stefan Monnier <monnier@cs.yale.edu>
172
173 * syntax.c (back_comment): Use one switch rather than a few `if's.
174 Obey open_paren_in_column_0_is_defun_start.
175 When reverting to the `slow' method, try to nicely handle the case
176 of nested comments by checking that the comment-starter we found
177 does indeed match the comment-ender.
178 (scan_sexps_forward, scan_sexps_forward):
179 Ignore excessive opening parenthesis rather than throwing an error.
180
d76c03ea
GM
1812000-07-11 Gerd Moellmann <gerd@gnu.org>
182
183 * doc.c (Fsubstitute_command_keys): Handle case that a GC
184 in Fwhere_is_internal or get_keymap_1 relocates string contents.
185
186 * dispnew.c (direct_output_forward_char): Give up if currently
187 displaying a message instead of the minibuffer contents.
188
189 * xterm.c (x_update_window_begin): No need to turn off the mouse
190 highlight here.
191 (show_mouse_face): Set the mouse_face_p flag of glyph rows
192 depending on whether they contain glyphs highlighted in
193 mouse-face.
194
195 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
196 compare the mouse_face_p flags of both rows.
197
198 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
199
d55ead18
EZ
2002000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
201
202 * keyboard.c (show_help_echo): Accept additional parameter
203 ok_to_overwrite_keystroke_echo.
204 (read_char): Call show_help_echo with a zero
205 ok_to_overwrite_keystroke_echo argument.
206 * keyboard.h (show_help_echo): Update prototype of
207 show_help_echo.
208 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
209 ok_to_overwrite_keystroke_echo argument.
210 * w32menu.c (w32_menu_display_help): Call show_help_echo with
211 non-zero ok_to_overwrite_keystroke_echo argument.
212
df75b1a3
GM
2132000-07-10 Gerd Moellmann <gerd@gnu.org>
214
4b92c49a
GM
215 * xdisp.c (try_window_id): If changes are all below what is
216 displayed in the window, and point is in the window, we still
217 might have to find point on the display.
218
219 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
220 glyphs instead of a single one.
221 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
222 with new argument list.
223 (x_set_glyph_string_gc): Make sure the face's GC is valid.
224
df75b1a3
GM
225 * keymap.c (get_keymap_1): Add comment that this function can GC.
226 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
227 comment that functions can GC.
228 (Fset_keymap_parent): GCPRO arg KEYMAP.
229
4314cf3e
EZ
2302000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
231
232 * msdos.c (XMenuActivate): After exiting the menu, restore the
233 echo area message and erase it.
234
ab49ce15
KH
2352000-07-10 Kenichi Handa <handa@etl.go.jp>
236
237 * fontset.c (Ffontset_info): Make the return value more compatible
238 with that of Emacs 20.
239
090a072f
GM
2402000-07-07 Gerd Moellmann <gerd@gnu.org>
241
242 * eval.c (Fsignal): Handle case that backtrace_list is null.
243
f92de4a6
KH
2442000-07-07 Kenichi Handa <handa@etl.go.jp>
245
246 * ccl.c (Fccl_execute): Typo fixed.
247
dd8888a1
GM
2482000-07-06 Gerd Moellmann <gerd@gnu.org>
249
e5c81191 250 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 251
dd8888a1
GM
252 * window.c (Fwindow_list): Reverse list at the end.
253 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
254 means allow windows on OWINDOW's frame, only.
255 (window_loop): Simplified; use Fwindow_list.
256
257 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
258
485266d0
GM
2592000-07-05 Gerd Moellmann <gerd@gnu.org>
260
261 * xterm.c (XTread_socket): Increment handling_signal at the start,
262 decrement it at the end.
263
264 * eval.c (handling_signal): New variable.
265 (Fsignal): Abort if handling_signal is non-zero.
266
267 * lisp.h (handling_signal): External declaration.
178c5d9c 268
485266d0
GM
269 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
270
80fcd514
KR
2712000-07-05 Ken Raeburn <raeburn@gnu.org>
272
273 Sound support for NetBSD through "Linux emulation" support:
274 * config.in (HAVE_SOUNDCARD_H): Undef.
275 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
276 * Makefile.in (LIBSOUND): New variable.
277 (LIBES): Include it.
278 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
279 <soundcard.h>.
280 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
281 elsewhere.
282 (vox_open): Use DEFAULT_SOUND_DEVICE.
283 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
284
d5c5cddd
GM
2852000-07-05 Gerd Moellmann <gerd@gnu.org>
286
287 * print.c (print_error_message): If Vsignaling_function is set,
288 show it in *Messages*.
289
290 * lisp.h (Vsignaling_function): External declaration.
291
292 * eval.c (Vsignaling_function): New variable.
293 (Fsignal): Compute it.
294 (syms_of_eval): Staticpro it.
295
65171e3a
DL
2962000-07-05 Dave Love <fx@gnu.org>
297
298 * syswait.h: Use the autoconf recommended approach. Old code
299 #if'd out in case we need to revert.
300
178c5d9c 301 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 302
e2c46326
AI
3032000-07-05 Andrew Innes <andrewi@gnu.org>
304
305 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
306 when non-NULL instead of __morecore, to take account of buffer
307 memory. This also solves a problem with spurious memory warnings
308 on Windows.
309
310 * ralloc.c: Make real_morecore non-static.
311
312 * eval.c (internal_condition_case): Comment out abort if
313 interrupt_input_blocked is not zero.
314
315 * makefile.nt: Add support for `bootstrap' and related targets.
316 Include minimal debug info in emacs.exe in release build.
317 Remove all dependencies on lisp.h, and fixup some others.
318
319 * w32.c (init_environment): Install code from 20.7 for providing
320 default values for environment variables, based on the
321 executable's own location.
322 (map_w32_filename): Handle filenames that are longer than
323 MAX_PATH.
324 (sys_socket): Install socket inheritance bug fix from 20.7.
325
326 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
327 here via blockinput.h).
328
a027a91b
SM
3292000-07-05 Stefan Monnier <monnier@cs.yale.edu>
330
e4b31601
SM
331 * w32menu.c (w32_menu_display_help):
332 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
333
334 * keyboard.h (show_help_echo): Declare.
335
336 * keyboard.c (show_help_echo): New function, extracted from read_char.
337 Feval its `msg' argument if it's a cons cell.
338 (read_char): Use it.
4cf8d9d5 339 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 340
178c5d9c 341 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 342 (note_tool_bar_highlight, XTread_socket):
178c5d9c 343 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
344 (dos_rawgetc):
345 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
346 (note_tool_bar_highlight, w32_read_socket):
347 Do not gratuitously ignore non-string `help-echo' properties.
348
88d75730
GM
3492000-07-05 Gerd Moellmann <gerd@gnu.org>
350
969f7e79
GM
351 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
352
71201b00
GM
353 * window.c (delete_all_subwindows): Reset Vwindow_list.
354
88d75730
GM
355 * xterm.c (x_append_glyph, x_append_composite_glyph)
356 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
357 changes in struct glyph starting 1999-12-27. Some bit-fields of
358 struct glyph were not set, which made glyphs unequal when compared
359 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
360 effects were the result. This also depended on the contents of
361 memory returned by xmalloc. If flickering happens again, activate
362 the code in clear_glyph_row that's in #if 0. If the flickering is
363 gone with that, chances are that it is caused by something
364 similar.
365
366 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 367
88d75730
GM
368 * dispextern.h: Add some comments.
369
370 * window.c (add_window_to_list): Add parameter LIST.
371 (window_list): Order list so that, for each frame, windows are
372 in canonical order, and so that frames appear in the list in
373 the order given by Vframe_list.
374 (next_window): Reverse the handling of NEXT_P.
375
53654733
GM
3762000-07-04 Gerd Moellmann <gerd@gnu.org>
377
87efd256
GM
378 * window.c (Vwindow_list): New variable.
379 (make_window, delete_window): Set Vwindow_list to nil.
380 (check_window_containing): New function.
381 (window_from_coordinates): Rewritten.
382 (add_window_to_list, window_list, candidate_window_p)
383 (decode_next_window_args, next_window): New functions.
384 (Fnext_window, Fprevious_window): Rewritten in terms of
385 next_window.
386 (Fwindow_list): New function.
387 (Fother_window): Cleaned up.
388 (foreach_window): Add a longer "variable argument list". Let
389 callback function return 0 to indicate that cycling over windows
390 should stop.
391 (foreach_window_1): Likewise.
392 (freeze_window_start): Return int.
393 (init_window): New function.
394 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
395
396 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
397 input_event with bzero.
398 (main): Call init_window.
399
53654733
GM
400 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
401 a menu filter.
402
4a8c194f
KH
4032000-07-04 Kenichi Handa <handa@etl.go.jp>
404
405 * composite.h (make_composition_value_copy): Extern it.
406
407 * composite.c (make_composition_value_copy): New function.
408
409 * editfns.c (Fformat): While copying text properties, make each
410 composition property value a copy.
411
412 * fns.c (concat): While copying text properties, make each
413 composition property value a copy.
414
831a6cb0
GM
4152000-07-03 Gerd Moellmann <gerd@gnu.org>
416
2f516940
GM
417 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
418
178c5d9c 419 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
420 marked already.
421
831a6cb0
GM
422 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
423 include those frames as candidates which have their focus
424 redirected to the minibuffer frame.
425
d9c4f922
SM
4262000-07-03 Stefan Monnier <monnier@cs.yale.edu>
427
428 * fns.c (Fputhash): Return `value' rather than nil.
429
3780bc22
GM
4302000-06-30 Gerd Moellmann <gerd@gnu.org>
431
97d176db
GM
432 * frame.c (next_frame): Don't check focus redirection in case
433 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
434 unless their focus is redirected, which contradicts the
435 specification of next-frame, and leads to infinite loops in
436 certain situations when cycling through windows with next-window.
437
dca9961d
KH
4382000-06-30 Kenichi Handa <handa@etl.go.jp>
439
440 * coding.c (code_convert_region): Even if the length of text is
441 zero, try to convert it if coding->type is coding_type_ccl.
442 (decode_coding_string, encode_coding_string): Likewise.
443
d5483ab1
GM
4442000-06-28 Gerd Moellmann <gerd@gnu.org>
445
af5c25e1 446 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 447 the display if windows_or_buffers_changed.
af5c25e1
GM
448
449 * dispnew.c (struct row_entry): New structure.
450 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
451 (row_table_size, old_lines, new_lines, old_lines_size)
452 (new_lines_size, run_pool, runs_size, runs): New variables.
453 (add_row_entry): New function.
454 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 455 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
456 holding them in local variables. Use a larger hash table whose
457 size depends on glyph matrix sizes. Don't use bzero to clear the
458 hash table; instead, clear used slots only.
459
460 * fns.c (next_almost_prime): Make it externally visible.
461
462 * lisp.h (next_almost_prime): Add prototype.
463
d5483ab1
GM
464 * s/isc4-0.h (sigunblock): Define.
465
466 * s/sco5.h (sigunblock): Define.
467
93e40f40
DL
4682000-06-27 Dave Love <fx@gnu.org>
469
470 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
471 (moved to osf5-0.h).
472 [!NOT_C_CODE]: Protect string.h stuff.
473
474 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
475 (sys_siglist, NSIG): Definitions moved here from osf1.h.
476
3c4b7685
GM
4772000-06-27 Gerd Moellmann <gerd@gnu.org>
478
97d176db 479 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
480 below the last line from the needed window height.
481
32cad0aa
SM
4822000-06-26 Stefan Monnier <monnier@cs.yale.edu>
483
484 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
485 (Fwidget_get): Use it.
486 (syms_of_fns): Defsubr it.
487
2c69ced2
GM
4882000-06-26 Gerd Moellmann <gerd@gnu.org>
489
178c5d9c 490 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
491 display info for XIM.
492 (xim_open_dpy): Likewise.
493 (xim_close_dpy): Don't free the display info's XIM.
494
495 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
496
497 * config.in (USE_XIM): New define.
498
3fc720e4
GM
499 * keymap.c (get_keyelt): For menu-items containing a `:filter
500 FILTER', apply FILTER to the menu-item's definition to get the
501 real definition to use.
502
503 * lisp.h (QCfilter): External declaration.
504
2c69ced2
GM
505 * xfns.c (Fimage_size): New function.
506 (syms_of_xfns): Defsubr it.
507
f978b2a2
AS
5082000-06-26 Andreas Schwab <schwab@suse.de>
509
510 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
511 Fstring_as_unibyte.
512
94cc7892
DL
5132000-06-25 Dave Love <fx@gnu.org>
514
515 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
516 tgetnum.
517
518 * Makefile.in (blockinput.h): Depend on atimer.h.
519 (atimer.h): Depend on systime.h.
520
521 * blockinput.h: Protect against multiple inclusion. Include
522 atimer.h.
523
524 * atimer.h: Protect against multiple inclusion. Include
525 systime.h.
526
527 * lisp.h (swap_in_global_binding): Declare.
528
b8c24556
KR
5292000-06-24 Ken Raeburn <raeburn@gnu.org>
530
531 * process.c (Fopen_network_stream): Turn off atimers for duration
532 of call to connect. (Patch from Gerd.)
533
8cf8560b
DL
5342000-06-23 Dave Love <fx@gnu.org>
535
511c7541
DL
536 * ralloc.c: Maybe include unistd.h
537
8cf8560b
DL
538 * emacs.c (setgrp): Undefine before defining.
539 (malloc_warning, set_time_zone_rule, index): Prototype.
540
541 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
542 HAVE_STRUCT_TIMEZONE.
543
544 * s/osf1.h: Move string.h hack here from alpha.h and make it
545 conditional.
546 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
547 _XOPEN_SOURCE.
548 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
549 (SOCKLEN_TYPE): Don't define.
550
551 * m/alpha.h: Remove string.h hack.
552
553 * s/osf5-0.h: New file.
554
555 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
556 include time.h, done by systime.h.
557 [__FreeBSD__]: Remove redundant includes.
558
3fc720e4 559 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
560 (delete_temp_file): Return Qnil to avoid warning.
561
562 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
563
564 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
565 HAVE_X_WINDOWS.
566
567 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
568
569 * composite.h (compose_text): Declare.
570
571 * xterm.c: Don't include sys/types.h unconditionally. Don't
572 protect its inclusion with !USG (following xmenu.c).
573
ea055732
GM
5742000-06-23 Gerd Moellmann <gerd@gnu.org>
575
576 * xfns.c (x_create_tip_frame): Initialize frame's colors like
577 in x_create_frame.
578
74b01b80
EZ
5792000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
580
581 * coding.c (decode_eol_post_ccl): Special handling for undecided
582 and inconsistent EOL types.
583
64f3a166
GM
5842000-06-22 Gerd Moellmann <gerd@gnu.org>
585
16cf31f7
GM
586 * xrdb.c (x_load_resources): Add default resource for scroll bar's
587 trough color and main window's background color.
588
178c5d9c 589 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
590 differently.
591
592 * xterm.h (Xt_app_con): External declaration.
593
594 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 595
486a103d
GM
596 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
597
64f3a166
GM
598 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
599 (handle_invisible_prop): Record the start of invisible text in
600 it->add_overlay_start.
601 (struct overlay_entry): Add member `overlay'.
602 (handle_overlay_change): Simplify.
603 (next_overlay_string): After having processed overlay strings at the
604 end of the buffer, record that fact in
605 it->overlay_strings_at_end_processed_p.
606 (compare_overlay_entries): If before- and after-strings come
607 from the same overlay, let before-strings come first.
608 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
609 (load_overlay_strings): Take it->add_overlay_start into account
610 when adding overlay strings.
611
612 * dispextern.h (struct it): Add member add_overlay_start.
613
bb746ea6
DL
6142000-06-22 Dave Love <fx@gnu.org>
615
616 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
617
618 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
619
a8f573f3
KH
6202000-06-22 Kenichi Handa <handa@etl.go.jp>
621
622 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
623 is greater than 0.
624
9f2bbc92
DL
6252000-06-21 Dave Love <fx@gnu.org>
626
178c5d9c 627 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 628
3ee5041c
SM
6292000-06-21 Stefan Monnier <monnier@cs.yale.edu>
630
631 * syntax.c (back_comment): Simplify string-parity counting (with
632 the added benefit of handling multiple string-styles as long as
633 they are not intertwined).
634 Jump to the slow code as soon as a comment starter is found in
635 a "string_lossage" position. Fixes the case: " /* " /* " */.
636
4c343001
DL
6372000-06-21 Dave Love <fx@gnu.org>
638
639 * Makefile.in: Use GETLOADAVG_LIBS.
640
641 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
642 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
643
e6365855
SM
6442000-06-20 Stefan Monnier <monnier@cs.yale.edu>
645
646 * syntax.c (describe_syntax): Recognize the `n'estable bit.
647 (Fforward_comment, scan_lists):
648 Check the comstyle of single-char comment-starters.
649 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
650 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
651 Check the comstyle of single-char comment-starters.
652 Clarify control-flow around the Scomment case.
e6365855 653
5700d2cc
DL
6542000-06-20 Dave Love <fx@gnu.org>
655
d355bd8a
SM
656 * fns.c (make_hash_table, maybe_resize_hash_table):
657 Cast arg of next_almost_prime.
5700d2cc 658
178c5d9c 659 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
660
661 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
662 and unistd.h.
663
4a27bdfb
GM
6642000-06-20 Gerd Moellmann <gerd@gnu.org>
665
a61d762c
GM
666 * keyboard.c (adjust_point_for_property): Check if display
667 property should be treated as intangible by looking at its
668 value.
669
178c5d9c 670 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
671 (display_prop_intangible_p): New functions.
672
673 * dispextern.h (display_prop_intangible_p): Add prototype.
674
675 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 676
4a27bdfb
GM
677 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
678 argument to sigprocmask.
679
680 * s/sco5.h (sigblock): Redefined to pass a pointer as second
681 argument to sigprocmask.
682
683 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
684 sigprocmask_set, and pass a pointer to it to sigprocmask.
685
686 * sysdep.c (sigprocmask_set): New variable.
687
688 * fileio.c (make_temp_name): Don't use `%s' in string passed to
689 report_file_error.
690
427ec082
SS
6912000-06-20 Sam Steingold <sds@gnu.org>
692
693 * xrdb.c: Don't declare xmalloc, xrealloc.
694
8972fe79 6952000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
696
697 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
698 (re_comp): Cast gettext return value to avoid complaints when
699 !HAVE_LIBINTL.
700
074b6efe
DL
7012000-06-20 Dave Love <fx@gnu.org>
702
f85c008a
DL
703 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
704 HAVE_GETTIMEOFDAY.
705
5700d2cc 706 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 707
d355bd8a 708 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
709
710 * m/alpha.h: Don't declare xmalloc, xrealloc.
711
0af4f205
DL
712 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
713
714 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
715
716 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
717
718 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
719 HAVE_GETWD.
720
074b6efe
DL
721 * keyboard.h (poll_for_input_1): Declare.
722
723 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
724
725 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
726
727 * doprnt.c: Don't declare xmalloc, xrealloc.
728
729 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
730 (getenv, ctime, getwd): Removed.
731 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
732
733 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
734 x_set_tool_bar_lines.
735
736 * config.in: Add HAVE_GETWD. Move some definitions above
737 machine/system includes.
738
68a5e97b
KH
7392000-06-20 Kenichi Handa <handa@etl.go.jp>
740
95417e1e
KH
741 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
742
68a5e97b
KH
743 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
744 contain information about ENCODING.
745
746 * fontset.c (FONTSET_ASCII): Use the first element of char table
747 for an ASCII font, not defalt slot.
748 (fontset_ref_via_base): If FONTSET doesn't contain information for
749 C, try the default fontset.
750 (make_fontset): Don't copy the default fontset.
751 (fontset_font_pattern): Likewise.
752 (accumulate_font_info): If ELT is nil, use the corresponding
753 element in the default fontset.
754
3b4fa1b2
DL
7552000-06-19 Dave Love <fx@gnu.org>
756
943e731c
DL
757 * syntax.c (Fparse_partial_sexp): Doc fix.
758
759 * regex.h: Test PROTOTYPES as well as __STDC__.
760
3b4fa1b2
DL
761 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
762 errno, strerror. Put text after #endif in comment.
763
764 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
765 pcc).
766
767 * xterm.c (x_frame_of_widget): Likewise.
768
cdf0357b
GM
7692000-06-19 Gerd Moellmann <gerd@gnu.org>
770
771 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
772 to Vfundamental_mode_abbrev_table.
773
774 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
775 bogus objects are marked. This slows down GC by ~80 percent, but
776 it might be worth trying when debugging GC-related problems.
777 This feature requires conservative stack marking to be enabled.
778
779 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
780 returns XLookupChars, reset `modifiers' to zero.
781
998e9f8c
DL
7822000-06-19 Dave Love <fx@gnu.org>
783
784 * mktime.c: Unprotoized.
785
d1504184
GM
7862000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
787
788 * data.c (set_internal): If variable is frame-local,
789 store the new value immediately into the frame parameter alist.
790
140c4ac6
KR
7912000-06-19 Ken Raeburn <raeburn@gnu.org>
792
14358466
KR
793 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
794 in the custom handler pointer.
795
140c4ac6
KR
796 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
797 value, or checks for CHAR_META can fail when Lisp_Object is a
798 union type.
799 * keymap.c (get_keyelt): Likewise.
800
10d7bf84
KH
8012000-06-19 Kenichi Handa <handa@etl.go.jp>
802
803 * ccl.h (struct ccl_program): New member eol_type.
804 (struct ccl_spec): New member cr_carryover.
805
806 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
807 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
808
809 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
810 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
811 (decode_eol_post_ccl): New function.
812 (decode_coding): Don't detect EOL format here for CCL based coding
813 systems.
814 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
815 decode_eol_post_ccl after running the CCL program.
816 (code_convert_region): Don't detect EOL format here for CCL based
817 coding systems.
818 (decode_coding_string): Likewise.
819
52e386c2
KR
8202000-06-18 Ken Raeburn <raeburn@gnu.org>
821
822 * charset.c (update_charset_table): Use XINT on "iso_final_char"
823 when treating it as an integer.
824
825 * coding.h (encode_coding_string): Declare.
826
827 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
828 it as an integer.
829
830 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
831 "xkeymap" to avoid shadowing the "enum map_type" value that needs
832 to be passed to get_local_map.
833
834 * sound.c (Fplay_sound): Don't call make_number on
835 Frun_hook_with_args count argument.
836
837 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
838 for lisp objects in X event structure data field, when lisp
839 objects are represented with unions.
840 (x_scroll_bar_to_input_event): Ditto.
841
b357b9d4
KR
8422000-06-16 Ken Raeburn <raeburn@gnu.org>
843
844 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
845 termination of string. Fix sense of test whether
846 Vline_number_display_limit is an integer.
b357b9d4 847
a871441d
GM
8482000-06-16 Gerd Moellmann <gerd@gnu.org>
849
a9021acd
GM
850 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
851 only if HAVE_X_WINDOWS.
852
6344985d
GM
853 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
854 of titles.
855
427ec082 856 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
857 out of bounds.
858
228b083e
EZ
8592000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
860
861 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
862 of its headers.
863
c25b53a2
KH
8642000-06-15 Kenichi Handa <handa@etl.go.jp>
865
866 * coding.c (decode_coding_emacs_mule): Always set src_base at the
867 start of the while loop.
868
a6981b11
GM
8692000-06-15 Gerd Moellmann <gerd@gnu.org>
870
e9924e52
GM
871 * atimer.c (alarm_signal_handler): Add forward declaration.
872
a6981b11
GM
873 * data.c (set_internal): Remove debug code.
874
25fa6deb
GM
8752000-06-14 Gerd Moellmann <gerd@gnu.org>
876
dce6b995
GM
877 * Makefile.in (bootstrap-temacs): Add `-I../src'.
878
9f817ea4
GM
879 * unexec.c (toplevel) [COFF]: Include coff.h.
880
881 * s/lynxos.h: New file.
882
883 * keymap.c (Fsingle_key_description): Enclose function key and
884 event symbol names in angle brackets.
885
8a4e3c0c
GM
886 * xdisp.c (setup_echo_area_for_printing): Call
887 message_log_maybe_newline if message_buf_print is not set.
888
889 * print.c (printchar, strout): Don't check message_buf_print
427ec082 890 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
891 function does something useful even when message_buf_print is
892 already set.
893
25fa6deb
GM
894 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
895 variables.
896 (ensure_echo_area_buffers): Initialize echo buffer's
897 truncate lines setting to nil.
898 (with_echo_area_buffer): Don't set the echo buffer's truncate
899 lines setting here.
8a4e3c0c 900 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
901 of message_truncate_lines.
902 (resize_mini_window): Handle case that lines are truncated.
903 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
904 message-truncate-lines.
905
906 * keyboard.c (read_char): Bind message-truncate-lines to t
907 while displaying a help-echo.
908
909 * lisp.h (Qmessage_truncate_lines): External declaration.
910
163dcff3
GM
9112000-06-13 Gerd Moellmann <gerd@gnu.org>
912
1681ead6
GM
913 * xdisp.c (Vline_number_display_limit): Renamed from
914 line_number_display_limit.
915 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
916 Extend documentation string. Initialize
917 Vline_number_display_limit to nil meaning no limit.
918 (decode_mode_spec): Use Vline_number_display_limit with its new
919 meaning.
920
163dcff3
GM
921 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
922
9232000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
924
925 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 926
163dcff3
GM
927 * xfns.c (x_set_frame_parameters): Comment fix.
928
929 * frame.c (store_frame_param): Call swap_in_global_binding if the
930 variable's current binding was chosen based on this frame.
931
932 * data.c (swap_in_global_binding): New function.
933
a704139d
EZ
9342000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
935
936 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
937 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
938
9b6610db
EZ
9392000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
940
941 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
942
c68833d2
JR
9432000-06-12 Jason Rumney <jasonr@gnu.org>
944
945 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
946
947 * w32.h (EMACS_W32_H): Renamed from _NT_H_
948
949 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
950
951 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
952
ed1056b3
GM
9532000-06-12 Gerd Moellmann <gerd@gnu.org>
954
955 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
956 (syms_of_xfaces): Defsubr Sdump_colors.
957 (x_free_colors): Don't treat b&w specially on default visual.
958 (x_free_dpy_colors): New function.
959 (free_face_colors): Don't check visual class; it's done
960 in x_free_colors.
961
962 * xterm.c (x_frame_of_widget): New function.
963 (x_alloc_nearest_color_for_widget): Use it.
964 (x_copy_dpy_color): New function.
965 (x_destroy_window): Free various colors.
966
5050a2ef
KH
9672000-06-12 Kenichi Handa <handa@etl.go.jp>
968
969 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
970
971 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
972
973 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
974
975 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
976
977 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
978
fb1b041d
DL
9792000-06-11 Dave Love <fx@gnu.org>
980
981 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
982
ff96b5f4
EZ
9832000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
984
985 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
986
db8eeecd
GM
9872000-06-11 Gerd Moellmann <gerd@gnu.org>
988
ed1056b3 989 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
990 to `XEvent *'.
991
49b71c5f
KH
9922000-06-10 Kenichi Handa <handa@etl.go.jp>
993
c479bd55
KH
994 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
995 (regex_compile): Fix the code for handling the case of single byte
996 char and multibyte char being mixed in a range within [...].
997
ff6a65c2
KH
998 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
999 and dst_multibyte members of coding.
1000
49b71c5f
KH
1001 * charset.c (update_charset_table): Update the table
1002 bytes_by_char_head.
1003 (init_charset_once): Initialize elements of bytes_by_char_head to
1004 1 except for leading codes for private charases.
1005
1006 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1007 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1008 sequence.
1009
9e80b57d
KR
10102000-06-09 Ken Raeburn <raeburn@gnu.org>
1011
1012 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1013 access the data it doesn't point to.
1014
f83fe4b4
GM
10152000-06-08 Gerd Moellmann <gerd@gnu.org>
1016
1017 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1018 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1019 event queue. This is necessary because Emacs otherwise won't
1020 perform a switch-frame to a new frame until some other event, for
1021 example a keystroke event, forces it to do so. This has various
1022 effects, one visible being that the cursor of a frame created with
1023 C-x 5 2 or switched to with a window manager key binding like
1024 A-TAB stays hollow because selected_window isn't on the newly
1025 focused frame until the switch-frame is performed.
1026
1027 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1028 generating a switch-frame event if necessary.
1029
1030 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1031
1032 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1033 it's an integer.
1034
0890801b
KH
10352000-06-08 Kenichi Handa <handa@etl.go.jp>
1036
1037 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1038 charset.
1039
173cbca8
GM
10402000-06-07 Gerd Moellmann <gerd@gnu.org>
1041
3091c2a6
GM
1042 * window.c (displayed_window_lines): Take empty lines at
1043 the bottom of a window into account.
427ec082 1044
f38952fe
GM
1045 * window.c (displayed_window_lines): New function.
1046 (Fmove_to_window_line): Use displayed_window_lines to determine
1047 the number of lines to move, instead of using the window's height.
1048
1049 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1050 to stop reading, even if the form read sets point to a different
1051 value when evaluated.
1052
427ec082 1053 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1054 put the cursor.
1055
6ba6c818
KH
10562000-06-07 Kenichi Handa <handa@etl.go.jp>
1057
1058 * fileio.c (e_write): Free composition data if stored in
1059 coding->cmp_data.
1060
5f1aea9a
GM
10612000-06-06 Gerd Moellmann <gerd@gnu.org>
1062
666852af
GM
1063 * xdisp.c (display_line): Set row's and iterator's
1064 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1065 Set cursor even if row ends in the middle of a character.
1066 (dump_glyph_row): Print values of new flags.
1067 (redisplay_window) <cursor movement in unchanged window>: When
1068 point has been moved forward, and PT is at the end of the cursor
1069 row, don't place the cursor in the next row if the cursor row ends
1070 in the middle of a character or at ZV.
1071
1072 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1073 (struct glyph_row): Add starts_in_middle_of_char_p and
1074 ends_in_middle_of_char_p.
1075 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1076 ends_in_middle_of_char_p flag.
1077 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1078
d13f3e2e
GM
1079 * term.c (append_glyph): Revert change of 2000-06-06.
1080
1081 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1082 padding glyph not fitting on line as whole character not
1083 fitting on line.
1084
5f1aea9a
GM
1085 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1086 this isn't true for images with `:ascent 100'.
1087
10cda9b0
KH
10882000-06-06 Kenichi Handa <handa@etl.go.jp>
1089
ed00559d
KH
1090 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1091 as modified if it is originally unmodified.
1092
10cda9b0
KH
1093 * term.c (encode_terminal_code): Change the way to check if
1094 terminal coding does any conversion.
1095 (append_glyph): Set glyph->pixel_width correctly.
1096
1097 * xdisp.c (display_line): While checking line continuation, pay
1098 attention to a padding glyph.
1099
1969fae2
GM
11002000-06-05 Gerd Moellmann <gerd@gnu.org>
1101
1102 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1103
162ccef4
DL
11042000-06-05 Dave Love <fx@gnu.org>
1105
f19f32dd
DL
1106 * xdisp.c: Include fontset.h.
1107
1108 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1109
1110 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1111
1112 * dispnew.c: Conditionally include term.h.
1113
1114 * coding.h: Declare code_convert_string_norecord.
1115
1116 * frame.h (struct frame): Use volatile unconditionally.
1117
1118 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1119
1120 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1121
1122 * systime.h: Protect against multiple inclusion.
1123 (timezone) [USG5_4]: Define as time_t.
1124
1125 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1126 (Foptimize_char_table, make_temp_name): Declare.
1127
1128 * Makefile.in (xdisp.o): Depend on fontset.h.
1129
1130 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1131
1132 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1133 (Foptimize_char_table, make_temp_name): Declare.
1134
427ec082 1135 * s/irix4-0.h:
162ccef4
DL
1136 * s/irix5-0.h:
1137 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1138
2082fe81
DL
11392000-06-02 Dave Love <fx@gnu.org>
1140
1141 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1142
dcf671d2
GM
11432000-06-02 Gerd Moellmann <gerd@gnu.org>
1144
1145 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1146 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1147 be freed.
1148
1149 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1150 glyph, use the ASCII NUL character to determine the face.
1151
d42122a3
DL
11522000-06-02 Dave Love <fx@gnu.org>
1153
1154 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1155 (VFORK_RETURN_TYPE): Remove.
427ec082 1156
d42122a3
DL
1157 * config.in: Add NO_MATHERR.
1158
dd432f16
DL
11592000-06-01 Dave Love <fx@gnu.org>
1160
90aa4ea8
DL
1161 * cmds.c (internal_self_insert): Don't check
1162 Vbefore_change_function, Vafter_change_function.
1163
1164 * insdel.c (signal_before_change, signal_after_change): Likewise.
1165
1166 * buffer.c (Vbefore_change_function, Vafter_change_function):
1167 Variables and their initializations deleted.
1168
2330c9d4
DL
1169 * callint.c (Fcall_interactively): Doc fix.
1170
dd432f16
DL
1171 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1172
bf9e8804
DL
11732000-05-31 Dave Love <fx@gnu.org>
1174
1175 * textprop.c: Revert last change -- duplicated.
1176
3694b4ab
GM
11772000-05-31 Gerd Moellmann <gerd@gnu.org>
1178
1179 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1180 in #if 0.
1181
1182 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1183
f14156cd
JR
11842000-05-31 Jason Rumney <jasonr@gnu.org>
1185
8119aab8
JR
1186 * search.c (Fre_search_forward, Fre_search_backward)
1187 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1188
f14156cd
JR
1189 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1190
4aab9be3
JR
11912000-05-30 Jason Rumney <jasonr@gnu.org>
1192
1193 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1194 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1195
1196 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1197 member.
1198
1199 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1200 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1201 expand a nil default_filename.
1202
1203 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1204 pointer to glyph_to_pixel_coords, not a frame.
1205
1206 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1207 coding.h to dependencies.
1208
1209 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1210
1211 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1212 window pointer to be consistent with w32term.c and xterm.c.
1213
1214 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1215 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1216 (Qline_spacing, Qcenter): New variables.
1217 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1218 (x_set_line_spacing): New function.
1219 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1220 macros.
1221 (x_specified_cursor_type): New function.
1222 (x_set_cursor_type): Use it.
1223 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1224 and icon strings.
1225 (validate_x_resource_name, x_get_resource_string): Measure lengths
1226 of external strings in bytes.
1227 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1228 GetTextExtentPoint32 with NULL title.
1229 (Fx_create_frame): Initialize Qline_spacing.
1230 (w32_load_system_font): Initialize font->double_byte_p.
1231 (x_to_w32_charset): Use Vw32_charset_info_alist.
1232 (Image, busy cursor, tooltip functions): Merged changes from
1233 xfns.c. Not yet functional on Windows.
1234
1235 * w32gui.h (W32FontStruct): Add double_byte_p member.
1236
1237 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1238 (emacs_button_translation): Use it.
1239 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1240 in `mask' to be set.
1241
1242 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1243 menu strings.
1244
1245 * w32term.c: Format and doc changes to bring closer to xterm.c.
1246 (w32_char_font_type): New enum.
1247 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1248 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1249 (w32_encode_char): New function.
1250 (x_encode_char): Removed.
1251 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1252 x_encode_char and w32_font_is_double_byte.
1253 (x_produce_image_glyph): Use image_ascent.
1254 (x_produce_glyphs): Use new version of w32_per_char_metric and
1255 handle NULL return value. Allow extra line spacing.
1256 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1257 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1258 w32_font_type member of glyph instead.
1259 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1260 (fast_find_position): Make sure not to consider rows not visible
1261 in the window.
1262 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1263 w32_menu_display_help with input blocked, as it can abort.
1264 (x_display_and_set_cursor): Choose cursor depending
1265 on buffer-local value of cursor_type.
1266 (x_draw_bar_cursor): Add parameter WIDTH.
1267
1268 * w32term.h (CP_DEFAULT): Define.
1269 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1270
10fc3187
GM
12712000-05-30 Gerd Moellmann <gerd@gnu.org>
1272
1273 * search.c (Fre_search_forward, Fre_search_backward)
1274 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1275
d0555360
KH
12762000-05-30 Kenichi Handa <handa@etl.go.jp>
1277
1278 * coding.c (detect_coding_iso2022): Fix code for checking
1279 CODING_CATEGORY_MASK_ISO_8_2.
1280
f1ad044f
SM
12812000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1282
1283 * regex.c (PREFETCH_NOLIMIT): New function.
1284 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1285
84ec3b4b
GM
12862000-05-29 Gerd Moellmann <gerd@gnu.org>
1287
66254a13
GM
1288 * syntax.c (find_defun_start): Move test for
1289 open_paren_in_column_0_is_defun_start outside of the loop.
1290
49e70dec
GM
1291 * xdisp.c (redisplay_window): Really switch buffers when
1292 displaying mode lines, and temporarily set selected_frame to the
1293 frame of the window that's redisplayed.
1294
84ec3b4b
GM
1295 * xfaces.c (free_realized_faces): Block/unblock input.
1296 (free_realized_multibyte_face): Ditto.
1297
869a3a14
DL
12982000-05-29 Dave Love <fx@gnu.org>
1299
1300 * textprop.c (Qkeymap): New variable.
1301 (syms_of_textprop): Intern it.
1302
1303 * keymap.c: Include intervals.h.
1304 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1305
1306 * Makefile.in (keymap.o): Depend on intervals.h.
1307
1308 * keyboard.c (menu_bar_items, tool_bar_items)
1309 (Fexecute_extended_command): Deal with `keymap' property.
1310 (read_key_sequence): Track map from `keymap' property as well as
1311 `local_map'.
1312
1313 * intervals.c (get_local_map): Extra arg to allow looking for
1314 `keymap' too.
1315
1316 * intervals.h (map_property): New enum.
1317 (get_local_map): Extra arg using it.
1318 (Qkeymap): Declare.
1319
84ec3b4b 1320 * lisp.h (get_local_map): Don't declare here.
869a3a14 1321
89d0c844
KH
13222000-05-29 Kenichi Handa <handa@etl.go.jp>
1323
1324 * Makefile.in (callproc.o): Depend on composite.h.
1325
1326 * callproc.c: Include composite.h.
1327 (Fcall_process): Handle composition correctly.
1328
1329 * coding.h (coding_allocate_composition_data): Extern it.
1330 (coding_restore_composition): Likewise.
1331
1332 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1333 yet allocated, finish decoding with result
1334 CODING_FINISH_INSUFFICIENT_CMP.
1335 (coding_allocate_composition_data): Make it non-static.
1336 (coding_restore_composition): Likewise.
1337
797a084a
EZ
13382000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1339
1340 * charset.c (syms_of_charset): Revert last change.
1341
cf872af5
EZ
13422000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1343
1344 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1345 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1346 Handa.
cf872af5 1347
5b1ae051
EZ
13482000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1349
1350 * charset.c (syms_of_charset): Set width of character sets
1351 eight-bit-control and eight-bit-graphic to 1 column.
1352
34ec9ebe
GM
13532000-05-26 Gerd Moellmann <gerd@gnu.org>
1354
1355 * config.in (HAVE_SPEED_T): New define.
1356
1357 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1358 `extern speed_t'.
1359
dd854dc2
DL
13602000-05-26 Dave Love <fx@gnu.org>
1361
1362 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1363
1364 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1365 (Fsubr_arity): New function.
1366 (syms_of_data): Install them.
1367
ba9f8f95
KH
13682000-05-26 Kenichi Handa <handa@etl.go.jp>
1369
0f3e0672
KH
1370 * charset.c (init_charset_once): Set the table bytes_by_char_head
1371 correctly.
1372
cebefb44
KH
1373 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1374 the default fontset to what Emacs uses by default.
0f3e0672
KH
1375 (check_registry_encoding): This function deleted.
1376 (Fset_fontset_font): Remove the adhoc condition for the default
1377 fontset. Allow cons in FONTNAME.
cebefb44 1378
0f3e0672
KH
1379 * fns.c (map_char_table): Ignore char-table entries for
1380 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1381
7a18af49
KR
13822000-05-25 Ken Raeburn <raeburn@gnu.org>
1383
1384 * emacs.c (main): Initialize keyboard syms before initializing
1385 window code, so face names are available.
1386
d2af47df
SM
13872000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1388
1389 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1390 of an anchor at the beginning of a shy-group.
1391
fc6a6a4e
GM
13922000-05-25 Gerd Moellmann <gerd@gnu.org>
1393
1394 * xdisp.c (handle_invisible_prop): Don't try to skip over
1395 invisible text if end of text is already reached.
1396
005f0d35
DL
13972000-05-25 Dave Love <fx@gnu.org>
1398
02513cdd
DL
1399 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1400
005f0d35
DL
1401 * coding.c (encode_eol): Add null statement after label.
1402
89f6ca4e
EZ
14032000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1404
1405 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1406 2000-05-20.
1407
a4e1759e
KH
14082000-05-25 Kenichi Handa <handa@etl.go.jp>
1409
1410 * ccl.c (ccl_driver): Fix previous change.
1411
eacfd7fe
KH
14122000-05-25 Kenichi Handa <handa@etl.go.jp>
1413
46ab33a9
KH
1414 * coding.c (run_pre_post_conversion_on_str): Set point to the
1415 beginning of buffer before calling coding->post_read_conversion.
1416 (decode_coding_string): Give correct args to
1417 run_pre_post_conversion_on_str.
1418 (encode_coding_string): Likewise.
1419
eacfd7fe
KH
1420 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1421 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1422 eight-bit-graphic correctly.
1423
f8569325
DL
14242000-05-24 Kenichi HANDA <handa@etl.go.jp>
1425
1426 * fileio.c (Finsert_file_contents): Even if a file is not found,
1427 execute codes for setting up coding system. Call
1428 after-insert-file-functions unconditionally.
1429
04545643
GM
14302000-05-24 Gerd Moellmann <gerd@gnu.org>
1431
1432 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1433 BSD_PGRPS are not defined.
1434
747d90ea
KH
14352000-05-24 Kenichi Handa <handa@etl.go.jp>
1436
1437 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1438 DESCRIPTION.
1439 (syms_of_charset): Avoid building same strings.
1440
716e3b88
GM
14412000-05-23 Gerd Moellmann <gerd@gnu.org>
1442
1443 * lread.c (Fload): Add a comment about the meaning of
1444 Vuser_init_file being t.
1445
1446 * puresize.h (BASE_PURESIZE): Increase to 675000.
1447
1448 * s/gnu-linux.h (setpgrp): Don't define it here because this
1449 prevents compilation on GNU/Linux systems with glib 2.2.
1450
1451 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1452 as setpgid.
427ec082 1453
9aeb39fa
EZ
14542000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1455
1456 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1457 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1458 version.
1459 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1460
29ced61b
KH
14612000-05-23 Kenichi Handa <handa@etl.go.jp>
1462
0574a2ed
KH
1463 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1464 unconditionally.
1465
3d80f24d
KH
1466 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1467
1468 * term.c (encode_terminal_code): Set coding->src_multibyte
1469 properly.
1470
29ced61b
KH
1471 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1472
d7e00792
KH
14732000-05-22 Kenichi Handa <handa@etl.go.jp>
1474
c9d80d38
KH
1475 * keyboard.c (read_char): Allow character codes 128..255 to be
1476 handled by input-method-function.
1477
d7e00792
KH
1478 * insdel.c (adjust_markers_for_replace): Fix previous change.
1479 (adjust_after_replace): If PREV_TEXT is nil, call
1480 adjust_markers_for_insert, not adjust_markers_for_replace.
1481
087121cc 14822000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1483
087121cc
GM
1484 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1485 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1486 [HAVE_GRANDPT]: Define.
1487 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1488
1489 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1490 like SYSV_PTYS.
1491
1492 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1493
1494 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1495
c9671f81
KH
14962000-05-20 Kenichi Handa <handa@etl.go.jp>
1497
1498 The following changes are to handle 8-bit characters in a
1499 multibyte buffer/string without facing with byte combining
1500 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1501 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1502
1503 * Makefile.in (fns.o): Depend on charset.h.
1504
1505 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1506 convert it to unibyte.
1507 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1508
1509 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1510 apparent char boundary.
1511 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1512 0x80..0x9F to/from multibyte form.
1513
1514 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1515 to unibyte.
1516
1517 * callproc.c (Fcall_process): Always encode an argument string if
1518 it is multibyte. Setup src_multibyte and dst_multibyte members of
1519 process_coding properly.
ce75fd23 1520
c9671f81
KH
1521 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1522 SPLIT_NON_ASCII_CHAR.
1523
1524 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1525 as is.
1526 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1527
1528 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1529 variables.
1530 (SPLIT_CHARACTER_SEQ): This macro deleted.
1531 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1532 valid.
1533 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1534 and eight-bit-graphic.
1535 (char_to_string): Likewise. Signal an error for too large
1536 character code.
1537 (char_printable_p): Return 0 for 8-bit characters.
1538 (update_charset_table): Update iso_charset_table only when a final
1539 character is non-negative.
1540 (find_charset_in_text): Renamed from find_charset_in_str.
1541 Arguments and return value changed. Callers changed.
1542 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1543 be -1 if CHARSET is used only internally.
1544 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1545 eight-bit-graphic.
1546 (Fcharset_after): Simplified.
1547 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1548 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1549 (multibyte_chars_in_text): Simplified by assuming there's no
1550 invalid multibyte sequence.
1551 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1552 str_as_unibyte): New functions.
1553 (Fstring): Simpified by assuming that byte combining never
1554 happens.
1555 (init_charset_once): Initialization for
1556 LEADING_CODE_8_BIT_CONTROL.
1557 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1558 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1559 eight-bit-control and eight-bit-graphic.
1560
1561 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1562 CHARSET_8_BIT_GRAPHIC): New macros.
1563 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1564 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1565 (CHARSET_REVERSE_CHARSET): Likewise.
1566 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1567 eight-bit-graphic.
1568 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1569 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1570 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1571 encounter an invalid multibyte sequence.
1572 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1573 sequence is always valid.
1574 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1575 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1576 macros.
1577 (CHAR_STRING): For 8-bit characters, call char_to_string.
1578 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1579 multibyte sequence is always valid.
1580 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1581 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1582 str_as_unibyte): Extern them.
1583 (BCOPY_SHORT): Fix a bug.
1584 (CHAR_LEN): This macro deleted. Callers changed to use
1585 CHAR_BYTES.
1586 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1587 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1588 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1589
bd4bde7f 1590 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1591 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1592 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1593 EMIT_BYTES): New macros.
1594 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1595 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1596 macros deleted.
1597 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1598 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1599 check the validity of multibyte sequence.
1600 (decode_coding_emacs_mule): New function.
1601 (encode_coding_emacs_mule): New macro.
1602 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1603 the source.
1604 (DECODE_ISO_CHARACTER): Just return a character code.
1605 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1606 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1607 EMIT_CHAR to produced decoded characters. Exit the loop only by
1608 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1609 block here.
1610 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1611 only position codes for an invalid character.
1612 (encode_designation_at_bol): Return new destination pointer. 5th
1613 arg DSTP is changed to DST.
1614 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1615 from the source by ONE_MORE_CHAR. Don't handle the case of last
1616 block here.
1617 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1618 macros deleted.
1619 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1620 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1621 TWO_MORE_BYTES to fetch a byte from the source.
1622 (encode_eol): Pay attention to coding->src_multibyte.
1623 (detect_coding, detect_eol): Preserve members src_multibyte and
1624 dst_multibyte.
1625 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1626 (encoding_buffer_size): Set magnification to 3 for all coding
1627 systems that require encoding.
1628 (ccl_coding_driver): For decoding, be sure that the result is
1629 valid multibyte sequence.
1630 (decode_coding): Initialize coding->errors and coding->result.
1631 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1632 and raw-text, always call decode_eol. Handle the case of last
1633 block here. If not coding->dst_multibyte, convert the resulting
1634 sequence to unibyte.
1635 (encode_coding): Initialize coding->errors and coding->result.
1636 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1637 and raw-text, always call encode_eol. Handle the case of last
1638 block here.
1639 (shrink_decoding_region, shrink_encoding_region): Detect cases
1640 that we can't skip data more rigidly.
1641 (code_convert_region): Setup src_multibyte and dst_multibyte
1642 members of coding. For decoding, if the buffer is multibyte,
1643 convert the source sequence to unibyte in advance. For encoding,
1644 if the buffer is multibyte, convert the resulting sequence to
1645 multibyte afterward.
1646 (run_pre_post_conversion_on_str): New function.
1647 (code_convert_string): Deleted and divided into the following two.
1648 (decode_coding_string, encode_coding_string): New functions.
1649 (code_convert_string1, code_convert_string_norecord): Call one of
1650 above.
1651 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1652 MAKE_NON_ASCII_CHAR.
1653 (Fset_terminal_coding_system_internal,
1654 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1655 and dst_multibyte members.
1656 (init_coding_once): Initialize iso_code_class with new enum
1657 ISO_control_0 and ISO_control_1.
1658
1659 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1660 devided into ISO_control_0 and ISO_control_1.
1661 (struct coding_system): New members src_multibyte, dst_multibyte,
1662 errors, and result. Delete member fake_multibyte.
1663 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1664 nonzero.
1665 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1666 nonzero.
1667
1668 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1669 (Faset): Likewise.
1670
1671 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1672 multibyte form.
1673 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1674 combining occurs.
1675 (Ftranspose_region): Delete codes for handling byte combining.
1676
1677 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1678 dst_multibyte members of coding. On handling REPLACE on unibyte
1679 buffer, convert the result of decode_coding to unibyte. On
1680 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1681 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1682 multibyteness of the source (buffer or string).
1683
1684 * fns.c (concat): Handle 8-bit characters correctly.
1685 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1686 unibyte in the result.
1687 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1688 valid multibyte form in the result.
1689 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1690 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1691 return -1, signal an error.
1692 (base64_encode_1): New arg MULTIBYTE. Get each character by
1693 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1694 character is found, return -1.
1695 (Fbase64_decode_region): Delete codes for handling byte-combining.
1696 Treat each decoded byte as a unibyte character.
1697 (Fbase64_decode_string): Return unibyte string.
1698 (Fcompare_strings, concat, string_byte_to_char): Use
1699 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1700 FETCH_STRING_CHAR_ADVANCE.
1701 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1702 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1703
1704 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1705 SPLIT_NON_ASCII_CHAR.
1706 (fontset_ref_via_base, fontset_set): Likewise
1707
1708 * insdel.c (adjust_markers_for_record_delete): Deleted.
1709 (adjust_markers_for_insert): Argument changed. Caller changed.
1710 (adjust_markers_for_replace): Likewise.
1711 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1712 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1713 (copy_text): Delete unused local varialbe c_save. For converting
1714 to multibyte, be sure to make all 8-bit characters in valid
1715 multibyte form.
1716 (count_size_as_multibyte): Handle 8-bit characters correctly.
1717 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1718 adjust_after_replace, replace_range, del_range_2)
1719 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1720 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1721 adjust_after_replace, replace_range, del_range_2) Delete codes for
1722 handling byte combining.
1723 (adjust_before_replace): Deleted.
427ec082 1724
c9671f81
KH
1725 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1726 SPLIT_NON_ASCII_CHAR.
1727 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1728 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1729 unconditionally.
1730 (Fkey_description): Likewise.
1731
1732 * lread.c (read1): On reading multibyte string, be sure to make
1733 all 8-bit chararacters in valid multibyte form.
1734 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1735
1736 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1737 unconditionally.
1738
1739 * process.c (Fstart_process): GCPRO current_dir before calling
1740 Ffind_operation_coding_system. Encode arguments here.
1741 (create_process): Don't encode arguments here. Setup
1742 src_multibyte and dst_multibyte members of struct coding.
1743 (read_process_output): Setup src_multibyte and dst_multibyte
1744 members of struct coding. If the output is to multibyte buffer,
1745 always decode the output of the process. Adjust the
1746 representation of 8-bit characters to the multibyteness of the
1747 output.
1748 (send_process): Setup coding->src_multibyte according to the
1749 multibyteness of the source.
1750
1751 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1752 unconditionally.
1753 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1754 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1755
1756 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1757 CHAR_LEN.
1758
1759 * w16select.c (Fw16_set_clipboard_data): Setup members
1760 src_multibyte and dst_multibyte of coding. Adjusted for the
1761 change for find_charset_in_str.
1762 (Fw16_get_clipboard_data): Likewise.
1763
1764 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1765 dst_multibyte of coding.
1766 (x_to_w32_font): Likewise.
1767
1768 * w32select.c (Fw32_set_clipboard_data): Setup members
1769 src_multibyte and dst_multibyte of coding. Adjusted for the
1770 change for find_charset_in_str.
1771 (Fw32_get_clipboard_data): Likewise.
1772
1773 * xdisp.c (get_next_display_element): Handle 8-bit characters
1774 correctly.
1775 (next_element_from_display_vector): Use CHAR_BYTES instead of
1776 CHAR_LEN.
1777 (disp_char_vector): Use SPLIT_CHAR instead of
1778 SPLIT_NON_ASCII_CHAR.
1779
1780 * xselect.c (selection_data_to_lisp_data): Setup members
1781 src_multibyte and dst_multibyte of coding. Adjusted for the
1782 change for find_charset_in_str.
1783 (lisp_data_to_selection_data): Likewise.
1784
5f64c9e0
GM
17852000-05-19 Gerd Moellmann <gerd@gnu.org>
1786
2b63d473
GM
1787 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1788 buffer.
1789
5f64c9e0
GM
1790 * dispextern.h (Vimage_types): Add extern declaration.
1791
1792 * xdisp.c (Vimage_types): Moved here from xfns.c.
1793 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1794
1795 * xfns.c (Vimages_types): Moved to xdisp.c.
1796 (syms_of_xfns): Move `image-types' to xdisp.c.
1797
1798 * w32fns.c (Vimage_types): Removed.
1799 (syms_of_w32fns): Remove `image-types'.
1800
813086ea
KH
18012000-05-18 Kenichi Handa <handa@etl.go.jp>
1802
1803 * fns.c (map_char_table): Pay attention to character number of
1804 charset. Check the validity of charset at the first level. For
1805 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1806 the default value.
1807
1808 * fontset.c: Include "buffer.h".
1809 (fs_load_font): If the face has fontset, record the face ID in
1810 that fontset.
1811 (Finternal_char_font): New function.
1812 (accumulate_font_info): New function.
1813 (Ffontset_info): Rewritten for the new fontset implementation.
1814 (syms_of_fontset): Register Vdefault_fontset in the first element
1815 of Vfontset_table. Include Vdefault_fontset in
1816 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1817 function.
1818
bdaebbf0
DL
18192000-05-16 Dave Love <fx@gnu.org>
1820
1821 * m/iris5d.h: Deleted -- unused.
1822
cb613bb8
GM
18232000-05-16 Gerd Moellmann <gerd@gnu.org>
1824
b15f3b77
GM
1825 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1826 `invalid' instead of `illegal'.
1827
1828 * indent.c (Fmove_to_column): When ending within a tab, insert
1829 spaces first so that markers at the end of the tab get adjusted.
1830
835c1b36
GM
1831 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1832 buffer list that wasn't selected in that frame.
1833
cb613bb8
GM
1834 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1835 is needed on mescaline, use a 2 char prefix, and call
1836 make_temp_name with second arg non-zero.
1837
1838 * fileio.c (make_temp_name): New function, extracted from
1839 Fmake_temp_name.
1840 (Fmake_temp_name): Use it.
1841
f685bea9
EZ
18422000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1843
1844 * window.c (coordinates_in_window): Subtract 1 when computing
1845 right_x.
1846
a1b8d58b
GM
18472000-05-15 Gerd Moellmann <gerd@gnu.org>
1848
1849 * Makefile.in (lisp): Add env.elc.
1850
1851 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1852
a265079f
GM
18532000-05-12 Gerd Moellmann <gerd@gnu.org>
1854
1855 * search.c (Freplace_match): Handle case of `\N' in the
1856 replacement when there's no group N.
1857
da4496b6
GM
18582000-05-11 Gerd Moellmann <gerd@gnu.org>
1859
0ace421a
GM
1860 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1861 of the message to message_dolog.
1862
1172eb8d
GM
1863 * keyboard.c (read_char): Don't clear current message for help
1864 events; let the code handling help events handle this. Change
1865 code detecting help events that should be ignored.
1866
da4496b6
GM
1867 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1868 we're interating over a string.
1869
0623e40f
DL
18702000-05-09 Dave Love <fx@gnu.org>
1871
1872 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1873 that offset before writing. Move gcpro region past call of
1874 Ffile_regular_p.
1875
bae2503b
DL
18762000-05-04 Dave Love <fx@gnu.org>
1877
1878 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1879
ec82fb2f
GM
18802000-05-04 Gerd Moellmann <gerd@gnu.org>
1881
1882 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1883 of inserted characters when BUF equals the current buffer, and PT
1884 is in front of or equal to FROM.
1885
cbf18892
GM
18862000-05-03 Gerd Moellmann <gerd@gnu.org>
1887
4ff40dd0
GM
1888 * xdisp.c (handle_single_display_prop): If display property value
1889 is invalid, or something not supported on the frame, restore
1890 iterator's position to what it was initially. Make sure to return
1891 0 for invalid and unsupported property values.
1892
cbf18892
GM
1893 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1894 that x_per_char_metric returns null.
1895
1b0672c3
GM
18962000-05-02 Gerd Moellmann <gerd@gnu.org>
1897
576da55d
GM
1898 * xterm.h (struct face): Add forward declaration.
1899 (struct image): Ditto.
1900 (image_ascent): Add prototype.
1901
1902 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1903 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1904 image_ascent instead of using IMAGE_ASCENT.
1905
1906 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1907 (IMAGE_ASCENT): Removed.
1908
1909 * xfns.c (Qcenter): New variable.
1910 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1911 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1912 (image_ascent): New function.
1913 (lookup_image): Recognize `:ascent center'.
1914 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1915 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1916 (xbm_load): Don't set image's ascent here.
1917 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1918 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1919 check ascent values here.
1920 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1921 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1922 (syms_of_xfns): Initialize Qcenter.
1923
1b0672c3
GM
1924 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1925 to the limits, increase the limits.
1926
0d7811ed
KH
19272000-05-01 Kenichi Handa <handa@etl.go.jp>
1928
1929 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1930 Check Vfont_encoding_alist against the full name of the opened
1931 font.
1932
a943a5ca
GM
19332000-04-28 Gerd Moellmann <gerd@gnu.org>
1934
1935 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1936 taller than the window.
1937
5dba1e29
KH
19382000-04-28 Kenichi Handa <handa@etl.go.jp>
1939
1940 * xfaces.c (realize_x_face): Fix the argument of the second
1941 xassert. BASE_FACE may not be a face for ASCII.
1942
353964e3
GM
19432000-04-27 Gerd Moellmann <gerd@gnu.org>
1944
c76e04a8
GM
1945 * print.c (print_object): Treat print-length < 0 as nil.
1946
1947 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1948
1949 * s/freebsd.h (TERMCAP_OBJ): Removed.
1950 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1951
1952 * lread.c (read1): Don't treat period followed by certain
1953 characters as symbol start.
1954
1955 * xfns.c (slurp_file): New function.
1956 (xbm_image_p): Handle case of in-memory XBM files.
1957 (xbm_scan): Rewritten to work on memory buffers instead of files.
1958 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1959 Work on memory buffers instead of files. If DATA is null test
1960 if buffer looks like an in-memory XBM file.
1961 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1962 memory buffers instead of files.
1963 (xbm_file_p): New function.
1964 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1965
353964e3
GM
1966 * lread.c (end_of_file_error): New function.
1967 (read1): Call it instead of signaling `end-of-file' directly.
1968
427ec082 1969 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1970 with Fprinc instead of Fprin1.
1971
24d744ac
KR
19722000-04-26 Ken Raeburn <raeburn@gnu.org>
1973
1974 * window.c (freeze_window_start): Check that minibuffer scroll
1975 window isn't nil before extracting the window structure pointer
1976 from it.
1977
1978 * undo.c (record_delete): If we hit the end of the undo list, stop
1979 picking elements apart.
1980
7464346d
GM
19812000-04-26 Gerd Moellmann <gerd@gnu.org>
1982
1983 * xdisp.c (display_line): If lines are continued, restore
1984 iterator's ascent/descent information to the values before the
1985 first glyph not fitting on the line.
1986
612839b6
GM
19872000-04-25 Gerd Moellmann <gerd@gnu.org>
1988
1989 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1990 positions in glyph matrix. Don't compute new window end
1991 positions.
1992
1993 * dispnew.c (increment_matrix_positions): Renamed from
1994 increment_glyph_matrix_buffer_positions.
1995 (increment_row_positions): Renamed from
1996 increment_glyph_row_buffer_positions.
1997
1998 * dispextern.h: Change names of renamed functions from dispnew.c
1999 in prototypes.
2000
cc181e95
GM
20012000-04-24 Gerd Moellmann <gerd@gnu.org>
2002
abfcc168
GM
2003 * fileio.c (Fdo_auto_save): Create directories for auto-save
2004 list file if necessary.
2005
cc181e95
GM
2006 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2007 from buffer or frame.
2008 (automatic_hscrolling_p): New variable.
2009 (hscroll_windows): Scroll windows horizontally only if automatic
2010 hscrolling is allowed.
2011 (syms_of_xdisp): New variable `automatic-hscrolling'.
2012
2013 * frame.h (struct frame): Add member extra_line_spacing.
2014
2015 * xfns.c (x_set_line_spacing): New function.
2016 (Fx_create_frame): Set line spacing from resources.
2017 (Qline_spacing): New variable.
2018 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2019
cc181e95
GM
2020 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2021
2022 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2023 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2024 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2025 extra_line_spacing from default value.
2026 (init_buffer_once): Initialize default value of extra_line_spacing.
2027
2028 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2029 and extra3.
2030
2031 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2032 prompt_width. Add extra line spacing.
2033
2034 * term.c (produce_glyphs): Remove reference to struct it's
2035 prompt_width.
2036
2037 * dispextern.h (struct it): Remove member prompt_width, add
2038 extra_line_spacing.
2039
58827478
GM
20402000-04-22 Gerd Moellmann <gerd@gnu.org>
2041
2042 * dispnew.c (update_frame_line): When writing a whole line, make
2043 sure cursor is in the right row afterwards, otherwise a use of
2044 capability `ch' in cmgoto might leave the cursor in the row below.
2045
25a87f42
GM
20462000-04-21 Gerd Moellmann <gerd@gnu.org>
2047
2048 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2049
2050 * keyboard.c (timer_check): Fix typo in comment.
2051
54edf5c2
KH
20522000-04-21 Kenichi Handa <handa@etl.go.jp>
2053
2054 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2055 name change: ch -> character.
2056
3a64eef5
GM
20572000-04-20 Gerd Moellmann <gerd@gnu.org>
2058
2059 * keyboard.c (echo_message_buffer): New variable.
2060 (echo_now): Set echo_message_buffer to the echo area buffer used
2061 to display the echo.
2062 (cancel_echoing): Reset echo_message_buffer to nil.
2063 (read_char): Code rewritten that handles canceling an echo or
2064 echoing a dash, respectively.
2065
2066 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2067 directory doesn't exist.
2068
6142fdcb
DL
20692000-04-19 Dave Love <fx@gnu.org>
2070
2071 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2072 (concat): Don't allow numeric args.
2073 (Fconcat): Doc change.
6142fdcb 2074
ac6b5352
SM
20752000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2076
2077 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2078 instead define end_match(1|2) more carefully.
2079 Use GET_CHAR_BEFORE_2 for `begline'.
2080
cb9215e4
GM
20812000-04-19 Gerd Moellmann <gerd@gnu.org>
2082
5e3dac3f
GM
2083 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2084 on 64-bit systems where NULL is defined as `0'.
2085
2086 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2087 the `variable argument list' to make it work on Alpha.
2088
cb9215e4
GM
2089 * m/alpha.h (_LP64) [!_LP64]: Define.
2090 (ORDINARY_LINK): Define for NetBSD.
2091
2092 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2093
f532dca0
DL
20942000-04-19 Dave Love <fx@gnu.org>
2095
c750667e
DL
2096 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2097 change.
2098
2099 * Makefile.in (LIBS): Don't use.
2100 (GETLOADAVG_OBJ): Define again.
2101 (otherobj): Add GETLOADAVG_OBJ.
2102
f532dca0
DL
2103 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2104
1c7e22fd
GM
21052000-04-18 Gerd Moellmann <gerd@gnu.org>
2106
f6d3257b
GM
2107 * lread.c (read_filtered_event): Cancel and start busy cursor.
2108
427ec082 2109 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2110 that the per-character metrics may be null.
2111
e10f64e7
GM
21122000-04-17 Gerd Moellmann <gerd@gnu.org>
2113
0daee095
GM
2114 * buffer.c (clone_per_buffer_values): New function.
2115 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2116 clone_per_buffer_values if CLONE is not nil.
2117
e10f64e7
GM
2118 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2119
38687d43
DL
21202000-04-16 Dave Love <fx@gnu.org>
2121
2122 * Makefile.in: Remove obsolete localcpp stuff.
2123 (GETLOADAVG_OBJ): Don't define.
2124 (obj): Move LIBOBJS...
2125 (otherobj): ... to here.
2126 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2127 whitespace-only lines after the continuation (Irix).
2128
c21c7262
GM
21292000-04-14 Gerd Moellmann <gerd@gnu.org>
2130
2131 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2132
2133 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2134
314767c0
DL
21352000-04-14 Dave Love <fx@gnu.org>
2136
2137 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2138 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2139 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2140 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2141 NLIST_STRUCT.
2142
2143 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2144 autoconfiscated HAVE_GETLOADAVG.
2145
2146 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2147 BROKEN_MKTIME.
2148
a2522dca
GM
21492000-04-14 Gerd Moellmann <gerd@gnu.org>
2150
2151 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2152 (fill_in_lock_file_name): Avoid existing files that aren't
2153 links.
2154
33744b5d
DL
21552000-04-14 Dave Love <fx@gnu.org>
2156
c21c7262 2157 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2158 (INTERVAL_SRC): Convert to make variable.
2159 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2160 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2161 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2162 add LIBOBJS.
2163 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2164 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2165 (shortlisp): Add facemenu, float-sup, frame.
2166 (SOME_MACHINE_LISP): Remove them from here.
2167 (LIBES): Change unused LDLIBS to autoconf LIBS.
2168
2169 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2170
9d3d5916
KH
21712000-04-14 Kenichi Handa <handa@etl.go.jp>
2172
2173 * composite.c (update_compositions): If FROM and TO are not in a
2174 valid range, do nothing.
2175
198e3c7a
GM
21762000-04-13 Gerd Moellmann <gerd@gnu.org>
2177
2178 * tparam.c (tparam1): Abort when encountering an unknown
2179 `%'-specifier.
2180
2181 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2182 terminfo.o.
2183
2184 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2185 as TERMCAP_OBJ.
2186
055a28c9
EZ
21872000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2188
2189 * fileio.c (a_write): Remove redundant semi-colons.
2190 (e_write): Return -1 if failed to write all the data.
2191 This fixes the changes made at 1999-12-15.
2192
f5c75033
DL
21932000-04-12 Dave Love <fx@gnu.org>
2194
2195 * fns.c (mapcar1): Test for null vals to support mapc.
2196 (Fmapc): New function.
2197
0c3cfc51
EZ
21982000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2199
2200 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2201 (IT_frame_up_to_date): Support the buffer local value of
2202 cursor-type, if defined.
2203
33465a31
DL
22042000-04-10 Dave Love <fx@gnu.org>
2205
2206 * editfns.c (preceding-char, following-char): Doc fix.
2207
6ed56568
KR
22082000-04-10 Ken Raeburn <raeburn@gnu.org>
2209
2210 * Makefile.in (temacs): Revert 2000-03-12 change.
2211
7cf80d4e
JR
22122000-04-10 Jason Rumney <jasonr@gnu.org>
2213
2214 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2215
34f3f342
GM
22162000-04-10 Gerd Moellmann <gerd@gnu.org>
2217
1a1b1895
GM
2218 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2219 area buffer, if it's not set up yet.
2220
34f3f342
GM
2221 * indent.c (compute_motion): Set immediate_quit.
2222
be0dbdab
GM
22232000-04-09 Gerd Moellmann <gerd@gnu.org>
2224
c45be9ac
GM
2225 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2226 variable.
2227 (realize_tty_face): Suppress boldness if colors are the inverse of
2228 the default colors, and tty_suppress_bold_inverse_default_colors_p
2229 is set.
2230 (Ftty_suppress_bold_inverse_default_colors): New function.
2231 (syms_of_xfaces): Defsubr it.
2232
be0dbdab
GM
2233 * buffer.c (Frestore_buffer_modified_p): New function.
2234 (syms_of_buffer): Defsubr it.
2235
e8413c3b
KR
22362000-04-08 Ken Raeburn <raeburn@gnu.org>
2237
87f67317
KR
2238 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2239 charset id (int) argument, not a charset (Lisp_Object).
2240
e8413c3b
KR
2241 * coding.h (code_convert_string): Declare.
2242 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2243 object, as the fourth argument to code_convert_string.
2244
2245 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2246 value.
2247 (Fset_fontset_font): Use EQ to compare lisp objects.
2248
7c752c80
KR
22492000-04-05 Ken Raeburn <raeburn@gnu.org>
2250
c0333abc
KR
2251 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2252 a pointer that looks like a lisp object.
2253 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2254 zero, instead see whether it's an integer object, since they can't
2255 have intervals.
2256 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2257
7c752c80
KR
2258 * dispnew.c (allocate_matrices_for_frame_redisplay,
2259 direct_output_forward_char): Use X(U)INT and make_number as needed
2260 to convert between (unsigned) int values and lisp integers.
2261 * keyboard.c (read_key_sequence): Likewise.
2262 * lread.c (substitute_object_recurse): Likewise.
2263 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2264 * minibuf.c (do_completion, Fminibuffer_complete_word,
2265 Fminibuffer_completion_help): Likewise.
2266 * term.c (produce_special_glyphs): Likewise.
2267
2268 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2269 * print.c (print_preprocess, print_object): Likewise.
2270
2271 * search.c (compile_pattern): Use NILP when checking for nil.
2272
74e49b38
KR
2273 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2274 __OPTIMIZE__]: Provide a GNU C macro version that handles
2275 lisp-object unions.
2276 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2277 field, to better cope with ENABLE_CHECKING and calls that modify a
2278 Lisp_Object using its old value.
2279
685e5ed2
GM
22802000-04-04 Gerd Moellmann <gerd@gnu.org>
2281
c407c570
GM
2282 * window.c (compare_window_configurations): Signal an error
2283 if parameters C1 or C2 aren't window configurations.
2284
685e5ed2
GM
2285 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2286 AFTER_POTENTIAL_GC calls around calls to functions that can
2287 signal an error and thus invoke the debugger.
2288
587a49ab
GM
22892000-04-03 Gerd Moellmann <gerd@gnu.org>
2290
62f20204
GM
2291 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2292 an error if decoding fails.
2293
587a49ab
GM
2294 * keyboard.c (lispy_mouse_names): Variable removed.
2295 (Vlispy_mouse_stem): New variable.
2296 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2297 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2298 for any mouse button number. Increase size of mouse_syms and
2299 button_down_location as needed. Call modify_event_symbol with
2300 different arguments.
2301 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2302 Call modify_event_symbol with different arguments.
2303 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2304 for any button number. Call modify_event_symbol with different
2305 arguments.
2306 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2307 Accept a string for NAME_ALIST_OR_STEM.
2308
2309 * lisp.h (larger_vector): Add prototype.
2310
2311 * fns.c (larger_vector): Make externally visible.
2312
2313 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2314
2d1675e4
SM
23152000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2316
2317 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2318 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2319 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2320 we are between str1 and str2.
2321 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2322 (PATFETCH): Use `TRANSLATE'.
2323 (PATFETCH_RAW): Fetch multibyte char if applicable.
2324 (PATUNFETCH): Remove.
2325 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2326 When writing a char, write it directly into the pattern buffer rather
2327 than going needlessly through a temp char-array.
2328 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2329 multibyte magic and remove the useless `#ifdef emacs'.
2330 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2331 buffer.
2332
2333 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2334 conditional on `emacs'.
2335
2336 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2337
cc2d8c6b
KR
23382000-04-01 Ken Raeburn <raeburn@gnu.org>
2339
2340 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2341 non-union-type versions of XMARK and friends here, because XMARK
2342 and friends won't work on an integer field if NO_UNION_TYPE is not
2343 defined.
2344 (make_number): Define as a function if it's not defined as a
2345 macro.
2346
09654086
KR
2347 * composite.c (run_composite_function): Use NILP when checking for
2348 nil.
2349 (syms_of_composite): Delete local var NARGS, pass an int as first
2350 argument to Fmake_hash_table.
2351
2387b382
KR
2352 * editfns.c (text_property_stickiness): Use NILP to test
2353 Lisp_Object boolean value.
2354 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2355 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2356 problems reading from and changing the same lisp value in an
2357 XSETSTRING call.
2358
27660e89
GM
23592000-04-01 Gerd Moellmann <gerd@gnu.org>
2360
2361 * term.c (TN_no_color_video): New variable.
2362 (term_init): Intitialize TN_no_color_video.
2363 (enum no_color_bit): New enumeration.
2364 (MAY_USE_WITH_COLORS_P): New macro.
2365 (turn_on_face): Use it to determine if attributes may be used
2366 combined with colors.
2367
3578db3c
KR
23682000-04-01 Ken Raeburn <raeburn@gnu.org>
2369
2370 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2371 with int lvalues via casts; instead, just yield lisp object
2372 lvalues.
2373 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2374 proper accessor macros.
2375 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2376 (grow_mini_window): Fix typo getting int value of root->height.
2377
6fc556fd
KR
2378 * xdisp.c (compute_string_pos): Fix order of arguments to
2379 string_pos_nchars_ahead.
2380 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2381 count arg to variable-arg routines like Frun_hook_with_args and
2382 Fformat.
587a49ab
GM
2383 (back_to_previous_visible_line_start)
2384 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2385 fixed-arg routines like Fget_char_property and Fmake_string.
2386 (reconsider_clip_changes): Use XINT when comparing integer lisp
2387 objects, or passing them as int arguments.
587a49ab
GM
2388 (mark_window_display_accurate, insert_left_trunc_glyphs)
2389 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2390 storing or passing integer values as lisp objects.
2391 (set_cursor_from_row, highlight_trailing_whitespace): Use
2392 INTEGERP, not implicit test against zero, for glyph object.
2393 (try_window_id): Don't use make_number when we want an int value.
2394
2395 * xfaces.c (xlfd_symbolic_value): Make last argument a
2396 Lisp_Object, to be consistent with callers.
2397 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2398 (lface_hash): Apply XFASTINT to lisp values before folding in.
2399
2400 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2401 fill in window width and height. Pass an int, not a lisp object,
2402 as first arg to Finsert.
2403
6e7b2457
GM
24042000-04-01 Gerd Moellmann <gerd@gnu.org>
2405
610d841e
GM
2406 * xfaces.c (realize_basic_faces): Block input while realizing
2407 the faces.
2408
6e7b2457
GM
2409 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2410
2411 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2412
aa110c0c
GM
24132000-03-31 Gerd Moellmann <gerd@gnu.org>
2414
2415 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2416 or ASCII, handle case that per-char metric is null.
aa110c0c 2417
8801a864
KR
24182000-03-30 Ken Raeburn <raeburn@gnu.org>
2419
c6129d7e
KR
2420 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2421
8801a864
KR
2422 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2423 XSUBR, XBUFFER): Verify correct object type before returning
2424 pointer, using eassert.
2425 * frame.h (XFRAME): Likewise.
2426
2427 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2428 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2429 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2430 type.
2431 * data.c (set_internal): Likewise.
2432 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2433 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2434 * fileio.c (auto_save_1): Likewise.
2435 * insdel.c (check_markers): Likewise.
2436 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2437 * undo.c (record_insert): Likewise.
2438 * vmsproc.c (child_sig): Likewise.
2439 * window.c (unshow_buffer, window_loop): Likewise.
2440 * xterm.c (x_erase_phys_cursor): Likewise.
2441
8e7af858
GM
24422000-03-30 Gerd Moellmann <gerd@gnu.org>
2443
2444 * xfns.c (free_image_cache): Free the cache structure itself
2445 last, after all its members have been freed.
2446
2447 * lisp.h (xstrdup): Add prototype.
2448
2449 * alloc.c (xstrdup): Moved here from xfaces.c.
2450 (allocating_for_lisp): Variable removed.
2451 (lisp_malloc): Block input around the calls to malloc and
2452 mem_insert.
2453
2454 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2455 of Fsymbol_value.
2456 (xstrdup): Moved to alloc.c.
2457
e0b8c689
KR
24582000-03-29 Ken Raeburn <raeburn@gnu.org>
2459
b96f9fb7
KR
2460 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2461
2462 * emacs.c (main): Fix sense of no-loadup test.
2463
e0b8c689
KR
2464 * config.in (ENABLE_CHECKING): Undef.
2465
2466 * lisp.h (struct interval): Replace "parent" field with a union of
2467 interval pointer and Lisp_Object; add new bitfield to use as
2468 discriminant. Change other flag fields to bitfields.
2469 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2470 is defined and the supplied test fails, print a message and
2471 abort.
2472 (eassert): New macro. Use CHECK to provide an assert-like
2473 facility.
2474
2475 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2476 pointers; abort if the value looks like a lisp object.
2477 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2478 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2479 Modify for new interval parent definition.
2480
2481 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2482 UNMARK_BALANCE_INTERVALS): Update references that need an
2483 addressable lisp object in the interval structure.
2484 (die): New function.
2485 (suppress_checking): New variable.
2486
2487 * intervals.c (interval_start_pos): Just return 0 if there's no
2488 parent object.
2489
f83c5440
GM
24902000-03-29 Gerd Moellmann <gerd@gnu.org>
2491
2492 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2493 and earlier Emacs versions.
2494
2495 * keyboard.c (Ftop_level): Cancel busy-cursor.
2496
2497 * eval.c (call_debugger): Cancel busy-cursor.
2498
fdce64ff
KH
24992000-03-29 Kenichi Handa <handa@etl.go.jp>
2500
2501 * search.c (Freplace_match): Adjust multibyteness of the current
2502 buffer and NEWTEXT. Free allocated memory before signaling an
2503 error.
2504
f6a3f532
SM
25052000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2506
2507 * regex.c (analyse_first): New function obtained by ripping out most
2508 of re_compile_fastmap and generalizing it a little bit so that it
2509 can also just return whether a given (sub)pattern can match the empty
2510 string or not.
2511 (regex_compile): Use `analyse_first' to decide whether the loop-check
2512 needs to be done or not for *, +, *? and +? (the loop check is costly
2513 for non-greedy repetition).
2514 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2515
e9b309ac
DL
25162000-03-28 Dave Love <fx@gnu.org>
2517
bb15bd9a
DL
2518 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2519 alpha.
2520
e9b309ac
DL
2521 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2522
ed0767d8
SM
25232000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2524
2525 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2526 an expression.
2527 (enum re_opcode_t): Update description of succeed_n.
2528 (PATFETCH): Always define.
2529 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2530 operators, char classes, shy-groups and intervals).
2531 Optimize special cases of intervals so as to only use succeed_n and
2532 jump_n when really needed.
2533 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2534 that we don't have to handle the special cases any more.
2535 Simplify on_failure_jump handling as well.
2536
e11e7e46
JR
25372000-03-28 Jason Rumney <jasonr@gnu.org>
2538
2539 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2540
88faab89
GM
25412000-03-27 Gerd Moellmann <gerd@gnu.org>
2542
182ff242
GM
2543 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2544
2545 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2546
182ff242
GM
2547 * alloc.c (mark_maybe_object): New function.
2548 (mark_memory): Use it.
2549 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2550 (setjmp_tested_p, longjmp_done): New variables.
2551 (test_setjmp): New function.
2552 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2553 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2554
c1005d06
GM
2555 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2556 to DEC_TEXT_POS and INC_TEXT_POS.
2557
2558 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2559 with parameter MULTIBYTE_P.
2560
427ec082 2561 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2562 MULTIBYTE_P.
2563
7439e5b9 2564 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2565 buffers because it looks for multibyte character byte sequences
2566 which don't exist in unibyte text.
7439e5b9 2567
d9c545da
GM
2568 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2569
11fd416e 2570 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2571 [DEBUG_X_COLORS]: New functions.
2572 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2573
2574 * xfns.c (x_set_cursor_color): Get color reference counts right.
2575
2576 * xterm.c (x_copy_color): New function.
2577 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2578
2579 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2580 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2581 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2582 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2583 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2584 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2585 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2586 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2587 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2588 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2589
11fd416e
GM
2590 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2591 names for handling per-buffer variables.
d9c545da
GM
2592
2593 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2594 instead of MAX_BUFFER_LOCAL_VARS.
2595 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2596
2597 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2598
88faab89
GM
2599 * xfns.c (x_specified_cursor_type): New function.
2600 (x_set_cursor_type): Use it.
2601
2602 * buffer.h (struct buffer): Add cursor_type.
2603
d80f42b7
SM
26042000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2605
2606 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2607 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2608 opcode.
d80f42b7
SM
2609 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2610 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2611 executing it as well as when popping it off the stack to find infinite
2612 loops in non-greedy repetition operators.
2613
89e80928
GM
26142000-03-26 Gerd Moellmann <gerd@gnu.org>
2615
3d4ff2dd
GM
2616 * doc.c (Qfunction_documentation): New variable.
2617 (syms_of_doc): Initialize Qfunction_documentation.
2618 (Fdocumentation): If FUNCTION is a symbol with non-nil
2619 `function-documentation' property, return a documentation derived
2620 from that.
2621
bd96bd79
GM
2622 * buffer.c (syms_of_buffer): Add default-cursor-type.
2623 (init_buffer_once): Don't let cursor_type have a local value
2624 in every buffer.
2625
19d1bc27
GM
2626 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2627 on buffer-local value of cursor_type.
2628 (x_draw_bar_cursor): Add parameter WIDTH.
2629
2630 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2631 (init_buffer_once): Set default cursor_type value to t.
2632 Mark cursor_type as local everywhere.
2633 (syms_of_buffer): New per-buffer variable cursor-type.
2634
89e80928
GM
2635 * buffer.h (struct buffer): Remove member local_var_flags,
2636 add local_flags.
2637 (MAX_BUFFER_LOCAL_VARS): New macro.
2638 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2639 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2640 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2641 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2642
2643 * print.c (print_object): Use new macros for per-buffer
2644 variables.
2645
2646 * category.c (Fset_category_table): Use new macros for per-buffer
2647 variables.
2648
2649 * buffer.c (buffer_permanent_local_flags): Make a char array.
2650 (max_buffer_local_idx): New variable.
2651 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2652 for new handling of per-buffer variables.
2653 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2654 (init_buffer_once): Initialize per-buffer vars differently.
2655 Set max_buffer_local_idx.
2656
2657 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2658 variables.
2659
2660 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2661 variables.
2662
2663 * data.c (do_symval_forwarding, store_symval_forwarding)
2664 (find_symbol_value, set_internal, default_value, Fset_default)
2665 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2666 per-buffer variables.
2667
2668 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2669
9a0dd3dc
GM
26702000-03-24 Gerd Moellmann <gerd@gnu.org>
2671
b68c375f
GM
2672 * xterm.c (x_term_init): Unblock input around call1 of
2673 Qvendor_specific_keysyms.
2674
9a0dd3dc
GM
2675 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2676 (find_defun_start): Consider an open parenthesis in column 0
2677 a defun start only if open_paren_in_column_0_is_defun_start is set.
2678 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2679
7973e637
SM
26802000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2681
2682 * eval.c (Fautoload): Add entry in load-history (if after dump).
2683 * lread.c (load-history): Update docstring.
2684
39210e90
GM
26852000-03-24 Gerd Moellmann <gerd@gnu.org>
2686
2687 * indent.c (Fvertical_motion): Always use the current buffer.
2688 Temporarily change the window's buffer, if necessary.
2689
72db3ab5
GM
26902000-03-23 Gerd Moellmann <gerd@gnu.org>
2691
2692 * xterm.c (fast_find_position): Make sure not to consider rows
2693 not visible in the window.
2694
990b2375
SM
26952000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2696
2697 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2698 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2699
ff4df011
JR
27002000-03-22 Jason Rumney <jasonr@gnu.org>
2701
2702 * w32menu.c (single_submenu): Set help string to NULL if none.
2703 (w32_menu_show): Set help string correctly.
2704 (add-menu-item): Set help string in MIIM_DATA for menu item.
2705 Load SetMenuItemInfoA explicitly.
2706 (w32_menu_display_help): New function.
427ec082 2707
ff4df011
JR
2708 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2709 (QCdata): Moved to xdisp.c.
2710
2711 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2712 (Vw32_charset_to_codepage_alist): Removed.
2713 (Vw32_charset_info_alist): New variable.
2714 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2715 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2716 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2717 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2718 with TODO comment.
2719 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2720 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2721 Define Vw32_charset_info_alist and w32_charset symbols.
2722
27232000-03-22 Jason Rumney <jasonr@gnu.org>
2724
2725 * makefile.nt (w32bdf.obj): Update dependencies.
2726
2727 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2728
2729 * w32fns.c: Include fontset.h after dispextern.h.
2730 (Fx_create_frame): Do not create fontset.
2731 (w32_load_system_font): Doc fix.
2732 (Fx_close_connection): Free full_name if it is not shared.
2733
2734 * w32term.c: Include fontset.h after dispextern.h.
2735 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2736 updated.
2737 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2738 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2739 (w32_font_is_double_byte): New function, needs body.
2740 (x_append_glyph): Set glyph->glyph_not_available_p.
2741 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2742 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2743 character, convert it to a unibyte character.
2744 (struct glyph_string): Delete member `charset'.
2745 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2746 calculating it is found.
2747 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2748 the case that per char metric is not available correctly.
2749 (x_fill_glyph_string): Handle the case that the specific glyph is
2750 not available correctly.
2751 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2752 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2753 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2754 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2755 fontset. Don't call FS_LOAD_FONT.
2756
439d5cb4
KR
27572000-03-22 Ken Raeburn <raeburn@gnu.org>
2758
2759 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2760 (INT_LISPLIKE): New macro.
2761 (NULL_INTERVAL_P): Use it.
2762 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2763 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2764 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2765
2766 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2767 explicit references to "parent" field of struct interval and
2768 associated unclean type conversions.
2769 * intervals.c (create_root_interval, root_interval, rotate_right,
2770 rotate_left, balance_possible_root_interval, split_interval_right,
2771 split_interval_left, interval_start_pos, find_interval,
2772 next_interval, previous_interval, update_interval,
2773 adjust_intervals_for_insertion, delete_node, delete_interval,
2774 adjust_intervals_for_deletion, merge_interval_right,
2775 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2776 copy_intervals_to_string): Likewise.
2777 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2778 Likewise.
2779 * syntax.c (update_syntax_table): Likewise.
2780
2781 * intervals.c (reproduce_tree_obj): New function, like
2782 reproduce_tree but takes a Lisp_Object for the parent. Declare
2783 with prototype.
2784 (graft_intervals_into_buffer): Use it when appropriate.
2785 (reproduce_tree): Declare with prototype.
2786 (balance_possible_root_interval): Check that the parent is a lisp
2787 object before trying to examine its type.
2788
ee1c5b21
GM
27892000-03-22 Gerd Moellmann <gerd@gnu.org>
2790
2791 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2792 as strings only if both are known to be strings.
2793
2794 * s/openbsd.h (LIBS_TERMCAP): Undef.
2795
1fb352e0
SM
27962000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2797
2798 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2799 definitions for non-Emacs compilation.
2800 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2801 outside of `#ifdef emacs'.
2802 (print_partial_compiled_pattern): Update.
2803 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2804 (re_compile_fastmap): Merge handling of charset and charset_not (for
2805 emacs and non-emacs compilation as well).
2806 Similarly for (not)categoryspec and (not)syntaxspec.
2807 Don't use the fastmap when reaching `anychar' since the added
2808 complexity is not justified.
2809 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2810 and (not)syntaxspec. Merge (not)categoryspec.
2811
fdaa1f77
KH
28122000-03-22 Kenichi Handa <handa@etl.go.jp>
2813
ff1a0d8e
KH
2814 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2815 FACE_FOR_CHAR): Define them differently for the configuration of
2816 --without-x.
fdaa1f77 2817
d152fb46
DL
28182000-03-21 Dave Love <fx@gnu.org>
2819
2820 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2821 doc string.
2822
d2cafc8c
GM
28232000-03-21 Gerd Moellmann <gerd@gnu.org>
2824
2825 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2826 (lface_fully_specified_p): Don't check contents of
2827 LFACE_FONT_INDEX because that attribute is optional.
2828 (realize_x_face): Remove now unwarranted xassert.
2829
9111d4b5
KH
28302000-03-21 Kenichi HANDA <handa@etl.go.jp>
2831
2832 The following changes are to make font selection based on
2833 characters, not charset. In addition, they recover fontset
2834 facilities while utilizing the new font selection mechanism.
2835
6c4bfdc0
KH
2836 * Makefile.in (fontset.o): Depend on dispextern.h.
2837
2838 * alloc.c (mark_face_cache): Don't mark face->registry.
2839
9111d4b5
KH
2840 * dispextern.h (struct glyph): New member glyph_not_available_p.
2841 Use 22 bits for face_id.
2842 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2843 (struct face): Delete member registry, new member ascii_face.
2844 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2845 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2846 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2847 (struct it): Delete member charset, new member
2848 glyph_not_available_p.
2849
2850 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2851 (struct fontset_info, struct fontset_data): Structs removed.
2852 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2853 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2854 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2855 (fs_free_face_fontset, fontset_font_pattern,
2856 face_suitable_for_char_p, face_for_char,
2857 make_fontset_for_ascii_face): Extern them.
2858 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2859 (FS_LOAD_FACE_FONT): New macro.
2860
2861 * fontset.c: All codes rewritten or adjusted for the change of
2862 fontset implementation. Now fontset is represented by char table.
2863 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2864 removed.
2865 (my_strcasecmp): Function removed.
2866 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2867 variables.
2868 (AREF, ASIZE): New macros.
2869 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2870 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2871 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2872 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2873 fontset_id_valid_p, font_family_registry, fontset_name,
2874 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2875 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2876 New functions.
2877 (fs_load_font): New arg FACE. Caller changed.
2878 (fs_query_fontset): Argument changed. Caller changed.
2879 (Fquery_fontset): call fs_query_fontset.
2880 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2881 Functions removed.
2882 (clear_fontset_elements, check_registry_encoding,
2883 check_fontset_name): New functions.
2884 (syms_of_fontset): Set char-table-extra-slots property of fontset
2885 to 3. Staticpro and initialize Vfontset_table and
2886 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2887
2888 * frame.h (struct frame): Member `fontset_data' removed.
2889 (FRAME_FONTSET_DATA): Macro removed.
2890
2891 * frame.c (make_frame): Don't allocate f->fontset_data.
2892 (Fdelete_frame): Don't free f->fontset_data.
2893
6c4bfdc0
KH
2894 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2895
9111d4b5
KH
2896 * xdisp.c (charset_at_position): Function removed.
2897 (init_iterator): Don't set member charset of struct `it'.
2898 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2899 next_element_from_display_vector, insert_left_trunc_glyphs):
2900 Likewise.
2901 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2902 FACE_FOR_CHARSET.
2903 (get_next_display_element, append_space,
2904 extend_face_to_end_of_line): Likewise.
2905
2906 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2907 Variables removed.
2908 (clear_font_table, frame_update_line_height, load_face_font):
2909 Adjusted for the change of fontset implementation.
2910 (load_face_fontset_font): Function removed.
2911 (pixel_point_size): New function.
2912 (font_list): Argument type changed. Caller changed.
2913 (LFACE_FONT): New macro.
2914 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2915 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2916 Lisp_Object. Determine the font name by actually loading a font
2917 by the specified pattern. Set LFACE_FONT (lface) to the specified
2918 pattern. Even if a font is not found, don't try alternatives.
2919 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2920 (set_font_frame_param): If `font' is specified in lface, use it.
2921 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2922 (lface_same_font_attributes_p): Likewise.
2923 (make_realized_face): Arguent changed. Caller changed. Set
2924 face->ascii_face to face itself.
2925 (free_realized_face): Free face->fontset if face is for ASCII.
2926 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2927 deduce_unibyte_registry, x_charset_registry): Functions removed.
2928 (free_realized_multibyte_face): New function.
2929 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2930 changed. Caller changed.
2931 (try_font_list): Argument type changed.
2932 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2933 (choose_face_font): Argument changed. Handle fontset properly.
2934 (choose_face_fontset_font): Function removed.
2935 (realize_default_face, realize_named_face): Don't remove the
2936 former face here.
2937 (realize_face): Argument changed. Caller changed. Remove face
2938 with the arg former_face_id in advance. Load font for the new
2939 face.
2940 (realize_x_face): Argument changed. Caller changed. For a
2941 multibyte character, share fontset with base_face. For a single
2942 byte character, make a new realized fontset. Don't load a font
2943 here.
2944 (realize_tty_face): Argument changed. Caller changed.
2945 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2946 (face_at_buffer_position): Don't check multibyte_p for returning
2947 DEFAULT_FACE_ID.
2948 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2949 FACE_SUITABLE_FOR_CHARSET_P.
2950 (syms_of_xfaces): Remove code for Qx_charset_registry and
2951 Vface_default_registry.
2952
6c4bfdc0
KH
2953 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2954 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2955 (x_per_char_metric): Don't try FONT->default_char. Even if
2956 pcm->width is zero, glyph bits may exist.
2957 (x_encode_char): Always initialize char2b->byte1.
2958 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2959 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2960 changed.
2961 (x_append_glyph): Set glyph->glyph_not_available_p.
2962 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2963 it->charset. Handle the case that per char metric is not
2964 available. If it->multibyte_p is zero and it->c is a multibyte
2965 character, convert it to a unibyte character.
2966 (struct glyph_string): Delete member `charset'.
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
2977 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2978 (x_create_tip_frame): Likewise.
2979 (Fx_close_connection): Free full_name of font_info.
2980
2981 * fns.c (optimize_sub_char_table): New function.
2982 (Foptimize_char_table): New function.
2983 (syms_of_fns): Defsubr Soptimize_char_table.
2984
b33dd3b0
GM
29852000-03-20 Gerd Moellmann <gerd@gnu.org>
2986
2987 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2988 only if buffer is displayed in some window.
2989
2990 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2991 (try_window_reusing_current_matrix): Don't call scroll run
2992 function if run's current and desired position are the same;
2993 this prevents cursor flickering.
2994
4e8a9132
SM
29952000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2996
2997 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2998
2999 * regex.c (RE_STRING_CHAR): New macro.
3000 (GET_CHAR_AFER_2): Remove.
3001 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3002 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3003 (print_partial_compiled_pattern, re_compile_fastmap)
3004 (re_match_2_internal): Remove on_failure_jump_exclusive.
3005 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3006 optimization only need to work for * (ie. can use of_keep_string_jump).
3007 Remove the special case for .*\n since it is now covered by the general
3008 optimization.
3009 (re_search_2): Don't bother with `room'.
3010 (skip_one_char): New function.
3011 (skip_noops): Simplify since `memory' is not needed any more.
3012 (mutually_exclusive_p): Restructure slightly to use `switch' and
3013 add handling for "all" remaining cases.
3014 (re_match_2_internal): Change on_failure_jump_smart to use
3015 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3016 rather than on_failure_jump_exclusive.
3017
2136fdd4
GM
30182000-03-19 Gerd Moellmann <gerd@gnu.org>
3019
3020 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3021 number of bits per RGB because it's everywhere used as the depth
3022 of the visual.
3023
3024 * term.c (calculate_costs): Remove code dealing with X frames.
3025
e53ae11c
RS
30262000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3027
3028 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3029
d7b511c4
GM
30302000-03-18 Gerd Moellmann <gerd@gnu.org>
3031
3032 * lread.c (read_integer): Unread the last char not consumed.
3033
16b5d424
GM
30342000-03-17 Gerd Moellmann <gerd@gnu.org>
3035
3036 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3037 which are in the process of being deleted.
16b5d424 3038
1fa28578
GM
30392000-03-16 Gerd Moellmann <gerd@gnu.org>
3040
83488cce
GM
3041 * Makefile.in (mostlyclean): Add `*.core'.
3042 (clean): Add `bootstrap-emacs'.
3043
1fa28578
GM
3044 * lread.c (read_integer): New function.
3045 (read1): Support read syntax #o, #x, #b, #r.
3046
99633e97
SM
30472000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3048
1fa28578
GM
3049 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3050 make sure POINTER_TO_OFFSET gives the same value before and after
3051 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3052 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3053 (debug): Now only active if > 0 rather than if != 0.
3054 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3055 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3056 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3057 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3058 (store_op1, store_op2, insert_op1, insert_op2)
3059 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3060 (group_in_compile_stack): Move to after its arg's types are
3061 declared and add a prototype.
99633e97 3062 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3063 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3064 wrapper.
99633e97 3065 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3066 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3067 indentation of the greedy-op and shy-group code.
99633e97
SM
3068 (at_(beg|end)line_loc_p): Fix argument's types.
3069 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3070 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3071 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3072 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3073 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3074 QUIT unconditionally.
99633e97 3075
699238d9
GM
30762000-03-15 Gerd Moellmann <gerd@gnu.org>
3077
3078 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3079 a sole completion.
3080
3081 * process.c (send_process): Add a hint that the function
3082 can call Lisp code to its comment.
3083
3084 * lread.c (load_dangerous_libraries): New variable.
3085 (Vbytecomp_version_regexp): New variable.
3086 (safe_to_load_p): New function.
3087 (Fload): Handle files not compiled with Emacs specially.
3088 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3089
34e23e5a
GM
30902000-03-14 Gerd Moellmann <gerd@gnu.org>
3091
9c763cca
GM
3092 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3093
3094 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3095 support functions only if HAVE_X11R6_XIM is defined.
3096 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3097
3098 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3099
3100 * xfns.c (X_I18N_INHIBITED): Don't define.
3101 (create_frame_xic): Remove conditional compilation on
3102 X_I18N_INHIBITED.
3103 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3104
3105 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3106 (HAVE_X11R6_XIM): Define.
3107
3108 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3109
34e23e5a
GM
3110 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3111 If set, call XSynchronize.
3112
66f0296e
SM
31132000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3114
34e23e5a
GM
3115 * regex.c: Declare a new type `re_char' used throughout the code
3116 for the string char type. It's `const unsigned char' to match the
3117 rest of Emacs. Consistently make sure all pointers to strings use
3118 it and make sure all pointers into the pattern use `unsigned
3119 char'.
66f0296e 3120 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3121 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3122 code duplication.
66f0296e
SM
3123
3124 * charset.h (GET_CHAR_AFTER_2): Remove.
3125 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3126
854a025c
KR
31272000-03-12 Ken Raeburn <raeburn@gnu.org>
3128
3129 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3130 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3131 of them try to use backquotes.
3132
b9d2c7e2
DL
31332000-03-12 Dave Love <fx@gnu.org>
3134
3135 * unexelf.c: Restore changes of 1999-10-19.
3136 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3137 fix its type and alignment; copy it from current process.
3138
5e5dff44
GM
31392000-03-12 Gerd Moellmann <gerd@gnu.org>
3140
9b2f3c38
GM
3141 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3142 has been found. Fix bug not computing timer's predecessor.
3143
427ec082 3144 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3145 file name.
3146
e1cff360
GM
3147 * window.c (Fsave_window_excursion): Doc fix.
3148
5e5dff44
GM
3149 * xfns.c (x_defined_color): Rewritten to use
3150 x_allocate_nearest_color.
3151
e411ce4b
EZ
31522000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3153
3154 * msdos.c (vga_installed): New function, code moved from
3155 dos_set_window_size.
3156 (Qbar, Qcursor_type, outside_cursor): New variables.
3157 (syms_of_msdos): Intern and staticpro them.
3158 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3159 shape used outside Emacs when called for the first time.
3160 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3161 cursor shape used outside Emacs.
3162 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3163 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3164 type has changed.
3165 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3166 parameters specify the cursor. Make qreverse a global
3167 variable (renamed to Qreverse).
3168
80460654
GM
31692000-03-09 Gerd Moellmann <gerd@gnu.org>
3170
3171 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3172
95cd4c40
SM
31732000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3174
3175 This is a big redesign of failure-stack and register handling, prompted
3176 by bugs revealed when trying to add shy-groups. Overall, what happened
3177 is that loops are now structured a little differently, groups can be
3178 shy and the code is a little simpler.
3179
3180 * regex.h: Update the copyright.
3181 (RE_SHY_GROUPS): New value.
3182 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3183 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3184
80460654
GM
3185 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3186 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3187 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3188 for (start|stop)_memory since they now only take one argument (the
3189 second has becomes unnecessary).
3190 (print_partial_compiled_pattern): Adjust for changes in
3191 re_opcode_t.
3192 (print_compiled_pattern): Use %ld to printf long ints and flush to
3193 make debugging a little easier.
95cd4c40
SM
3194 (union fail_stack_elt): Make the integer unsigned.
3195 (struct fail_stack_type): Add a `frame' element.
3196 (INIT_FAIL_STACK): Init `frame' as well.
3197 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3198 (DEBUG_PUSH, DEBUG_POP): Remove.
3199 (NUM_REG_ITEMS): Remove.
3200 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3201 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3202 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3203 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3204 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3205 macros.
3206 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3207 address pushed is not the destination of the jump but the source
3208 of it instead.
95cd4c40
SM
3209 (NUM_FAILURE_ITEMS): Remove.
3210 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3211 registers before the actual failure point). Don't hardcode any
3212 meaning for str==NULL anymore.
95cd4c40 3213 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3214 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3215 Remove.
95cd4c40
SM
3216 (REG_UNSET_VALUE): Use NULL (why not?).
3217 (compile_range): Remove declaration since it doesn't exist.
3218 (struct compile_stack_elt_t): Remove inner_group_offset.
3219 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3220 (regex_grow_registers): Remove dead code.
3221 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3222 (regex_compile): Add shy-groups Change loops to use
3223 on_failure_jump_smart&jump instead of
3224 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3225 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3226 variable to me). Use `jump' instead of `jump_past_alt' and don't
3227 bother with push_dummy_failure in alternatives since it is now
3228 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3229 emacs' for (re)allocating the stack.
3230 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3231 from loop when bufp->can_be_null rather than jumping to `done'.
3232 Avoid jumping backwards so as to ensure termination. Use
3233 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3234 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3235 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3236 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3237 improve mutually_exclusive_p to handle ".+\n".
3238 (lowest_active_reg, highest_active_reg,
3239 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3240 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3241 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3242 variables. Push register (in `start_memory') on the stack rather
3243 than storing it in old_reg(start|end). Remove the cycle detection
3244 from `stop_memory', replaced by the use of on_failure_jump_loop
3245 for greedy loops. Add code for the new on_failure_jump_<foo>.
3246 Remove ad-hoc code in `on_failure_jump' to push more registers in
3247 the case of a loop. Take out code from `maybe_pop_jump' into
3248 separate functions and adapt it to the semantics of
3249 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3250 and push_dummy_failure. Remove dummy_failure handling and
3251 handling of `failures to jump to on_failure_jump' (this last one
3252 was already dead code, it seems).
3253 (group_match_null_string_p, alt_match_null_string_p)
3254 (common_op_match_null_string_p): Remove.
95cd4c40 3255
7397acc4
DL
32562000-03-08 Dave Love <fx@gnu.org>
3257
3258 * config.in: Don't depend on __STDC__ for volatile.
3259 Add POINTER_TYPE, PTR, PROTOTYPES.
3260
3261 * hftctl.c, strftime.c: Use PROTOTYPES.
3262 * eval.c (find_handler_clause): Likewise.
3263
3264 * mem-limits.h: Use POINTER_TYPE.
3265
3266 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3267 (memory_warnings): Declare using POINTER_TYPE.
3268
5e91ff9e
GM
32692000-03-08 Gerd Moellmann <gerd@gnu.org>
3270
feab4fba
GM
3271 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3272
25edb08f
GM
3273 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3274 collection.
3275
5e91ff9e
GM
3276 * xfns.c: Remove obsolete code in #if 0.
3277 (Fx_focus_frame): New function.
3278
a735b7e1
KH
32792000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3280
3281 * coding.c (coding_category_name): Add coding-category-utf-8,
3282 coding-category-utf-16-be, coding-category-utf-16-le.
3283 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3284 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3285 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3286 (detect_coding_utf_8): New function.
3287 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3288 UTF_16_LOW_SURROGATE_P): New macros.
3289 (detect_coding_utf_16): New function
3290 (detect_coding_mask): When priorities are specified, skip any
3291 categories that have `nil' coding-system. Fix bug of returning
3292 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3293 returns a mask not set in PRIORITIES.
3294 (detect_eol_type_in_2_octet_form): New function.
3295 (detect_eol): selects detect_eol_type_XXX to call according to
3296 cooding->category_idx.
3297 (detect_coding_system): Remove `nil' coding-system in the result.
3298 (Fupdate_coding_systems_internal): Update all coding-categories.
3299
3300 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3301 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3302 macros.
3303 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3304 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3305 CODING_CATEGORY_IDX_UTF_16_LE.
3306 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3307 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3308 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3309 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3310
9994cc69
GM
33112000-03-07 Gerd Moellmann <gerd@gnu.org>
3312
e9b4e5ff
GM
3313 * doc.c (Fdocumentation_property): If value is not a string,
3314 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3315
f7daf1e1
GM
3316 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3317 close the display with XtCloseDisplay. This caused a bus error
3318 on OpenWindows.
3319
9994cc69
GM
3320 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3321 complete but not unique.
3322
4336c705
GM
33232000-03-06 Gerd Moellmann <gerd@gnu.org>
3324
18bb0684
GM
3325 * process.c (send_process): Remove local variable `procname' that
3326 might become invalid when a GC happens. Instead, access the
3327 process name slot directly.
3328
4336c705
GM
3329 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3330 orig_height if set.
3331
3332 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3333 orig_height if set.
3334
515d0d0e
EZ
33352000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3336
3337 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3338 glyph matrices have been freed.
3339
100b3cbb
GM
33402000-03-05 Gerd Moellmann <gerd@gnu.org>
3341
50df5e5a 3342 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3343 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3344
3345 * xfns.c (QCdata): Moved to xdisp.c.
3346
3347 * xdisp.c (QCdata): Moved here from xfns.c.
3348 (syms_of_xdisp): Initialize QCdata.
3349
3350 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3351
3352 * window.c (coordinates_in_window): Use
3353 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3354 FRAME_INTERNAL_BORDER_WIDTH.
3355
100b3cbb 3356 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3357 it is obviously invalid.
100b3cbb
GM
3358
3359 * xterm.c (x_term_init): Create a colormap if not using the
3360 default visual.
3361
3362 * xterm.h (select_visual): Change prototype.
3363
3364 * xfns.c (select_visual): Rewritten. Recognize user-specified
3365 visual classes.
3366 (visual_classes): New variable.
3367
64d739c4
GM
33682000-03-04 Gerd Moellmann <gerd@gnu.org>
3369
3370 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3371 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3372 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3373 (x_decode_color): Don't handle allocation of white and black
3374 specially.
3375 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3376 XtNcolormap resources.
3377 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3378 (Fx_create_frame): Initialize color members of x_output structure.
3379 (xpm_load): Pass colormap to XPM lib.
3380
3381 * xfaces.c (x_free_colors): Access colormap of frame using
3382 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3383 when default colormap is used.
3384
3385 * xterm.c (x_term_init): Set Colormap member of x_display_info
3386 structure. Copy colormap if resource `privateColormap' is
3387 specified (PseudoColor only).
3388 (x_setup_relief_color): Access colormap of frame using
3389 FRAME_X_COLORMAP.
3390
3391 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3392 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3393
c3cee013
JR
33942000-03-04 Jason Rumney <jasonr@gnu.org>
3395
3396 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3397 other non-platform-specific equivalents.
64d739c4 3398 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3399 specific functions and macros as their w32 equivalents where
3400 non-platform-specifics are not available.
3401 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3402 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3403 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3404 (frame_update_line_height): Use macros to access f->output_data.
3405 (defined_color): Remove FIXME comments; fixed.
3406 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3407 into #ifdef blocks. Add WINDOWSNT blocks.
3408 (Fx_list_fonts): Use macros for accessing font data.
3409 (set_lface_from_font_name): Different default fonts for X and
3410 WINDOWSNT.
3411 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3412 scalable for backward compatibility.
64d739c4 3413 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3414 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3415
64d739c4 3416 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3417 syms_of_w32faces.
3418
3419 * makefile.nt (w32faces.obj): Remove.
3420 (xfaces.obj): Add.
3421
807cc41c
JR
34222000-03-03 Jason Rumney <jasonr@gnu.org>
3423
3424 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3425 correct parameters.
3426
0007072a
KR
34272000-03-03 Ken Raeburn <raeburn@gnu.org>
3428
3429 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3430 standard ELF definitions here if the system header does not.
3431
71a6ba55
GM
34322000-03-03 Gerd Moellmann <gerd@gnu.org>
3433
3434 * xterm.c (PER_CHAR_METRIC): Removed.
3435 (x_per_char_metric_1, x_default_char): New functions.
3436 (x_per_char_metric): If font's default char is invalid, return
3437 metrics of a suitably chosen usable default char.
3438 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3439 char, replace occurrences of unprintable chars with a suitably
3440 chosen usable default char.
71a6ba55 3441
900fa1f1
GM
34422000-03-02 Gerd Moellmann <gerd@gnu.org>
3443
42f55fe0
GM
3444 * xterm.c (note_mouse_highlight): Return quickly if frame's
3445 glyph matrices have been freed.
3446
3447 * dispnew.c (free_glyphs): Block input while freeing matrices.
3448
900fa1f1
GM
3449 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3450
3451 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3452 x_free_colors.
3453
3454 * dispextern.h (x_free_colors): Add prototype.
3455
3456 * xfaces.c (x_free_colors): New function.
3457 (unload_color, free_face_colors): Use it.
3458
2f950292
EZ
34592000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3460
3461 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3462
3463 * window.c [MSDOS]: Include msdos.h.
3464
54d04320
DL
34652000-03-02 Dave Love <fx@gnu.org>
3466
3467 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3468
3469 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3470 set C_OPTIMIZE_SWITCH for gcc.
3471
0ba93ac4
KH
34722000-03-02 Kenichi Handa <handa@etl.go.jp>
3473
3474 * coding.c (coding_save_composition): Be sure to allocate
3475 composition data area in coding even if there's no composition in
3476 the current run.
3477
a2bc11d4
JR
34782000-03-01 Jason Rumney <jasonr@gnu.org>
3479
3480 * w32term.c: Equivalent changes to those made to xterm.c on
3481 2000-02-25 and 2000-02-24.
3482
3483 * w32fns.c: Equivalent changes to those made to xfns.c on
3484 2000-02-25 and 2000-02-21.
3485
3486 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3487 correct line-end convention is followed.
3488
3489 * w32menu.c [HAVE_BOXES]: Remove #undef.
3490 (single_keymap_panes): Remove code for simulating checkmarks.
3491 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3492 Remove code for drawing simulated checkmarks.
3493 (w32_menu_show): make unibyte help string correctly.
3494 (add_menu_item): draw standard Windows checkmarks. Draw radio
3495 buttons as radio buttons if possible.
3496
72d19d75
GM
34972000-03-01 Gerd Moellmann <gerd@gnu.org>
3498
2df636f4
GM
3499 * sysdep.c (start_of_text): Don't define this function for NetBSD
3500 with ELF.
3501
427ec082 3502 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3503 Don't define.
3504 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3505 (LINKER): Don't undef if __NetBSD__ is defined.
3506
3507 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3508
3509 * fileio.c [__NetBSD__]: Define `unix'.
3510
72d19d75
GM
3511 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3512
ed4d0512
GM
35132000-02-29 Gerd Moellmann <gerd@gnu.org>
3514
50b1039f
GM
3515 * atimer.c (start_atimer): Don't abort when timers are stopped.
3516 (append_atimer_lists): New function.
3517 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3518 arbitrary lists of stopped and running atimers.
3519
ed4d0512
GM
3520 * atimer.c (cancel_atimer): Handle canceling an atimer when
3521 some timers are stopped.
3522
3523 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3524 after canceling it.
3525
3526 * fns.c (maybe_resize_hash_table): Handle case of new size
3527 coming out as being the same as old size.
3528
387023ee
JR
35292000-02-27 Jason Rumney <jasonr@gnu.org>
3530
3531 * makefile.nt: Add atimer.h to dependencies.
3532 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3533 * w32console.c: Only disable window system features for dispextern.h
3534 (initialize_w32_display): Build a display info for the console.
3535 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3536 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3537 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3538 as 2 button mice.
3539 * w32gui.h (struct W32FontStruct): Revert last change after change
3540 to xdisp.c.
3541 * w32menu.c (single_submenu): Set up help string.
3542 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3543 (w32_dialog_show): Set up help string.
3544 * w32term.c (w32_display_info_for_display): Remove unused function.
3545 (w32_draw_bitmap): Use pre-built bitmaps.
3546 (w32_initialize_display_info): New function to initialize parts of
3547 display info that are common to both GUI and console frames.
3548 (w32_term_init): Use w32_initialize_display_info. Do not set
3549 Vw32_num_mouse_buttons here, as it is not called for console
3550 frames. Build bitmaps for indicating truncated lines etc.
3551 (x_delete_display): Destroy pre-built bitmaps.
3552 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3553 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3554
4516715a
DL
35552000-02-27 Dave Love <fx@gnu.org>
3556
3557 * lisp.h: Add a bunch of prototypes.
3558
171ca836
KH
35592000-02-26 Kenichi Handa <handa@etl.go.jp>
3560
3561 * keyboard.c (read_char): Set `usec' correctly.
3562
4013921d
KH
35632000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3564
3565 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3566 `lambda', set reg[RRR] to the map index.
3567 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3568 reg[RRR] to 0. Otherwise, set it to -1.
3569
9244a058
GM
35702000-02-25 Gerd Moellmann <gerd@gnu.org>
3571
2df636f4 3572 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3573
f43d79c1 35742000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3575
f43d79c1
GM
3576 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3577 and contains a `:', prepend `/:'.
3578
3579 * window.c (select_window_1): If selected_window is nil,
3580 don't "swap out" the buffer's point.
3581 (Fset_window_configuration): Set selected_window to nil
3582 before calling Fselect_window.
3583 (unshow_buffer): Don't set point in buffer from window's point
3584 if another more recently selected window also shows the buffer.
3585
bed0c171
GM
35862000-02-25 Gerd Moellmann <gerd@gnu.org>
3587
449c3c52
GM
3588 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3589
f5b58615
GM
3590 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3591 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3592 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3593 variables.
3594 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3595 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3596 (hide_busy_cursor): New functions.
3597 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3598
3599 * minibuf.c (read_minibuf): Cancel busy-cursor.
3600
3601 * keyboard.c (command_loop_1): Call start_busy_cursor before
3602 Fcommand_execute and cancel_busy_cursor after it.
3603 (timer_check): Remove busy-cursor code.
3604 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3605 cursor timer.
3606
3607 * process.c (wait_reading_process_input): Remove busy-cursor code.
3608
3609 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3610 Fx_hide_busy_cursor.
3611
3612 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3613 Remove prototyoes.
3614 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3615
3616 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3617
3618 * xterm.c (XTread_socket): Remove busy-cursor code.
3619
4eb8436f
GM
3620 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3621 (build_frame_matrix_from_leaf_window): Put code handling
3622 glyph row's not being a slice of a frame row in #if 0.
3623 (sync_window_with_frame_matrix_rows): New function.
3624 (frame_row_to_window): New function.
3625 (mirror_line_dance): Handle copies between windows.
3626
3cb65b0e
GM
3627 * lread.c (Fload): Use `xfree' instead of `free'.
3628 (init_obarray): Use `xmalloc' instead of `malloc'.
3629
bed0c171
GM
3630 * window.c (Fset_window_buffer): Set WINDOW to the window
3631 after decoding.
2add4349
GM
3632 (coordinates_in_window): Take frame's internal border width
3633 into account.
bed0c171 3634
42088c12
GM
36352000-02-24 Gerd Moellmann <gerd@gnu.org>
3636
3637 * xterm.c (x_display_and_set_cursor): Display cursor of
3638 non-selected windows depending on the setting of
3639 cursor_in_non_selected_windows.
3640
3641 * xdisp.c (cursor_in_non_selected_windows): New variable.
3642 (syms_of_xdisp): DEFVAR_BOOL it.
3643
d1e103b2
GM
36442000-02-23 Gerd Moellmann <gerd@gnu.org>
3645
723e779c
GM
3646 * data.c (Fstring_to_number): If number is greater than what
3647 fits into an integer, return a float.
3648
d1e103b2
GM
3649 * eval.c (specbind): Remove references to
3650 keyword_symbols_constant_flag.
3651
3652 * data.c (keyword_symbols_constant_flag): Removed.
3653 (Fmakunbound, set_internal, syms_of_data): Remove references to
3654 keyword_symbols_constant_flag.
3655
3656 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3657
214f877f
KH
36582000-02-23 Kenichi Handa <handa@etl.go.jp>
3659
3660 * syntax.c (multibyte_syntax_as_symbol): New variable.
3661 (syms_of_syntax): Declare it as a Lisp variable.
3662 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3663 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3664 nonzero, treat all multibyte characters as symbol.
42088c12 3665 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3666 characters.
3667
130adcb7
EZ
36682000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3669
3cb65b0e 3670 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 3671 a deleted frame.
130adcb7 3672
17cbbf95
GM
36732000-02-21 Gerd Moellmann <gerd@gnu.org>
3674
3675 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3676
3677 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3678 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3679
beb0bc36
DL
36802000-02-21 Dave Love <fx@gnu.org>
3681
3682 * frame.c (Vmouse_position_function): New variable.
3683 (Fmouse_position): Use it.
3684 (syms_of_frame): Install it.
3685
3686 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3687
1d92afcd
GM
36882000-02-20 Gerd Moellmann <gerd@gnu.org>
3689
3690 * fileio.c (Finsert_file_contents): Unbind the binding of
3691 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3692
3693 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3694 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3695 (specbind, unbind_to): Handle most common case of non-constant
3696 symbol with trivial value specially.
3697
3698 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3699
2d06696f
RS
37002000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3701
3702 * data.c (Fmake_variable_buffer_local): Doc fix.
3703 Init found_for_buffer to 0.
3704 (Fmake_variable_frame_local): If the variable has already
3705 been buffer-local, set the check_frame field.
3706
1d4311c3
EZ
37072000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3708
3709 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3710 produced for CODING_MODE_LAST_BLOCK requires.
3711
2dc95ddd
DL
37122000-02-18 Dave Love <fx@gnu.org>
3713
3714 * keyboard.c (echo_keystrokes): Remove declaration.
3715 (Vecho_keystrokes) New variable.
3716 (read_char, record_menu_key, read_key_sequence): Use it to allow
3717 use of float value.
3718 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3719
3720 * lread.c: Undef feature selection macros before defining.
3721
f0930f35
GM
37222000-02-18 Gerd Moellmann <gerd@gnu.org>
3723
3724 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3725 for symbols other than the symbol in question.
3726
e3d4de90
DL
37272000-02-17 Dave Love <fx@gnu.org>
3728
3729 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3730
0b378936
GM
37312000-02-17 Gerd Moellmann <gerd@gnu.org>
3732
d621caf7
GM
3733 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3734
0b378936
GM
3735 * alloc.c (enum mem_type): Compile unconditionally.
3736
3b451f74
EZ
37372000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3738
3739 * xfaces.c (tty_defined_color): Don't return faulire indication
3740 for unspecified-fg and unspecified-bg pseudo-colors.
3741
10689a01
GM
37422000-02-17 Gerd Moellmann <gerd@gnu.org>
3743
1216f5e4
GM
3744 * alloc.c (mark_object): Don't mark symbol names in pure space.
3745 (gc_sweep): Don't unmark symbol names in pure space.
3746
3747 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3748 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3749 [GC_MARK_STACK]: New defines.
427ec082 3750 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3751 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3752
3753 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3754
3755 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3756 allocate_buffer instead of xmalloc.
3757
3758 * alloc.c (toplevel): Include setjmp.h.
3759 (PURE_POINTER_P): New define.
3760 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3761 (Vdead) [GC_MARK_STACK]: New variable.
3762 (lisp_malloc): Add parameter TYPE, call mem_insert if
3763 GC_MARK_STACK is defined.
3764 (allocate_buffer): New function.
427ec082 3765 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3766 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3767 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3768 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3769 (MEM_NIL) [GC_MARK_STACK]: New define.
3770 (struct mem_node) [GC_MARK_STACK]: New structure.
3771 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3772 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3773 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3774 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3775 (mark_stack) [GC_MARK_STACK]: New functions.
3776 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3777 (clear_marks): Removed.
3778 (gc_sweep): Set free conses' car, free floats' type, free
3779 symbols' function to Vdead. Use lisp_free to free buffers.
3780 (init_alloc_once): Initialize Vdead.
3781 (survives_gc_p): Return non-zero for pure objects.
3782
3783 * alloc.c: Add comments throughout the file.
3784
2503c8b1
GM
3785 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3786 that unblocks alarms.
3787
8389e1e2
GM
3788 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3789 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3790 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3791
10689a01 3792 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3793
bfc17d18
KH
37942000-02-17 Kenichi Handa <handa@etl.go.jp>
3795
4a09dee0
KH
3796 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3797 avoid infinite error signaling. Allocate sufficient memory for
3798 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3799
2b927d02
SM
38002000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3801
3802 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3803 depends on the previous behavior.
3804
b49cb764
GM
38052000-02-16 Gerd Moellmann <gerd@gnu.org>
3806
3807 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3808
99e95407
GM
38092000-02-15 Gerd Moellmann <gerd@gnu.org>
3810
3811 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3812
3813 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3814 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3815 write(2).
3816
6ffd3cf7
RS
38172000-02-15 Richard M. Stallman <rms@gnu.org>
3818
3819 * data.c (set_internal): Don't make variable buffer-local
3820 if within a let-binding for the same buffer.
3821 (let_shadows_buffer_binding_p): New function.
3822
3823 * eval.c (specbind): For buffer-local value,
3824 record the current buffer also.
3825 (unbind_to): Cope with that change.
3826
cad53475
GM
38272000-02-15 Gerd Moellmann <gerd@gnu.org>
3828
3829 * window.c (Fsave_window_excursion): Doc fix.
3830
1aa963c8
SM
38312000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3832
3833 * syntax.c (back_comment): Make sure we only consider comment-starters
3834 of the relevant style and return -1 in case of a failure to find the
3835 beginning of the comment.
3836 (Fforward_comment): If back_comment fails, go back to the position just
3837 after the comment-end.
3838 (scan_lists): Add comment describing a very minor bug.
3839
b9b84fd3
SM
38402000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3841
3842 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3843 `completion-regexp-list' in the docstring.
3844
3a28db80
DL
38452000-02-14 Dave Love <fx@gnu.org>
3846
3847 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3848
fb4a568d
SM
38492000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3850
3851 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3852 to Emacs' syntax. Also fix the comment about set/not-set meanings
3853 since Emacs syntax is not the value 0 any more.
3854 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3855 since it's now part of RE_SYNTAX_EMACS.
3856
1063ebb5
DL
38572000-02-12 Dave Love <fx@gnu.org>
3858
3859 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3860 Alpha.
3861
fb07a302
GM
38622000-02-12 Gerd Moellmann <gerd@gnu.org>
3863
3864 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3865
aaf2320c
DL
38662000-02-12 Dave Love <fx@gnu.org>
3867
3868 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3869
3870 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3871 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3872 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3873
3874 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3875
3876 * s/nextstep.h: Don't define HAVE_ALLOCA.
3877
3878 * config.in: Add vfork bits.
3879
eedf8bde
GM
38802000-02-12 Gerd Moellmann <gerd@gnu.org>
3881
3882 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3883 unwind function to undo the effect of stopping atimers.
3884
3885 * keyboard.c (bind_polling_period): Stop all timers except
3886 poll_timer.
3887
3888 * atimer.c (stopped_atimers): New variable.
3889 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3890 New functions.
3891
3892 * atimer.h (stop_other_atimers, run_all_atimers)
3893 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3894
eedf8bde
GM
3895 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3896
8476c2f8
KR
38972000-02-11 Ken Raeburn <raeburn@gnu.org>
3898
3899 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3900 library may depend on jpeg.
3901 (atimer.o): Depends on atimer.c.
3902
0e85e4a3
KH
39032000-02-11 Kenichi Handa <handa@etl.go.jp>
3904
3905 * insdel.c (del_range_1): Call update_compositions.
3906 (del_range_both): Call update_compositions just once..
3907
97fa0cc8
DL
39082000-02-10 Dave Love <fx@gnu.org>
3909
3910 * xfns.c (create_frame_xic): Fix initialization of automatic
3911 aggregates for pcc.
3912
25566a3c
KH
39132000-02-09 Kenichi Handa <handa@etl.go.jp>
3914
3915 * ccl.c (CCL_MAKE_CHAR): New macro.
3916 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3917 registers by CCL_MAKE_CHAR before calling translate_char.
3918 <CCL_TranslateCharacterConstTbl> Likewise.
3919
69da54ba
DL
39202000-02-08 Dave Love <fx@gnu.org>
3921
3922 * lread.c (__EXTENSIONS__): Define.
3923
f7136ee8
GM
39242000-02-08 Gerd Moellmann <gerd@gnu.org>
3925
3926 * puresize.h (BASE_PURESIZE): Increase to 650000.
3927
7768790b
EZ
39282000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3929
3930 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3931 the help message.
3932
38fd211b
EZ
39332000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3934
3935 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3936 md, mh, mb, mr, and me to the fake termcap entry.
3937
66e4690f
KR
39382000-02-06 Ken Raeburn <raeburn@gnu.org>
3939
3940 * sound.c (sound_cleanup): Don't call device close routine if the
3941 function pointer is null.
3942
a75dfea0
AI
39432000-02-06 Andrew Innes <andrewi@gnu.org>
3944
3945 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3946 around image definitions and prototypes.
3947 (gamma_correct) [WINDOWSNT]: New prototype.
3948
3949 * w32term.c (x_make_frame_visible): Replace call to
3950 input_poll_signal with poll_for_input.
3951
3952 * window.c [WINDOWSNT]: Include w32term.h.
3953
3954 * xdisp.c [WINDOWSNT]: Include w32term.h.
3955
3956 * makefile.nt: Add dependencies on w32gui.h.
3957 (OBJ1): Include atimer.obj.
3958 ($(BLD)\atimer.obj): New dependency rule.
3959
3960 * w32.c (sigmask): New function (does nothing).
3961 (sigunblock): Ditto.
3962
3963 * frame.c [WINDOWSNT]: Include w32term.h.
3964
3965 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3966
3967 * lread.c (syms_of_lread): Fix literal newlines.
3968
3969 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3970 the string constant limit (2048 bytes) in MSVC.
3971 (main): Ditto.
3972
59ddecde
GM
39732000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3974
3975 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3976 area.
3977 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3978 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3979 dispatch the event.
3980
07590973
DL
39812000-02-04 Dave Love <fx@gnu.org>
3982
3983 * fileio.c: Remove some unused vars.
3984 (_GNU_SOURCE): Define (for euidaccess).
3985
3986 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3987
3988 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3989 gcpro1, gcpro2.
3990 (read_minibuf): Deal with allow_props correctly.
3991
649351f9
EZ
39922000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3993
3994 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3995
66e4690f 39962000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3997
3998 * search.c (compile_pattern): If a cache entry has a nil regexp,
3999 fill in that entry instead of clobbering a previously cached
4000 string regexp.
4001
66e4690f 40022000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4003
4004 * puresize.h (BASE_PURESIZE): Increase to 610000.
4005
d240a249
GM
40062000-02-02 Gerd Moellmann <gerd@gnu.org>
4007
4008 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4009 can GC.
4010
ca91fb26
KH
40112000-02-02 Kenichi Handa <handa@etl.go.jp>
4012
25660570
KH
4013 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4014 instead of incrementing ic directly.
4015 <CCL_WriteExprConst> Likewise.
4016 <ccl_set_expr>: Set ic to jump_address.
4017
ca91fb26
KH
4018 * fileio.c (e_write): Fix the handling of
4019 CODING_FINISH_INSUFFICIENT_SRC.
4020
2ede9689
DL
40212000-02-01 Dave Love <fx@gnu.org>
4022
4023 * editfns.c (Fpropertize): Doc fix.
4024
4025 * process.c (Fstart_process): Doc fix.
4026
4027 * eval.c: Fix various doc strings not to duplicate information
4028 from help-manyarg-func-alist.
4029
4030 * window.c (Fset_window_margins): Don't make interactive. Doc
4031 fix.
4032
4033 * doc.c (Vhelp_manyarg_func_alist): New variable.
4034 (Fdocumentation): Use it.
4035 (syms_of_doc): Define it.
4036
b6680a0e
GM
40372000-01-31 Gerd Moellmann <gerd@gnu.org>
4038
2cb750ba
GM
4039 * xterm.c (xim_open_dpy): Remove unused local variable.
4040
74e9213b
GM
4041 * emacs.c (USAGE): Use term `display options' instead of `X
4042 options'.
4043
4044 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4045 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4046
b6680a0e
GM
4047 * fns.c (sweep_weak_table): New function.
4048 (sweep_weak_hash_tables): Use it. Keep on marking until there
4049 is no more change.
4050
994c5afe
GM
40512000-01-30 Gerd Moellmann <gerd@gnu.org>
4052
4053 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4054 that XTread_socket does not crash by trying to call XNoOp on a
4055 closed display.
427ec082 4056
f00276e3
JR
40572000-01-30 Jason Rumney <jasonr@gnu.org>
4058
4059 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4060 Change selected_frame to SELECTED_FRAME ().
4061 (w32_console_mouse_position): Remove #ifndef MULE from around
4062 `insist' parameter.
4063
4064 * makefile.nt: Remove dosfns.obj.
4065
4066 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4067
4068 * w32fns.c (w32_defined_color): Check for valid frame before
4069 applying gamma correction. Eliminate dependency on frame elsewhere.
4070 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4071 (w32_to_x_font): Use resx and resy not height_in and width_in.
4072 (x_to_w32_font): Doc fix.
4073 (xlfd_strip_height): New function to strip and return font height.
4074 (w32_font_match): Compare height separately from rest of xlfd
4075 spec, using xlfd_strip_height.
4076
4077 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4078 width_in. Use w32_defined_color in place of defined_color.
4079
4080 * w32faces.c: Merge more of DOS and X specifics in preparation for
4081 merge with xfaces.c.
4082 (defined_color): Remove FIXME comment.
4083 (tty_color_name): Provide w32-specific function.
4084 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4085
4086 * w32console.c (turn_on_face, turn_off_face): Removed.
4087 (w32_face_attributes): New function.
4088 (Global_variables): Reduce scope where possible.
4089 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4090 fill attribute.
4091 (hl_mode): Don't modify text attributes.
4092 (write_glyphs): Don't do anything if len <= 0. Use
4093 w32_face_attributes to get attributes for drawing. Write
4094 terminating codes using char_attr_normal.
4095 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4096 (update_begin, update_end): Likewise.
4097 (vga_stdcolor_name): New function.
4098 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4099 (Fset_screen_color): Remove char_attr_reverse.
4100
b08e8bb2
GM
41012000-01-29 Gerd Moellmann <gerd@gnu.org>
4102
4103 * xfns.c (xic_set_preeditarea): Take window parameter and
4104 window-relative pixel-positions.
4105
4106 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4107 is its frame's selected window.
4108 (xim_instantiate_callback): Likewise.
4109
4110 * xfns.c (x_create_im): Removed.
4111 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4112 (supported_xim_styles): Renamed from supported_styles.
4113 (best_xim_style): Renamed from best_style.
4114 (create_frame_xic): Renamed from xic_create_frame.
4115 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4116
b08e8bb2
GM
41172000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4118
4119 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4120 our frames, call XFilterEvent with 2nd parameter `None'.
4121 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4122 returning XBufferOverflow.
4123 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4124 area.
4125 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4126 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4127 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4128 (xim_initialize, xim_close)
4129 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4130 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4131 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4132 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4133
4134 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4135 and `xim_styles'.
4136 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4137 `xic_style' and `xic_xfs'.
4138 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4139 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4140 (FRAME_XIM): Removed.
4141
4142 * xfns.c (supported_styles): New variable.
4143 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4144 (xic_create_xfontset, best_style, xic_create_frame)
4145 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4146 (xic_set_xfontset): New functions.
4147
142e109c
DL
41482000-01-28 Dave Love <fx@gnu.org>
4149
4150 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4151
4152 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4153
b02786f9
GM
41542000-01-28 Gerd Moellmann <gerd@gnu.org>
4155
d060bc9f
GM
4156 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4157 for *scratch* if it already existed.
4158
b02786f9
GM
4159 * emacs.c (USAGE): New macro.
4160 (main): Use it to display usage information.
4161
2c52d7e4
EZ
41622000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4163
4164 Support for the menu-help feature:
4165
4166 * msdos.h: Change prototypes of XMenuAddSelection and
4167 XMenuActivate.
4168
4169 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4170 part of the line to the termscript file.
4171 (IT_clear_to_end): Clear the entire line, not just its beginning.
4172 (menu_help_message, prev_menu_help_message): New variables.
4173 (IT_menu_make_room): Make room for the help_text member.
4174 (IT_menu_display): New argument disp_help; all callers changed.
4175 If disp_help is non-zero, store the help text of the active menu
4176 item in menu_help_message.
4177 (XMenuAddPane): Initialize the help_text member to NULL.
4178 (XMenuAddSelection): New argument help_text. Store it in the
4179 XMenu structure.
4180 (XMenuActivate): New argument help_callback. If the value of
4181 menu_help_message has changed since the last time, display the
4182 menu help message text while waiting for the mouse to move. Clear
4183 the echo area before exiting.
4184 (XMenuDestroy): Free the help_text member.
4185
ffe0bcd1
GM
41862000-01-27 Gerd Moellmann <gerd@gnu.org>
4187
4188 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4189 XMenuAddSelection. Pass help callback to XMenuActivate.
4190 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4191
50dbd23f
EZ
41922000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4193
4194 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4195 and EMACS_SET_USECS.
4196
f5941bf8
GM
41972000-01-26 Dave Love <fx@gnu.org>
4198
6c67ddee
DL
4199 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4200
f5941bf8
GM
4201 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4202 an error may be signalled.
4203
9e49c990
GM
42042000-01-26 Gerd Moellmann <gerd@gnu.org>
4205
fc3cb460
GM
4206 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4207 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4208
9e49c990
GM
4209 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4210
d0c037d8
GM
42112000-01-25 Gerd Moellmann <gerd@gnu.org>
4212
4213 * charset.c (Fstring): If there is a multibyte char among
4214 the args, always return a multibyte string.
4215
e12489f9
GM
42162000-01-25 Gerd Moellmann <gerd@gnu.org>
4217
4218 * sysdep.c (sys_select): Turn atimers off and on instead of
4219 recording and restoring old alarm handler
4220
4221 * process.c (toplevel): Include atimer.h.
4222 (create_process_1): Rewritten.
4223 (create_process): Use atimers instead of alarm.
4224 (wait_reading_process_input) [hpux]: Turn atimers off instead
4225 of turning off SIGALRM.
4226 (wait_reading_process_input): Turn off atimers instead off
4227 calling stop_polling.
4228
4229 * emacs.c (main): Call init_atimer.
4230
4231 * keyboard.c (toplevel): Include systime.h and atimer.h.
4232 (polling_for_input): Removed because unused.
4233 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4234 (poll_timer): New variable.
4235 (poll_for_input, poll_for_input_1): New functions.
4236 (start_polling, stop_polling): Rewritten.
4237
4238 * keyboard.h (polling_for_input): Removed.
427ec082 4239
e12489f9
GM
4240 * atimer.h, atimer.c: New files.
4241
4242 * Makefile.in (obj): Add atimer.o.
4243 (atimer.o): New target.
4244
4245 * blockinput.h (pending_atimers): Add extern declaration.
4246 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4247
4248 * lisp.h (popup_activated_flag): Add extern declaration.
4249
4250 * xmenu.c (popup_activated_flag): Make externally visible.
4251 (popup_activate_callback) [USE_MOTIF]: Increment
4252 popup_activated_flag.
4253 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4254
4255 * xterm.c (toplevel): Include atimer.h.
4256 (toolkit_scroll_bar_interaction): New variable.
4257 (Fxt_process_timeouts): Removed.
4258 (x_process_timeouts): New function.
4259 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4260 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4261 (x_make_frame_visible): Call poll_for_input_1 instead of
4262 input_poll_signal. Don't call alarm.
4263 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4264
1e5279b9
DL
42652000-01-24 Dave Love <fx@gnu.org>
4266
6c67ddee 4267 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4268 Don't use -cckr -- apparently not now necessary.
4269
edf6aeb8
EZ
42702000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4271
4272 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4273 screen boundary.
4274
9badad41
JR
42752000-01-23 Jason Rumney <jasonr@gnu.org>
4276
4277 * w32fns.c (w32_defined_color): Apply gamma correction before
4278 trying to map to the palette.
4279 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4280 to w32_clear_rect.
4281
4282 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4283 here. Callers changed to always pass real device context.
4284 (w32_draw_bitmap): Likewise.
4285 (w32_get_glyph_overhangs): Likewise.
4286 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4287 one.
4288 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4289 pfnSetScrollInfo and SetScrollRange.
4290 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4291 back into MULE characters after decoding them.
4292 (x_get_glyph_face_and_encoding): Likewise.
4293 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4294 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4295 (x_produce_glyphs): Calculate per char metrics for a character
4296 that we know exists in default font when font_not_found_p is true.
4297
63bd786b
JR
42982000-01-22 Jason Rumney <jasonr@gnu.org>
4299
4300 * makefile.nt (intervals.obj, composite.obj): New modules.
4301 (composite.h): Added as dependency where appropriate.
4302
4303 * w32gui.h (XGCValue): New struct for emulating X GCs.
4304
4305 * w32term.h (XCharStruct): New struct for emulating X.
4306
4307 * w32console.c (turn_on_face, turn_off_face): New functions.
4308 (change_line_highlight): New prototype for new redisplay.
4309 (write_glyphs): Support multibyte text. Support faces.
4310
4311 * w32faces.c: Complete rewrite for new redisplay based on new
4312 xfaces.c.
4313
4314 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4315 throughout. struct frame * in place of FRAME_PTR.
4316 Skeleton support for images, toolbars, tooltips from xfns.c.
4317 (Fx_create_frame): Use system default for default scroll bar
4318 width.
4319 (w32_get_arg): Renamed from x_get_arg.
4320 (Fx_file_dialog): New function.
4321 (w32_list_fonts): Check cache before asking system.
4322 (Vw32_enable_synthesized_fonts): New variable.
4323 (Vw32_enable_italics): Obsolete, removed.
4324
4325 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4326 Use SELECTED_FRAME macro.
4327
4328 * w32menu.c: Add skeleton support for help strings on menus.
4329 (add_menu_item): Native checkbox and radio support added, but not
4330 yet enabled due to bugs.
4331 (push_menu_item): Add parameters type, selection and help.
4332 Callers updated.
4333 Formatting changes to reduce unnecessary diffs with xmenu.c.
4334
4335 * w32select.c (Fw32_set_clipboard_data): Update call to
4336 find_charset_in_str.
4337
4338 * w32term.c: Complete rewrite for new redisplay based on new
4339 xterm.c with necessary sections merged back in from old w32term.c.
4340
6ffd3cf7 43412000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4342
4343 * data.c (set_internal): Further fix in same criterion.
4344
6ffd3cf7 43452000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4346
4347 * data.c (set_internal): Fix the criteria for whether
4348 to swap out the old cached binding.
4349
60af03f1
DL
43502000-01-19 Dave Love <fx@gnu.org>
4351
4352 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4353
f9be074f
KH
43542000-01-18 Kenichi Handa <handa@etl.go.jp>
4355
4356 * regex.c (re_compile_fastmap): While checking a range table for
4357 `charset', skip flag bits for a character class correctly.
4358
52b8dbf9
GM
43592000-01-17 Gerd Moellmann <gerd@gnu.org>
4360
d36100c9
GM
4361 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4362
52b8dbf9
GM
4363 * xfns.c (x_window): Call lw_create_widget with new parameter
4364 list.
4365
4366 * widget.c (EmacsFrameSetCharSize): Change size of children first
4367 because of problems with main window geometry management under
4368 Lesstif.
4369
4370 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4371 MENU_ITEMS_ITEM_.*.
4372 (MENU_ITEMS_ITEM_HELP): New enumerator.
4373 (push_menu_item): Add parameter HELP. Record help in menu_items.
4374 (single_menu_item, single_submenu, list_of_items): Call
4375 push_menu_item with new parameter.
4376 (single_submenu): Set help string in widget value.
4377 (menu_highlight_callback): New function.
4378 (set_frame_menubar): Call lw_create_widget with new
4379 parameter list.
4380 (xmenu_show, xdialog_show): Ditto.
4381
3139018f
GM
43822000-01-13 Gerd Moellmann <gerd@gnu.org>
4383
4384 * sound.c (Fplay_sound): Improve doc string.
4385
83c8f461
RS
43862000-01-11 Richard M. Stallman <rms@gnu.org>
4387
4388 * lisp.h (set_internal): Enter the new arg.
4389
4390 * eval.c (specbind): Record buffer-local variables specially,
4391 indicating which buffer's binding was saved.
4392 (unbind_to): Restore buffer-local variables specially
4393 in the proper buffer.
4394
4395 * data.c (set_internal): New arg BUF.
427ec082 4396
83c8f461
RS
4397 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4398 * data.c (Fset): Pass new arg to set_internal.
4399 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4400
1fab1775
GM
44012000-01-11 Gerd Moellmann <gerd@gnu.org>
4402
4403 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4404 xprintsym.
4405
83c8f461 44062000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4407
4408 * minibuf.c (Ftry_completion): Doc fix.
4409
7a85e4df
GM
44102000-01-11 Gerd Moellmann <gerd@gnu.org>
4411
4412 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4413 vector, too.
4414
a970dae4
AS
44152000-01-11 Andreas Schwab <schwab@suse.de>
4416
4417 * coding.c (code_convert_region): Initialize total_skip.
4418
c65d14ee
DL
44192000-01-08 Dave Love <fx@gnu.org>
4420
4421 * eval.c (Fuser_variable_p): Check customizability too.
4422
834938d2
GM
44232000-01-07 Gerd Moellmann <gerd@gnu.org>
4424
4425 * minibuf.c (Fcompleting_read): Doc fix.
4426
e0303cd6
GM
44272000-01-05 Gerd Moellmann <gerd@gnu.org>
4428
8a26744b
GM
4429 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4430 -L /usr/local/lib.
4431
e0303cd6
GM
4432 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4433 Check that input style is supported before trying to create an
4434 IC for it.
4435 (x_window): Call x_create_im.
427ec082 4436
2e471eb5
GM
44372000-01-04 Gerd Moellmann <gerd@gnu.org>
4438
560a7bd2
GM
4439 * xfns.c (current_gif_memory_src): New variable.
4440 (gif_load): Record the address of the current memory source
4441 in current_gif_memory_src.
4442 (gif_read_from_memory): Use current_gif_memory_src.
4443
f9ee84a3
GM
4444 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4445 macros statement form.
4446
d1299cde
GM
4447 * sound.c (struct sound): Renamed from struct sound_file.
4448 (struct sound): Add members `data' and `header_size'.
4449 (enum sound_attr): Add SOUND_DATA.
4450 (current_sound, current_sound_device): Variables renamed from
4451 sound_file and sound_device.
4452 (parse_sound): Parse :data.
4453 (parse_sound): Handle sound data in strings.
4454 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4455 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4456 needed header size.
4457 (wav_play, au_play): Play sounds from string data.
4458
2e471eb5
GM
4459 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4460
4461 * lisp.h: Add prototype for allocate_string_data.
4462
4463 * alloc.c (Fgarbage_collect): Return number of live and free
4464 strings.
4465
4466 * alloc.c (mark_buffer): Remove code in #if 0.
4467 (gc_sweep): Ditto.
4468 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4469 (strings_consed): New variable.
4470 (allocate_string): Set it.
4471 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4472 (Fmemory_use_counts): Return strings_consed. Use Flist.
4473
4474 * alloc.c: General cleanup in comments etc. Remove conditional
4475 compilation for `standalone'.
4476
4477 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4478
4479 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4480 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4481 (DONT_COPY_FLAG): Removed.
4482 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4483 (struct sdata, struct sblock): New
4484 (struct string_block): Rewritten.
4485 (STRINGS_IN_STRING_BLOCK): New macro.
4486 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4487 (large_sblocks, string_blocks, string_free_list): New variables.
4488 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4489 (init_strings): Rewritten.
4490 (allocate_string, allocate_string_data, compact_small_strings)
4491 (free_large_strings, sweep_strings): New functions.
4492 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4493 (struct string_block_head, current_string_block)
4494 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4495 (STRING_PAD): Removed.
4496 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4497 (Fgarbage_collect): Don't set mark bit in large strings.
4498 (mark_object): Mark strings differently. Mark symbol names
4499 differently.
4500 (survives_gc_p): Test marked strings differently.
427ec082 4501 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4502 symbol names.
4503 (compact_strings): Removed.
4504
42608ba8
EZ
45052000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4506
4507 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4508 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4509
e0a09e1a
KH
45102000-01-04 Kenichi Handa <handa@etl.go.jp>
4511
dd9f0750 4512 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4513 in a non-empty buffer.
dd9f0750 4514
3c0f3b15 4515 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4516
44cd3ae5
GM
45172000-01-03 Gerd Moellmann <gerd@gnu.org>
4518
4519 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4520 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4521
4522 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4523
c182a70f
EZ
45242000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4525
4526 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4527 need to test for MSDOS frames.
4528
24480d5b
EZ
45292000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4530
4531 * dosfns.c (unspecified_colors): Remove.
4532 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4533 unspecified_bg.
4534 (msdos_stdcolor_name): Return strings for unspecified fore- and
4535 back-ground colors.
4536
4537 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4538 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4539 (tty_color_name): Return Lisp strings for unspecified fore- and
4540 back-ground colors.
4541 (Finternal_set_lisp_face_attribute): Remove the special treatment
4542 for Qunspecified_{f,b}g.
4543 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4544 string.
4545
047f434a
GM
45462000-01-03 Gerd Moellmann <gerd@gnu.org>
4547
4548 * xdisp.c (reseat_at_next_visible_line_start): Position before
4549 newline only if ending up on a newline.
4550 (next_element_from_ellipsis): Return success. Handle case of
4551 displaying no ellipsis. Fix case of ellipsis defined in display
4552 table.
4553 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4554 returns 0.
4555
d684c676
EZ
45562000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4557
4558 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4559 (Fcolor_supported_p): Renamed from face-color-supported-p.
4560
5fe1d139
EZ
45612000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4562
4563 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4564 list of colors renamed to tty-defined-color-alist.
4565 (tty_color_name): Pass the frame to tty-color-by-index.
4566 (realize_tty_face): tty-color-alist is now a function which
4567 accepts the frame as argument.
4568
4569 * term.c (Ftty_display_color_p): Accept an optional argument
4570 FRAME.
4571
816be8b8
EZ
45722000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4573
4574 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4575 encode_terminal_code.
4576
b635321e
EZ
45772000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4578
4579 * dispnew.c (mode_line_string): Support termcap frames as well.
4580
9b784e96
GM
45812000-01-01 Gerd Moellmann <gerd@gnu.org>
4582
27189709
GM
4583 * syntax.c (Fforward_word): Undo previous change.
4584
4585 * editfns.c (Fconstrain_to_field): Don't constrain if
4586 inhibit-field-text-motion is non-nil.
4587 (Fline_beginning_position): Undo previous change.
4588 (Fline_end_position): Ditto.
4589
4590 * syntax.c (Fforward_word): Notice field boundaries only if
4591 inhibit-field-text-motion is nil.
4592
4593 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4594
4595 * editfns.c (Vinhibit_field_text_motion): New variable.
4596 (inhibit-field-text-motion): New DEFVAR_LISP.
4597 (Fline_beginning_position, Fline_end_position): Notice field
4598 boundaries only if inhibit-field-text-motion is nil.
4599
45158a91
GM
4600 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4601 All calls adjusted.
4602 (x_build_heuristic_mask): Likewise.
4603 (xbm_load_image_from_file): Change error output.
4604 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4605 (gif_load, gs_load, x_kill_gs_process): Ditto.
4606
9b784e96
GM
4607 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4608 color indices when accessing raster pixels.
63cec32f
GM
4609 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4610 one of :file or :data.
4611 (enum pbm_keyword_index): Add PBM_DATA.
4612 (pbm_format): Add :data.
4613 (pbm_image_p): Allow either :file or :data.
4614 (pbm_read_file): New function.
4615 (pbm_scan_number): Rewritten to read from string.
4616 (pbm_load): Support :data.
9b784e96 4617
5ad6a5fb
GM
46181999-12-31 Gerd Moellmann <gerd@gnu.org>
4619
4620 * xfns.c: New image functions adapted to Emacs conventions.
4621 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4622 variable `file'.
4623
63448a4d
WP
46241999-12-31 William M. Perry <wmperry@aventail.com>
4625
4626 * xfns.c (jpeg_format): Added the :data keyword
4627 (jpeg_image_p): JPEG is valid with :file _or_ :data
4628 (jpeg_memory_src): Defined new JPEG image source to read from a
4629 memory buffer.
4630 (jpeg_load): Pay attention to the :data keyword if specified.
4631 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4632 found.
4633 (png_format): Added the :data keyword
4634 (png_image_p): PNG is valid with :file _or_ :data
4635 (png_read_from_memory): New PNG read function to read from a
4636 memory buffer.
4637 (png_load): Pay attention to the :data keyword if specified. Uses
4638 png_set_read_fn() instead of png_init_io() if specified.
4639 (tiff_format): Added the :data keyword for TIFF images.
4640 (tiff_image_p): TIFF is valid with :file _or_ :data
4641 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4642 from a memory buffer.
4643 (tiff_load): Pay attention to the :data keyword if specified.
4644 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4645 (gif_format): Added the :data keyword
4646 (gif_image_p): GIF is valid with :file _or_ :data
4647 (gif_read_from_memory): New GIF input function to read from a
4648 memory buffer.
c65d14ee 4649 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4650 instead of DGifOpenFileName() if specified.
4651
c880678e
GM
46521999-12-31 Gerd Moellmann <gerd@gnu.org>
4653
4654 * xdisp.c (next_element_from_buffer): Change assertion at the end
4655 because it doesn't hold when there's an overlay string at the end
4656 from which we deliver an image.
4657
8ccb9a54
EZ
46581999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4659
4660 * msdos.c (IT_update_begin): Don't dereference members of struct
4661 window for deleted windows.
4662
12ce2351
GM
46631999-12-30 Gerd Moellmann <gerd@gnu.org>
4664
a915c648
GM
4665 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4666 a hook, and the hook has a non-nil `no-self-insert' property, let
4667 the return value of the hook specify whether an expansion took
4668 place. If it returns nil, no expansion has been performed.
4669
12ce2351
GM
4670 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4671 differently.
4672
04ee4f45
EZ
46731999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4674
4675 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4676
7f4bc0c3
EZ
46771999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4678
4679 * dispnew.c (mode_line_string): Support MS-DOS frames.
4680
dac204bc
GM
46811999-12-29 Gerd Moellmann <gerd@gnu.org>
4682
4683 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4684
7b712ad8
KH
46851999-12-29 Kenichi Handa <handa@etl.go.jp>
4686
4687 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4688 to signal_after_change.
4689
adb9900f
EZ
46901999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4691
41ad069b
EZ
4692 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4693 dimensions changed, invalidate the mouse highlight info.
4694 (disable_mouse_highlight, help_echo, previous_help_echo): New
4695 variables.
4696 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4697 (fast_find_position, IT_note_mode_line_highlight)
4698 (IT_note_mouse_highlight): New functions.
4699 (IT_update_begin): If the redisplay affects the window where the
4700 mouse highlight is, clear the highlight. If the frame where the
4701 highlight was displayed was killed, invalidate the highlight
4702 info.
4703 (IT_update_end): Reset the highlight flag. Reset the mouse
4704 highlight-defer flag.
4705 (IT_frame_up_to_date): New function, if mouse highlight was
4706 deferred due to GC, do it now.
4707 (internal_terminal_init): Initialize mouse-highlight related
4708 members of the_only_x_display. Assign IT_frame_up_to_date to
4709 frame_up_to_date_hook.
4710 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4711 help_echo changed value, generate a HELP_EVENT event.
4712 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4713
adb9900f
EZ
4714 * msdos.h (struct display_info): New.
4715 (struct x_output): Add the display_info member.
4716 (FRAME_X_DISPLAY_INFO): New macro.
4717
481b5054
GM
47181999-12-28 Gerd Moellmann <gerd@gnu.org>
4719
4720 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4721 if MODIFF > 1.
6448a6b3 4722 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4723
4724 * buffer.c (modify_overlay): Always compute unchanged info.
4725
a2882b0d
KH
47261999-12-27 Kenichi Handa <handa@etl.go.jp>
4727
4728 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4729
89ba5b5f
KH
47301999-12-27 Kenichi Handa <handa@etl.go.jp>
4731
4732 The following changes are to use more bits for face IDs.
4733
4734 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4735 lowest 8 bits are single byte character code, the bits above are
4736 face ID.
481b5054 4737 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4738 above.
481b5054
GM
4739 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4740 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4741
4742 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4743 of GLYPH_MASK_CHAR.
4744
4745 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4746 of GLYPH_MASK_CHAR.
4747
4748 * dispextern.h (struct glyph): Make face_id and padding_p the top
4749 level members. Change members in union `u'.
4750 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4751 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4752 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4753 (CHAR_GLYPH_PADDING_P): Likewise.
4754 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4755 characters.
4756
481b5054 4757 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4758 for the change of struct glyph.
4759 (line_draw_cost): Adjusted for the change of
4760 GLYPH_FROM_CHAR_GLYPH.
4761 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4762
4763 * term.c (encode_terminal_code): Adjusted for the change of struct
4764 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4765 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4766 change of struct glyph.
4767
4768 * xdisp.c: All codes adjusted for the change of struct glyph.
4769
4770 * xterm.c: All codes adjusted for the change of struct glyph.
4771
5bcd116c
KH
47721999-12-27 Kenichi Handa <handa@etl.go.jp>
4773
4774 * composite.h (struct composition): Change the order of declaring
4775 members to reduce the byte size of the structure.
4776
f21b06b7
GM
47771999-12-25 Gerd Moellmann <gerd@gnu.org>
4778
4779 * search.c (looking_at_1): Reset immediate_quit before modifying
4780 global data.
4781
e36557c9
KH
47821999-12-24 Kenichi Handa <handa@etl.go.jp>
4783
4784 * process.c (read_process_output): Fix the arg FROM to
4785 update_compositions.
4786
83c8f461 47871999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4788
4789 * search.c (Freplace_match): For nonliteral replacement in buffer,
4790 construct all the new text first, then insert all at once.
4791
0b863bd9
DL
47921999-12-22 Dave Love <fx@gnu.org>
4793
4794 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4795
6d8e8ef3
GM
47961999-12-22 Gerd Moellmann <gerd@gnu.org>
4797
28d7281d
GM
4798 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4799 lead to size changes to after the X window has been created.
4800
e22ef6eb 4801 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4802 variable in xassert.
4803
8affcced
KH
48041999-12-22 Kenichi Handa <handa@etl.go.jp>
4805
4806 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4807 only when the frame is not for a window system.
8affcced 4808
f2be1146
GM
48091999-12-22 Gerd Moellmann <gerd@gnu.org>
4810
deca1348
GM
4811 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4812 redisplay after changing the multibyteness of a buffer.
4813
f2be1146
GM
4814 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4815 frame's X window to XFilterEvent instead of None because that's
4816 the X window for which the IC was created. This makes dead
4817 accents work when the pointer is not in Emacs' frame.
4818 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4819
a744a2ec
DL
48201999-12-20 Dave Love <fx@gnu.org>
4821
4822 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4823
9e6985ed
GM
48241999-12-19 Gerd Moellmann <gerd@gnu.org>
4825
4826 * eval.c (debugger_may_continue): New variable.
4827 (syms_of_eval): Add a DEFVAR_BOOL for it.
4828 (call_debugger): Bind it.
4829
3b620731
EZ
48301999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4831
4832 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4833 fp->tty_reverse_p is set, unless the computed colors are identical
4834 to frame colors. Print both original and computed colors to
4835 termscript file.
4836 (IT_write_glyphs): Track the changes in handling of composite
4837 characters.
4838 (IT_set_frame_parameters): Don't set frame colors from
4839 unspecified-fg and unspecified-bg pseudo-colors.
4840
0f9a51c4
DL
48411999-12-17 Dave Love <fx@gnu.org>
4842
4843 * data.c (Fkeywordp): New function.
4844 (syms_of_data): Install it.
4845
363e4e42
EZ
48461999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4847
4848 * xfaces.c (tty_defined_color): Fix last change.
4849
cfad01b4
GM
48501999-12-15 Gerd Moellmann <gerd@gnu.org>
4851
4852 * xdisp.c (redisplay_window) <optional new window start>: Check
4853 that window start is in [BEGV..ZV].
4854
f9d2fdc4
EZ
48551999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4856
4857 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4858 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4859
4860 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4861 (syms_of_xfaces): Initialize and staticpro them.
4862 (tty_defined_color): If the color name is unspecified-fg or
4863 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4864 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4865 (tty_color_name): If the color pixel value is either
4866 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4867 Qunspecified_fg or Qunspecified_bg, respectively.
4868 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4869 and Qunspecified_bg for foreground and background colors.
4870 (realize_default_face): If the foreground and background colors
4871 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4872 (realize_tty_face): By default, set the face colors to
4873 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4874 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4875 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4876 Reverse the colors if the default colors were reversed.
4877
4878 * dispnew.c (init_display): Initialize the frame pixels of the
4879 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4880 FACE_TTY_DEFAULT_BG_COLOR.
4881
4882 * term.c (turn_on_face): If the default fore- and background
4883 colors are reversed, enter inverse video mode. Don't send color
4884 escape sequences for unspecified foreground and background colors.
4885 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4886
4887 * dosfns.c (unspecified_colors): New variable.
4888 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4889 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4890 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4891 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4892 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4893 Qunspecified_bg, respectively.
4894
4895 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4896 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4897
e19539f1
KH
48981999-12-15 Kenichi Handa <handa@etl.go.jp>
4899
4900 * coding.c (code_convert_region): Fix the secoding arg to
4901 update_compositions.
4902
5ec14d3c
KH
49031999-12-15 Kenichi Handa <handa@etl.go.jp>
4904
4905 The following changes are for the new composition mechanism. We
4906 have deleted `composition' charset and composite characters,
4907 instead introduced a special text property `composition'.
4908
4909 * Makefile.in (INTERVAL_SRC): Include composite.h.
4910 (INTERVAL_OBJ): Include composite.o.
4911 (SOME_MACHINE_OBJECTS): Include composite.o.
4912 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4913 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4914 Depend on composite.h.
4915 (doc.o): Depend on charset.h.
4916 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4917 (composite.o): New target.
427ec082 4918
5ec14d3c
KH
4919 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4920
4921 * callproc.c (Fcall_process): Call code_convert_string to encode
4922 arguments. Use CODING_REQUIRE_DECODING to check if the process
4923 output should be decoded.
4924
4925 * casefiddle.c: Include composite.h.
4926 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4927 multibyte character. Adjusted for the change of CHAR_STRING.
4928 (casify_region): Likewise. Call update_compositions.
4929
4930 * category.h (CATEGORY_SET): Delete codes for a composite
4931 character.
4932
4933 * category.c (word_boundary_p): Delete codes for a composite
4934 character.
4935 (Fmake_category_table): New function.
4936 (syms_of_category): Defsubr it.
4937
4938 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4939 (ccl_driver): Delete codes for a composite character.
4940
4941 * charset.h: In this entry, just `Modified' means that codes for a
4942 composite character is deleted.
4943 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4944 (charset_composition) (MIN_CHAR_COMPOSITION)
4945 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4946 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4947 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4948 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4949 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4950 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4951 Modified.
4952 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4953 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4954 non_ascii_char_to_string.
4955 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4956 (STRING_CHAR_AND_LENGTH): Likewise.
4957 (FETCH_CHAR_ADVANCE): New macro.
4958 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4959 (MAX_MULTIBYTE_LENGTH): New macro.
4960 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4961 (find_charset_in_str): Argument adjusted.
4962 (CHAR_LEN): Modified.
427ec082 4963
5ec14d3c
KH
4964 * charset.c: In this entry, just `Modified' means that codes for a
4965 composite character is deleted.
4966 (Qcomposition) (leading_code_composition)
4967 (charset_composition) (min_composite_char) (cmpchar_table)
4968 (cmpchar_table_size) (n_cmpchars): Deleted.
4969 (SPLIT_COMPOSITE_SEQ): Deleted.
4970 (SPLIT_MULTIBYTE_SEQ): Modified.
4971 (char_to_string): Renamed from non_ascii_char_to_string.
4972 Modified.
4973 (string_to_char): Renamed from string_to_non_ascii_char.
4974 (split_string): Renamed from split_non_ascii_string.
4975 (char_printable_p) (Fsplit_char)
4976 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4977 (char_bytes) (Fchar_width) (strwidth): Modified.
4978 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4979 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4980 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4981 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4982 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4983 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4984 (Fcmpchar_cmp_count): Deleted.
4985 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4986 (init_charset_once): Modified.
4987 (syms_of_charset): Modified.
4988
4989 * cmds.c (internal_self_insert): Adjusted for the change of
4990 CHAR_STRING.
4991
4992 * coding.h (emacs_code_class_type): Delete the member
4993 EMACS_leading_code_composition.
4994 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4995 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4996 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4997 (COMPOSING_WITH_RULE_P): Macros deleted.
4998 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4999 macros.
5000 (struct composition_data): New structure.
5001 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5002 (struct coding_system): New members composition_rule_follows,
5003 cmp_data, cmp_data_start, cmp_data_index.
5004 (coding_save_composition) (coding_free_composition_data)
5005 (coding_adjust_composition_offset): Extern them.
5006
5007 * coding.c: Include composite.h.
5008 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5009 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5010 of multibyte code here.
5011 (DECODE_CHARACTER_DIMENSION2): Likewise.
5012 (detect_coding_emacs_mule): Change the case label from
5013 EMACS_leading_code_composition to 0x80.
5014 (detect_coding_iso2022): Handle new composition sequence.
5015 (DECODE_ISO_CHARACTER): Likewise.
5016 (check_composing_code): Deleted.
5017 (coding_allocate_composition_data): New function.
5018 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5019 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5020 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5021 (decode_coding_iso2022): Handle new composition sequence.
5022 (ENCODE_ISO_CHARACTER): Don't check composition here.
5023 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5024 (ENCODE_COMPOSITION_NO_RULE_START)
5025 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5026 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5027 (ENCODE_COMPOSITION_FAKE_START): New macro.
5028 (encode_coding_iso2022): Handle new composition sequence.
5029 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5030 (encode_coding_sjis_big5): Ignore composition.
5031 (setup_coding_system): Initialize new members of struct
5032 coding_system. Enable composition only when the coding system has
5033 `composition' property t.
5034 (coding_free_composition_data) (coding_adjust_composition_offset)
5035 (coding_save_composition) (coding_restore_composition): New
5036 functions.
5037 (code_convert_region): Call coding_save_composition for encoding
5038 and coding_allocate_composition_data for decoding. Don't skip
5039 ASCII characters if we handle composition on encoding. Call
5040 signal_after_change with Check_BORDER.
5041 (code_convert_string): Call coding_save_composition for encoding
5042 and coding_allocate_composition_data for decoding. Don't skip
5043 ASCII characters if we handle composition on encoding.
5044 (code_convert_string1): Set Vlast_coding_system_used after calling
5045 code_convert_string.
5046 (code_convert_string_norecord): Disable composition.
5047 (Fset_terminal_coding_system_internal): Likewise.
5048 (Fset_safe_terminal_coding_system_internal): Likewise.
5049 (Fset_keyboard_coding_system_internal): Likewise.
5050 (init_coding_once): Set emacs_code_class[0x80] to
5051 EMACS_invalid_code.
5052
5053 * composite.h: New file.
5054
5055 * composite.c: New file.
5056
5057 * data.c (Faref): Delete codes for a composite character..
5058 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5059
5060 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5061 (struct glyph): Add new sub-structure cmp to the union `u'.
5062 (enum display_element_type): New member IT_COMPOSITION.
5063 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5064 (struct it): New members cmp_id, cmp_len.
5065
5066 * dispnew.c (direct_output_forward_char): Check point moving into
5067 or out of a composition. If so, give up direct method.
5068
5069 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5070
5071 * editfns.c (Fchar_to_string): Adjusted for the change of
5072 CHAR_STRING.
5073 (general_insert_function): Likewise.
5074 (Finsert_char): Likewise.
5075 (Fsubst_char_in_region): Likewise. Call update_compositions.
5076 (Ftranslate_region): Call update_compositions.
5077 (Ftranspose_regions): Call update_compositions.
5078
5079 * emacs.c (main): Call syms_of_composite.
5080
5081 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5082 CHAR_STRING.
5083 (Finsert_file_contents): Set Vlast_coding_system_used before
5084 calling signal_after_change. Call update_compositions if some
5085 texts are inserted..
5086 (Fwrite_region): Adjusted for the change of a_write and e_write.
5087 (a_write): Argument changed. Work based on character position,
5088 not byte position.
5089 (e_write): Argument changed. Handle new way of composition.
5090
5091 * fns.c (Flength): The length of char-table is MAX_CHAR.
5092 (concat): Adjusted for the change of CHAR_STRING.
5093 (Ffillarray): Adjusted for the change of CHAR_STRING.
5094 (Fset_char_table_default): Delete codes for a composite character.
5095 (hash_put): Return hash index.
5096
5097 * fontset.h (struct font_info): New member vertical_centering.
5098 (Vvertical_centering_font_regexp): Extern it.
5099
5100 * fontset.c (Vvertical_centering_font_regexp): New variable.
5101 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5102 Set Vignore_relative_composition to nil.
5103 (fs_load_font): Initialize `vertical_centering' of struct
5104 font_info.
5105
5106 * indent.c (check_composition): New function.
5107 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5108 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5109 (current_column_1): Handle new way of composition.
5110 (Fmove_to_column): Likewise.
5111 (compute_motion): Likewise.
5112
5113 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5114 (insert_char): Likewise.
5115 (insert): Call update_compositions.
5116 (insert_and_inherit): Likewise.
5117 (insert_before_markers): Likewise.
5118 (insert_before_markers_and_inherit): Likewise.
5119 (insert_from_string): Likewise.
5120 (insert_from_string_before_markers): Likewise.
5121 (insert_from_buffer): Likewise.
5122 (replace_range): Likewise.
5123 (count_combining_composition): Deleted.
5124 (count_combining_before): Delete codes for a composite character.
5125 (count_combining_after): Likewise.
5126 (del_range_1): Call update_compositions.
5127 (del_range_byte): Likewise.
5128 (del_range_both): Likewise.
5129 (Fcombine_after_change_execute): Likewise.
5130
5131 * intervals.h: Include composite.h.
5132 (get_property_and_range): Extern it.
5133 (Vtext_property_default_nonsticky): Extern it.
427ec082 5134
5ec14d3c
KH
5135 * intervals.c (adjust_intervals_for_insertion): To check stickines
5136 of properties, pay attention to text-property-default-nonsticky.
5137 (merge_properties_sticky): Likewise.
5138 (get_property_and_range): New function.
5139
5140 * keyboard.c (Vdisable_point_adjustment): New variable.
5141 (Vglobal_disable_point_adjustment): New variable.
5142 (syms_of_keyboard): Declare them as Lisp variables.
5143 (command_loop_1): Check them and call adjust_point_for_property if
5144 necessary.
5145 (adjust_point_for_property): New function.
5146
5147 * keymap.c (push_key_description): Adjusted for the change of
5148 CHAR_STRING.
5149 (Ftext_char_description): Likewise.
5150
5151 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5152 (hash_put): Adjusted for the change of the definition.
5153 (signal_after_change): Likewise.
5154 (check_point_in_composition): Extern it.
5155
5156 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5157 Delete a code that handles an invalid too-long multibyte sequence
5158 because we are now sure that we never encounter with such a
5159 sequence.
5160 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5161 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5162 (init_obarray): Likewise.
5163 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5164
5165 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5166
5167 * process.c: Include composite.h.
5168 (read_process_output): Call update_compositions.
5169
5170 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5171
5172 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5173
5174 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5175 character.
5176
5177 * term.c (encode_terminal_code): Delete codes for a composite
5178 character. Adjusted for the change of CHAR_STRING.
5179 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5180 Delete codes for a composite character.
5181
5182 * textprop.c (Vtext_property_default_nonsticky): New variable
5183 (syms_of_textprop): Declare it as a Lisp variable.
5184
5185 * window.c (Frecenter): Clear all caches of compositions.
5186
5187 * xdisp.c (it_props): Add an entry for composition.
5188 (face_before_or_after_it_pos): For composition, check face of a
5189 character after the composition.
5190 (handle_composition_prop): New function.
5191 (get_next_display_element): Adjusted for the change of
5192 CHAR_STRING.
5193 (set_iterator_to_next): Handle the case that it->method ==
5194 next_element_from_composition.
5195 (next_element_from_composition): New function.
5196 (message_dolog): Adjusted for the change of CHAR_STRING.
5197 (set_message_1): Likewise.
5198 (check_point_in_composition): New function.
5199 (reconsider_clip_changes): If point moved into or out of
5200 composition, set b->clip_changed to 1 to force updating of the
5201 screen.
5202 (disp_char_vector): Delete codes for a composite character.
5203 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5204
5205 * xfaces.c (choose_face_fontset_font): Delete codes for a
5206 composite character.
5207 (realize_x_face): Likewise. Change a place to set local variable
5208 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5209
5210 * xfns.c: Include intervals.h.
5211 (syms_of_xfns): Make `display' property nonsticky by default.
5212
5213 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5214 for find_charset_in_str.
5215
5216 * xterm.h (struct x_output): Change member font_baseline to
5217 baseline_offset.
5218
5219 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5220 for composition.
5221 (x_append_composite_glyph): New function.
5222 (VCENTER_BASELINE_OFFSET): New macro.
5223 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5224 of struct it for the composition. Cache pixel offsets in the
5225 struct composition. Delete codes for a composite character.
5226 Handle Vignore_relative_composition in composition code.
5227 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5228 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5229 (x_compute_glyph_string_overhangs): Likewise.
5230 (x_get_glyph_overhangs): Delete codes for a composite character.
5231 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5232 (x_draw_glyph_string_background): Likewise. Delete codes for
5233 checking s->gidx for a composition.
5234 (x_draw_glyph_string_foreground): Delete code for a composite
5235 character.
5236 (x_draw_composite_glyph_string_foreground): New function.
5237 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5238 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5239 (struct work): Deleted.
5240 (x_fill_composite_glyph_string): Argument changed. Mostly
5241 rewritten for that.
5242 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5243 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5244 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5245 (BUILD_GLYPH_STRINGS): For composition, call
5246 BUILD_COMPOSITE_GLYPH_STRING.
5247 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5248 f->output_data.x->font_baseline.
5249
c3c60f13
GM
52501999-12-14 Gerd Moellmann <gerd@gnu.org>
5251
5252 * xterm.c (show_mouse_face): Don't use updated_area, use
5253 TEXT_AREA.
5254
83c8f461 52551999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5256
5257 * minibuf.c (Fall_completions): Doc fix.
5258
83c8f461 52591999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5260
5261 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5262 has been changed by the Lisp code.
5263
d8eccf12
GM
52641999-12-12 Gerd Moellmann <gerd@gnu.org>
5265
5266 * xfns.c: Indentation fixes.
5267
ae56feae
SM
52681999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5269
5270 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5271
dfa1c6ae
GM
52721999-12-10 Gerd Moellmann <gerd@gnu.org>
5273
5274 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5275 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5276
5277 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5278 to frame.h.
5279
ec18280f
SM
52801999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5281
5282 * keyboard.c (Qratio): New symbol.
5283 (scroll_bar_parts): Add `Qratio' to it.
5284 (syms_of_keyboard): Init `Qratio'.
5285 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5286 * xterm.c (#includes): Allow compilation with only Xaw.
5287 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5288 (xt_action_hook): Replace XAW3D by XAW.
5289 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5290 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5291 Determine epsilon dynamically and don't try to be too clever.
5292 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5293 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5294 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5295 scrollbar (using `ratio').
5296 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5297 scrollbar we have so as to set it up more optimally and to fix
5298 xaw3d_arrow_scroll and xaw3d_pick_top.
5299 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5300 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5301 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5302 is not ignored, using a major gross hack.
5303 (x_initialize): Init default values for xaw3d_arrow_scroll and
5304 xaw3d_pick_top.
5305
83b6d970
DL
53061999-12-09 Dave Love <fx@gnu.org>
5307
5308 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5309
3648c842
GM
53101999-12-08 Gerd Moellmann <gerd@gnu.org>
5311
5312 * eval.c: Remove conditional compilation on `standalone'.
5313 (call_debugger): When entering the debugger while redisplaying,
5314 reset redisplaying_p, and go back to the top-level if the debugger
5315 returns.
5316
05e71564
GM
53171999-12-07 Gerd Moellmann <gerd@gnu.org>
5318
5319 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5320 basic faces are realized before trying to use face `menu'.
5321
5322 * window.c (delete_window): Block input for the time window
5323 matrices are being changed.
5324
b46cd536
DL
53251999-12-07 Dave Love <fx@gnu.org>
5326
5327 * lread.c (Fintern_soft): Fix newlines in doc string.
5328
96acb1f7
GM
53291999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5330
5331 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5332 duplicate definition of ElfW.
5333 (find_section): Copied from unexsgi.c.
5334 (unexec): Use find_section. Adjust whitespace. Initialize
5335 new_data2_offset based on old_data, not sbss (this fixes a bug on
5336 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5337 Adjust test for presence of .mdebug section to the new return
5338 value of find_section.
427ec082 5339
96acb1f7
GM
53401999-12-07 Gerd Moellmann <gerd@gnu.org>
5341
5342 * unexelf.c: Merge changes from 20.5.
5343 (unexec): Handle .lit4 and .lit8 unconditionally.
5344
5345 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5346 unexsgi.o again.
427ec082 5347
96acb1f7
GM
5348 * m/iris5d.h (UNEXEC): Likewise.
5349
7dae4502
SM
53501999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5351
5352 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5353 (syms_of_editfns): Register it.
5354 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5355 (del_range_1, del_range_2): Add a ret_string argument to
5356 request that the deleted text be returned.
5357 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5358 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5359 * casefiddle.c (casify_region): Update del_range_1 call.
5360 * coding.c (code_convert_region): Update del_range_2 call.
5361 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5362
397e4fae
GM
53631999-12-06 Gerd Moellmann <gerd@gnu.org>
5364
5365 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5366
3d973f71
GM
53671999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5368
5369 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5370
740e985f
EZ
53711999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5372
5373 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5374
5375 * insdel.c (adjust_markers_for_delete): Fix last change.
5376
2d764c78
EZ
53771999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5378
5379 Changes for automatic remapping of X colors on terminal frames:
5380
5381 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5382 frames.
5383 (Vface_tty_color_alist): Remove.
5384 (tty_defined_color): New function.
5385 (defined_color): Rewrite to support any type of frame.
5386 (tty_color_name): New function.
5387 (face_color_supported_p, Fface_color_gray_p,
5388 Fface_color_supported_p): Support non-X frames.
5389 (load_color): Enclose the color name in quotes, in the log
5390 messages. Remove DOS-specific version of load_color.
5391 (realize_tty_face): Take the supported colors from
5392 tty-color-alist. Support translation of X colors to the closest
5393 tty color, for both MSDOS and tty frames.
5394 [MSDOS]: Don't invert face colors if they were taken from the
5395 frame colors.
5396 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5397
5398 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5399 Define a mostly empty surrogate.
5400 (tty_display): Declare.
5401
5402 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5403 tty_display.
5404 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5405 frames when the frame's param_alist includes 'reverse.
5406 (tty_display): Define.
5407 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5408 output_data.x member.
5409 (Fframe_parameters): Return foreground and background color names
5410 on tty frames as well, in addition to MSDOS frames.
5411
5412 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5413 selected_frame.
5414 (struct x_output): Remove unused members; document who uses each
5415 member.
5416 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5417 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5418 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5419 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5420 unused macro definintions.
5421
5422 * msdos.c (IT_set_frame_parameters): Don't call
5423 recompute_basic_faces, the next redisplay will, anyway.
5424 (x_current_display): Remove unused variable.
5425 Many functions: changes for Lisp_object selected_frame.
5426 (IT_set_face): If the tty_reverse_p flag is set for the face,
5427 reverse the foreground and background colors.
5428 (Fmsdos_remember_default_colors): New function.
5429 (syms_of_msdos): Defsubr it.
5430 (IT_set_frame_parameters): Use initial_screen_colors[] when
5431 creating a new frame. If the frame parameters include 'reverse,
5432 swap the foreground and background colors.
5433 (internal_terminal_init): Initialize initial_screen_colors to -1.
5434 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5435 cus-start.el.
5436
5437 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5438
5439 * xfns.c (x_defined_color): Rename from defined_color. All
5440 callers changed.
5441 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5442 all callers changed.
5443 (Fxw_color_values): Renamed from Fx_color_values; all callers
5444 changed.
5445 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5446 callers changed.
5447 (x_window_to_frame, x_any_window_to_frame,
5448 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5449 x_top_window_to_frame): Use !FRAME_X_P instead of
5450 f->output_data.nothing.
5451 * xterm.h (x_defined_color): Rename from defined_color.
5452
5453 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5454 f->output_data.nothing.
5455 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5456 all callers changed.
5457 (Fxw_color_values): Renamed from Fx_color_values; all callers
5458 changed.
5459 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5460 callers changed.
5461
5462 * dispextern.h (tty_color_name): Add prototype.
5463
5464 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5465 f->output_data.nothing.
5466 * w32menu.c (menubar_id_to_frame): Likewise.
5467 * w32term.h (w32_output): Declare.
5468
5469 * dosfns.c (Qmsdos_color_translate): Remove.
5470 (msdos_stdcolor_name): Now returns a Lisp_Object.
5471 * dosfns.h (Qmsdos_color_translate): Remove.
5472
5473 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5474
b3e5232e
KH
54751999-12-06 Kenichi Handa <handa@etl.go.jp>
5476
5477 * fileio.c (decide_coding_unwind): Renamed from
5478 set_auto_coding_unwind.
5479 (Finsert_file_contents): Make single unwind protect to call both
5480 Vset_auto_coding_function and Ffind_operation_coding_system.
5481
5482 * insdel.c (adjust_markers_for_delete): Make it non-static.
5483
db0e466c
SM
54841999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5485
5486 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5487 operators and handle them properly.
5488 * regex.h (RE_ALL_GREEDY): New option.
5489 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5490 sorting would put it.
5491 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5492 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5493
22afa6e8
DL
54941999-12-04 Dave Love <d.love@dl.ac.uk>
5495
5496 * m/arm.h: New file.
5497
40afb967
DL
54981999-12-03 Dave Love <fx@gnu.org>
5499
5500 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5501
ddf8eff5
GM
55021999-12-02 Gerd Moellmann <gerd@gnu.org>
5503
5504 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5505 for building with Motif.
5506
5507 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5508 unexelf.o.
427ec082 5509
ddf8eff5
GM
5510 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5511
fa09a82d
DL
55121999-12-01 Dave Love <fx@gnu.org>
5513
5514 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5515
ddf8eff5
GM
55161999-11-28 Gerd Moellmann <gerd@gnu.org>
5517
5518 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5519 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5520 macros.
5521
5522 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5523
fa09a82d
DL
55241999-11-28 eliz <eliz@dlpx1>
5525
5526 * emacs.c (synchronize_locale): Avoid compiler warnings about
5527 pointer type mismatch.
5528
f9632fc8
GM
55291999-11-28 Gerd Moellmann <gerd@gnu.org>
5530
717d0121
GM
5531 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5532 out of range position.
5533
427ec082 5534 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5535 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5536
59c65f1e
EZ
55371999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5538
613a8346
EZ
5539 * charset.c (Fmake_char_internal): Print the charset ID when
5540 signalling an error.
5541
59c65f1e
EZ
5542 * emacs.c (synchronize_locale): Avoid compiler warnings about
5543 pointer type mismatch.
5544
83c8f461 55451999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5546
5547 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5548
18df9369
GM
55491999-11-26 Gerd Moellmann <gerd@gnu.org>
5550
65a3ccf7
GM
5551 * puresize.h (BASE_PURESIZE): Increase to 550000.
5552
b3b98592
GM
5553 * textprop.c (set_text_properties): New function. Like
5554 Fset_text_properties, but with additional parameter
5555 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5556 changes.
5557 (Fset_text_properties): Use it.
5558
5559 * insdel.c (insert_1_both): Call set_text_properties with last
5560 parameter nil so that no after changes will be signaled.
5561
5562 * lisp.h: Add prototype for set_text_properties.
5563
18df9369
GM
5564 * xfaces.c (set_lface_from_font_name): Fix previous change.
5565 (recompute_basic_faces): Change assert to abort.
5566
71a8e74b
DL
55671999-11-25 Dave Love <fx@gnu.org>
5568
5569 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5570 (Fmember, Fdelq, Fdelete): Inline car.
5571 (Fy_or_n_p): Doc fix.
5572
bc6a5782
GM
55731999-11-25 Gerd Moellmann <gerd@gnu.org>
5574
3221576b 5575 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5576 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5577 is not set, try to use a reasonable default.
5578
bc6a5782
GM
5579 * dispnew.c (direct_output_for_insert): Set glyph row's
5580 displays_text_p flag. Correct window's window_end_vpos if
5581 necessary.
5582
0c8559bb
PE
55831999-11-25 Paul Eggert <eggert@twinsun.com>
5584
5585 * emacs.c (fixup_locale): Don't bother to record initial locale.
5586 (synchronize_locale): If the desired locale is nil,
5587 treat it as if it were the empty string,
5588 so that we set the locale from the environment.
5589
35737351
KH
55901999-11-25 Kenichi Handa <handa@etl.go.jp>
5591
5592 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5593 of the current buffer via Fset.
5594
5562b47f
DL
55951999-11-24 Dave Love <fx@gnu.org>
5596
5562b47f
DL
5597 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5598
5599 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5600
00da0e4a
GM
56011999-11-24 Gerd Moellmann <gerd@gnu.org>
5602
5603 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5604
5605 * emacs.c (PVEC_FLAG): New variable.
5606
b1775dc1
GM
56071999-11-23 Gerd Moellmann <gerd@gnu.org>
5608
5609 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5610 that fails on IBM PowerPC, AIX 4.2.
427ec082 5611
08de6200
EZ
56121999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5613
5614 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5615 string of mode-line-format. Remove the obsolete %t.
5616
02fda8ff
GM
56171999-11-22 Gerd Moellmann <gerd@gnu.org>
5618
f2fa858f
GM
5619 * dispnew.c (direct_output_for_insert): Increment glyph positions
5620 for glyphs from buffer text only.
5621
02fda8ff
GM
5622 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5623 (gdb_data_seg_bits): New variables.
427ec082 5624
02fda8ff
GM
5625 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5626 work on systems not allowing enumerators > INT_MAX, and it
5627 won't work if EMACS_INT is long long.
5628
1b0d24e7
PE
56291999-11-22 Paul Eggert <eggert@twinsun.com>
5630
5631 Port to SunOS 4.1.x again. Help out with Alpha port.
5632 Rename messages-locale to system-messages-locale,
5633 and likewise for time-locale.
427ec082 5634
1b0d24e7
PE
5635 * callproc.c (strerror): Remove decl.
5636 * fileio.c (strerror): Likewise.
5637 * process.c (strerror): Likewise.
5638 * emacs.c (strerror): Likewise.
5639 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5640 All uses changed.
5641 (Vprevious_system_messages_locale): Likewise, from
5642 Vprevious_messages_locale.
5643 (Vsystem_time_locale): Likewise, from Vtime_locale.
5644 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5645 (ABORT_RETURN_TYPE): New macro.
5646 (abort): Return type is now ABORT_RETURN_TYPE.
5647 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5648 defined.
5649 (syms_of_emacs): messages-locale -> system-messages-locale,
5650 previous-messages-locale -> previous-system-messages-locale,
5651 time-locale -> system-time-locale,
5652 previous-time-locale -> previous-system-time-locale.
5653
5654 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5655 (const): Do not define; that's config.h's job.
5656 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5657 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5658 (<stddef.h>): Include if STDC_HEADERS is defined.
5659 (FREE_RETURN_TYPE): New macro.
5660 (free): Return type is now FREE_RETURN_TYPE.
5661
5662 * lisp.h (synchronize_system_time_locale): Renamed from
5663 synchronize_time_locale. All uses changed.
5664 (synchronize_system_messages_locale): Likewise, from
5665 synchronize_messages_locale.
5666
5667 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5668 stdlib.h now does this.
5669
5670 * process.c (sys_siglist): Remove.
5671
5672 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5673 New macros.
5674
5675 * syntax.c (scan_sexps_forward): Use abort, not assert.
5676
5677 * sysdep.c (my_sys_siglist): New var.
5678 (sys_siglist): New macro. Remove old initialized vars of same name.
5679 (init_signals): Initialize sys_siglist.
5680
5681 * xfns.c (abort): Remove decl; stdlib.h now does this.
5682
0dcd5b54
DL
56831999-11-18 Dave Love <fx@gnu.org>
5684
946173ad
DL
5685 * filelock.c: Add forward declaration for get_boot_time_1.
5686
0dcd5b54
DL
5687 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5688
71447e8f
GM
56891999-11-18 Gerd Moellmann <gerd@gnu.org>
5690
5691 * buffer.h (struct buffer_text): Add comment about moving
5692 buffer text if REL_ALLOC is defined.
5693
eeedff63
KH
56941999-11-18 Kenichi Handa <handa@etl.go.jp>
5695
5696 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5697
5698 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5699 memory for push_key_description.
5700
5701 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5702 allocate memory for push_key_description.
5703 (describe_buffer_bindings): Likewise.
5704
5d7e4a2c
GM
57051999-11-17 Gerd Moellmann <gerd@gnu.org>
5706
5707 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5708 (Fx_hide_busy_cursor): Ditto.
5709
57101999-11-17 Marco Walther <walther@siemens-pyramid.com>
5711
5712 * unexsni.c (unexec): Handle .rel.dyn section.
5713
b5b41e02
DL
57141999-11-16 Dave Love <fx@gnu.org>
5715
5716 * doc.c (Fdocumentation): Remove gcpro here too.
5717
e35b6123
GM
57181999-11-16 Gerd Moellmann <gerd@gnu.org>
5719
5720 * keyboard.c (command_loop_1): Remove no_redisplay.
5721
83c8f461 57221999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5723
5724 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5725 in noninteractive.
5726
b05d3bee
GM
57271999-11-14 Gerd Moellmann <gerd@gnu.org>
5728
5bcfeb49
GM
5729 * xdisp.c (ensure_echo_area_buffers): New.
5730 (with_echo_area_buffer): Use it.
5731 (setup_echo_area_for_printing): Ditto.
5732
b05d3bee
GM
5733 * buffer.c (indicate-empty-lines): Doc-fix.
5734
9b2e6e4c
GM
57351999-11-12 Gerd Moellmann <gerd@gnu.org>
5736
e7f90eab
GM
5737 * term.c (term_init): If "op" isn't available, don't support color
5738 because we can't switch back to the default foreground and
5739 background.
5740
9b2e6e4c
GM
5741 * doc.c (Fdocumentation_property): Remove GCPRO because
5742 Fsubstitute_command_keys gcpro's the string.
5743
1bf21027
KH
57441999-11-12 Kenichi Handa <handa@etl.go.jp>
5745
5746 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5747
3bc6df53
GM
57481999-11-11 Gerd Moellmann <gerd@gnu.org>
5749
5750 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5751 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5752 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5753
35a5514b
GM
57541999-11-10 Gerd Moellmann <gerd@gnu.org>
5755
5756 * xfns.c (QCuser_data): Removed.
5757 (syms_of_xfns): Initialization of QCuser_data removed.
5758 (parse_image_spec): Don't handle :user-data specially. Allow
5759 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5760 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5761 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5762 parse_image_spec accordingly.
5763
83c8f461 57641999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5765
5766 * cmds.c (Fbeginning_of_line): Doc fix.
5767 (Fend_of_line): Doc fix.
5768
5769 * editfns.c (Fline_beginning_position): If N is not 1,
5770 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5771
5772 * syntax.c (Fforward_word): Handle fields even if would have hit
5773 an edge of the buffer. Return nil if affected by fields.
5774
83c8f461 57751999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5776
5777 * editfns.c (preceding_pos): Function deleted.
5778 (text_property_stickiness): Decrement POS directly.
5779 Fix a confusion that used PT instead of POS.
5780
5781 * editfns.c (find_field): Properly handle the case
5782 of a field boundary where `field' inherits from neither side.
5783
5784 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5785 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5786
fa9aabf6
GM
57871999-11-08 Gerd Moellmann <gerd@gnu.org>
5788
5789 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5790 BEFORE_POTENTIAL_GC before DISCARD.
5791
4015b3c0
GM
57921999-11-07 Gerd Moellmann <gerd@gnu.org>
5793
033a5fa3
GM
5794 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5795
5796 * lisp.h: Add prototype for unmark_byte_stack.
5797
5798 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5799 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5800 XUNMARK.
5801
55b064bd
GM
5802 * xdisp.c (resize_mini_window): Fix computation of needed
5803 mini-window height.
5804
5805 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5806 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5807
4015b3c0 5808 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5809 locally there. Rearrange case statements so that those most
4015b3c0
GM
5810 frequently executed come first. Avoid goto's in frequently
5811 executed cases.
5812
fe512f27
GM
58131999-11-05 Gerd Moellmann <gerd@gnu.org>
5814
dd59e217
GM
5815 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5816 AFTER_POTENTIAL_GC around internal_catch.
5817
bcf28080
GM
5818 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5819 relocate_byte_pcs.
5820 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5821
5822 * eval.c (struct catchtag): Add member byte_stack.
5823 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5824 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5825 catchtag.
5826 (unwind_to_catch): Restore byte_stack_list from catchtag.
5827
5828 * lisp.h: Add prototypes for new functions in bytecode.c.
5829 Add extern declaration for byte_stack_list.
5830
5831 * bytecode.c (struct byte_stack): New.
5832 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5833 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5834 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5835 (HANDLE_RELOCATION): Removed.
5836 (Fbyte_code): Use byte_stack structures.
5837
4d59c34c
GM
5838 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5839
fe512f27
GM
5840 * buffer.c (syms_of_buffer): Extend documentation of
5841 mode-line-format.
5842
60b64cd6
GM
58431999-11-04 Gerd Moellmann <gerd@gnu.org>
5844
5845 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5846
5847 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5848 Ferase_field instead of Fdelete_field.
5849
b51b619b
GM
58501999-11-03 Gerd Moellmann <gerd@gnu.org>
5851
5852 * dispnew.c (Finternal_show_cursor): Change it to set the
5853 cursor on/off, not toggle its state.
5854 (Finternal_show_cursor_p): New.
5855 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5856
5865af0d
DL
58571999-11-03 Dave Love <fx@gnu.org>
5858
5859 * charset.c (split_non_ascii_string): Define return value.
5860
82a700f3
GM
58611999-11-03 Gerd Moellmann <gerd@gnu.org>
5862
edfef199
GM
5863 * minibuf.c (string_to_object): New.
5864 (read_minibuf_noninteractive): New.
5865 (read_minibuf): Call read_minibuf_noninteractive if
5866 noninteractive. Use string_to_object.
5867
82a700f3
GM
5868 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5869
b5540f0d
DL
58701999-11-02 Dave Love <fx@gnu.org>
5871
e69dcd60
DL
5872 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5873
827a1788
DL
5874 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5875 declared with glibc2.
b5540f0d 5876
a69a6e61
GM
58771999-11-02 Gerd Moellmann <gerd@gnu.org>
5878
5879 * lisp.h (QUIT): Give it statement form.
5880
87e21fbd
DL
58811999-11-02 Dave Love <fx@gnu.org>
5882
5883 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5884
1b335865
GM
58851999-11-02 Gerd Moellmann <gerd@gnu.org>
5886
9fb5e03d
GM
5887 * xfns.c (QCuser_data): New.
5888 (syms_of_xfns): Initialize QCuser_data.
5889 (parse_image_spec): Ignore :user-data DATA properties.
5890
1b335865
GM
5891 * xdisp.c (display_line): Set charpos of first glyph in blank
5892 lines not corresponding to any text to -1, even if no glyphs are
5893 filled in in that line.
5894
e76f1c44
GM
58951999-11-01 Gerd Moellmann <gerd@gnu.org>
5896
427ec082 5897 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5898 png_get_sRGB in #ifdef.
5899
111259b4
GM
5900 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5901 (syms_of_display): Use the new name.
5902
dd5c96e8
GM
5903 * textprop.c (verify_interval_modification): Signal text-read-only
5904 instead of calling error.
5905
db8878fb
GM
5906 * data.c (Qtext_read_only): New built-in error.
5907 (syms_of_data): Initialize it.
5908
5909 * lisp.h: Add extern declaration for Qtext_read_only.
5910
e76f1c44
GM
5911 * syntax.c: Remove whitespace after open or in front of closing
5912 parentheses.
5913
83c8f461 59141999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5915
5916 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5917
7843e09c
GM
59181999-10-31 Gerd Moellmann <gerd@gnu.org>
5919
575ed805
GM
5920 * xdisp.c (resize_mini_window): Compute needed height differently.
5921
7843e09c
GM
5922 * fns.c (Flength): Unroll loop over lists.
5923
5924 * xdisp.c (append_space): Return non-zero if space was appended.
5925 (display_line): Set charpos of first glyph to -1 only if that
5926 glyph is the space added by append_glyph.
5927
83c8f461 59281999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5929
5930 * print.c (strout): Consider `noninteractive' and use stdout
5931 only when PRINTCHARFUN is t.
5932
5933 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5934 (gcpro_level): Declare it extern.
5935 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5936 Alternate definitions that set `level' and increment `gcpro_level'.
5937 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5938
5939 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5940 (init_eval) [DEBUG_GCPRO]: Initialize it.
5941 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5942 from remaining gcprolist.
5943
3636f7a3
KH
59441999-10-29 Kenichi Handa <handa@etl.go.jp>
5945
5946 * coding.c (code_convert_region): Update `dst' correctly.
5947
a2ad7096
GM
59481999-10-28 Gerd Moellmann <gerd@gnu.org>
5949
5950 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5951 (Frassoc): Rewritten.
5952
1e3196e8
GM
59531999-10-27 Noah Friedman <friedman@splode.com>
5954
5955 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5956 Define PTY_NAME_SPRINTF.
5957 Redefine PTY_TTY_NAME_SPRINTF.
5958 * config.in: Add undef for HAVE_DEV_PTMX.
5959
83c8f461 59601999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5961
5962 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5963 as arg to DEBUG_POP and DEBUG_PRINT.
5964
83c8f461 59651999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5966
5967 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5968 (Ffset): Call Qad_activate_internal.
5969 (syms_of_data): Initialize Qad_activate_internal.
5970
26922151
GM
59711999-10-27 Gerd Moellmann <gerd@gnu.org>
5972
5973 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5974 Vterminal_frame is selected and Vwindow_system is non-nil.
5975
67a5596f
GM
59761999-10-26 Gerd Moellmann <gerd@gnu.org>
5977
2bea706b
GM
5978 * xdisp.c (echo_area_display): Put previous change in #if 0.
5979
67a5596f
GM
5980 * emacs.c (standard_args): Add `file' as synonym for `visit',
5981 `execute' as synonym for `eval'.
5982 (main): Add new options to usage message.
5983
81dc5de5
GM
59841999-10-25 Gerd Moellmann <gerd@gnu.org>
5985
5986 * data.c (Qhash_table): New.
5987 (Ftype_of): Return it for hash tables.
5988 (syms_of_data): Initialize Qhash_table.
5989
83c8f461 59901999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5991
5992 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5993
66e4690f 59941999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5995
7539e11f
KR
5996 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5997 lisp.h.
5998
5999 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6000 Fbuffer_local_variables, Fother_buffer, record_buffer,
6001 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6002 swap_out_buffer_local_variables, overlays_at, overlays_in,
6003 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6004 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6005 Foverlay_put, report_overlay_modification, evaporate_overlays):
6006 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6007 references.
6008 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6009 swap_in_symval_forwarding, set_internal, default_value,
6010 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6011 Fmake_variable_frame_local, Flocal_variable_p,
6012 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6013 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6014 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6015 * emacs.c (main): Likewise.
6016 * fontset.c (fs_load_font, fs_register_fontset,
6017 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6018 Fnew_fontset, Fset_fontset_font): Likewise.
6019 * frame.c (do_switch_frame, next_frame, prev_frame,
6020 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6021 Likewise.
6022 * keyboard.c (read_char, help_char_p, event_to_kboard,
6023 kbd_buffer_get_event, timer_start_idle, timer_check,
6024 make_lispy_event, apply_modifiers, reorder_modifiers,
6025 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6026 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6027 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6028 Fcommand_execute, Fexecute_extended_command): Likewise.
6029 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6030 Fall_completions): Likewise.
6031 * window.c (Fset_window_margins): Likewise.
6032
6033 * callint.c (quotify_args): Don't explicitly use struct
6034 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6035
3a7093d8
KR
6036 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6037 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6038 if __ELF__ is defined.
6039
2a3d7146
GM
60401999-10-24 Gerd Moellmann <gerd@gnu.org>
6041
6042 * window.c (Fnext_window): Add a QUIT in the loop.
6043
8ac52782
GM
60441999-10-23 Gerd Moellmann <gerd@gnu.org>
6045
427ec082 6046 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6047 New targets.
6048
05f0d15a
DL
60491999-10-22 Dave Love <fx@gnu.org>
6050
6051 * emacs.c (main): Enable profiling conditional on __linux also.
6052
882fb0e6
GM
60531999-10-20 Gerd Moellmann <gerd@gnu.org>
6054
6055 * xrdb.c (x_load_resources): Set default resources for resource
6056 classes instead of for the specific Emacs.
6057
b5f5bc31
GM
60581999-10-19 Gerd Moellmann <gerd@gnu.org>
6059
66f4dd69
GM
6060 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6061 defines it that way.
427ec082 6062
b5f5bc31
GM
6063 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6064 if selected_frame is equal to Vterminal_frame.
6065
68c45bf0 60661999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6067
68c45bf0 6068 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6069
68c45bf0
PE
6070 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6071 when dumping, so that the dumped Emacs doesn't have stray locale info.
6072 (dired.o): Depend on systime.h.
6073 (editfns.o): Depend on coding.h.
6074
6075 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6076 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6077 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6078 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6079 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6080 Include <config.h> before any system include files.
6081
6082 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6083 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6084 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6085 xmenu.c, xterm.c:
6086 Do not include <stdlib.h>, as <config.h> does this now.
6087
6088 * callproc.c (Fcall_process):
6089 Synchronize messages locale before invoking strerror.
6090 Decode resulting string with locale-coding-system.
6091
6092 * coding.c (Vlocale_coding_system): New var.
6093 (syms_of_coding): Adjust to above change.
6094 (emacs_strerror): New function.
6095
6096 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6097
68c45bf0
PE
6098 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6099 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6100 HAVE_STRSIGNAL): New macros.
6101 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6102 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6103
6104 * dired.c: Include "systime.h".
6105 (Ffile_attributes): Do not cast s.st_size to int; this loses
6106 information if int is 32 bits but st_size and EMACS_INT are larger.
6107 Treat large device numbers like large inode numbers.
6108
6109 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6110
6111 * editfns.c: Include coding.h.
6112 (emacs_strftime): Remove decl.
6113 (emacs_strftimeu): New decl.
6114 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6115 Use emacs_strftimeu instead of emacs_strftime.
6116 (Fformat_time_string): Convert format string using
6117 Vlocale_coding_system, and convert result back. Synchronize time
6118 locale before invoking lower level function. Invoke
6119 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6120
68c45bf0
PE
6121 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6122 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6123 Vprevious_time_locale): New variables.
6124 (main): Invoke setlocale early, so that initial error messages are
6125 localized properly. But skip locale-setting if LC_ALL is "C".
6126 Fix up locale when it's safe to do so.
6127 (fixup_locale): Moved here from xterm.c.
6128 (synchronize_locale, synchronize_time_locale,
6129 synchronize_messages_locale): New functions.
6130 (syms_of_emacs): Accommodate above changes.
6131
6132 * fileio.c (report_file_error): Convert strerror output according
6133 to Vlocale_coding_system.
6134 (Finsert_file_contents): Check for arithmetic overflow in
6135 computations that depend on file size. Report IO errors
6136 with emacs_strerror, not strerror.
6137
6138 * fns.c (Fgethash): Declare dflt parameter.
6139
6140 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6141 is defined; that's config.h's job.
6142
6143 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6144 default these values to long, BITS_PER_LONG, and unsigned long.
6145 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6146 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6147 (code_convert_string_norecord, fixup_locale,
6148 synchronize_messages_locale, synchronize_time_locale,
6149 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6150 All Emacs callers of open, close, read, write changed to use
6151 emacs_open, emacs_close, emacs_read, emacs_write.
6152
6153 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6154 changed to file_tell.
6155 (saved_doc_string_position, prev_saved_doc_string_position): Now
6156 of type file_offset.
6157 (init_lread): Do not fix locale here; fixup_locale now does this.
6158
6159 * m/amdahl.h, s/usg5-4.h:
6160 (NSIG): Remove.
6161 (NSIG_MINIMUM): New macro.
6162
6163 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6164 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6165 s/umips.h, s/usg5-4.h:
6166 (SIGIO): Do not undef.
6167 (BROKEN_SIGIO): New macro.
6168
6169 * m/ustation.h:
6170 (SIGTSTP): Do not undef.
6171 (BROKEN_SIGTSTP): New macro.
6172
6173 * s/gnu-linux.h:
6174 (SIGPOLL, SIGURG): Do not undef.
6175 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6176
6177 * s/ptx4.h:
6178 (SIGINFO): Do not undef.
6179 (BROKEN_SIGINFO): New macros.
427ec082 6180
68c45bf0
PE
6181 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6182
6183 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6184 some Emacs-related changes merged.
6185
6186 * print.c (float_to_string): Prepend "-" to representation of a
6187 NaN if the NaN is negative.
6188
6189 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6190 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6191
68c45bf0
PE
6192 * process.c (status_message, sigchld_handler): Synchronize locale,
6193 then use strsignal istead of sys_siglist.
6194 * w32proc.c (sys_wait): Likewise.
427ec082 6195
68c45bf0
PE
6196 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6197 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6198 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6199 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6200 (open, close, read, write, INTERRUPTIBLE_OPEN,
6201 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6202
6203 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6204
6205 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6206 sys_open, open): Remove.
6207 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6208 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6209 macros are no longer used.
6210 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6211 (emacs_close): Renamed from sys_close.
6212 (emacs_read): Renamed from sys_read.
6213 (emacs_write): Renamed from sys_write.
6214 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6215 (dup2): Do not print error on failure; the real dup2 doesn't.
6216 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6217
6218 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6219 is defined.
6220 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6221 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6222 (strsignal): Declare if !HAVE_STRSIGNAL.
6223
6224 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6225 (ElfW): Define in terms of ElfExpandBitsW.
6226
6227 * w32proc.c (sys_siglist): Remove decl.
6228
6229 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6230 with ANSI C.
6231 (display_string): Declare face_string_pos arg.
6232
6233 * xfns.c (Fx_show_tip): Declare timeout param.
6234
6235 * xterm.c: No need to include locale.h.
6236 (x_alloc_lighter_color, x_setup_relief_color):
6237 Pass arg as double, not float, for compatibility with ANSI C.
6238 (fixup_locale): Move to emacs.c.
6239 (x_term_init): Do not setlocale or fixup locale; the main program
6240 does this now.
6241
2f0b74ea
DL
62421999-10-18 Dave Love <fx@gnu.org>
6243
6244 * doc.c (Fdocumentation_property): Gcpro `tem'.
6245
471aa4a0
KH
62461999-10-18 Kenichi Handa <handa@etl.go.jp>
6247
6248 * lread.c (Fload): Calculate bytes of filename correctly.
6249 (openp): Likewise.
6250
aca2020b
KH
62511999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6252
6253 * print.c (print_preprocess): In case print-circle is nil,
6254 add OBJ to Vprint_number_table only when OBJ is a symbol.
6255
1f5fe392 62561999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6257
6258 * coding.c (code_convert_string): Add record_unwind_protect to
6259 assure setting inhibit_pre_post_conversion back to zero. Take
6260 care of the multibyteness of the working buffer.
6261
6262 * coding.c (inhibit_pre_post_conversion): New variable.
6263 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6264 ignore post-read-conversion and pre-write-conversion property of
6265 the coding system.
6266 (code_convert_region_unwind): New function.
6267 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6268 running pre-write-conversion and post-read-conversion.
6269 (code_convert_string): Likewise.
6270
cd876a91
GM
62711999-10-17 Miles Bader <miles@gnu.org>
6272
6273 * editfns.c: Doc fix.
6274
62751999-10-17 Miles Bader <miles@gnu.org>
6276
6277 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6278 argument preconditions of find_before_next_newline in the case
6279 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6280 was indeed at the edge.
6281
62821999-10-17 Miles Bader <miles@gnu.org>
6283
6284 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6285 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6286
6287 * editfns.c (text_property_eq, text_property_stickiness): Don't
6288 use initializers for auto variables of type Lisp_Object.
6289 (find_field): Likewise. Use braces around nested ifs.
6290 (Fline_end_position): Store the raw eol in a variable, so that the
6291 final expression doesn't look so ugly.
6292 (Fconstrain_to_field): Doc fix.
6293 (preceding_pos): Renamed from `preceeding_pos'.
6294 (text_property_stickiness, find_field): Call preceding_pos,
6295 not preceeding_pos.
6296
62971999-10-17 Miles Bader <miles@gnu.org>
6298
6299 * editfns.c (Ffield_string_no_properties): New function.
6300 (text_property_stickiness, preceeding_pos): New functions.
6301 (Ffield_string): Remove PROPS parameter.
6302 (find_field): Add MERGE_AT_BOUNDARY parameter.
6303 Rewrite to use stickiness of `field' property to resolve
6304 ambiguous cases.
6305 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6306 (Fconstrain_to_field): Likewise.
6307 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6308 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6309 Supply new MERGE_AT_BOUNDARY argument to find_field.
6310 (Fline_beginning_position, Fline_end_position): Supply new
6311 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6312 Pass a value of Qt for the ONLY_IN_LINE argument to
6313 Fconstrain_to_field (only matters if N != 1).
6314 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6315 to Fconstrain_to_field.
6316
6317 * minibuf.c (Fminibuffer_complete_word): Use
6318 Ffield_beginning to find the prompt end.
6319
63201999-10-17 Miles Bader <miles@gnu.org>
6321
6322 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6323 behavior when NEW_POS is nil.
6324 (find_field): Use XSETFASTINT instead of make_number.
6325 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6326 input string by seeing where the field begins, instead of
6327 looking at text-properties.
6328
63291999-10-17 Miles Bader <miles@gnu.org>
6330
6331 * editfns.c (Qfield): New variable.
6332 (find_field, Ferase_field, Ffield_string,
6333 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6334 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6335 (make_buffer_string_both): Remove minibuffer-prompt hack.
6336 (syms_of_editfns): Initialize Qfield, and subr entries for
6337 field functions above.
6338 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6339 minibuf_save_list.
6340 Don't initialize minibuffer prompt length.
6341 Wrap prompt text-properties around the entire prompt.
6342 Add 'prompt text-property to prompt.
6343 Get final value with Ffield_string instead of make_buffer_string.
6344 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6345 minibuf_save_list.
6346 (do_completion): Get minibuffer input with Ffield_string
6347 instead of Fbuffer_string.
6348 Erase minibuffer input with Ferase_field instead of erase_buffer.
6349 (Fminibuffer_complete_and_exit): Likewise.
6350 Test whether buffer is empty by looking for the 'prompt text
6351 property at the end.
6352 Set prompt length by looking for the end of the prompt text property,
6353 and save prompt length for later use (since there is no longer a
6354 buffer variable to get it from).
6355 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6356 (syms_of_minibuf): Remove initializations of
6357 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6358 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6359 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6360 Don't initialize prompt_end_charpos field.
6361 * syntax.c (Fforward_word): Likewise.
6362 Constrain to any field.
6363
3f6f7508
GM
63641999-10-16 Gerd Moellmann <gerd@gnu.org>
6365
6366 * window.c (enum save_restore_action): New.
6367 (save_restore_orig_size): Change parameter list. Add
6368 functionality to check for valid orig_top and orig_height members
6369 in a window tree.
6370 (grow_mini_window): Call save_restore_orig_size with new parameter
6371 list.
6372 (shrink_mini_window): Restore old window sizes only if old
6373 size information is valid in all windows in a window tree.
427ec082 6374
06482119
GM
63751999-10-15 Gerd Moellmann <gerd@gnu.org>
6376
2710454d
GM
6377 * xmenu.c (set_frame_menubar): Don't call
6378 x_set_menu_resources_from_menu_face here.
6379 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6380
06482119
GM
6381 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6382
17fa2837
DL
63831999-10-14 Dave Love <fx@gnu.org>
6384
6385 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6386
45f93416
GM
63871999-10-14 Gerd Moellmann <gerd@gnu.org>
6388
6389 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6390 fails and h_errno is TRY_AGAIN.
6391
c765b723
DL
63921999-10-13 Dave Love <fx@gnu.org>
6393
6394 * filelock.c (lock_file): Move gcpro of `fn'.
6395
dace7f4e
GM
63961999-10-10 Gerd Moellmann <gerd@gnu.org>
6397
6398 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6399
83c8f461 64001999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6401
6402 * print.c (print): When removing objects from Vprint_number_table,
6403 only scan the newly added objects.
6404 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6405 unconditionally force it to stay in the table.
6406
85177c86
GM
64071999-10-09 Gerd Moellmann <gerd@gnu.org>
6408
6409 * xfns.c (prepare_image_for_display): Don't try to load image if
6410 loading it failed before.
6411 (lookup_image, prepare_image_for_display): Remember if loading the
6412 image failed.
6413 (xpm_load): Add missing UNBLOCK_INPUT.
6414
6415 * dispextern.h (struct image): New member load_failed_p.
6416
11e4de5d
SM
64171999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6418
f28eba7b 6419 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6420 in the docstring.
6421
f1da8f06
GM
64221999-10-08 Gerd Moellmann <gerd@gnu.org>
6423
6424 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6425 Don't call XSetInputFocus because that can generate additional
6426 FocusIn events.
427ec082 6427
c37bbd4f
GM
64281999-10-07 Jeffrey C Honig <jch@bsdi.com>
6429
6430 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6431
83c8f461 64321999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6433
6434 * process.c (wait_reading_process_input): When trying to suck
6435 input from one process, for accept-process-output,
6436 exit that loop if we get EAGAIN or EWOULDBLOCK.
6437
577d9e2f
GM
64381999-10-07 Gerd Moellmann <gerd@gnu.org>
6439
6440 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6441 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6442 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6443 Fpixmap_spec_p and Qpixmap_spec_p.
6444 (load_face_colors, check_lface_attrs,
6445 merge_face_vector_with_property,
6446 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6447 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6448 Fbitmap_spec_p.
6449
f5737ad2
GM
64501999-10-07 Gerd Moellmann <gerd@gnu.org>
6451
6452 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6453 MODE_LINE_FACE_ID.
6454
6455 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6456 (struct x_resources) [USE_X_TOOLKIT]: New.
6457 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6458 [USE_MOTIF]: New.
6459 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6460 [USE_LUCID]: New.
6461 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6462 (Qmenu): New.
6463 (syms_of_xfaces): Initialize Qmenu.
6464 (realize_basic_faces): Realize face `menu'.
6465 (resolve_face_name): New.
6466 (lface_from_face_name): Use it.
6467 (Finternal_set_lisp_face_attribute): Ditto.
6468 (Fpixmap_spec_p): Rewritten. Extend doc string.
6469
6470 * xmenu.c (set_frame_menubar, xmenu_show): Call
6471 x_set_menu_resources_from_menu_face.
6472
6473 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6474 (toplevel): Include X11/Intrinsic.h.
6475
6a1aa823
DL
64761999-10-03 Ken'ichi Handa <handa@gnu.org>
6477
6478 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6479 correctly.
6480
26901792
DL
64811999-09-30 Kenichi Handa <handa@etl.go.jp>
6482
6483 * category.c (modify_lower_category_set): Set default value of
6484 TABLE correctly.
6485
6486 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6487 size correctly.
6488
64891999-09-29 Gerd Moellmann <gerd@gnu.org>
6490
6491 * editfns.c (Fpropertize): Renamed from Fproperties.
6492
64931999-09-29 Gerd Moellmann <gerd@gnu.org>
6494
6495 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6496 frame that hasn't been initialized yet.
6497
83c8f461 64981999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6499
6500 * keymap.c (Fsingle_key_description): Make tem big enough.
6501 (describe_buffer_bindings): Make buf big enough.
6502
83c8f461 65031999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6504
6505 * intervals.c (get_local_map): Use indirect_function,
6506 not Findirect_function.
6507
26901792
DL
65081999-09-27 Dave Love <fx@gnu.org>
6509
6510 * cm.h: Remove unneeded declaration of ospeed.
6511
65121999-09-26 Gerd Moellmann <gerd@gnu.org>
6513
6514 * lisp.h (toplevel): Add prototype for
6515 next_single_char_property_change.
6516
6517 * textprop.c (next_single_char_property_change): New.
6518
6519 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6520 next_single_char_property_change.
6521
65221999-09-25 Gerd Moellmann <gerd@gnu.org>
6523
6524 * editfns.c (Fproperties): New.
6525 (syms_of_editfns): Defsubr it.
6526
6527 * xfns.c (lookup_image): Set image's timestamp because it's
6528 used when we look it up.
6529
65301999-09-23 Gerd Moellmann <gerd@gnu.org>
6531
6532 * window.c (enlarge_window): Add window parameter instead of using
6533 selected_window.
6534 (Fdisplay_buffer): Call it with window parameter instead of
6535 setting selected_window.
6536 (Fenlarge_window, Fshrink_window): Ditto.
6537 (shrink_mini_window): If there is no recorded height and position
6538 info, resize mini-window to height 1.
6539
6540 * xfns.c (image_error): Use add_to_log.
6541
6542 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6543 (load_face_font_or_fontset, load_color,
6544 merge_face_vector_with_property): Ditto.
6545
6546 * dispextern.h: Add prototype for add_to_log.
6547
6548 * xfaces.c (add_to_log): Move to xdisp.c.
6549
6550 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6551 parameter.
6552
65531999-09-23 Gerd Moellmann <gerd@gnu.org>
6554
6555 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6556 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6557
6558 * xdisp.c (resize_mini_window): Use grow_mini_window and
6559 shrink_mini_window.
6560
6561 * window.c (window_min_size): Add parameter ignore_fixed_p.
6562 (change_window_height): Call window_min_size with new parameter.
6563 (shrink_window_lowest_first, save_restore_orig_size,
6564 grow_mini_window, shrink_mini_window): New.
6565 (make_window, replace_window): Initialize orig_top and
6566 orig_height.
6567 (enlarge_window): Renamed from change_window_height. Make it
6568 static.
6569 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6570 enlarge_window instead of change_window_height.
6571
6572 * window.h (struct window): New members orig_top, orig_height.
6573 (toplevel): Add prototypes for grow_mini_window and
6574 shrink_mini_window. Remove prototype for change_window_height.
6575
65761999-09-21 Eli Zaretskii <eliz@gnu.org>
6577
6578 * frame.c (frame_name_fnn_p): Fix previous change.
6579
65801999-09-20 Gerd Moellmann <gerd@gnu.org>
6581
6582 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6583
6584 * dispnew.c (direct_output_for_insert): Cast arguments to
6585 safe_bcopy to char *.
6586
6587 * lread.c (readchar): Remove unused variables.
6588 (read_filtered_event, read1, Fmapatoms): Ditto.
6589 (toplevel): Include intervals.h.
6590
6591 * eval.c (Fsignal): Remove unused variables.
6592 (Fcommandp, do_autoload): Ditto.
6593
6594 * lisp.h: Add prototype for safe_bcopy, fatal.
6595
6596 * editfns.c (init_editfns): Remove unused variables.
6597 (Fgoto_char, Fchar_after, Fformat): Ditto.
6598 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6599
6600 * data.c (find_symbol_value): Remove unused variables.
6601 (Faref, Fstring_to_number): Ditto.
6602 (toplevel): Include stdio.h.
6603 (Fnumber_to_string): Cast XINT to long for %ld.
6604
6605 * casefiddle.c (casify_object): Remove unused variables.
6606 (casify_region): Ditto.
6607
427ec082 6608 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6609 conditinally compiled section in #ifdef.
6610 (toplevel): Include stdio.h.
6611
6612 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6613 keys_of_keymap, syms_of_keymap): Remove unused variables.
6614
66151999-09-20 Gerd Moellmann <gerd@gnu.org>
6616
6617 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6618 whose corresponding window rows have been disabled in
6619 try_window_id.
6620
66211999-09-20 Gerd Moellmann <gerd@gnu.org>
6622
6623 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6624 that window start is out of range.
6625 (handle_display_prop, handle_single_display_prop): Replace
6626 marginal area specifications like `left-margin' with `(margin
6627 left-margin)'.
6628 (Qmargin): New.
6629 (syms_of_xdisp): Initialize Qmargin.
6630
66311999-09-19 Gerd Moellmann <gerd@gnu.org>
6632
6633 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6634 describe_syntax, skip_chars): Remove unused variables.
6635 (back_comment, forw_comment): Add braces to if-statement with
6636 if-else as dependent statement.
6637
6638 * process.c (list_processes_1): Remove unused variables.
6639 (Fopen_network_stream, create_process): Add parentheses to
6640 conditional expressions.
6641 (create_process): Put declaration of sigchld in #if 0.
6642 (Fopen_network_stream): Removed unused variables.
6643 (Fopen_network_stream, wait_reading_process_input,
6644 wait_reading_process_input, send_process, send_process): Ditto.
6645 (toplevel): Add prototypes for set_waiting_for_input and
6646 keyboard_bit_set.
6647
6648 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6649
6650 * textprop.c (Fset_text_properties): Remove unused variables.
6651 (text_property_list, verify_interval_modification,
6652 interval_has_all_properties): Ditto.
6653
6654 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6655 (Fcall_process): Remove unused variable.
6656
6657 * keyboard.c (Frecursive_edit): Remove unused variable.
6658 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6659 timer_check, make_lispy_event, menu_bar_items,
6660 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6661 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6662 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6663 read_key_sequence): Ditto. Fread_key_sequence,
6664 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6665 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6666 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6667 (Fexecute_extended_command): Cast XINT to long for %ld.
6668 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6669 (toplevel): Include sys/types.h.
6670
6671 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6672 (toplevel): Add prototypes for stuff_char, and
6673 code_convert_string_norecord.
6674
66751999-09-19 Gerd Moellmann <gerd@gnu.org>
6676
6677 * buffer.h: Add prototype for r_re_alloc.
6678
6679 * insdel.c (copy_text): Removed unused variables.
6680 (count_combining_after, count_combining_after, insert_1_both,
6681 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6682 (adjust_after_replace, replace_range): Add parentheses to logical
6683 expressions. Remove unused variables.
6684 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6685 expression.
6686
6687 * alloc.c (Fgarbage_collect): Remove unused variable.
6688 (compact_strings): Add parentheses around assignments in
6689 conditional context.
6690 (toplevel): Put declaration of unused function clear_marks
6691 in #if 0 like its definition.
6692
6693 * lisp.h: Add prototype for shrink_regexp_cache,
6694 sweep_weak_hash_tables.
6695
66961999-09-19 Dave Love <fx@gnu.org>
6697
6698 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6699
6700 * doc.c (read_bytecode_char): Declare arg.
6701
6702 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6703 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6704
67051999-09-18 Richard Stallman <rms@gnu.org>
6706
6707 * xdisp.c (echo_area_display): Turn off code that returned
6708 without doing anything when using a terminal frame.
6709
83c8f461 67101999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6711
6712 * unexelf.c (unexec): Don't get confused by a short section
6713 just before the bss section.
6714
26901792
DL
67151999-09-16 Gerd Moellmann <gerd@gnu.org>
6716
6717 * emacs.c (main): Remove unused variables.
6718 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6719
6720 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6721 init_fileio_once, syms_of_sound, init_xfns, init_fns
6722 init_sound, check_message_stack.
6723
6724 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6725
6726 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6727 ambiguous else warning.
6728 (split_interval_left): Remove unused variables.
6729 (previous_interval, adjust_intervals_for_deletion,
6730 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6731 (icount, idepth, zero_length): Move into #if 0 section below
6732 original position where these are used.
6733
6734 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6735
6736 * buffer.c (Fkill_buffer): Remove unused variables.
6737 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6738 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6739 init_buffer_once, (syms_of_buffer): Ditto.
6740
6741 * xrdb.c (get_fallback): Remove unused variable.
6742 (x_load_resources): Ditto. Put local variable used for Motif only
6743 in #ifdef USE_MOTIF.
6744
67451999-09-16 Gerd Moellmann <gerd@gnu.org>
6746
6747 * minibuf.c (read_minibuf): Remove unused variables.
6748 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6749 (do_completion): Move assignment out of conditional context.
6750 (Fdisplay_completion_list): Add parentheses to conditional expression.
6751
6752 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6753
6754 * lisp.h: Add prototype for no_switch_window.
6755
6756 * window.c (Fset_window_buffer): Remove unused variables.
6757 (Fset_window_margins): Ditto.
6758
6759 * xdisp.c (resize_mini_window): Temporarily set the selected
6760 window's or Vminibuf_scroll_window's height to "fixed" around
6761 the call the change_window_height.
6762
6763 * window.c (window_fixed_size_p): Check window's height_fixed_p
6764 flag.
6765
6766 * window.h (struct window): New member height_fixed_p.
6767
6768 * dispnew.c (direct_output_forward_char): Don't use this method
6769 if showing a message or a message was just cleared because we
6770 might need to resize the mini-window.
6771
67721999-09-16 Gerd Moellmann <gerd@gnu.org>
6773
6774 * frame.c (Fdelete_frame): Correct local variable pointing to
6775 selected frame after selecting new frame.
6776
67771999-09-15 Richard Stallman <rms@gnu.org>
6778
6779 * puresize.h (BASE_PURESIZE): Increase to 525000.
6780
6781 * filelock.c (Vtemporary_file_directory): New variable.
6782 (syms_of_filelock): Set up Lisp variable.
6783
67841999-09-15 Gerd Moellmann <gerd@gnu.org>
6785
6786 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6787 (encode_terminal_code): Remove unused variables.
6788 (turn_off_face): Ditto.
6789 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6790
6791 * dispnew.c (update_frame_line): If writing whole desired line,
6792 don't clear to end of line if already at the end.
6793
67941999-09-15 Gerd Moellmann <gerd@gnu.org>
6795
6796 * xdisp.c (resize_mini_window): Don't report changed window
6797 height if it actually hasn't changed.
6798
427ec082 6799 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6800 unused variables.
6801 (mark_shell_size_user_specified): Put in #if 0 because not used.
6802 (create_frame_gcs): Put in #if 0 because currently unused.
6803 (first_frame_p): Ditto.
6804
6805 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6806 single_submenu, update_frame_menubar, set_frame_menubar,
6807 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6808 variables.
6809
6810 * print.c (PRINTFULLP): Removed because it is no longer used and
6811 is misleading.
6812 (Ferror_message_string): Remove unused variables.
6813 (print_object): Cast argument of sprintf to long for `%ld'
6814 specifier. Remove unused variable.
6815
68161999-09-14 Gerd Moellmann <gerd@gnu.org>
6817
6818 * sound.c (Fplay_sound): Remove usused variables.
6819 (be2hs): Put in #if 0 because it's currently not used.
6820
68211999-09-14 Ken Raeburn <raeburn@gnu.org>
6822
6823 * print.c (Ferror_message_string, print_error_message,
6824 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6825 member access.
6826
68271999-09-14 Gerd Moellmann <gerd@gnu.org>
6828
6829 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6830
6831 * frame.c (Fnext_frame): Remove unused variable(s).
6832 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6833 (store_frame_param): Add parentheses to conditional expression.
6834 (Fmodify_frame_parameters): Remove unused variables.
6835 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6836 Ditto.
6837
6838 * xfns.c (x_set_background_color): Remove unused variable(s).
6839 (x_set_border_pixel): Ditto.
6840 (x_set_menu_bar_lines): Put local variable used only for
6841 non-toolkit case in #ifdef/#endif.
6842 (x_figure_window_size): Remove unused variable(s).
427ec082 6843 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6844 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6845 png_load, jpeg_load, gif_load, x_create_tip_frame,
6846 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6847
6848 * xterm.c (x_scroll_bar_handle_click): Compile only if
6849 not USE_TOOLKIT_SCROLL_BARS.
6850 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6851
6852 * dispextern.h: Add prototypes for gamma_correct and
6853 x_kill_gs_process.
6854
6855 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6856 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6857 x_set_toolkit_scroll_bar_thumb): Ditto.
6858 (x_scroll_bar_create): Move local variable to the
6859 conditionally compiled section of code where it is used.
6860 (x_scroll_bar_create): Remove unused variable(s).
6861 (x_scroll_bar_remove, XTread_socket): Ditto.
6862 (XTread_socket) <ConfigureNotify>: Move variables used for
6863 non-toolkit case into conditionally compiled section of code.
6864
6865 * window.h (freeze_window_starts): Fix typo in prototype.
6866
6867 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6868 variable(s).
6869
6870 * lisp.h: Add prototype for debug_print.
6871
6872 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6873 to use do-while.
6874
6875 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6876 (Fchar_table_range, Fset_char_table_default, mapcar1,
6877 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6878
6879 * lisp.h: Add prototype for getloadavg.
6880
68811999-09-14 Andreas Schwab <schwab@gnu.org>
6882
6883 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6884
6885 * lisp.h: Declare close_file_unwind.
6886
68871999-09-14 Richard Stallman <rms@gnu.org>
6888
6889 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6890
68911999-09-13 Gerd Moellmann <gerd@gnu.org>
6892
6893 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6894 is always set correctly.
6895
68961999-09-13 Dave Love <fx@gnu.org>
6897
6898 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6899 declaration.
6900
69011999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6902
6903 * xdisp.c (QCfile): Move here from xfns.c.
6904 (syms_of_xdisp): Initialize it.
6905 (message2_nolog): Change for Lisp_Object selected_frame.
6906 (message3_nolog, message_with_string, message,
6907 setup_echo_area_for_printing, truncate_echo_area,
6908 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6909
69101999-09-13 Dave Love <fx@gnu.org>
6911
6912 * xterm.c: Don't continue #define args for benefit of old cc.
6913 (xt_action_hook): Indent #error for benefit of K&R cc.
6914
69151999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6916
6917 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6918 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6919 (XRINGBELL): Removed.
6920
69211999-09-13 Dave Love <fx@gnu.org>
6922
6923 * xfns.c (x_put_x_image): Make type consistent with declaration.
6924
6925 * fns.c (Fmake_hash_table): Fix string continuation.
6926
69271999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6928
6929 * xfns.c (QCfile): Moved to xdisp.c.
6930 (syms_of_xfns): Don't initialize QCfile.
6931 (check_x_frame): Change for Lisp_Object selected_frame.
6932 (check_x_display_info, x_get_resource_string): Ditto.
6933
69341999-09-13 Gerd Moellmann <gerd@gnu.org>
6935
6936 * minibuf.c (choose_minibuf_frame): Don't try to set the
6937 mini-buffer window's buffer, if the buffer is invalid.
6938
6939 * xfns.c (QCfile): Moved to xdisp.c.
6940 (syms_of_xfns): Don't initialize QCfile.
6941
6942 * xdisp.c (QCfile): Move here from xfns.c.
6943 (syms_of_xdisp): Initialize it.
6944
6945 * lisp.h (selected_frame): Add external declaration.
6946
6947 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6948 (Fx_store_cut_buffer_internal): Ditto.
6949 (Fx_rotate_cut_buffers_internal): Ditto.
6950
6951 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6952 selected_frame.
6953 (Finternal_set_lisp_face_attribute): Ditto.
6954 (Finternal_get_lisp_face_attribute): Ditto.
6955 (Finternal_lisp_face_empty_p): Ditto.
6956 (Fdump_face): Ditto.
6957
6958 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6959 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6960 set_terminal_window, set_scroll_region, reassert_line_highlight,
6961 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6962 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6963 encode_terminal_code, write_glyphs, term_init): Ditto.
6964
6965 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6966 (kbd_input_ast, read_input_waiting): Ditto.
6967
6968 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6969 selected_frame.
6970 (read_minibuf): Ditto.
6971
6972 * keyboard.c (command_loop_1): Change for Lisp_Object
6973 selected_frame.
6974 (cmd_error_internal, command_loop_1, read_char,
6975 kbd_buffer_get_event, read_avail_input,
6976 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6977 interrupt_signal, quit_throw_to_read_char): Ditto.
6978
6979 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6980 (Ffontset_info): DItto.
6981
6982 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6983
6984 * dispnew.c (selected_frame): Make it a Lisp_Object.
6985 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6986 (direct_output_for_insert, direct_output_forward_char,
6987 init_display): Ditto.
6988
6989 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6990 selected_frame.
6991 (set_internal): Ditto.
6992
6993 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6994 (record_buffer): Ditto.
6995
6996 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6997 (do_switch_frame): Change for Lisp_Object selected_frame.
6998 (Fselected_frame): Ditto.
6999 (Fframe_first_window): Use SELECTED_FRAME.
7000 (Fframe_root_window): Change for Lisp_Object selected_frame.
7001 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7002 Fprevious_frame, other_visible_frames, Fdelete_frame,
7003 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7004 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7005 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7006 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7007 Fset_frame_height, Fset_frame_width): Ditto.
7008
70091999-09-13 Gerd Moellmann <gerd@gnu.org>
7010
7011 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7012 (message3_nolog, message_with_string, message,
7013 setup_echo_area_for_printing, truncate_echo_area,
7014 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7015
7016 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7017 (Fx_popup_dialog): Ditto.
7018
7019 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7020 (check_x_display_info, x_get_resource_string): Ditto.
7021
7022 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7023 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7024 (XRINGBELL): Removed.
7025
7026 * window.c (Fminibuffer_window): Change for Lisp_Object
7027 selected_frame.
7028 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7029 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7030 Fcurrent_window_configuration, init_window_once): Ditto.
7031
7032 * frame.h (SELECTED_FRAME): New.
7033
70341999-09-12 Ken Raeburn <raeburn@gnu.org>
7035
7036 * category.c (word_boundary_p): Use XCAR and XCDR.
7037 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7038 Fregister_code_conversion_map): Likewise.
7039 * coding.c (setup_coding_system, detect_coding_system,
7040 Ffind_operation_coding_system, Fset_coding_priority_internal):
7041 Likewise.
7042 * doc.c (get_doc_string, Fdocumentation,
7043 store_function_docstring): Likewise.
7044 * editfns.c (save_restriction_restore): Likewise.
7045 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7046 skip_debugger, find_handler_clause, Fautoload, Fapply,
7047 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7048 Likewise.
7049 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7050 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7051 Fread_file_name): Likewise.
7052 * filelock.c (unlock_all_files): Likewise.
7053 * insdel.c (Fcombine_after_change_execute): Likewise.
7054 * intervals.c (adjust_intervals_for_insertion): Likewise.
7055 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7056 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7057 store_in_keymap, Fcopy_keymap, define_as_prefix,
7058 current_minor_maps, Faccessible_keymaps,
7059 accessible_keymaps_char_table, Fkey_description,
7060 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7061 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7062 describe_map): Likewise.
7063 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7064 read_list, init_lread): Likewise.
7065 * search.c (Fmatch_data): Likewise.
7066 * sunfns.c (Fsun_menu_internal): Likewise.
7067 * syntax.c (describe_syntax): Likewise.
7068 * undo.c (record_insert, record_delete, Fundo_boundary,
7069 truncate_undo_list): Likewise.
7070 * vmsproc.c (child_sig): Likewise.
7071
7072 * editfns.c (Fformat): Use XFLOAT_DATA.
7073
70741999-09-12 Gerd Moellmann <gerd@gnu.org>
7075
7076 * keyboard.c (command_loop_1): Resize mini-window to the
7077 exact size of a message displayed, if any.
7078
7079 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7080 to exact size if exact_p is non-zero.
7081 (display_echo_area_1): Call resize_mini_window with
7082 new parameter.
7083 (redisplay_internal): Ditto.
7084 (resize_echo_area_axactly): New.
7085
7086 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7087 new parameter.
7088
7089 * dispextern.h: Change prototype of resize_mini_window.
7090 Add prototype for resize_echo_area_axactly.
7091
7092 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7093 (syms_of_xfaces): Defsubr accordingly.
7094
7095 * xdisp.c (hscroll_window_tree): Choose cursor row from
7096 desired or current matrix.
7097 (redisplay_internal): Hscroll before updating.
7098
70991999-09-12 Gerd Moellmann <gerd@gnu.org>
7100
7101 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7102 of minibuffer_prompt_length.
7103
7104 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7105 of minibuffer_prompt_length.
7106 (read_minibuf_unwind): Ditto.
7107 (Fminibuffer_complete_and_exit): Ditto.
7108 (Fminibuffer_complete_word): Ditto.
7109 (Fminibuffer_prompt_end): Ditto.
7110
7111 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7112 of minibuffer_prompt_length.
7113 (Fline_beginning_position): Ditto.
7114
7115 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7116 of minibuffer_prompt_length.
7117 (Fmake_indirect_buffer): Ditto.
7118 (Fkill_buffer): Ditto.
7119 (Ferase_buffer): Ditto.
7120
7121 * buffer.h (prompt_end_charpos): Replaces
7122 minibuffer_prompt_length.
7123
427ec082 7124 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7125 without the prompt.
7126
7127 * editfns.c (make_buffer_string_both): Take out the code
7128 to handle mini-buffer prompts.
7129 (Fbuffer_string): Handle the prompt here, instead.
7130
7131 * xfaces.c (lface_from_face_name): Resolve face aliases.
7132 (Qmode_line): Replaces Qmodeline.
7133 (realize_basic_faces): Use Qmode_line.
7134 (syms_of_xfaces): Initialize Qmode_line.
7135
71361999-09-12 Gerd Moellmann <gerd@gnu.org>
7137
7138 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7139 current column after inserting prompt.
7140 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7141
7142 * xfaces.c (Qframe_update_face_colors): New.
7143 (syms_of_xfaces): Initialize call.
7144 (update_face_from_frame_parameter): Call that function when
7145 the frame's background changes.
7146
71471999-09-12 Richard Stallman <rms@gnu.org>
7148
7149 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7150
71511999-09-12 Ken Raeburn <raeburn@gnu.org>
7152
7153 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7154 mark_object, mark_buffer): Use XCAR and XCDR.
7155 * bytecode.c (Fbyte_code): Likewise.
7156 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7157 Likewise.
7158 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7159 getenv_internal): Likewise.
7160 * dired.c (file_name_completion): Likewise.
7161 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7162 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7163 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7164 * indent.c (Fcompute_motion): Likewise.
7165 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7166 list_processes_1, Fstart_process, Fopen_network_stream,
7167 wait_reading_process_input, read_process_output_call,
7168 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7169 status_notify, wait_reading_process_input): Likewise.
7170 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7171 extend_property_ranges): Likewise.
7172 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7173 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7174 x_report_frame_params, x_set_cursor_type, x_icon_type,
7175 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7176 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7177 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7178 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7179 x_display_info_for_name, Fx_display_list): Likewise.
7180 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7181 Fx_popup_menu, Fx_popup_dialog): Likewise.
7182 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7183 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7184 w32_term_init, x_delete_display): Likewise.
7185 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7186 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7187 x_top_window_to_frame, x_set_frame_parameters,
7188 x_report_frame_params, x_set_cursor_type, x_icon_type,
7189 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7190 Fx_display_list, x_create_tip_frame): Likewise.
7191 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7192 Fx_popup_menu, Fx_popup_dialog): Likewise.
7193 * xselect.c (x_own_selection, x_get_local_selection,
7194 x_handle_selection_request, x_handle_selection_clear,
7195 x_clear_frame_selections, wait_for_property_change_unwind,
7196 wait_for_property_change, x_handle_property_notify,
7197 copy_multiple_data, x_get_foreign_selection,
7198 lisp_data_to_selection_data, clean_local_selection_data,
7199 x_handle_selection_notify, Fx_get_selection_internal,
7200 x_disown_buffer_selections): Likewise.
7201 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7202 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7203 Likewise.
7204
7205 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7206 XFLOAT_DATA.
7207 * bytecode.c (Fbyte_code): Likewise.
7208 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7209 fmod_float): Likewise.
7210
72111999-09-11 Richard Stallman <rms@gnu.org>
7212
7213 * xdisp.c (run_window_scroll_functions): If hook functions switch
7214 buffers, switch back after.
7215
72161999-09-11 Ken Raeburn <raeburn@gnu.org>
7217
7218 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7219 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7220 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7221 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7222 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7223 XCDR.
7224 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7225 XCDR.
7226
72271999-09-10 Richard Stallman <rms@gnu.org>
7228
7229 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7230 not RevertToPointerRoot.
7231 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7232 Fix the code to clear around the scroll bar.
7233
72341999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7235
7236 * print.c: Support print-circle and related features.
7237 (Vprint_gensym_alist): Removed.
7238 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7239 Vprint_number_table): New variables.
7240 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7241 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7242 (print, print_preprocess, print_preprocess_string, print_object):
7243 New/modified functions with print-circle feature. Use
7244 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7245 (syms_of_print): Defined new Lisp variables `print-circle',
7246 `print-continuous-numbering', `print-number-table'.
7247
72481999-09-10 Gerd Moellmann <gerd@gnu.org>
7249
7250 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7251 as background color specification instead of an integer.
7252 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7253 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7254 (clear_image_cache, syms_of_xfns): Use it.
7255 (Qpostscript): Replaces Qghostscript.
7256 (gs_type): Use it.
7257 (gs_image_p): Ditto.
7258 (syms_of_xfns): Initialize Qpostscript.
7259
72601999-09-10 Richard Stallman <rms@gnu.org>
7261
7262 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7263
72641999-09-09 Richard Stallman <rms@gnu.org>
7265
7266 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7267
7268 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7269
72701999-09-09 Gerd Moellmann <gerd@gnu.org>
7271
7272 * fns.c (Fmakehash): Accept just one optional argument TEST.
7273
7274 * xfns.c (QCindex): New.
7275 (syms_of_xfns): Initialize QCindex.
7276 (gif_load): Use it instead of `:image'.
7277
72781999-09-09 Richard Stallman <rms@gnu.org>
7279
7280 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7281 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7282
72831999-09-08 Gerd Moellmann <gerd@gnu.org>
7284
7285 * xdisp.c (Qwhen): Replaces QCwhen.
7286 (syms_of_xdisp): Initialized it instead of QCwhen.
7287 (handle_single_display_prop): Use it instead of QCwhen.
7288
72891999-09-08 Ken'ichi Handa <handa@gnu.org>
7290
7291 * charset.c (translate_char): Reset MSBs of arguments of
7292 MAKE_CHAR.
7293 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7294
72951999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7296
7297 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7298
7299 * fns.c (Fbase64_decode_region): Don't place point outside of the
7300 current accessible portion.
7301
73021999-09-07 Richard Stallman <rms@gnu.org>
7303
7304 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7305 parent is an ancestor of SUBMAP; otherwise, add it as the
7306 ultimate ancestor.
7307
73081999-09-07 Gerd Moellmann <gerd@gnu.org>
7309
7310 * xdisp.c (handle_single_display_prop): Change conditional
7311 display property to `:when FORM . VALUE'.
7312
73131999-09-07 Richard Stallman <rms@gnu.org>
7314
7315 * fileio.c (Fwrite_region): Doc fix.
7316
73171999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7318
7319 * fileio.c (Qexcl): New variable.
7320 (report_file_error): Handle EEXIST specially.
7321 (Fwrite_region): Special handling for CONFIRM = `excl'.
7322 (syms_of_fileio): Initialize Qexcl.
7323
73241999-09-07 Gerd Moellmann <gerd@gnu.org>
7325
7326 * xfns.c (x_set_foreground_color): Call
7327 update_face_from_frame_parameter.
7328 (x_set_background_color): Ditto.
7329 (x_set_mouse_color): Ditto.
7330 (x_set_cursor_color): Ditto.
7331 (x_set_border_color): Ditto.
7332 (x_set_scroll_bar_foreground): Ditto.
7333 (x_set_scroll_bar_background): Ditto.
7334
7335 * xfaces.c (recompute_basic_faces): Clear face cache.
7336 (Finternal_set_lisp_face_attribute): Modify frame parameters
7337 if attributes of certain faces are changed.
7338 (update_face_from_frame_parameter): New.
7339
7340 * xfaces.c (realize_basic_faces): Realize new basic faces.
7341
7342 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7343 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7344
7345 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7346 (syms_of_xfaces): Intialize new symbols.
7347
7348 * fns.c (Fmakehash): Take one argument, test, make all the
7349 rest keyword arguments.
7350
7351 * window.c (Fset_window_margins): Make window the first argument.
7352 (set_window_buffer): Call Fset_window_margins with window as first
7353 argument.
7354
73551999-09-07 Gerd Moellmann <gerd@gnu.org>
7356
7357 * xfaces.c (Qfringe): Replaces Qmargin.
7358
73591999-09-07 Kenichi Handa <handa@etl.go.jp>
7360
7361 * charset.h: Lots of comments fixed.
7362 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7363 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7364
7365 * charset.c : Lots of comments fixed.
7366 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7367 (CHAR_COMPONENTS_VALID_P): Name changed from
7368 CHAR_COMPONENT_VALID_P. Caller changed.
7369
73701999-09-06 Richard Stallman <rms@gnu.org>
7371
7372 * insdel.c (syms_of_insdel): Define Lisp variable
7373 inhibit-modification-hooks.
7374
73751999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7376
7377 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7378 unexaix.c.
7379
7380 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7381
73821999-09-06 Dave Love <fx@gnu.org>
7383
7384 * unexaix.c: New version incorporating Michael Sperber's changes
7385 from XEmacs. Should solve problems on AIX 4.3.
7386
7387 * lread.c (Vbyte_boolean_vars): New variable.
7388 (defvar_bool, syms_of_lread): Use it.
7389
73901999-09-05 Richard Stallman <rms@gnu.org>
7391
7392 * minibuf.c (read_minibuf): Put all three properties on the
7393 same range, the whole prompt.
7394
73951999-09-05 Gerd Moellmann <gerd@gnu.org>
7396
7397 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7398 (Fplay_sound, syms_of_sound): Use it.
7399 (parse_sound): Allow float volume values in the range [0, 1].
7400 (Fplay_sound): Ditto.
7401
7402 * window.c (Fset_window_vscroll): Make window the first argument,
7403 amount to scroll the second. Take non-negative vscroll as
7404 argument.
7405 (Fwindow_vscroll): Return non-negative vscroll.
7406
7407 * xfns.c (Fx_show_tip): Improve documentation.
7408
74091999-09-05 Gerd Moellmann <gerd@gnu.org>
7410
7411 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7412 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7413 `top-line' and `top_line' to `header-line' and `header_line'.
7414 Likewise for similar spellings.
7415
74161999-09-05 Gerd Moellmann <gerd@gnu.org>
7417
7418 * xdisp.c (row_containing_pos): New.
7419 (try_window_id): Use it.
7420
7421 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7422 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7423 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7424 Likewise for upper-case etc.
7425
74261999-09-05 Gerd Moellmann <gerd@gnu.org>
7427
7428 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7429 Fix reference to renamed variable.
7430
74311999-09-04 Gerd Moellmann <gerd@gnu.org>
7432
7433 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7434 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7435 Qfixed_window_size.
7436 (syms_of_window): Ditto.
7437
7438 * fns.c (Fmakehash): Exchange optional test and size arguments.
7439
74401999-09-03 Gerd Moellmann <gerd@gnu.org>
7441
7442 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7443 under newly created scroll bar.
7444 (expose_window): If window is not yet fully initialized, do
7445 nothing. This can happen when toolkit scroll bars are used and a
7446 window is split. Reconfiguring the scroll bars will generate an
7447 expose for a newly created window.
7448
7449 * frame.h (struct frame): New member `gamma'.
7450
7451 * xfns.c: Include math.h. Add extern declaration for atof in case
7452 we don't see one.
7453 (Qscreen_gamma): New.
7454 (struct x_frame_parm_table): Add prototypes, add
7455 x_set_screen_gamma.
7456 (gamma_correct): New function.
7457 (defined_color): Call it.
7458 (x_set_screen_gamma): New.
7459 (x_set_title): Add parameter old_value.
7460 (RES_TYPE_FLOAT): New.
7461 (x_get_arg): Handle RES_TYPE_FLOAT.
7462 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7463 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7464 new prototype.
7465 (lookup_rgb_color): Ditto.
7466 (syms_of_xfns): Initialize Qscreen_gamma.
7467
7468 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7469 New. Allocate color for lwlib widgets.
7470 (x_alloc_nearest_color): Change parameter list include the
7471 frame on which to allocate colors. Gamma-correct colors.
7472 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7473 parameter list.
7474
7475 * xterm.h: Change protorype of x_alloc_nearest_color.
7476
74771999-09-03 Richard Stallman <rms@gnu.org>
7478
7479 * callproc.c: Delete the system-independent include of stdlib.h
7480 (leaving only the one in the WINDOWSNT conditional).
7481
74821999-09-03 Andrew Choi <choi@cs.hku.hk>
7483
7484 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7485 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7486
26901792
DL
7487 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7488 Window types and macros.
7489
7490 * frame.h: Do nothing if included a second time.
7491 (enum output_method): Add mac_output frame type.
7492 (union output_data): Add new alternative `mac'.
7493 (FRAME_MAC_P): New macro.
427ec082 7494
26901792
DL
7495 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7496 (syms_of_frame_1): Initialize Qmac.
7497 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7498 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7499 (Fmodify_frame_parameters) [macintosh]: Call
7500 mac_set_frame_parameter in macterm.c.
427ec082 7501
26901792
DL
7502 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7503 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7504
26901792
DL
7505 * make-docfiles.c: Correctly handle input files with Mac-style
7506 eol's.
427ec082 7507
26901792 7508 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7509
26901792
DL
7510 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7511 file of an X Window environment.
427ec082 7512
26901792
DL
7513 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7514 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7515
26901792
DL
7516 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7517 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7518 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7519 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7520 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7521 New functions, replacing POSIX features.
427ec082 7522
26901792
DL
7523 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7524 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7525 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7526
7527 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7528 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7529 (myPasswdDir, TempDirName, sys_siglist): New variables.
7530
7531 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7532 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7533 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7534 Define empty stubs so Emacs will link.
7535
75361999-09-03 Gerd Moellmann <gerd@gnu.org>
7537
7538 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7539
7540 * window.h: New member frozen_window_start_p.
7541
7542 * window.c (foreach_window, foreach_window_1): New.
7543 (freeze_window_start, freeze_window_starts): New.
7544 (make_window): Initialize frozen_window_start_p.
7545 (replace_window): Ditto.
7546 (Fset_window_point): Remove references to deleted variables.
7547 (Fset_window_start): Ditto.
7548
7549 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7550 resize_mini_initial_height): Removed.
7551 (syms_of_xdisp): Remove references to these variables.
7552 (resize_mini_window): Don't save window configuration, freeze
7553 window starts instead. Enlarge window until displaying an empty
7554 buffer, then shrink it. Make the function externally visible.
7555 (redisplay_window): Treat frozen window start like forced start,
7556 but accept point outside of the window.
7557
7558 * dispextern.h: Add function prototype for resize_mini_window.
7559
7560 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7561 reaching minibuf_level 0.
7562
7563 * lisp.h: Remove extern declarations for variables deleted from
7564 xdisp.c.
7565
7566 * dispnew.c (adjust_frame_glyphs): Remove reference to
7567 Vresize_mini_config.
7568
75691999-09-03 Gerd Moellmann <gerd@gnu.org>
7570
7571 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7572 to USE_TOOLKIT_SCROLL_BARS.
7573
7574 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7575 here.
7576 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7577 under newly created scroll bar. Put toolkit scroll bars in the
7578 middle of the area reserved for the scroll bar.
7579
75801999-09-03 Kenichi Handa <handa@etl.go.jp>
7581
7582 The following changes are for the new handling of mulitbyte
7583 sequence. Now, except for a composite character, no multibyte
7584 character in string/buffer has trailing garbage bytes. For
7585 instance, the length of string "\201\300\300" is now 2, the first
7586 character is Latin-1 A-grave, the second is raw \300.
7587
7588 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7589 are negative.
7590 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7591 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7592 (PARSE_COMPOSITE_SEQ): New macro.
7593 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7594 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7595 (CHAR_PRINTABLE_P): New macro.
7596 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7597 (STRING_CHAR_AND_LENGTH): Likewise.
7598 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7599 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7600 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7601
7602 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7603 (SPLIT_CHARACTER_SEQ): New macro.
7604 (SPLIT_MULTIBYTE_SEQ): New macro.
7605 (CHAR_COMPONENT_VALID_P): New macro.
7606 (non_ascii_char_to_string): Generate a multibyte sequence as far
7607 as possible.
7608 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7609 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7610 (split_non_ascii_string): Likewise.
7611 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7612 (char_printable_p): New function.
7613 (translate_char): Check character by NATNUMP instead of INTEGERP.
7614 (unibyte_char_to_multibyte): Call char_valid_p instead of
7615 VALID_MULTIBYTE_CHAR_P.
7616 (Fmake_char_internal): Check the arguments more rigidly.
7617 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7618 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7619 (Fmultibyte_char_to_unibyte): Check the validity of character by
7620 CHAR_VALID_P.
7621 (chars_in_text): Call multibyte_chars_in_text.
7622 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7623 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7624 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7625
7626 * data.c (Faset): Adjust the way to check byte-combining
7627 possibility for the new handling of multibyte sequence.
7628
7629 * editfns.c (Fsubst_char_in_region): Likewise.
7630
7631 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7632 (string_char_to_byte): Likewise.
7633 (string_byte_to_char): Likewise.
7634
7635 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7636 macro STRING_CHAR_AND_LENGTH. Caller changed.
7637
7638 * insdel.c (count_combining_composition): New function.
7639 (count_combining_before): Adjust the way to check byte-combining
7640 possibility for the new handling of multibyte sequence. Call
7641 count_combining_composition for a composite character.
7642 (count_combining_after): Likewise.
7643
7644 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7645 (print): Likewise.
7646
7647 * dispextern.h (struct it): Change the size of the member
7648 `ctl_chars'.
7649
7650 * xdisp.c (get_next_display_element): Display incomplete multibyte
7651 sequence (e.g. \222\300) by octal form.
7652
76531999-09-02 Gerd Moellmann <gerd@gnu.org>
7654
7655 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7656
7657 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7658 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7659
76601999-09-02 Gerd Moellmann <gerd@gnu.org>
7661
7662 * buffer.c (set_buffer_internal): Never set
7663 windows_or_buffers_changed.
7664
7665 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7666 if we have displayed to the bottom of the window.
7667
7668 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7669 in both directions. Extend documentation.
7670
76711999-09-01 Gerd Moellmann <gerd@gnu.org>
7672
7673 * minibuf.c (read_minibuf): Flush display after setting cursor to
7674 column 0.
7675
76761999-08-31 Gerd Moellmann <gerd@gnu.org>
7677
7678 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7679 already defined. This avoids a warning from buffer.c.
7680
76811999-08-30 Gerd Moellmann <gerd@gnu.org>
7682
7683 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7684 of both margins.
7685 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7686 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7687 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7688
7689 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7690 once instead of twice.
7691 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7692
7693 * xterm.c: Remove unused bitmaps.
7694 (continued_bits, continuation_bits, overlay_bits): Change images.
7695 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7696 instead of FRAME_X_FLAGS_AREA_WIDTH.
7697 (x_after_update_window_line): Ditto.
7698 (x_draw_bitmap): Likewise.
7699 (x_draw_row_bitmaps): Likewise.
7700 (x_draw_glyph_string_box): Likewise.
7701 (x_draw_glyphs): Likewise.
7702 (x_scroll_run): Likewise.
7703 (expose_window_tree): Likewise.
7704 (note_mode_line_highlight): Likewise.
7705 (XTset_vertical_scroll_bar): Likewise.
7706 (x_clip_to_row): Likewise.
7707 (x_set_window_size): Likewise.
7708
7709 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7710 of 2 * that value.
7711
7712 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7713 2 * that value.
7714 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7715 FRAME_FLAGS_AREA_WIDTH.
7716
7717 * window.c (coordinates_in_window): Use
7718 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7719 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7720 instead of twice.
7721
427ec082 7722 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7723 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7724 (EmacsFrameSetCharSize): Ditto.
7725
7726 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7727 instead of FRAME_FLAGS_AREA_WIDTH.
7728
7729 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7730 FRAME_FLAGS_AREA_COLS once.
7731 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7732 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7733
77341999-08-30 Gerd Moellmann <gerd@gnu.org>
7735
7736 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7737 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7738
77391999-08-30 Gerd Moellmann <gerd@gnu.org>
7740
7741 * fns.c (QCweakness): Replaces QCweak.
7742 (Fmake_hash_table): Ditto.
7743 (Fmakehash): Ditto.
7744 (syms_of_fns): Ditto.
7745
77461999-08-29 Richard Stallman <rms@gnu.org>
7747
7748 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7749
7750 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7751
7752 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7753 Add support for nested comments.
7754
d7d0dac0
SM
7755 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7756 Consolidate the forward comment code into the new `forw_comment'.
7757 (forw_comment): New subroutine. Added support for nested comments.
7758 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7759 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7760
77611999-08-28 Ken Raeburn <raeburn@gnu.org>
7762
7763 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7764 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7765 defined, to help detect code that uses knowledge of the Lisp
7766 internals that it shouldn't have.
7767 (XFLOAT_DATA): New macro.
7768
77691999-08-25 Gerd Moellmann <gerd@gnu.org>
7770
7771 * syntax.c (Fforward_word): If in a mini-buffer and moving
7772 backwards, stop in front of the prompt to prevent accidentially
7773 moving into the read-only prompt.
7774
7775 * window.c (Frecenter): Clear frame if called with nil or no arg.
7776
7777 * xdisp.c (resize_mini_window): Don't resize if
7778 Vmax_mini_window_height is nil. Otherwise, use a default if
7779 Vmax_mini_window_height is not ot a number.
7780 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7781
77821999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7783
7784 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7785 * m/iris4d.h: Use unexelf for IRIX 5.*.
7786 * m/iris5d.h: Use unexelf for IRIX 6.*.
7787 * unexsgi.c: Deleted.
7788
7789 * unexelf.c: Auto-detect .sbss section.
7790 (round_up): Make it static.
7791 (unexec): Declare alignment as Elf Word. Skip ``Program
7792 segment above .bss'' test on MIPS without .sbss.
7793 Copy sections .got and .sdata1 sections. Adjust offsets in
7794 sections .sdata, .lit4, .lit8, .got and .sdata1.
7795
77961999-08-25 Gerd Moellmann <gerd@gnu.org>
7797
7798 * xdisp.c (try_window_id): Remove typo.
7799
78001999-08-24 Gerd Moellmann <gerd@gnu.org>
7801
7802 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7803 unchanged text at the bottom when computing the cursor position.
7804 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7805 set.
7806
7807 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7808
78091999-08-24 Gerd Moellmann <gerd@gnu.org>
7810
7811 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7812 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7813 (syms_of_xfaces): Ditto.
7814
7815 * window.c (Fset_window_point): Reset Vresize_mini_config.
7816 (Fset_window_start): Ditto.
7817 (set_window_buffer): Ditto.
7818
7819 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7820
7821 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7822 before calling try_window.
7823 (echo_area_display): If height has changed, update other windows.
7824 (resize_mini_frame, resize_mini_initial_height): New.
7825 (resize_mini_window): Save/restore window configuration
7826 differently.
7827
427ec082 7828 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7829 resize_mini_initial_height): Add extern declarations.
7830
7831 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7832 CANON_X_UNIT.
7833
7834 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7835 being redefined in jconfig.h.
7836
78371999-08-23 Ken'ichi Handa <handa@gnu.org>
7838
7839 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7840
78411999-08-22 Gerd Moellmann <gerd@gnu.org>
7842
7843 * alloc.c (mark_glyph_matrix): Mark strings only.
7844
7845 * xdisp.c (redisplay_internal): Clear garbaged frames after
7846 resizing mini-window.
7847
78481999-08-22 Gerd Moellmann <gerd@gnu.org>
7849
7850 * xdisp.c (unwind_with_echo_area_buffer): Use
7851 set_buffer_internal_1 instead of set_buffer_internal.
7852 (with_echo_area_buffer): Ditto.
7853
7854 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7855 only if buffer is displayed somewhere.
7856
7857 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7858
7859 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7860 (gap_right): Ditto.
7861 (modify_region): Ditto.
7862
7863 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7864
7865 * xdisp.c (Vresize_mini_config): New.
7866 (resize_mini_window): Use it to save restore original window
7867 configuration
7868 (syms_of_xdisp): Initialize it.
7869
7870 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7871
7872 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7873
7874 * xdisp.c (reconsider_clip_changes): New.
7875 (redisplay_internal, redisplay_window): Call it.
7876 (mark_window_display_accurate, redisplay_internal): Set current
7877 matrix' buffer, begv, zv.
7878
7879 * window.c (Fset_window_hscroll): Set
7880 prevent_redisplay_optimizations_p instead of clip_changed.
7881 (Fset_window_hscroll): Ditto.
7882 (temp_output_buffer_show): Ditto.
7883 (Fset_window_vscroll): Ditto.
7884
7885 * buffer.c (reset_buffer): Set clip_changed to 0 and
7886 prevent_redisplay_optimizations_p to 1.
7887 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7888
7889 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7890 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7891 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7892 END_UNCHANGED): New.
7893 (struct buffer_text): Add beg_unchanged, end_unchanged,
7894 unchanged_modified, overlay_unchanged_modified.
7895
7896 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7897 overlay_unchanged_modified): Removed.
7898 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7899 (unwind_with_echo_area_buffer): Don't restore them.
7900 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7901 (text_outside_line_unchanged_p, redisplay_internal,
7902 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7903 (redisplay_window): Let try_window_id be called if more than one
7904 window is displayed. Use/set buffer-specific beg/end_unchanged.
7905 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7906 try_window_id):
7907 Use buffer-specific beg/end_unchanged.
7908
7909 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7910 overlay_unchanged_modified): Remove extern declarations.
7911
7912 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7913 buffer.
7914
7915 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7916 (gap_right): Ditto.
7917 (adjust_after_replace): Likewise.
7918 (replace_range, del_range_2, modify_region): Likewise.
7919
7920 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7921 and unchanged_modified per buffer.
7922
7923 * coding.c (code_convert_region): Compute beg/end_unchanged per
7924 buffer.
7925
7926 * buffer.c (modify_overlay): Compute beg/end_unchanged
7927 per buffer.
427ec082 7928 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7929 structure.
7930
79311999-08-22 Gerd Moellmann <gerd@gnu.org>
7932
7933 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7934
7935 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7936 (Qkey_value_weak): Removed.
7937 (make_hash_table): Use nil, `key', `value', t for weakness.
7938 (Fmake_hash_table): Ditto.
7939 (copy_hash_table): New.
7940 (Fcopy_hash_table): New.
7941
79421999-08-22 Gerd Moellmann <gerd@gnu.org>
7943
7944 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 7945 new parameter.
26901792
DL
7946
79471999-08-21 Gerd Moellmann <gerd@gnu.org>
7948
7949 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7950 well.
427ec082 7951 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7952 have changed.
7953 (display_echo_area): Reset displayed echo_area_buffer to nil
7954 at the end if we're displaying a nil message.
7955
79561999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7957
26901792
DL
7958 * fns.c (hash_lookup): Test with EQ before calling key comparion
7959 function.
7960 (hash_remove): Ditto.
7961 (cmpfn_eq): Removed.
7962 (cmpfn_eql): Don't test with EQ.
7963 (cmpfn_equal): Ditto.
7964 (make_hash_table): Set comparison function for `eq' to null.
7965
7966 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7967 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7968
7969 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7970
7971 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7972 xterm.c: Call change_frame_size and do_pending_window_change with
7973 new parameter.
7974
7975 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7976 (change_frame_size): Ditto.
7977 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7978 and not called from a safe place.
7979 (window_change_signal): Call change_frame_size with new parameter.
7980
7981 * dispextern.h: Change prototypes for do_pending_window_change
7982 and change_frame_size.
7983
7984 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7985 window's buffers equals current_buffer; this is not the
26901792
DL
7986 case during echo area display.
7987
79881999-08-21 Gerd Moellmann <gerd@gnu.org>
7989
7990 * xdisp.c, minibuf.c: Remove conditional compilation on
7991 NO_PROMPT_IN_BUFFER.
7992
7993 * minibuf.c (Fminibuffer_prompt_end): New.
7994 (syms_of_minibuf): Defsubr it. Remove
7995 minibuffer-prompt-in-buffer.
7996 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7997 Extend documentation.
7998
7999 * xdisp.c (get_next_display_element): Display \r as ^M.
8000
8001 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8002 under scroll bar widget.
8003
80041999-08-21 Gerd Moellmann <gerd@gnu.org>
8005
8006 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8007 anywhere.
8008 (unwind_redisplay): Return nil.
8009 (clear_garbaged_frames): New.
8010 (redisplay_internal): Use it.
8011 (echo_area_display): Ditto.
8012 (resize_mini_window): Mew.
8013 (display_echo_area_1): Use it to resize echo area window.
8014 (redisplay_internal): Use it to resize active mini-window.
8015
8016 * dispextern.h, lisp.h: Add function prototypes.
8017
427ec082 8018 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8019 cursor_in_echo_area case only for a mini-window showing
8020 a message. Don't let cursor end up after the end of a row.
8021
8022 * xdisp.c (echo_area_glyphs, echo_area_message,
8023 echo_area_glyphs_length, previous_echo_glyphs,
8024 previous_echo_area_message, previous_echo_area_glyphs_length):
8025 Removed.
8026 (Vmessage_stack, echo_area_buffer, echo_buffer,
8027 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8028 (message2_nolog): Use set_message and clear_message.
8029 (message3): Rename parameter len to nbytes to make clear what
8030 it is.
8031 (message3_nolog): Ditto. Use set_message and clear_message.
8032 (update_echo_area): Rewritten.
8033 (with_echo_area_buffer): New.
8034 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8035 (setup_echo_area_for_printing): New.
8036 (display_echo_area, display_echo_area_1): New.
8037
8038 (current_message, current_message_1): New.
427ec082 8039 (push_message, restore_message, pop_message,
26901792
DL
8040 check_message_stack): New.
8041 (truncate_echo_area): Rewritten.
8042 (truncate_message_1): New.
8043 (set_message, set_message_1, clear_message): New.
8044 (echo_area_display): Rewritten.
8045 (redisplay_internal): Check for needed echo area update
8046 differently.
8047 (redisplay_preserve_echo_area): Rewritten.
427ec082 8048 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8049 message differently.
8050 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8051 Remove initialzation of removed variables.
8052 (init_xdisp): Remove references to removed variables.
8053
8054 * dispnew.c (adjust_frame_message_buffer): Removed references
8055 to echo_area_glyphs and previous_echo_glyphs.
8056 (direct_output_for_insert): Check for mini-window displaying
8057 echo area message differently.
8058 (update_frame): Likewise.
8059 (set_window_cursor_after_update): Likewise. In echo area,
8060 don't try to set cursor on rows that aren't enabled.
8061
8062 * print.c: Remove conditional compilation on `standalone'.
8063 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8064 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8065 longer used in that way.
8066 (PRINTDECLARE): Add multibyte.
8067 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8068 (printbufidx): Removed.
8069 (printchar, strout): Rewritten.
8070
8071 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8072 a struct kboard.
8073 (echo_kboard): New.
8074 (echo_now): Set echo_kboard to the current kboard.
8075 (cancel_echoing): Set echo_kboard to null.
8076 (cmd_error_internal): Use clear_message, remove references
8077 to echo_area_glyphs and echo_area_message.
8078 (command_loop_1): Check for echo area messages differently.
8079 (read_char): Likewise.
8080 (record_menu_key): Use clear_message.
8081 (Fexecute_extended_command): Check for echo area messages
8082 differently. Use push_message, restore_message, pop_message.
8083
8084 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8085 pop_message.
8086
8087 * emacs.c (shut_down_emacs): Call check_message_stack.
8088
8089 * lisp.h: Add function prototypes and extern declarations for
8090 new functions and variables.
8091
8092 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8093 pop_message.
8094
427ec082 8095 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8096 setting echo_area_glyphs.
8097 (Fminibuffer_completion_help): Ditto.
8098
8099 * editfns.c (Fcurrent_message): Rewritten.
8100
8101 * frame.c, window.h: Remove references to echo_area_glyphs
8102 and previous_echo_glyphs.
8103
81041999-08-21 Dave Love <fx@gnu.org>
8105
8106 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8107 * aix4-1.h: Likewise.
8108
8109 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8110
81111999-08-20 Gerd Moellmann <gerd@gnu.org>
8112
8113 * xfns.c: Remove tiff34 prefix from include.
8114
81151999-08-20 Dave Love <fx@gnu.org>
8116
8117 * cm.c: Revert previous change.
8118
81191999-08-19 Gerd Moellmann <gerd@gnu.org>
8120
8121 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8122 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8123
81241999-08-18 Dave Love <fx@gnu.org>
8125
8126 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8127 stdlib.h.
8128
8129 * doprnt.c: Use stdlib.h, unistd.h.
8130
8131 * config.in: Add HAVE_TERMCAP_H.
8132
8133 * cm.c: Use termcap.h.
8134
81351999-08-18 Gerd Moellmann <gerd@gnu.org>
8136
8137 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8138 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8139 cannot be created we will already have crashed earlier. Call
8140 lw_set_main_areas with a null menu-bar widget, so that we have
8141 a reasonable default.
8142 (Fx_create_frame): Rearranged so that Lisp errors during frame
8143 initialization cause less damage. Initialize menu bar widget
8144 here.
8145
81461999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8147
26901792
DL
8148 * dispnew.c (update_frame_line): Fix previous change. If writing
8149 whole line clear to end of frame.
8150
81511999-08-17 Gerd Moellmann <gerd@gnu.org>
8152
8153 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8154 and `right-bitmap-area' if position is in the bitmap areas. This
8155 avoids an error when clicking on the bitmap areas. Instead, they
8156 are currently treated like clicks inside the window.
8157 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8158 (Qleft_bitmap_area, Qright_bitmap_area): New.
8159 (syms_of_window): Initialize new symbols.
8160
8161 * dispnew.c (update_frame_line): If writing whole line,
8162 don't write trailing spaces unless we must.
8163
8164 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8165 (redisplay_internal): Register unwind_redisplay with
8166 register_unwind_protect.
8167 (try_window_reusing_current_matrix): If new start > old start,
8168 give up if start pos of first reusable row is not equal to new
8169 start.
8170
8171 * eval.c (Fsignal): Don't reset redisplaying_p here.
8172
8173 * xterm.c (expose_area): If row extends face to end of line,
8174 write the whole line.
8175
81761999-08-16 Gerd Moellmann <gerd@gnu.org>
8177
8178 * dispextern.h (struct it): Remove member
8179 show_trailing_whitespace_p.
8180
8181 * dispnew.c (direct_output_for_insert): Use
8182 Vshow_trailing_whitespace instead of former iterator member
8183 show_trailing_whitespace_p.
8184 (direct_output_forward_char): Don't do it if hightlighting
8185 trailing whitespace.
8186
8187 * xdisp.c (Qshow_trailing_whitespace): Removed.
8188 (Vshow_trailing_whitespace): Added.
8189 (init_iterator): Remove initialization code for
8190 show_trailing_whitespace_p.
8191 (redisplay_internal): Don't try cursor movement in this_line
8192 if showing trailing whitespace.
8193 (redisplay_window): Likewise for cursor movement in current
8194 matrix and try_window_id.
8195 (try_window_reusing_current_matrix): Likewise.
8196 (trailing_whitespace_p): Return 0 if trailing whitespace is
8197 in front of point.
8198 (display_line): Use Vshow_trailing_whitespace instead of
8199 former iterator member show_trailing_whitespace_p.
8200 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8201
82021999-08-16 Gerd Moellmann <gerd@gnu.org>
8203
8204 * window.c (Fpos_visible_in_window_p): Rewritten.
8205
8206 * xfaces.c (add_to_log): Renamed from display_message.
8207 Don't display messages in echo area.
8208
8209 * xterm.c (x_draw_glyph_string_box): Use the background width
8210 of the glyph string for the width of the box.
8211
82121999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8213
8214 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8215
82161999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8217
8218 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8219 background first, and then set other parameters that might
8220 depend upon their new values.
8221
82221999-08-15 Gerd Moellmann <gerd@gnu.org>
8223
8224 * xfaces.c (Vfont_list_limit): New.
8225 (syms_of_xfaces): Make it a user-variable.
8226 (DEFAULT_FONT_LIST_LIMIT): New.
8227 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8228 maximally that number of fonts, otherwise use
8229 DEFAULT_FONT_LIST_LIMIT.
427ec082 8230 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8231 until we have all fonts.
8232 (Fxfont_list): Additionally return the full names of fonts and
8233 their registry and encoding.
8234
427ec082 8235 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8236 Simplify clearing "under" scroll bar.
8237
8238 * window.c (Qfixed_window_size): New.
8239 (syms_of_window): Initialiaze it.
8240 (check_all_windows): Add return type void.
8241 (window_fixed_size_p): New. Return non-zero if window
8242 is fixed-size.
8243 (window_min_size_1): New.
8244 (window_min_size): Handle fixed-size windows.
8245 (size_window): New. Rewritten combination of set_window_height and
8246 set_window_width that handles fixed-size windows.
8247 (set_window_height): Call it.
8248 (set_window_width): Call it.
8249 (Fsplit_window): Give an error on attempt to split a fixed-size
8250 window.
8251 (change_window_height): Partly rewritten to handle fixed-size
8252 windows.
8253
82541999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8255
8256 * process.c (Fopen_network_stream): Fix previous change.
8257
82581999-08-13 Karl Heuer <kwzh@gnu.org>
8259
8260 * xdisp.c (line_number_display_limit_width): New var.
8261 (decode_mode_spec): Use it instead of hardcoded value.
8262 (syms_of_xdisp): Defvar it.
8263
82641999-08-13 Richard M. Stallman <rms@gnu.org>
8265
8266 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8267 (run_hook_with_args): Likewise.
8268
8269 * window.h (struct window): New field too_small_ok.
8270
427ec082 8271 * window.c (set_window_height, set_window_width):
26901792
DL
8272 If window starts out "too small", set its too_small_ok flag.
8273 If window's too_small_ok flag is set, don't delete it
8274 unless it is so small it would cause a crash.
8275
82761999-08-13 Gerd Moellmann <gerd@gnu.org>
8277
8278 * window.c (MINSIZE): Removed.
8279 (window_min_size): New.
8280 (set_window_height): Use window_min_size.
8281 (change_window_height): Ditto.
8282
82831999-08-12 Gerd Moellmann <gerd@gnu.org>
8284
8285 * indent.c (vmotion): Don't add in mini-buffer prompt width
8286 if prompts are inserted into mini-buffer.
8287
82881999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8289
8290 * config.in: Add HAVE_GETADDRINFO.
8291 * process.c (Fopen_network_stream): Use getaddrinfo.
8292
82931999-08-11 Gerd Moellmann <gerd@gnu.org>
8294
8295 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8296 glyphs to -1.
8297
8298 * xdisp.c (face_before_or_after_it_pos): If position after
8299 or before iterator's current position in the buffer is out
8300 of bounds, return the iterator's original face id.
8301
8302 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8303 just swap glyphs pointers between current and desired row.
8304 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8305 desired matrix method string to current matrix.
8306
83071999-08-11 Kenichi Handa <handa@etl.go.jp>
8308
8309 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8310
8311 * lread.c (read_escape): For Control modifier, pay attention to
8312 multibyte character.
8313 (read1): Likewise. Singal error or a multibyte character which
8314 has a modifer bit. Check validity of Shift modifer.
8315
8316 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8317 the same as Lisp reader.
8318
83191999-08-10 Richard M. Stallman <rms@gnu.org>
8320
8321 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8322
83231999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8324
8325 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8326
83271999-08-10 Eli Zaretskii <eliz@gnu.org>
8328
8329 * msdos.c (IT_set_face): Abort if the default face is not realized
8330 and cached.
8331 (IT_write_glyphs): Reset the screen face to the default face
8332 before writing glyphs.
8333
8334 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8335 colors from the frame here.
8336 (realize_tty_face) [MSDOS]: Do it here. Update the face
8337 attributes with the actual name of the color taken from the
8338 frame.
8339
8340 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8341 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8342
8343 * frame.c (Fframe_parameters): Swap foreground and background
8344 colors returned in frame parameters if the frame has reverse in
8345 its parameter alist.
8346 (Fmake_terminal_frame): Make a unique copy of face_alist for
8347 each frame.
8348
83491999-08-07 Richard Stallman <rms@gnu.org>
8350
8351 * buffer.c (Fprevious_overlay_change): Just return
8352 the answer obtained from overlays_at.
8353
8354 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8355 Use XpmCloseness and attrs.closeness instead.
8356
83571999-08-06 Richard Stallman <rms@gnu.org>
8358
8359 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8360
83611999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8362
427ec082 8363 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8364 Ffile_attributes_lessp): New functions.
8365 (Fdirectory_files): Use directory_files_internal.
8366 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8367 Ffile_attributes_lessp.
8368
8369 * w32.c (stat): Check for directory ending in separator when
8370 doing readdir fast path.
8371
8372 * w32fns.c (x_set_icon_type): Support setting frame icons.
8373 * w32term.c (x_bitmap_icon): New function.
8374 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8375
26901792
DL
83761999-08-06 Gerd Moellmann <gerd@gnu.org>
8377
8378 * xdisp.c (set_iterator_to_next): After delivering a character
8379 from a display vector, restore face and charset to what they were
8380 before the display vector was processed.
8381
83821999-08-06 Gerd Moellmann <gerd@gnu.org>
8383
8384 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8385 on_newline_p.
8386 (set_iterator_to_next): After delivering last char
427ec082 8387 from display vector, reseat on next visible line start if
26901792
DL
8388 dpvec_char_len < 0.
8389 (next_element_from_buffer): Set dpvec_char_len to -1 for
8390 selective display.
8391
83921999-08-06 Gerd Moellmann <gerd@gnu.org>
8393
8394 * xdisp.c (compute_line_metrics): If first line's physical ascent
8395 is larger than its logical ascent, use the physical ascent, and
8396 make the row taller. Set row's overlapping_p flag.
8397
8398 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8399 (direct_output_for_insert): Ditto.
8400
8401 * dispextern.h (struct glyph_row): Add overlapping_p.
8402
8403 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8404
8405 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8406 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8407
8408 * dispnew.c (direct_output_for_insert): Don't use this method if
8409 row is overlapped by others.
8410 (update_text_area): Write full line if current line is overlapped.
8411 (redraw_overlapped_rows): New.
8412 (update_window): Call it.
8413 (redraw_overlapping_rows): New.
8414 (update_window): Call it.
8415 (scrolling_window): Make sure overlapped_p flag in current rows is
8416 unchanged.
8417 (row_equal_p): Take rows overlapped_p flag into account.
8418
8419 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8420
8421 * xterm.c (x_fix_overlapping_area): New.
8422 (x_redisplay_interface): Add x_fix_overlapping_area.
8423
8424 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8425
84261999-08-06 Gerd Moellmann <gerd@gnu.org>
8427
8428 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8429 (struct glyph_string): Add member for_overlaps_p.
8430 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8431 of overlapping rows, clip to window bottom.
8432 (x_fill_glyph_string): Add parameter overlaps_p.
8433 (x_fill_composite_glyph_string): Ditto.
8434 (BUILD_GLYPH_STRINGS): Ditto.
8435 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8436 (x_draw_glyph_string): Don't draw anything but the foreground
8437 if glyph string draws row overlaps.
8438
8439 * dispnew.c (direct_output_for_insert): Don't use this
8440 optimization for rows that overlap others.
8441 (update_window_line): Return non-zero if display has changed.
8442 (update_text_area): Ditto.
8443 (update_window): Record if display has been changed.
8444
8445 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8446
8447 * dispextern.h (struct redisplay_interface): Add
8448 fix_overlapping_area.
8449
8450 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8451
8452 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8453
8454 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8455 ascent and descent.
8456 (x_produce_stretch_glyph): Ditto.
8457 (x_produce_glyphs): Ditto.
8458
8459 * xdisp.c (init_iterator): Reset physical line height info
8460 after producing special glyphs.
8461 (display_toolbar_line): Set physical line height info.
8462 (compute_line_metrics): Ditto.
8463 (display_line): Ditto.
8464 (display_string): Ditto.
8465
8466 * term.c (produce_glyphs): Set iterator's physical height
8467 information.
8468
8469 * dispnew.c (blank_row): Compute glyph row's physical height.
8470 (row_equal_p): Take physical row heights into account.
8471 (direct_output_for_insert): Ditto.
8472 (update_text_area): Ditto.
8473
8474 * dispextern.h (struct glyph_row): Add phys_ascent and
8475 phys_height.
8476 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8477 max_phys_descent.
8478
84791999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8480
8481 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8482 Fswitch_to_buffer.
8483 (no_switch_buffer): New function.
8484 (Fswitch_to_buffer): Call them. Don't get confused
8485 by "same-window" buffers in a dedicated frame.
8486
8487 * window.c (display-buffer): Don't get confused
8488 by "same-window" buffers in a dedicated frame.
8489
84901999-08-04 Andreas Schwab <schwab@gnu.org>
8491
8492 * insdel.c (insert_from_string_1): Check gap size against number
8493 of outgoing bytes, not incoming bytes.
8494
84951999-08-03 Tom Breton <tob@world.std.com>
8496
8497 * lread.c (read1): Added circular reading code to #N=.
8498 (SUBSTITUTE): New macro.
8499 (seen_list): New variable.
8500 (substitute_object_in_subtree): New function.
8501 (substitute_object_recurse): New function.
8502 (substitute_in_interval): New function.
8503
85041999-08-02 Eli Zaretskii <eliz@gnu.org>
8505
8506 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8507
8508 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8509 noninteractive, for termcap frames as well.
8510
8511 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8512 frames.
8513
85141999-08-01 Richard Stallman <rms@gnu.org>
8515
8516 * fns.c (internal_equal): Correct overlay comparison.
8517
83c8f461 85181999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8519
427ec082 8520 * xfns.c (x_set_internal_border_width):
26901792
DL
8521 Call do_pending_window_change. Don't block input, don't call XFlush.
8522 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8523 (x_set_scroll_bar_width, x_set_font): Likewise.
8524
8525 * frame.c (Fset_frame_height): Call do_pending_window_change.
8526 (Fset_frame_width, Fset_frame_size): Likewise.
8527
8528 * xterm.c (x_set_window_size): When calling change_frame_size,
8529 specify 1 for DELAY.
8530
8531 * widget.c (EmacsFrameSetCharSize): Don't call
8532 do_pending_window_change here.
8533
85341999-07-30 Dave Love <fx@gnu.org>
8535
8536 * config.in: Add HAVE_STDLIB_H.
8537
85381999-07-30 Richard M. Stallman <rms@gnu.org>
8539
8540 * process.c (create_process): Detect failure of `pipe'.
8541
85421999-07-30 Keisuke Nishida <kei@psn.net>
8543
8544 * alloc.c (allocate_vectorlike): Add missing increment.
8545
8546 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8547
8548 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8549 before calling indirect_function.
8550
85511999-07-30 Eli Zaretskii <eliz@gnu.org>
8552
8553 * dispextern.h (load_color, lookup_derived_face): Declare
8554 prototypes.
8555
8556 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8557 it will be done later.
8558
8559 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8560 init_frame_faces if non-interactive.
8561 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8562 array with a call to msdos_stdcolor_name. The font name is now
8563 "ms-dos", consistent with realize_tty_face.
8564
8565 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8566 MSDOS frame.
8567
8568 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8569 x_set_toolbar_lines.
8570
8571 * xfaces.c (load_color): Remove static from definition and remove
8572 prototype.
8573 [MSDOS]: Add a DOS-specific version of load_color.
8574 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8575 (lookup_derived_face): New function.
8576 (realize_default_face): Support MSDOS frames.
8577 [MSDOS]: If fore/background colors are unspecified, inherit them
8578 from the frame.
8579 (realize_face): Support MSDOS frames.
8580 (realize_tty_face): Support MSDOS frames.
8581 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8582 load_color to try to find a suitable approximation. If the face
8583 is inverse-video, swap the foreground and background colors.
8584
8585 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8586 functions.
8587
8588 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8589
8590 * msdos.h: Remove redundant declarations (most of them are now in
8591 dispextern.h).
8592
8593 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8594 Use default frame colors if the face doesn't specify them; invert
8595 the colors if highlight is ON.
8596 (IT_write_glyphs): Rewritten for the new redisplay engine.
8597 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8598 how the hook is called by term.c.
8599 (IT_copy_glyphs): New function, copies an area of the display in
8600 video RAM.
8601 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8602 redisplay now calls it even if char_ins_del_ok is zero.
8603 (IT_set_frame_parameters): Prototype changed. Calls the new
8604 load_color. Puts the new fore/background colors into the default
8605 face on current frame.
8606 (IT_menu_display): Rewritten to handle the new struct glyph
8607 instead of a char array.
8608 (XMenuActivate): Call lookup_derived_face to create and use
8609 special faces for the pop-up and drop-down menus.
8610
86111999-07-29 Gerd Moellmann <gerd@gnu.org>
8612
8613 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8614 XawScrollbarSetThumb if thumb parameters haven't changed because
8615 that function apparently isn't optimized for this case.
8616
86171999-07-29 Eli Zaretskii <eliz@gnu.org>
8618
8619 * msdos.c (getdefdir): Don't return failure indication when
8620 _fixpath sets errno to ENOSYS.
8621
86221999-07-28 Gerd Moellmann <gerd@gnu.org>
8623
8624 * xdisp.c (string_char_and_length): New. Use it everywhere
8625 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8626
86271999-07-28 Kenichi Handa <handa@etl.go.jp>
8628
8629 * fns.c (count_combining): New function.
8630 (struct textprop_rec): New structure.
8631 (concat): Copy text properties correctly when byte combining
8632 occurs.
8633
86341999-07-28 Gerd Moellmann <gerd@gnu.org>
8635
8636 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8637 if display is mono.
8638 (x_draw_row_bitmaps): If face has stipple, don't switch
8639 to foreground color for clearing areas, and set the fill style.
8640
8641 * xfaces.c (load_face_colors): Load background color if setting
8642 stipple, too.
427ec082 8643 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8644 FillStippled.
8645
86461999-07-26 Ken'ichi Handa <handa@gnu.org>
8647
8648 * xterm.c (x_find_ccl_program): Add casting.
8649
8650 * w32fns.c (w32_find_ccl_program): Add casting.
8651
86521999-07-27 Gerd Moellmann <gerd@gnu.org>
8653
8654 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8655
8656 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8657 because this will try to access a nonexisting widget.
8658
86591999-07-26 Markus Rost <rost@gnu.org>
8660
427ec082 8661 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8662 (Fputhash): Ditto.
8663 (Fremhash): Ditto.
8664
86651999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8666
26901792
DL
8667 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8668 value to frame width and height.
8669
8670 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8671 into account for full-width windows. Don't add scroll bar width
8672 to width of clip rect.
8673 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8674 (x_set_glyph_string_background_width): Add 1 to background width.
8675 (x_draw_glyphs): Take internal border into account for full-width
8676 lines.
8677
86781999-07-26 Richard M. Stallman <rms@gnu.org>
8679
8680 * xfns.c (x_set_mouse_color): Always unload the old color.
8681 Don't allow nil as color value.
427ec082 8682 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8683 Always unload the old color.
8684
8685 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8686
86871999-07-26 Karl Heuer <kwzh@gnu.org>
8688
8689 * fns.c (Fy_or_n_p): Doc fix.
8690
86911999-07-26 Kenichi Handa <handa@etl.go.jp>
8692
8693 * ccl.h (setup_ccl_program): The type is changed to `int'.
8694
8695 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8696 stored in the following CCL code. Adjusted for the change of
8697 Vccl_program_table.
8698 (resolve_symbol_ccl_program): Adjusted for the new style of
8699 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8700 is resolving failed.
8701 (ccl_get_compiled_code): New function.
8702 (setup_ccl_program): Function type changed from `void' to `int'.
8703 Resolve symbols in CCL_PROG.
8704 (Fccl_program_p): New function.
8705 (Fccl_execute): Get compiled CCL code by just calling
8706 setup_ccl_program.
8707 (Fccl_execute_on_string): Likewise.
8708 (Fregister_ccl_program): Adjusted for the change of
8709 Vccl_program_table.
8710
8711 * coding.c (setup_coding_system): Get compiled CCL code by just
8712 calling setup_ccl_program.
8713
8714 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8715 calling setup_ccl_program.
8716
8717 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8718 calling setup_ccl_program.
8719
87201999-07-23 Gerd Moellmann <gerd@gnu.org>
8721
8722 * xfaces.c (frame_update_line_height): Just use the height of the
8723 frame's fontset or font, instead of taking face fonts into
8724 account.
8725
8726 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8727
87281999-07-23 Richard M. Stallman <rms@gnu.org>
8729
8730 * window.c (Fsplit_window): For default size, round up for left window.
8731
87321999-07-21 Joe Ramey <ramey@ti.com>
8733
d7d0dac0 8734 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
8735 has returned -1 (lockfile exists but is not a symlink?).
8736
87371999-07-20 Gerd Moellmann <gerd@gnu.org>
8738
8739 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8740 because of a change in cursor_gc made in 20.4.
8741
87421999-07-19 Gerd Moellmann <gerd@gnu.org>
8743
8744 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8745 for YNegative, if using X toolkit.
8746
427ec082 8747 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8748 from positions returned.
8749
87501999-07-17 Gerd Moellmann <gerd@gnu.org>
8751
8752 * xrdb.c (x_load_resources): Set double-click time defaults
8753 for Motif list boxes from double-click-time.
8754
8755 * fns.c (Vhash_table_tests): Remvoed.
8756 (Qhash_table_test): New.
8757 (syms_of_fns): Initialize Qhash_table_test.
8758 (Fmake_hash_table): Look up user-defined tests in symbol prop
8759 `hash-table-test'.
8760 (Fdefine_hash_table_test): Store test and hash function as
8761 symbol prop `hash-table-test'.
8762 (make_hash_table): Add parameters user_test and user_hash.
8763
8764 * window.c (set_window_buffer): Set window margins for tty
8765 frames, too.
8766 (Fset_window_margins): Ditto.
8767
8768 * term.c (append_glyph): Use glyph area of iterator instead of
8769 always TEXT_AREA.
8770
8771 * dispnew.c (update_frame_1): Add left margin width to cursor
8772 hpos.
8773 (direct_output_for_insert): Ditto.
8774 (direct_output_forward_char): Ditto.
8775
8776 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8777
8778 * dispextern.h (struct glyph_matrix): Add top_line_p.
8779
87801999-07-16 Gerd Moellmann <gerd@gnu.org>
8781
8782 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8783 instead.
8784
8785 * fns.c (cmpfn_eq): Add hash code parameters.
8786 (cmpfn_eql): Ditto.
8787 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8788 (cmpfn_user_defined): Likewise.
8789
87901999-07-15 Gerd Moellmann <gerd@gnu.org>
8791
8792 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8793
8794 * fns.c (maybe_resize_hash_table): Correct computation of
8795 index vector size.
8796 (make_hash_table): Ditto.
8797 (Fmakehash): New.
8798
8799 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8800
8801 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8802 (survives_gc_p): Make it externally visible.
8803 (mark_object): Ditto.
8804
8805 * fns.c (remove_hash_entry): Removed.
8806 (sweep_weak_hash_tables): New.
8807
8808 * print.c (print): Print more information about hash tables.
8809
8810 * xfns.c (image_spec_hash): Removed.
8811 (lookup_image): Use sxhash instead of image_spec_hash.
8812 (image_spec_equal_p): Removed.
8813 (lookup_image): Use Fequal instead of image_spec_equal_p.
8814
88151999-07-14 Gerd Moellmann <gerd@gnu.org>
8816
8817 * lisp.h (P_): Moved to top of file.
8818
8819 * fns.c (make_hash_table): Set new members.
8820
8821 * alloc.c (mark_object): Mark hash table's user_hash_function.
8822 Mark index vector for weak hash tables.
8823
8824 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8825 user_hash_function, cmpfn, and hashfn.
8826
8827 * fns.c (build_hash): Removed.
8828 (hash_test): Removed.
8829 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8830 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8831
88321999-07-13 Gerd Moellmann <gerd@gnu.org>
8833
8834 * alloc.c (survives_gc_p): New.
8835
8836 * print.c (print): Add hash table handling.
8837
8838 * alloc.c (mark_object): Add code to mark hash tables.
8839
8840 * lisp.h (GC_HASH_TABLE_P): New.
8841
8842 * emacs.c (main): Call init_fns.
8843
8844 * fns.c (init_fns): New.
8845
8846 * fns.c: Add hash table implementation.
8847
8848 * lisp.h (PVEC_HASH_TABLE): New.
8849 (struct Lisp_Hash_Table): New.
8850 (XHASH_TABLE): New.
8851 (XSET_HASH_TABLE): New.
8852 (HASH_TABLE_P): New.
8853 (CHECK_HASH_TABLE): New.
8854 (DEFAULT_HASH_SIZE): New.
8855 (DEFAULT_REHASH_THRESHOLD): New.
8856 (DEFAULT_REHASH_SIZE): New.
8857
8858 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8859 (x_write_glyphs): Compute overwritten cursor using real start
8860 and end positions of display.
8861 (x_insert_glyphs): Ditto.
8862
88631999-07-10 Gerd Moellmann <gerd@gnu.org>
8864
8865 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8866
8867 * dispnew.c (blank_row): Add y-position as parameter. Compute
8868 visible height.
8869
8870 * xdisp.c (next_element_from_string): Give padding spaces
8871 a position of -1.
8872
427ec082 8873 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8874 marginals areas on tty frames in a future version.
8875 (allocate_matrices_for_frame_redisplay): Ditto.
8876
8877 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8878 to zero if number of glyphs in the row is <= 1.
8879
88801999-07-09 Gerd Moellmann <gerd@gnu.org>
8881
8882 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8883 into account.
8884
8885 * xdisp.c (handle_display_prop): Don't reset area if handing
8886 a property from a string that came from a `display' property.
8887 (handle_single_display_prop): Don't handle recursive `display'
8888 properties.
8889 (handle_single_display_prop): Handle some display property
8890 forms for terminal frames.
8891 (Qimage): Moved here from xfns.c.
8892
8893 * dispextern.h (struct it): New field string_from_display_prop_p.
8894
8895 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8896 line.
8897
88981999-07-08 Gerd Moellmann <gerd@gnu.org>
8899
8900 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8901
8902 * window.c (set_window_buffer): Set window's vscroll to zero.
8903
8904 * xdisp.c (QCwhen): New.
8905 (display_prop_end): New.
8906 (handle_single_display_prop): Use it.
8907 (debug_method_add): Print buffer name if tracing.
8908 (try_window_reusing_current_matrix): Compute visible height
8909 of reused rows. Fix cursor position calculation in case of
8910 top-line.
8911
8912 * dispextern.h (struct redisplay_interface): Add parameter
8913 cursor_on_p to update_window_end_hook.
8914
8915 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8916
89171999-07-07 Gerd Moellmann <gerd@gnu.org>
8918
427ec082 8919 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8920 doesn't become negative when decrementing it.
8921
8922 * eval.c (Fsignal): Reset redisplaying_p to zero.
8923
8924 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8925 for window update.
8926 (try_window_id): Ditto.
8927
8928 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8929 (x_scroll_run): Ditto.
8930 (any_help_event_p): New.
8931 (x_initialize): Set it to zero.
8932 (XTread_socket): Clear help echo only if any_help_event_p.
8933
8934 * xdisp.c (init_iterator): Set top_line_p.
8935 (start_display): Use correct initial y if top-line is present.
8936 (make_cursor_line_fully_visible): Bug fixes for top-line.
8937 (try_scrolling): Ditto.
8938 (try_window_reusing_current_matrix): Ditto.
8939
8940 * dispextern.h (struct it): Add top_line_p.
8941
8942 * dispnew.c (shift_glyph_matrix): Move some computations out
8943 of the loop.
8944
427ec082 8945 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8946 XFLOATINT.
8947
89481999-07-06 Gerd Moellmann <gerd@gnu.org>
8949
8950 * dispnew.c (update_frame_1): When setting cursor in echo area,
8951 skip only over padding spaces at the end.
8952
8953 * xfaces.c (realize_tty_face): Set face's font_name field to
8954 "tty".
8955
8956 * term.c (update_end): Turn cursor on only if selected window's
8957 cursor_off_p flag is not set.
8958
89591999-07-05 Gerd Moellmann <gerd@gnu.org>
8960
8961 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8962 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8963 (TS_cursor_invisible): New.
8964 (term_init): Initialize TS_cursor_invisible.
8965 (tty_hide_cursor): New.
8966 (tty_show_cursor): New.
8967 (update_end): Show tty cursor.
8968 (update_begin): Hide tty cursor to prevent cursor flickering
8969 during redisplays triggered by timers (stealth fontification).
8970
8971 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8972
8973 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8974 in scroll bars.
8975 (x_handle_toolbar_click): Set modifier bits.
8976
89771999-07-04 Gerd Moellmann <gerd@gnu.org>
8978
8979 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8980 instead of a pointer to a volatile input_event.
427ec082 8981 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8982 declaration of local variable `sp'.
8983 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8984 to kbd_fetch_ptr.
8985
89861999-07-03 Gerd Moellmann <gerd@gnu.org>
8987
8988 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8989 only if buffer is modified. Return quickly if changes are
8990 above window start.
8991
89921999-07-02 Gerd Moellmann <gerd@gnu.org>
8993
8994 * dispextern.h (HSCROLL_WINDOWS): Removed.
8995
8996 * xdisp.c (mark_window_display_accurate): Don't set
8997 w->region_showing.
8998 (redisplay_internal): Don't call redraw_garbaged_frames.
8999
90001999-07-01 Gerd Moellmann <gerd@gnu.org>
9001
9002 * xdisp.c (echo_area_display): Don't display truncation marks
9003 for messages because 20.4 doesn't do it either.
9004 (redisplay_window): Case same window start. Instead of giving
9005 up when cursor is partially visible, make it fully visible.
9006 (mark_window_display_accurate): Some cleanup. Record window's
9007 last cursor information.
9008 (debug_method_add): Improved.
9009 (redisplay_internal): Record last cursor info only if not
9010 consider_all_windows_p.
9011
9012 * dispnew.c (update_window): Update top line after scrolling.
9013 (blank_row): Renamed from make_empty_enabled_row.
9014 (increment_glyph_row_buffer_positions): Increment positions
9015 in buffers, only.
9016
9017 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9018 string.
9019
90201999-06-30 Gerd Moellmann <gerd@gnu.org>
9021
9022 * dispnew.c (update_window): Check that updated row is visible.
9023
9024 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9025 top of window differently.
9026
9027 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9028 if region is showing.
9029
9030 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9031 avoiding matrix reallocation. Set window_vscroll in matrix.
9032
9033 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9034
26901792
DL
9035 * xdisp.c (debug_method_add): New.
9036 (debug_redisplay_method): Removed.
9037 (try_window_reusing_current_matrix): Handle case where old
9038 window start is the same as new window start.
9039
9040 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9041 an array instead of a pointer.
9042
26901792
DL
9043 * xfns.c (Fx_show_tip): Undo previous change.
9044
9045 * xterm.c (x_append_glyph): Clear glyph->u.val.
9046
9047 * dispextern.h (struct glyph): Increase size of face_id bit-field
9048 for CHAR_GLYPH to 12.
9049
90501999-06-29 Gerd Moellmann <gerd@gnu.org>
9051
9052 * xfaces.c (x_charset_registry): Make it externally visible.
9053
90541999-06-28 Gerd Moellmann <gerd@gnu.org>
9055
427ec082 9056 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9057 instead of WINDOW_WANTS_MODELINE_P.
9058
9059 * xterm.c (clear_mouse_face): Make externally visible.
9060
9061 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9062
9063 * xterm.c (expose_line): Handle exposure of top-lines.
9064
9065 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9066 if mouse_face_mouse_frame is null.
9067
9068 * xdisp.c (redisplay_window): If window is echo_area_window,
9069 and update_mode_line is set, update menubar and toolbar.
9070
9071 * dispnew.c (space_glyph): Set its charpos to -1.
9072 (update_frame_1): Ignore trailing padding spaces.
9073
9074 * xdisp.c (next_element_from_c_string): Set position of padding
9075 glyphs to -1.
9076
90771999-06-27 Gerd Moellmann <gerd@gnu.org>
9078
9079 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9080 XQueryColor.
9081
9082 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9083 (set_cursor_from_row): Skip over glyphs having a null object at
9084 the start of rows.
9085 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9086 glyphs.
9087 (handle_invisible_prop): Compute next change only when needed.
9088 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9089 line.
9090
90911999-06-26 Gerd Moellmann <gerd@gnu.org>
9092
9093 * xrdb.c (x_load_resources): Don't set resource for double-click
9094 time.
9095
9096 * xdisp.c (try_window_id): Return quickly if all changes are
9097 below the window's current matrix end.
9098
9099 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9100 parameter.
9101
9102 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9103 in desired not in current matrix.
9104 (try_window_reusing_current_matrix): Rotate matrices starting
9105 at start_vpos instead of 0.
9106
9107 * xterm.c (expose_window): Use window_text_bottom_y.
9108 (fast_find_position): Ditto.
9109
9110 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9111 (try_window_reusing_current_matrix): Ditto.
9112 (get_last_unchanged_at_beg_row): Ditto.
9113 (init_iterator): Ditto.
9114
9115 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9116 more row.
9117 (check_matrix_invariants): Use window_text_bottom_y.
9118 (update_window): Ditto.
9119 (scrolling_window): Ditto.
9120
9121 * xdisp.c (window_text_bottom_y): New.
9122
91231999-06-25 Gerd Moellmann <gerd@gnu.org>
9124
9125 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9126 clearing mouse face.
9127 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9128 event.xcrossing.focus is not set, and focus is in the menu bar,
9129 set focus frame as if event.xcrossing.focus were set.
9130
91311999-06-24 Gerd Moellmann <gerd@gnu.org>
9132
9133 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9134 * keyboard.c (make_lispy_movement): Ditto.
9135
9136 * window.c (coordinates_in_window): Return 4 if on top line.
9137 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9138
9139 * xdisp.c (window_box_height): Subtract top line height.
9140 (window_box): Add top line height to top y position if top line
9141 exists.
9142 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9143 the top line row of the window. Set initial y-position to
9144 window's top line height plus delta.
9145 (start_display): Choose start glyph row depending on whether
9146 window has a top line.
9147 (try_scrolling): Take top line height into account for aggressive
9148 scrolling.
9149 (compute_window_start_on_continuation_line): Take top line into
9150 account.
427ec082 9151 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9152 trigger a new redisplay.
9153 (try_window_reusing_current_matrix): Take top line into account.
9154 (find_last_row_displaying_text): Ditto.
9155 (get_last_unchanged_at_beg_row): DItto.
9156 (try_window_id): Ditto.
9157 (compute_line_metrics): Ditto.
9158
9159 * dispnew.c (shift_glyph_matrix): Compute visible row height
9160 taking top line of window into account.
9161 (update_window): Update top line. If scrolling_window detects
9162 that all rows are equal, only set cursor.
9163 (update_window_line): Call after_update_window_line_hook if
9164 mode_line_p flag of rows has changed.
9165 (scrolling_window): Add parameter top_line_p. Return -1 if
9166 all rows are equal.
9167 (mode_line_string): Add parameter mode_line_p. Handle strings
9168 in top lines.
9169
9170 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9171 (MATRIX_FIRST_TEXT_ROW): New.
9172 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9173 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9174 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9175 (MATRIX_TOP_LINE_HEIGHT): New.
9176 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9177 (CURRENT_TOP_LINE_HEIGHT): New.
9178 (DESIRED_TOP_LINE_HEIGHT): New.
9179 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9180 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9181 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9182 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9183
9184 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9185 lines.
9186 (x_draw_row_bitmaps): Take top line into account when clearing
9187 bitmap area.
9188 (x_estimate_mode_line_height): Replacement for
9189 x_frame_mode_line_height.
9190 (x_get_glyph_string_clip_rect): Take top line into account.
9191 (x_clear_end_of_line): Ditto.
9192 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9193 top lines.
9194 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9195 (x_erase_phys_cursor): Take top line into account.
9196
9197 * xdisp.c (window_box_height): Subtract top line height if
9198 window wants a top line.
9199 (display_mode_lines): New.
9200 (redisplay_window): Call it.
9201 (display_mode_line): Add parameters face_id and format.
9202
9203 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9204 (MATRIX_TOP_LINE_HEIGHT): New.
9205
9206 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9207
9208 * term.c (estimate_mode_line_height): Renamed from
9209 frame_mode_line_height. Add parameter face_id.
9210 (estimate_mode_line_height_hook): Renamed from
9211 frame_mode_line_height_hook.
9212 (produce_special_glyphs_hook): Removed.
9213 (produce_glyphs_hook): Removed.
9214
92151999-06-23 Gerd Moellmann <gerd@gnu.org>
9216
9217 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9218 (struct glyph_row): Add mode_line_p.
9219
9220 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9221 (Qtop_line): New.
9222 (syms_of_xfaces): Initialize Qtop_line.
9223
9224 * dispextern.h (TOP_LINE_FACE_ID): New.
9225
9226 * buffer.c (init_buffer_once): Set default for
9227 top_line_format to nil.
9228 (init_buffer_once): Init top_line_format.
9229 (default-top-line-format): New.
9230 (top-line-format): New buffer-local variable.
9231
9232 * buffer.h: Add top_line_format.
9233
9234 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9235
92361999-06-17 Dave Love <fx@gnu.org>
9237
9238 * xfns.c: Move the PNG section before the JPEG one to avoid
9239 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9240
26901792
DL
92411999-06-17 Gerd Moellmann <gerd@gnu.org>
9242
9243 * xfns.c (x_kill_gs_process): Don't free colors.
9244
92451999-06-17 Dave Love <fx@gnu.org>
9246
9247 * s/gnu-linux.h: Zap spurious ~.
9248
92491999-06-16 Gerd Moellmann <gerd@gnu.org>
9250
9251 * xfns.c (gif_load): Improve multi-image support.
9252
92531999-06-15 Gerd Moellmann <gerd@gnu.org>
9254
9255 * xfns.c (gif_load): Support multi-image files.
9256
9257 * Makefile.in (LIBGIF): Use libungif.
9258
9259 * configure.in (HAVE_GIF): Use libungif instead of libgif
9260 because the former doesn't contain patented compression code.
9261
9262 * xdisp.c (compute_window_start_on_continuation_line): Don't
9263 do it if line start is too far away from window start.
9264
92651999-06-14 Gerd Moellmann <gerd@gnu.org>
9266
9267 * buffer.c (init_buffer_once): Set buffer_local_flags for
9268 scroll_*_aggressively.
9269 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9270 (init_buffer_once): Set defaults for these variables.
9271 (syms_of_buffer): Add default-scroll-*-aggressively.
9272
9273 * buffer.h (scroll_up_aggressively): New.
9274 (scroll_down_aggressively): New.
9275
9276 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9277 a static PNG library.
9278
9279 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9280 in case it's a static library.
9281
9282 * Makefile.in (ctagsfiles): Split so that files starting
9283 with an `x' are found before files starting with `w32'.
9284 (ctagsfiles1): New.
9285 (ctagsfiles2): New.
9286 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9287
9288 * xdisp.c (compute_window_start_on_continuation_line): New.
9289 (redisplay_window): Use it.
9290 (INFINITY): New.
9291 (reseat_to_string): Use it.
9292 (hscroll_window_tree): Ditto.
9293 (compute_window_start_on_continuation_line): Ditto.
9294 (redisplay_window): Don't force display with a new window start.
9295
92961999-06-06 Gerd Moellmann <gerd@gnu.org>
9297
9298 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9299 if widget not present.
9300
9301 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9302
93031999-06-04 Gerd Moellmann <gerd@gnu.org>
9304
9305 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9306 value of realize_basic_faces.
9307 (load_face_font_or_fontset): Store full font name in face.
9308 (realize_default_face): Use full font name.
9309
26901792
DL
9310 * xterm.c (x_produce_glyphs): Set member char_to_display.
9311 (x_append_glyph): Store char_to_display in glyphs.
9312
9313 * dispextern.h (struct it): Add char_to_display.
9314
9315 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9316 if faces haven't been initialized.
9317 (Fx_create_frame): Call face-set-after-frame-default after
9318 faces have been initialized, and widget has been created.
9319
9320 * puresize.h (BASE_PURESIZE): Increased.
9321
93221999-06-01 Gerd Moellmann <gerd@gnu.org>
9323
9324 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9325 (Finternal_set_lisp_face_attribute): If frame is t when
9326 :font attribute is set, use the selected frame.
9327 (clear_face_cache): Add parameter clear_fonts_p.
9328 (Fclear_face_cache): Add optional parameter thorougly.
9329
9330 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9331 in table.
9332 (Fclear_face_cache): New.
9333 (choose_face_fontset_font): If fontset doesn't contain font
9334 pattern for the given charset, use CHARSET_ASCII.
9335 (Finternal_set_lisp_face_attribute): Fix handling of nil
9336 stipple attribute.
9337 (Finternal_set_lisp_face_attribute): Fix handling of changing
9338 font-related face attributes of the default face.
9339 (set_lface_from_font_name): Set only attributes that aren't
9340 specified.
9341
93421999-05-31 Gerd Moellmann <gerd@gnu.org>
9343
9344 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9345 font support.
9346 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9347 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9348 scalable fonts depending on the setting of SCALABLE_FONTS.
9349 (first_font_matching): List more than one font to find the
9350 first non-scalable matching font.
9351 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9352 depending on SCALABLE_FONTS.
9353 (better_font_p): New parameter compare_pt_p. If zero, don't
9354 compare point sizes of fonts.
9355 (exact_face_match_p) [SCALABLE_FONTS]: New.
9356 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9357 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9358 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9359 (syms_of_xfaces): Add scalable-fonts-allowed.
9360
93611999-05-26 Gerd Moellmann <gerd@gnu.org>
9362
9363 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9364 mask only if image contains simple transparency information.
9365 Otherwise, combine image with frame background color.
9366
9367 * configure.in (--with-png, HAVE_PNG): New.
9368
9369 * config.in (HAVE_PNG): New.
9370
9371 * Makefile.in: Add PNG library.
9372
9373 * xfns.c: Add PNG support.
9374
93751999-05-25 Gerd Moellmann <gerd@gnu.org>
9376
9377 * xdisp.c (init_xdisp): Initialize echo_area_message and
9378 previous_echo_area_message to nil.
9379
9380 * keyboard.c (read_char): Rename local variable echo_area_message
9381 because it shadows the global one.
9382
93831999-05-05 Gerd Moellmann <gerd@gnu.org>
9384
9385 * xterm.c (note_mode_line_highlight): Restructured.
9386
9387 * window.c (coordinates_in_window): Handle windows that don't have
9388 a mode line because their buffer's mode-line-format is nil.
9389 Recognize the mode line under x positions that correspond to
9390 flags areas and left scroll bar.
9391
93921999-05-02 Dave Love <fx@gnu.org>
9393
9394 * xterm.c (note_mouse_highlight): Separate help-echo processing
9395 from check on mouse-face so that it works generally.
9396
93971999-04-21 Gerd Moellmann <gerd@gnu.org>
9398
9399 * sound.c (Fplay_sound): Run hook play-sound-hook.
9400 (Qplay_sound_hook): New.
9401
94021999-04-20 Gerd Moellmann <gerd@gnu.org>
9403
9404 * xdisp.c (update_echo_area): Handle echo_area_message.
9405
94061999-04-19 Gerd Moellmann <gerd@gnu.org>
9407
9408 * editfns.c (Fmessage): Use message3.
9409
9410 * print.c (printchar): Set echo_area_message to nil.
9411 (strout): Ditto.
9412
9413 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9414 (Fminibuffer_completion_help): Ditto.
9415
9416 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9417 (command_loop_1): Test echo_areA_message.
9418 (read_char): Ditto.
9419 (record_menu_key): Set echo_area_message to nil.
9420 (Fexecute_extended_command): Test echo_area_message.
9421 (Fexecute_extended_command): Handle echo_area_message.
9422
9423 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9424 is set.
9425
9426 * editfns.c (Fcurrent_message): If echo_area_message is set,
9427 return a substring of that string.
9428
9429 * dispnew.c (direct_output_for_insert): Test echo_area_message
9430 in addition to echo_area_glyphs.
9431 (set_window_cursor_after_update): Ditto.
9432 (update_frame_1): Ditto.
9433
9434 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9435 old Lisp message string.
9436
9437 * xdisp.c (echo_area_message): New.
9438 (previous_echo_area_message): New.
9439 (syms_of_xdisp): Initialize and staticpro new variables.
9440 (echo_area_display): Display echo_area_message if set.
9441 (message2_nolog): Set echo_area_message and
9442 previous_echo_area_message.
9443 (echo_area_display): Set previous_echo_area_message.
9444 (redisplay_internal): Display echo area if echo_area_message
9445 or previous_echo_area_message are set.
9446 (redisplay_preserve_echo_area): Test/set echo_area_message and
9447 previous_echo_area_message.
9448 (redisplay_window): Test echo_area_message.
9449 (message3_nolog): New.
9450 (message3): New.
9451
9452 * editfns.c (Fformat): Add text properties to the result string
9453 from properties of the format string and properties of string
9454 arguments.
9455
9456 * textprop.c (text_property_list): New.
9457 (add_text_properties_from_list): New.
9458 (extend_property_ranges): New.
9459
94601999-03-29 Gerd Moellmann <gerd@gnu.org>
9461
9462 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9463 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9464 Use these symbols for the box face attribute instead of the
9465 removed ones.
9466
94671999-03-12 Gerd Moellmann <gerd@gnu.org>
9468
9469 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9470 Correct wrong test for slant.
9471
94721999-03-10 Gerd Moellmann <gerd@gnu.org>
9473
9474 * xfaces.c: Use `unspecified' for unspecified face attributes,
9475 use t and nil for on/off.
9476
94771999-03-06 Gerd Moellmann <gerd@gnu.org>
9478
9479 * buffer.c (syms_of_buffer): Extend doc string of
9480 mode-line-format.
9481
9482 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9483 (first_font_matching): New.
9484 (set_lface_from_font_name): Use it if font name is a pattern.
9485 (font_field_wildcard_p): Removed.
9486
9487 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9488 Recompute visible height of rows.
9489
9490 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9491 Don't accept non-strings for help-echo from overlays.
9492
94931999-03-04 Dave Love <fx@gnu.org>
9494
9495 * xterm.c (note_mouse_highlight): Check overlays for help-text
9496 property.
9497 (XTread_socket): Fix compiler warning.
427ec082 9498
26901792
DL
94991999-03-05 Gerd Moellmann <gerd@gnu.org>
9500
427ec082 9501 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9502 overlay to 10. Call overlays_at so that it doesn't try to
9503 extend the vector.
9504
9505 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9506 height.
9507
9508 * dispnew.c (row_equal_p): Compare visible row height, only.
9509 (update_text_area): Draw whole line if visible heights of
9510 rows differ.
9511 (update_window_line): Call after_update_window_line_hook
9512 if visible row height has changed.
9513
9514 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9515 (struct glyph_row): New member visible_height.
9516
9517 * xfaces.c (font_field_wildcard_p): New.
9518 (set_lface_from_font_name): Remove parameter force_p. Accept
9519 font names containing wildcards.
9520
95211999-03-04 Gerd Moellmann <gerd@gnu.org>
9522
9523 * xterm.c (x_after_update_window_line): Clear internal border
9524 when windows_or_buffers_changed.
9525
9526 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9527 buffer has a nil mode_line_format.
9528
95291999-03-03 Gerd Moellmann <gerd@gnu.org>
9530
9531 * xterm.c (x_setup_relief_colors): Use either background color
9532 or specified color.
9533
9534 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9535
9536 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9537
9538 * xterm.c (x_draw_box_rect): New.
9539 (x_draw_glyph_string_box): Renamed from
9540 x_draw_glyph_string_relief. Call x_draw_box_rect.
9541
9542 * xfns.c (QCrelief): New.
9543 (syms_of_xfns): Initialize it.
9544
9545 * dispextern.h (struct glyph): Rename left_shadow_p to
9546 left_box_line_p, right_shadow_p to right_box_line_p.
9547 (MAX_RELIEF_THICKNESS): Removed.
9548 (struct it): Rename members having `relief' in their names
9549 to contain `box' instead.
9550
9551 * xfaces.c (realize_x_face): Handle new box attribute values.
9552 (QCrelief, Qbox): Removed.
9553 (QCshadow, QCcolor, Qraised, Qsunken): New.
9554 (syms_of_xfaces): Initialize new symbols.
9555
95561999-03-02 Gerd Moellmann <gerd@gnu.org>
9557
9558 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9559
9560 * xfaces.c (LFACE_RELIEF): Removed.
9561 (merge_face_vector_with_property): Remove handling of `:relief'.
9562 (Finternal_set_lisp_face_attribute): Ditto.
9563 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9564 (Finternal_get_lisp_face_attribute): Ditto.
9565 (realize_default_face): Ditto.
9566 (lface_hash): Don't compute hash from relief.
9567
9568 * dispextern.h (struct face): Replace member `relief' by
9569 `box_line_width'. Add member `box'.
9570 (face_box_type): New.
9571
9572 * xterm.c (x_produce_glyphs): If face has overline, add overline
9573 thickness + 1 to ascent.
9574
95751999-03-01 Gerd Moellmann <gerd@gnu.org>
9576
9577 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9578 strike-through, and boxes.
9579 (x_draw_glyph_string_underline): Removed.
9580
9581 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9582 (Qoverline, Qstrike_through, Qbox): New.
9583 (syms_of_xfaces): Define these symbols.
9584 (check_lface_attrs): Add checks for overline, strike-through,
9585 and box.
9586 (Finternal_set_lisp_face_attribute): Set new attributes.
9587 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9588 (load_color): Handle new attributes.
9589 (realize_x_face): Ditto.
9590 (merge_face_vector_with_property): Ditto.
9591 (free_face_colors): Ditto.
9592 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9593 (Finternal_get_lisp_face_attribute): Ditto.
9594 (Finternal_lisp_face_attribute_values): Ditto.
9595
9596 * dispextern.h (lface_attribute_index): Add enumerators for
9597 overstrike, strike-through, and box.
9598 (struct face): Add members for overline, strike-through, and
9599 box.
9600
96011999-02-17 Dave Love <fx@gnu.org>
9602
9603 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9604 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9605 files.
9606
96071999-02-16 Gerd Moellmann <gerd@gnu.org>
9608
9609 * keyboard.c (toolbar_items): Call access_keymap with third
9610 parameter 1, so that we don't get inherited toolbar item
9611 definitions.
9612
9613 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9614 the window end vpos when in empty first line of window.
9615
96161999-02-15 Gerd Moellmann <gerd@gnu.org>
9617
9618 * xfaces.c (set_font_frame_param): New.
9619 (Finternal_set_lisp_face_attribute): Call it.
9620
9621Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9622
9623 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9624 Accept specifications of color for underline.
9625
96261999-02-13 Gerd Moellmann <gerd@gnu.org>
9627
9628 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9629 `frame' is t, operate on face defaults for new frames. If it
9630 is nil, operate on the selected frame.
9631
96321999-02-12 Gerd Moellmann <gerd@gnu.org>
9633
9634 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9635 (update_window): Put the call to check_matrix_invariants in #if 0.
9636
9637Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9638
9639 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9640 Remove definition of UNDERLINE_COLOR.
9641
9642Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9643
9644 * xfaces.c (free_face_colors): Free the color for underline.
9645
9646 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9647 to the GC.
9648
9649Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9650
9651 * dispextern.h (UNDERLINE_COLOR): Defined.
9652 (struct face): Added two new members.
9653 underline_color, underline_defaulted_p.
9654
427ec082 9655 * xfaces.c (merge_face_vector_with_property):
26901792 9656 (check_lface_attrs): Accept the string value for underline.
427ec082 9657 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9658
9659 * xfaces.c (load_color): Change the last argument type to enum
9660 lface_attribute_index from int. And addec code for underling coloring.
9661 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9662
26901792
DL
96631999-02-12 Gerd Moellmann <gerd@gnu.org>
9664
9665 * xfns.c (Fx_image_header): Removed.
9666
96671999-02-07 Gerd Moellmann <gerd@gnu.org>
9668
9669 * xterm.c: Don't include <bitmaps/gray>.
9670 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9671
9672 * xfns.c (Fx_image_header): Add missing `\n\'.
9673 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9674
96751999-02-01 Gerd Moellmann <gerd@gnu.org>
9676
9677 * xterm.c (x_scroll_bar_create): Set background pixel from
9678 specified scroll bar color.
9679 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9680
9681 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9682 (x_set_scroll_bar_background): Ditto.
9683
9684 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9685
9686 * xfns.c (x_default_scroll_bar_color_parameter): New.
9687 (Fx_create_frame): Call it.
9688
96891999-01-31 Gerd Moellmann <gerd@gnu.org>
9690
9691 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9692 values in x_output structure.
26901792
DL
9693 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9694 (syms_of_xfns): Initialize these symbols.
9695
9696 * xterm.h (struct x_output): Add scroll bar pixel colors.
9697
9698 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9699 (x_set_scroll_bar_foreground): New.
9700 (x_set_scroll_bar_background): New.
9701
26901792
DL
97021999-01-12 Gerd Moellmann <gerd@gnu.org>
9703
9704 * xdisp.c (handle_single_display_prop): New.
9705 (handle_display_prop): Call it.
9706 (handle_raise_prop): Removed.
9707 (handle_height_prop): Removed.
9708 (handle_space_width_prop): Removed.
9709 (handle_face_prop): Remove handling of raised text.
9710 (handle_display_prop): Do it here.
9711
9712 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9713 (RAISE_PROP_IDX): Removed.
9714 (HEIGHT_PROP_IDX): Removed.
9715 (SPACE_WIDTH_PROP_IDX): Removed.
9716
9717 * xdisp.c (Qdisplay): Replaces Qglyph.
9718 (handle_display_prop): Formerly handle_glyph_prop.
9719
97201999-01-11 Gerd Moellmann <gerd@gnu.org>
9721
9722 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9723 (handle_stop): Set position in display vector to -1. Don't
9724 check overlay strings when set up to deliver characters from a
9725 display vector.
9726 (set_iterator_to_next): At the end of a run of characters from a
9727 display vector, check whether the display vector display replaces
9728 the display of a character.
9729
97301999-01-05 Gerd Moellmann <gerd@gnu.org>
9731
9732 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9733 X window hasn't been created yet.
9734
97351998-12-06 Gerd Moellmann <gerd@gnu.org>
9736
9737 * sound.c: New.
9738
97391998-12-04 Gerd Moellmann <gerd@gnu.org>
9740
9741 * config.in (HAVE_SOUND): New.
9742
9743 * emacs.c (main): Call syms_of_sound and init_sound.
9744
9745 * Makefile.in (obj): Add sound.o.
9746
9747 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9748
9749 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9750 (HAVE_SYS_SOUNDCARD_H): New.
9751
97521998-12-03 Gerd Moellmann <gerd@gnu.org>
9753
9754 * buffer.h (struct buffer): indicate_empty_lines renamed from
9755 indicate_zv_lines.
9756
9757 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9758 (default-indicate-zv-lines): Likewise.
9759
9760 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9761 to indicate_empty_line_p.
9762
9763 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9764 to next_element_from_buffer.
9765
9766 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9767
9768 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9769 and `N-'.
9770
9771 * xfns.c (xbm_scan): New.
9772 (xbm_read_hexint): Removed.
9773 (xbm_read_bitmap_file_data): Use xbm_scan.
9774
9775 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9776
97771998-12-02 Gerd Moellmann <gerd@gnu.org>
9778
9779 * xfns.c (xbm_read_hexint): New.
9780 (xbm_read_bitmap_file_data): New.
9781 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9782 instead of XReadBitmapFileData.
9783
9784 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9785
9786 * xfaces.c (face_with_height): New.
9787
9788 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9789 (eval_form): Renamed from eval_mode_element.
9790 (handle_face_prop): Use it.
9791 (Qheight): Replaces Qsmaller.
9792 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9793 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9794 integer, evaluate it to get the font height to use.
9795
9796 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9797 (struct it): Use `font_height' instead of `smaller'.
9798
97991998-12-01 Gerd Moellmann <gerd@gnu.org>
9800
9801 * xdisp.c (reseat_1): New.
9802 (reseat): Call it.
9803 (move_it_vertically_backward): Ditto.
9804 (redisplay_window): Don't abort when cursor not found in recenter.
9805
98061998-11-30 Gerd Moellmann <gerd@gnu.org>
9807
9808 * xdisp.c (reseat_at_next_visible_line_start): When not
9809 currently delivering display elements from the current buffer,
9810 restore buffer position first.
9811 (init_from_display_pos): Don't set IT's position from the
9812 position passed to this function.
9813
98141998-11-28 Gerd Moellmann <gerd@gnu.org>
9815
9816 * config.in (PROTO): Removed.
9817
9818 * xterm.h: Change PROTO to P_.
9819
98201998-11-26 Gerd Moellmann <gerd@gnu.org>
9821
9822 * xterm.c (take_vertical_position_into_account): New.
9823 (x_produce_image_glyph): Call it.
9824 (x_produce_stretch_glyph): Ditto.
9825 (x_produce_glyphs): Ditto.
9826 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9827 (x_fill_composite_glyph_string): Ditto.
9828 (x_fill_image_glyph_string): Ditto.
9829 (x_fill_stretch_glyph_string): Ditto.
9830
9831 * xdisp.c (display_line): Always compute row height from
9832 max_ascent and max_descent.
9833
9834 * dispextern.h (struct glyph): Add voffset.
9835 (struct it): Replace height by descent, max_height by max_descent.
9836
9837 * xterm.c (x_append_glyph): Set voffset
9838 (x_append_stretch_glyph): Ditto.
9839 (x_produce_image_glyph): Ditto.
9840 (x_produce_glyphs): Take voffset into account.
9841 (x_produce_image_glyph): Ditto.
9842 (x_produce_stretch_glyph): Ditto.
9843
9844 * dispextern.h (struct it): Add voffset.
9845 * xdisp.c (push_it): Save voffset.
9846 (pop_it): Restore it.
9847
9848 * xdisp.c (it_props): Add entry for `raise'.
9849 (handle_raise_prop): New.
9850
9851 * dispextern.h (RAISE_PROP_IDX): New.
9852
9853 * xdisp.c (Qraise): New.
9854 (syms_of_xdisp): Define Qraised.
9855
9856 * xterm.c (x_scroll_bar_move): Clear to the left and right
9857 of toolkit scroll bars differently.
9858 (x_scroll_bar_move): Removed.
9859 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9860
9861 * dispextern.h: Make it compilable --with-x=no.
9862 * alloc.c: Ditto.
9863 * emacs.c: Ditto.
9864 * dispnew.c: Ditto.
9865 * keyboard.c: Ditto.
9866 * term.c: Ditto.
9867 * xdisp.c: Ditto.
9868 * xfaces.c: Ditto.
9869 * xfns.c: Ditto.
9870 * xmenu.c: Ditto.
9871
98721998-11-25 Gerd Moellmann <gerd@gnu.org>
9873
9874 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9875
98761998-11-24 Gerd Moellmann <gerd@gnu.org>
9877
9878 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9879 update slider size, only.
9880 (xm_scroll_callback): Set dragging member of the scroll bar.
9881 (xt_action_hook): Reset last_scroll_bar_part.
9882 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9883
26901792
DL
9884 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9885 window on newly created frames that don't have one.
9886
98871998-11-23 Gerd Moellmann <gerd@gnu.org>
9888
9889 * xdisp.c (restore_overlay_strings): Removed.
9890 (restore_dpvec): Removed.
9891 (init_from_display_pos): Inline both functions above.
9892
9893 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9894 (parse_image_spec): Handle it.
9895 (xbm_format): Use it.
9896 (xpm_format): Ditto.
9897 (pbm_format): Ditto.
9898 (jpeg_format): Ditto.
9899 (tiff_format): Ditto.
9900 (gif_format): Ditto.
9901 (gs_format): Ditto.
9902
9903 * xdisp.c (set_window_cursor): Removed.
9904 (redisplay_internal): Case cursor motion in cursor line of
9905 selected window; use set_cursor_from_row.
9906
99071998-11-22 Gerd Moellmann <gerd@gnu.org>
9908
9909 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9910 into account.
9911
99121998-11-21 Gerd Moellmann <gerd@gnu.org>
9913
9914 * xterm.c (expose_frame): Redraw menu bar window.
9915
9916 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9917 in menu item.
9918
9919 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9920 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9921
9922 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9923 to determine vertical_scroll_bar_extra.
9924 (EmacsFrameSetCharSize): Ditto.
9925 * xfns.c (x_figure_window_size): Ditto.
9926
9927 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9928 (x_draw_bitmap): Ditto.
9929
9930 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9931 * xfaces.c (realize_basic_faces): Realize it.
9932
99331998-11-20 Gerd Moellmann <gerd@gnu.org>
9934
9935 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9936 under LessTif Use the widget of the frame as parent for the
26901792
DL
9937 menu, again.
9938
99391998-11-19 Gerd Moellmann <gerd@gnu.org>
9940
9941 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9942 When EnterNotify, don't generate a mouse movement event if
9943 notification is from a busy-cursor child window.
9944
9945 * xterm.h (struct x_output): Add busy_window, remove cursor.
9946
9947 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9948 Use a transparent window to display the busy-cursor.
9949 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9950
99511998-11-17 Gerd Moellmann <gerd@gnu.org>
9952
9953 * xdisp.c (check_window_end): New, for debugging.
9954 (CHECK_WINDOW_END): New.
9955 (try_window_id): Use it.
9956
9957 * xterm.c (process_expose_from_menu): Return int.
9958
9959 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9960 TOOLBAR_EVENT events in last_nonmenu_event.
9961
99621998-11-16 Gerd Moellmann <gerd@gnu.org>
9963
9964 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9965 window end isn't reliable, so set window_end_valid to nil.
9966 (redisplay_internal): If overlay arrow has changed, set
9967 windows_or_buffers_changed to redisplay thoroughly.
9968
9969 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9970 necessary.
9971
9972 * xfns.c (file_dialog_cb): New.
9973 (Fx_file_dialog): New.
9974 * fileio.c (Fread_file_name): Call it.
9975
427ec082 9976 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9977 selection dialog.
9978
99791998-11-14 Gerd Moellmann <gerd@gnu.org>
9980
9981 * xterm.c (note_mouse_highlight): Don't highlight when popup
9982 is active.
9983
26901792
DL
9984 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9985 timer-event-handler. This busy cursor tends to be anoying if
9986 fontifying stealthily.
9987
9988 * dispnew.c (direct_output_for_insert): Give up if current row
9989 contains trailing whitespace.
9990
99911998-11-13 Gerd Moellmann <gerd@gnu.org>
9992
9993 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9994
9995 * xdisp.c (handle_fontified_prop): New.
9996 (Vfontification_functions): New.
9997 (Qfontification_functions): New.
9998 (it_props): Add handle_fontified_prop.
9999
100001998-11-12 Gerd Moellmann <gerd@gnu.org>
10001
10002 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10003 Otherwise, under LessTif, after the popup has gone, all button
10004 press events come in for the frame's widget, and release events
10005 come in for the edit_widget.
10006 * xterm.c (XTread_socket): Remove workaround for that problem.
10007 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10008 XmScrollBarSetValues.
10009 (SET_SAVED_MENU_EVENT): Give it statement form.
10010
26901792
DL
10011 * xfaces.c (display_message): If waiting_for_input, don't display
10012 the message.
10013
10014 * window.c (scroll_command): If not acting on current_buffer,
10015 make redisplay consider all windows.
10016
10017 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10018
10019 * xdisp.c (handle_glyph_prop): Set it->object for images to
10020 the object having the glyph property.
10021
10022 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10023 invisible.
10024
100251998-11-11 Gerd Moellmann <gerd@gnu.org>
10026
10027 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10028 (x_term_init): Create the gray pixmap.
10029 (x_setup_relief_color): Use it.
10030 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10031 internal border at the top of a frame.
10032 (x_init_glyph_string): Likewise.
427ec082 10033 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10034 full-width lines.
10035 (XTflash): Don't flash the toolbar window.
10036
10037 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10038 in case of ButtonPress events.
10039
100401998-11-10 Gerd Moellmann <gerd@gnu.org>
10041
10042 * xrdb.c (x_load_resources): Add grey background colors as
10043 defaults for menus, scroll bars, and dialogs.
10044
10045 * insdel.c (prepare_to_modify_buffer): Move setting
10046 windows_or_buffers_changed from modify_region here.
10047
10048 * xfns.c (Fx_show_tip): Inhibit redisplay.
10049 (Fx_hide_tip): Ditto.
10050 (Fx_image_header): New.
10051
100521998-11-09 Gerd Moellmann <gerd@gnu.org>
10053
10054 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10055 when clearing current window matrices.
10056
100571998-11-08 Gerd Moellmann <gerd@gnu.org>
10058
10059 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10060 position from a string position. Use the right end position
10061 if the property spans a whole overlay string.
10062
100631998-11-07 Gerd Moellmann <gerd@gnu.org>
10064
10065 * xmenu.c (menubar_selection_callback): Remove workaround for
10066 Lesstif not calling XmNpopdownCallback because it doesn't
10067 handle the case where users don't select any menu item.
10068
26901792
DL
10069 * insdel.c (modify_region): Set windows_or_buffers_changed.
10070
10071 * buffer.c (set_buffer_internal): Don't set
10072 windows_or_buffers_changed.
10073
26901792
DL
10074 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10075
26901792
DL
10076 * xmenu.c (menubar_selection_callback): Add workaround for
10077 Lesstif not calling XmNpopdownCallback.
10078
10079 * xdisp.c (eval_mode_element): New.
10080 (eval_mode_handler): New.
10081 (display_mode_element): Use eval_mode_element.
10082
10083 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10084 Remove code looking at text props of default value.
10085
10086 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10087
26901792
DL
100881998-11-06 Gerd Moellmann <gerd@gnu.org>
10089
427ec082 10090 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10091 BUTTON_TYPE_NONE.
10092 (single_submenu): Likewise for panes and menu items.
10093 (set_frame_menubar): Set button_type of menu bar to none.
10094 (xmenu_show): Likewise.
10095 (single_submenu): Set widget values selected slot.
10096 (xmenu_show): Likewise.
10097
26901792
DL
10098 * xmenu.c (push_menu_item): Add parameters `type' and
10099 `selected'. Store it in menu_items.
10100 (MENU_ITEMS_ITEM_TYPE): New.
10101 (MENU_ITEMS_ITEM_SELECTED): New.
10102 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10103
10104 * xfns.c (clear_image_cache): Get the current time, before
10105 doing anything.
10106 (cache_image): Set prev pointer of next image.
10107 (clear_image_cache): Clear current matrices if any image was
10108 freed.
10109
10110 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10111
10112 * xfns.c (x_set_cursor): New.
10113 (Fx_display_busy_cursor): New.
10114 (Fx_undisplay_busy_cursor): New.
10115
10116 * xterm.h (struct x_output): Add busy_cursor.
10117
10118 * xfns.c (Vx_busy_pointer_shape): New.
10119 (x_set_mouse_color): Create busy cursor.
10120
10121 * process.c (wait_reading_process_input): Show and hide busy
10122 cursor.
10123
10124 * keyboard.c (command_loop_1): Display busy cursor.
10125
10126 * eval.c (Fsignal): Hide busy cursor.
10127
10128 * buffer.c (set_buffer_internal): Don't set
10129 windows_or_buffers_changed.
10130
10131 * xterm.c (redo_mouse_highlight): New.
10132
101331998-11-04 Gerd Moellmann <gerd@gnu.org>
10134
26901792
DL
10135 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10136 (x_build_heuritic_mask): New.
10137 (lookup_image): Call it.
10138
10139 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10140 (previous_help_echo): New.
10141 (XTread_socket): Generate help event with nil message when
10142 leaving a region with help-echo.
10143 (note_mouse_highlight): Handle `help-echo' over text.
10144 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10145 CirculateRequest.
10146 (clear_mouse_face): Don't clear if tooltip is shown.
10147 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10148 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10149
10150 * keyboard.c (Vshow_help_function): New.
10151 (read_char): Use it.
10152
101531998-11-03 Gerd Moellmann <gerd@gnu.org>
10154
10155 * xfns.c (x_create_tip_frame): New.
10156 (Fx_show_tip): New.
10157 (Fx_hide_tip): New.
10158
427ec082 10159 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10160 a widget.
10161
10162 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10163 to full_width_p. Add internal_border_p.
10164
101651998-11-02 Gerd Moellmann <gerd@gnu.org>
10166
10167 * xterm.c (note_mode_line_highlight): Check the charpos of
10168 the glyph under the mouse pointer before accessing text
10169 properties at that position.
10170
101711998-11-01 Gerd Moellmann <gerd@gnu.org>
10172
10173 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10174
10175 * xdisp.c (auto-raise-toolbar-buttons): New.
10176 (build_desired_toolbar_string): Handle the flag.
10177 (toolbar-button-margin): New.
10178 (toolbar-button-relief): New.
10179 (build_desired_toolbar_string): Use margin and relief.
10180
10181 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10182 for FreeBSD.
10183 (note_mode_line_highlight): New.
10184 (note_mouse_highlight): Call it.
10185
101861998-10-31 Gerd Moellmann <gerd@gnu.org>
10187
10188 * s/freebsd.h (NARROWPROTO): New.
10189
10190 * xdisp.c (display_string): New parameter face_string.
10191 (display_mode_element): When displaying a symbol with a string
10192 value, use text properties from the symbol's default value, maybe.
10193
10194 * xrdb.c (x_load_resources): Add font defaults for menus and
10195 dialogs.
10196
101971998-10-30 Gerd Moellmann <gerd@gnu.org>
10198
10199 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10200
102011998-10-29 Gerd Moellmann <gerd@gnu.org>
10202
10203 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10204 produced for characters with codes < 32 under certain
10205 circumstances.
10206
10207 * xdisp.c (redisplay_window): Handle values of PT in front
10208 of invisible, intangible text.
427ec082 10209 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10210 displaying lines.
10211 (display_mode_element): Assign to glyphs written for a mode
10212 line spec `%x' as object the Lisp format string, as position
10213 the position of the `%' in that string.
10214 (display_string): If displaying a C string, optionally get
10215 the face to use from a Lisp string.
10216
10217 * xterm.c (expose_window_tree): Include mode line height.
10218
10219 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10220
102211998-10-27 Gerd Moellmann <gerd@gnu.org>
10222
10223 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10224 over mode line.
10225
102261998-10-26 Gerd Moellmann <gerd@gnu.org>
10227
10228 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10229
10230 * xdisp.c (redisplay_window): If mode line height has changed,
10231 arrange for a thorough immediate redisplay using the correct mode
10232 line height.
10233 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10234
10235 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10236 (CURRENT_MODE_LINE_HEIGHT): New.
10237 (DESIRED_MODE_LINE_HEIGHT): New.
10238
10239 * keyboard.c (make_lispy_event): Add string and string position
10240 info to mouse-click events.
10241 (read_key_sequence): Handle `local-map' property of mode line
10242 strings.
10243
10244 * keyboard.h (POSN_STRING): New.
10245
102461998-10-25 Gerd Moellmann <gerd@gnu.org>
10247
10248 * dispnew.c (mode_line_string): Mew.
10249
10250 * xterm.c (xt_action_hook): New.
10251 (x_create_toolkit_scroll_bar): Add action hook.
10252 (xm_scroll_callback): Implement dragging.
10253
10254 * keyboard.c (Qend_scroll): New.
10255 (scroll_bar_parts): Add it.
10256
10257 * termhooks.h (scroll_bar_end_scroll): New.
10258
10259 * xterm.c (XTread_socket): Bug fix.
10260
102611998-10-24 Gerd Moellmann <gerd@gnu.org>
10262
10263 * xdisp.c (redisplay_window): Finish scroll bars after
10264 redisplaying toolbar.
10265
10266 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10267 (syms_of_keyboard): Add Qbottom.
10268
10269 * termhooks.h (scroll_bar_to_top): New.
10270 (scroll_bar_to_bottom): New.
10271
10272 * xdisp.c (redisplay_window): Always resize toolbar window if
10273 auto_resize_toolbar_p is non-zero.
10274 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10275 (window_box): New.
10276 (window_box_height): New.
10277 (window_box_width): New.
10278 (window_box_left): New.
10279 (window_box_right): New.
10280 (window_box_edges): New.
10281
102821998-10-23 Gerd Moellmann <gerd@gnu.org>
10283
10284 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10285 XawScrollbarSetThumb in FreeBSD.
10286 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10287 to true.
10288
10289 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10290 is out of range.
10291
10292 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10293 (x_term_init): Initialize it.
10294
10295 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10296
10297 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10298 cursor.
10299
103001998-10-22 Gerd Moellmann <gerd@gnu.org>
10301
10302 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10303 differently when using toolkit scroll bars.
10304
10305 * xterm.c (x_send_scroll_bar_event): New.
10306 (x_scroll_bar_to_input_event): New.
10307 (xaw3d_scroll_callback): New.
10308 (xaw3d_jump_callback): New.
10309 (xm_scroll_callback): New.
10310 (x_toolkit_scroll_p): New.
10311 (XTread_socket): Handle scroll bar client message.
10312 (x_term_init): Initialize Xatom_Scrollbar.
10313 (x_scroll_bar_create): Set cursor.
10314 (xm_scroll_callback):
10315 (x_create_toolkit_scroll_bar): New.
10316 (x_set_toolkit_scroll_bar_thumb): New.
10317 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10318 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10319
10320 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10321
103221998-10-21 Gerd Moellmann <gerd@gnu.org>
10323
10324 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10325 (XTread_socket): Don't handle mouse button events for scroll bars
10326 if using toolkit scroll bars.
10327 (XTset_vertical_scroll_bar): Set thumb size and position for
10328 Athena scroll bar.
10329
10330 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10331
10332 * xterm.c (XTread_socket): Dispatch expose event to widget
10333 if using toolkit scroll bars.
10334 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10335 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10336 if using toolkit scroll bars.
10337 (x_scroll_bar_move): Handle tookit scroll bars.
10338
10339 * Makefile.in (LIBW): Use Xaw3d if present.
10340
10341 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10342 (HAVE_XAW3D): New.
427ec082 10343
26901792
DL
10344 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10345 (HAVE_XAW3D): New.
10346
427ec082 10347 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10348 right vertical scroll bar.
10349
103501998-10-20 Gerd Moellmann <gerd@gnu.org>
10351
10352 * xfns.c (xpm_load): Support reading XPM images from string
10353 buffers containing data in the same format as an XPM file.
10354 Support `:color-symbols'.
10355 (xpm_format): Add `:data'.
10356 (xpm_keyword_index): Add XPM_DATA.
10357 (syms_of_xfns): Add `:color-symbols'.
10358 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10359 (xpm_valid_color_symbols_p): New.
10360 (xpm_image_p): Call it.
10361
10362 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10363 attribute to the image if item is not enabled.
10364
10365 * xfns.c (x_laplace): New.
10366 (x_laplace_read_row): New.
10367 (x_laplace_write_row): New.
10368 (lookup_image): Handle common image attributes here. New
10369 attribute `:algorithm'.
10370
10371 * xfaces.c (clear_face_cache): Call clear_image_cache.
10372
10373 * xterm.c (x_inverted_image_mask): Removed.
10374 (x_draw_image_foreground_1): New.
10375 (x_draw_image_glyph_string): Draw images with mask to a temporary
10376 pixmap to reduce flickering.
10377
10378 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10379 (display_toolbar_line): Remove parameter `margin'.
10380
103811998-10-19 Gerd Moellmann <gerd@gnu.org>
10382
10383 * xdisp.c (toolbar_lines_needed): New.
10384 (auto-resize-toolbars): New.
10385
10386 * xfns.c (cache_image): Correct call to xrealloc.
10387
10388 * dispnew.c (Fset_toolbar_height): Removed.
10389
10390 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10391 FRAME_MENU_BAR_LINES.
10392
10393 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10394 instead of FRAME_MENU_BAR_LINES.
10395 (check_frame_size): Ditto.
10396
10397 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10398 instead of FRAME_MENU_BAR_LINES.
10399 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10400 (build_frame_matrix): Ditto.
10401 (change_frame_size_1): Ditto.
10402
10403 * frame.h (FRAME_TOOLBAR_LINES): New.
10404 (FRAME_TOP_MARGIN): New.
10405
10406 * window.c (struct save_window_data): Add frame_toolbar_lines.
10407 (Fset_window_configuration): Handle toolbar lines.
10408 (Fcurrent_window_configuration): Save toolbar lines.
10409
10410 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10411
10412 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10413
10414 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10415
10416 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10417 (x_set_toolbar_lines): New.
10418
10419 * keyboard.c (cmd_error_internal): Bug fix.
10420
10421 * xterm.c: Remove double include of syssignal.h.
10422
104231998-10-18 Gerd Moellmann <gerd@gnu.org>
10424
10425 * xterm.c (x_toolbar_item): New.
10426 (x_handle_toolbar_click): Use it.
10427 (note_toolbar_highlight): Use it.
10428
10429 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10430 and toolbar_items_vectors.
10431
10432 * xterm.c (help_echo): New.
10433 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10434 (x_set_glyph_string_gc): Handle them.
10435 (x_after_update_window_line): Don't do anything in pseudo-windows.
10436 (x_produce_image_glyph): Take image margin and face relief into
10437 account.
10438 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10439 (x_draw_glyph_string_background): Optimize case when face has
10440 relief.
10441 (x_setup_relief_color): Take frame instead of glyph string
10442 parameter.
10443 (x_draw_relief_rect): New.
10444 (x_draw_glyph_string_relief): Call it.
10445 (x_draw_image_glyph_string_foreground): Handle margin and image
10446 relief.
10447 (x_draw_image_glyph_string_background): Ditto.
10448 (expose_frame): Redraw toolbar window.
10449 (expose_window): Don't draw cursor for pseudo-windows.
10450 (x_y_to_hpos_vpos): Handle pseudo-windows.
10451 (frame_to_window_pixel_xy): New.
10452 (note_mouse_highlight): Call note_toolbar_highlight.
10453 (x_handle_toolbar_click): New.
10454 (note_toolbar_highlight): New.
10455 (show_mouse_face): Change int parameter `hl' to parameter of
10456 type enum draw_glyphs_face. Handle image highlighting.
10457 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10458 non-nil. Use x_handle_toolbar_click.
10459
10460 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10461
10462 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10463 IMAGE_BOOL_VALUE.
10464 (parse_image_spec): Handle them.
10465 (image_spec_value): Additional parameter found.
427ec082 10466 (free_image): Remove image from the vector `images' of the
26901792
DL
10467 image cache.
10468 (clear_image_cache): Additional parameter force_p.
10469 (Fclear_image_cache): New.
10470 (x_find_image_file): New.
10471 (xbm_load): Handle `:margin' and `:relief'. Use
10472 x_find_image_file.
10473 (xpm_load): Likewise.
10474 (pbm_load): Likewise.
10475 (jpeg_load): Likewise.
10476 (tiff_load): Likewise.
10477 (gif_load): Likewise.
10478
10479 * keyboard.c (Qhelp_echo): New symbol.
10480 (read_char): Handle `toolbar' and `help_echo' events.
10481 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10482 (make_lispy_event): Handle TOOLBAR_EVENT.
10483 (toolbar_items): New.
10484 (process_toolbar_item): New.
10485 (PROP): New.
10486 (init_toolbar_items): New.
10487 (append_toolbar_item): New.
10488 (read_char_x_menu_prompt): Handle `toolbar' event.
10489 (read_key_sequence): Ditto.
10490
10491 * xfaces.c (Qtoolbar): New.
10492 (realize_basic_faces): Realize `toolbar' face.
10493 (face_at_string_position): Remove parameter modeline_p, add
10494 base_face_id.
10495
10496 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10497 to read data.
10498
104991998-10-17 Gerd Moellmann <gerd@gnu.org>
10500
10501 * xdisp.c (init_iterator): Replace parameter modeline_p with
10502 base_face_id.
10503 (next_element_from_string): Call get_next_display_element
10504 recursively after handling text properties.
10505 (prepare_menu_bars): Call update_toolbar.
10506 (update_toolbar): New.
10507 (build_desired_toolbar_string): New.
10508 (display_toolbar_line): New.
10509 (redisplay_toolbar): New.
10510 (toolbar_item_info): New.
10511 (redisplay_window): Call redisplay_toolbar.
10512 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10513
10514 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10515 window.
10516 (clear_desired_matrices): Ditto.
10517 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10518 (free_glyphs): Free matrices of toolbar window.
10519 (update_frame): Update toolbar window.
10520 (change_frame_size_1): Take toolbar into account.
10521 (Fset_toolbar_height): New.
10522
10523 * dispextern.h (struct it): Remove member modeline_p, add
10524 base_face_id.
10525 (struct image): Add members relief and margin.
10526 (IMAGE_ASCENT): Include margin in height.
10527
105281998-10-14 Gerd Moellmann <gerd@gnu.org>
10529
10530 * xfns.c (Fclear_image_cache): New.
10531
10532 * xfaces.c (realize_basic_faces): Realize toolbar face.
10533 (face_at_string_position): Remove parameter modeline_p, add
10534 base_face_id.
10535
10536 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10537
105381998-10-13 Gerd Moellmann <gerd@gnu.org>
10539
10540 * keyboard.c (syms_of_keyboard): Intern `:help'.
10541
105421998-10-12 Gerd Moellmann <gerd@gnu.org>
10543
10544 * xterm.c (note_toolbar_highlight): New.
10545 (note_mouse_highlight): Call it.
10546
10547 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10548 (coordinates_in_window): Handle toolbar window.
10549
10550 * keyboard.c (toolbar_items): New.
10551 (process_toolbar_item): New.
10552 (parse_toolbar_item): New.
10553 (init_toolbar_items): New.
10554 (append_toolbar_item): New.
10555
10556 * dispextern.h (enum toolbar_item_idx): New.
10557 (enum toolbar_item_image): New.
10558
10559 * frame.h (struct frame): Add toolbar-related members.
10560
10561 * xfaces.c (face_at_string_position): Remove assertion that
10562 current_buffer == window's buffer. This is not the case when
10563 called for the toolbar window.
10564
10565 * frame.c (make_frame): Initialize toolbar members.
10566
10567 * alloc.c (mark_object): Mark toolbar data of frames.
10568
10569 * frame.h (struct frame): Add toolbar-related members
10570 toolbar_window, desired_toolbar_items, current_toolbar_items,
10571 desired_toolbar_string, current_toolbar_string,
10572 n_desired_toolbar_items, n_current_toolbar_items. Add
10573 window_height.
10574
10575 * xterm.c (x_after_update_window_line): Don't draw bitmap
10576 areas for pseudo-windows.
10577 (expose_frame): Handle toolbar window.
10578 (expose_window): Don't do cursor stuff for pseudo-windows.
10579
10580 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10581
105821998-10-11 Gerd Moellmann <gerd@gnu.org>
10583
10584 * frame.c (make_frame): Initialize toolbar_window.
10585
10586 * alloc.c (mark_object): Make the toolbar window.
10587
10588 * dispnew.c (update_frame): Update frame's toolbar_window.
10589 (clear_current_matrices): Likewise.
10590 (clear_desired_matrices): Likewise.
10591 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10592 (free_glyphs): Free the toolbar window and its matrices.
10593
10594 * frame.h (struct frame): Add toolbar_window.
10595
10596 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10597 with relief.
10598
105991998-10-10 Gerd Moellmann <gerd@gnu.org>
10600
427ec082 10601 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10602 window start is not in the range BEGV..ZV.
10603
106041998-10-09 Gerd Moellmann <gerd@gnu.org>
10605
10606 * xdisp.c (try_scrolling): Experimentally handle the case
10607 that scroll-preserve-screen-position is set to `always'.
10608
10609 * window.c (Vscroll_preserve_screen_position): Replacement for
10610 scroll_preserve_screen_position.
10611
106121998-10-08 Gerd Moellmann <gerd@gnu.org>
10613
10614 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10615 doesn't like it.
10616 * xdisp.c: Ditto.
10617
10618 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10619
106201998-10-06 Gerd Moellmann <gerd@gnu.org>
10621
427ec082 10622 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10623 i_byte when prompts are inserted into minibuffers.
10624
10625 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10626 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10627 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10628
106291998-10-04 Gerd Moellmann <gerd@gnu.org>
10630
10631 * xdisp.c (make_cursor_line_fully_visible): New.
10632 (try_scrolling): New.
10633 (redisplay_window): Move scrolling code to try_scrolling.
10634 (make_cursor_line_fully_visible): Handle case of window too small
10635 to show a single line.
10636 (redisplay_window): Case forced window start---use
10637 make_cursor_line_fully_visible.
10638 (redisplay_window): Case cursor movement via current matrix.
10639 If ending up on a partially visible line, make it fully visible
10640 instead of recentering.
10641 (try_scrolling): Additional parameter scroll_smoothly.
10642
10643 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10644
106451998-09-28 Gerd Moellmann <gerd@gnu.org>
10646
10647 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10648 instead of y-position for scroll-preserved-screen-position.
10649
106501998-09-07 Gerd Moellmann <gerd@gnu.org>
10651
10652 * dispnew.c (update_frame_line): If current row is not enabled,
10653 write the whole line.
10654
106551998-09-06 Gerd Moellmann <gerd@gnu.org>
10656
10657 * lisp.h (HAVE_FACES): Removed.
10658
10659 * dispextern.h (HAVE_FACES): Removed.
10660
10661 * config.in (HAVE_FACES): Removed.
10662
10663 * dispnew.c (HAVE_FACES): Removed.
10664
10665 * xdisp.c (HAVE_FACES): Removed.
10666
10667 * xfaces.c (HAVE_FACES): Removed.
10668
106691998-09-05 Gerd Moellmann <gerd@gnu.org>
10670
10671 * xdisp.c (init_iterator): If face_change_count is non-zero,
10672 free realized faces.
10673
10674 * xfaces.c (free_all_realized_faces): Make it externally visible.
10675 (Finternal_set_lisp_face_attribute): Increment
10676 windows_or_buffers_changed.
10677
10678 * dispnew.c (direct_output_for_insert): Give up if
10679 face_change_count is non-zero.
10680 (direct_output_forward_char): Ditto.
10681
10682 * xfaces.c (face_change_count): New.
10683
106841998-09-04 Gerd Moellmann <gerd@gnu.org>
10685
10686 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10687 of range.
10688
106891998-09-03 Gerd Moellmann <gerd@gnu.org>
10690
10691 * term.c (Ftty_display_color_p): New.
10692
106931998-09-02 Gerd Moellmann <gerd@gnu.org>
10694
10695 * xfaces.c (Ftty_defined_colors): New.
10696
10697 * xterm.c (x_produce_glyphs): Fix computation of
10698 contains_overlapping_glyphs_p for ASCII.
10699
10700 * dispnew.c (Fshow_cursor): Don't change cursor state while
10701 redisplaying.
10702 (direct_output_for_insert): If a glyph with lbearing or rbearing
10703 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10704
107051998-09-01 Gerd Moellmann <gerd@gnu.org>
10706
10707 * term.c (OUTPUT_IF): Make replacement text have statement form.
10708 (OUTPUT1_IF): Ditto.
10709 (TS_italic_mode, TS_end_italic_mode): Removed.
10710 (TS_bold_mode): Removed.
10711 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10712 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10713 (TS_enter_reverse_mode): New.
10714 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10715 (TN_magic_cookie_glitch_ul): New.
10716 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10717 (TS_exit_attribute_mode): New.
10718 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10719 (TS_set_foreground, TS_set_background): New.
10720 (reset_terminal_modes): Switch colors back to default.
10721 (write_glyphs): Turn face on before writing text, turn it off
10722 afterwards.
10723 (insert_glyphs): Ditto.
10724 (term_init): Initialize new terminal capability variables.
10725 (turn_on_face): Turn a face on.
10726 (turn_off_face): Turn a face off.
10727
10728 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10729 (GLYPH_CHAR): Ditto.
10730 (GLYPH_FACE): Ditto.
10731
10732 * xfaces.c (Vface_tty_color_alist): New.
10733 (face-register-tty-color): New.
10734 (face-clear-tty-colors): New.
10735
10736 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10737 (struct it): Remove member faces_p since we now always have faces.
10738
107391998-08-31 Gerd Moellmann <gerd@gnu.org>
10740
10741 * dispextern.h (struct face): Add tty appearance flags.
10742
10743 * xdisp.c (init_iterator): Always handle faces.
10744 (extend_face_to_end_of_line): Handle tty frames.
10745
10746 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10747 passed in.
10748
107491998-08-30 Gerd Moellmann <gerd@gnu.org>
10750
10751 * xfaces.c (realize_default_face): Use empty strings to indicate
10752 that the face should use the default foreground/background
427ec082 10753 color of the terminal. Fill font-related attributes with
26901792
DL
10754 appropriate values for tty frames.
10755
10756 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10757
10758 * xfaces.c (realize_default_face): If face `default' is not
10759 yet known, create it.
10760
10761 * frame.c (make_terminal_frame): Call init_frame_faces
10762 unconditionally.
10763
10764 * xfaces.c (init_frame_faces): Make it work for tty frames.
10765 (free_frame_faces): Ditto.
10766 (clear_face_cache): Ditto.
10767 (recompute_basic_faces): Ditto.
10768 (Fframe_face_alist): Ditto.
10769 (free_realized_face): Ditto.
10770 (prepare_face_for_display): Ditto.
10771 (clear_face_gcs): Ditto.
10772 (lookup_face): Ditto.
10773 (smaller_face): Ditto.
10774 (realize_default_face): Ditto.
10775 (realize_face): Ditto.
10776 (realize_face): Dispatch to functions depending on the frame type.
10777 (realize_x_face): X way of realizing faces.
10778 (realize_tty_face): TTY way of realizing faces.
10779
107801998-08-29 Gerd Moellmann <gerd@gnu.org>
10781
10782 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10783 compute it instead.
10784 (lookup_face): Remove local variable unibyte_registry.
10785
107861998-08-22 Gerd Moellmann <gerd@gnu.org>
10787
10788 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10789 1 pixel longer.
10790
427ec082 10791 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10792 of face in buffer.
10793
10794 * editfns.c (make_buffer_string_both): If prompt in buffer,
10795 prevent start > end.
10796
10797 * indent.c (Fvertical_motion): Set current_buffer to window's
10798 buffer if it isn't already.
10799
108001998-08-21 Gerd Moellmann <gerd@gnu.org>
10801
10802 * dispextern.h (GLYPH_DEBUG): Use default 0.
10803
10804 * xdisp.c (it_props): New member `smaller'.
10805 (init_iterator): Initialize it.
10806 (Qsmaller): New.
10807 (push_it): Save value of `smaller' value on the stack.
10808 (pop_it): Restore `smaller' from the stack.
10809 (handle_smaller_prop): New.
10810 (handle_face_prop): Use `smaller' text property to select a
10811 suitable face.
10812
10813 * dispextern.h (SMALLER_PROP_IDX): New.
10814 (struct it): Add member `smaller'.
10815
10816 * xfaces.c (smaller_face): New.
10817
10818 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10819
10820 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10821 total pixel width of window differently.
10822
10823 * xdisp.c (init_iterator): Compute width of mode line differently.
10824
10825 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10826 of bitmap areas.
10827
10828 * window.c (Fsplit_window): Include width of bitmap areas in
10829 window width.
10830 (window_internal_width): Subtract width of bitmap areas from
10831 total width.
10832
108331998-08-18 Gerd Moellmann <gerd@gnu.org>
10834
10835 * xdisp.c: Functions reordered for better readability.
10836
10837 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10838 lbearing.
10839 (update_window_tree): Parameter no_scrolling_p removed.
10840 (update_single_window): Ditto.
10841
10842 * xterm.c (x_get_char_font_and_encoding): Renamed to
10843 x_get_char_face_and_encoding.
10844
10845 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10846 if end of current row reached.
10847
10848 * xterm.c (x_get_glyph_face_and_encoding): New.
10849 (x_get_glyph_overhangs): Call it.
10850
10851 * xdisp.c (Qshow_trailing_whitespace): New.
10852 (Qtrailing_whitespace): New.
10853 (enum prop_handled): New.
10854 (struct props, it_props): New.
10855 (next_overlay_change): New. Works like Fnext_overlay_change
10856 but doesn't use xmalloc.
10857 (handle_stop): Restructured.
10858 (face_before_or_after_it_pos): Case iteration over a string: fix
10859 handling of face before current position.
10860
108611998-08-16 Gerd Moellmann <gerd@gnu.org>
10862
10863 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10864 reallocation matrix if fonts_changed_p.
10865 (update_text_area): Handle glyphs with lbearing.
10866
108671998-08-14 Gerd Moellmann <gerd@gnu.org>
10868
10869 * xdisp.c (struct props): New.
10870 (it_props): New.
10871 (compute_prop_info): New.
10872 (handle_stop): New.
10873
10874 * textprop.c (validate_interval_range): Make it externally
10875 visible.
10876
10877 * dispnew.c (direct_output_for_insert): Remove calls
10878 to compute_stop_pos.
10879
10880 * dispextern.h (struct it): Remove check_charpos,
10881 next_overlay_pos. Add what_changes.
10882
108831998-08-10 Gerd Moellmann <gerd@gnu.org>
10884
10885 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10886
10887 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10888 face_default_registry instead.
10889
10890 * syntax.c (scan_sexps_forward): Set up syntax table before
10891 jumping to initial state label.
10892
108931998-08-09 Gerd Moellmann <gerd@gnu.org>
10894
10895 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10896 >= ZV specially.
10897
108981998-08-08 Gerd Moellmann <gerd@gnu.org>
10899
10900 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10901 ends up in partially visible row, try to scroll. Case forced
10902 window start---handle windows not tall enough to show a single
10903 line.
10904
10905 * window.h (struct window): Member dy renamed vscroll.
10906
10907 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10908 fonts.
10909 (x_draw_stretch_glyph_string): Set clipping if using GC that
10910 hasn't set it yet.
10911
10912 * xdisp.c (redisplay_window): Case forced window start -
10913 don't let cursor end on partially visible row. Use desired
10914 matrix to find a suitable PT if it doesn't appear.
10915 (decode_mode_spec): Merged with 20.2.97.
10916 (try_window_reusing_current_matrix): Give up if old or
10917 new display is vscrolled.
10918 (redisplay_window): Reset vscrolling if forced window start,
10919 or if recentering.
10920
109211998-08-06 Gerd Moellmann <gerd@gnu.org>
10922
10923 * xfaces.c (realize_default_face): Use the fontset name instead of
10924 the alias for the family attribute of the default face because we
10925 can't easily determine a good alias from fontset-alias-alist.
10926 (face_fontset): Use Fquery_fontset to find the fontset.
10927 (font_list): Additional pattern parameter.
10928 (try_font_list): Ditto.
10929 (set_lface_from_font_name): Set face family from font foundry
10930 and family.
10931 (font_list): If family contains a hyphen, build pattern differently.
10932
109331998-08-05 Gerd Moellmann <gerd@gnu.org>
10934
10935 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10936 changed instead of setting the frame garbaged.
10937
10938 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10939 all attribute values. This is wrong if values are unspecified,
10940 i.e. nil.
10941
10942 * xdisp.c (try_window_id): Give up if window start changed.
10943
10944 * xfaces.c (make_realized_face): Store registry as Lisp object.
10945 (load_face_font_or_fontset): Compute registry of a face
10946 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10947 possible.
10948
10949 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10950 differently.
10951
10952 * alloc.c (mark_face_cache): Mark the registry member of faces.
10953
10954 * dispextern.h (struct face): Make registry a Lisp string.
10955
109561998-08-04 Gerd Moellmann <gerd@gnu.org>
10957
10958 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10959 multibyte_p. Handle unibyte text.
10960 (x_append_glyph): Set the multibyte_p flag of glyphs.
10961 (x_produce_image_glyph): Ditto.
10962 (x_append_stretch_glyph): Ditto.
10963 (x_produce_glyphs): Handle unibyte text like ASCII.
10964
10965 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10966 stack.
10967 (pop_it): Restore it.
10968 (face_before_or_after_it_pos): Handle the case that the string or
10969 buffer is unibyte.
10970 (get_overlay_strings): Set the multibyte flag of the iterator if
10971 the new overlay string is multibyte.
10972 (get_glyph_property): Likewise.
10973 (get_next_display_element): Don't check for charset changes in
10974 unibyte text.
10975 (append_space): Compute face differently for unibyte text.
10976 (extend_face_to_end_of_line): Don't return quickly if face has
10977 stipple.
10978
10979 * xfaces.c (load_face_font_or_fontset): Store registry and
10980 encoding of the font in the registry member of the face.
10981 (make_realized_face): Additional parameter `registry'.
10982 (free_realized_face): Free the registry of a realized face.
10983 (face_suitable_for_charset_p): Function form of the macro
10984 with the same name in uppercase.
10985 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10986 (choose_face_font): New parameter unibyte_registry.
10987 (choose_face_fontset_font): Ditto.
10988 (realize_default_face): Remember the registry and encoding of
10989 the specified frame font in Vx_unibyte_registry_and_encoding.
10990 (face_at_buffer_position): Handle unibyte.
10991 (face_at_string_position): Likewise.
427ec082 10992 (realize_face): New parameter unibyte_registry.
26901792
DL
10993 (compute_char_face): Handle the unibyte case.
10994
10995 * dispextern.h (struct glyph): Add bit multibyte_p.
10996 (struct face): New member registry holding the registry and
10997 encoding of the X font of the face.
10998 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10999 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11000 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11001 text.
11002 (struct iterator_stack_entry): Add multibyte_p.
11003
11004 * xdisp.c (string_pos): Use string_char_to_byte.
11005 (char_charset): Removed.
11006
110071998-08-03 Gerd Moellmann <gerd@gnu.org>
11008
11009 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11010 rectangle for a block cursor over an image without a mask.
11011 (x_stretch_block_cursor): Added. Non-zero means don't draw
11012 a block cursor over a stretch as wide as that stretch.
11013 (x_draw_stretch_glyph_string): Use it.
11014 (x_draw_hollow_cursor): Ditto.
11015
11016 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11017 (read_minibuf): Add front-sticky text property for prompt.
11018
11019 * xdisp.c (char_charset): Return charset of a character,
11020 depending on whether or not multi-byte characters are enabled.
11021
11022 * xfaces.c (Fset_face_charset_registry): Removed.
11023 (x_charset_registry): Determine registry from charset plist.
11024
110251998-08-02 Gerd Moellmann <gerd@gnu.org>
11026
11027 * xdisp.c (get_next_display_element): Don't check for charset
11028 changes if multi-byte characters are not enabled.
427ec082 11029
26901792 11030 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11031 redisplay interface.
26901792
DL
11032 * keyboard.c (detect_input_pending_run_timers): Likewise.
11033
11034 * dispextern.h (produce_*glyphs_hook): Removed.
11035 * term.c (produce_*glyphs): Ditto.
11036 (cursor_to): Remove pixel position parameters.
11037
11038 * dispnew.c: Remove hooks for window-based redisplay, introduce
11039 a redisplay interface structure.
11040
11041 * xterm.c (x_per_char_metric): Return default char metrics if per
11042 char metric exists but contains a zero width. Adobe Courier seems
11043 to contain such characters.
11044
11045 * xdisp.c (compute_line_metrics): Compute the width of rows
11046 without stopping at glyphs with zero width.
11047
110481998-08-01 Gerd Moellmann <gerd@gnu.org>
11049
11050 * xdisp.c (display_mode_line): If nothing was displayed at all,
11051 display a space.
11052 (hscroll_window_tree): Don't subtract 1 from target point if equal
11053 to ZV and window is not the selected window.
11054
11055 * dispnew.c (check_matrix_invariants): Remove check for window
11056 start at BEGV or after newline. This happens in rare cases
11057 intentionally.
11058
110591998-07-31 Gerd Moellmann <gerd@gnu.org>
11060
11061 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11062 (syms_of_xfaces): Add Vface_default_registry.
11063 (x_charset_registry): Use it.
11064
11065 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11066 (redisplay_window): Use it.
11067
11068 * dispnew.c (update_text_area): Handle lbearing of deleted text
11069 by backing up one character.
11070
110711998-07-30 Gerd Moellmann <gerd@gnu.org>
11072
427ec082 11073 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11074 decide to do nothing.
11075
11076 * xfaces.c (face_at_string_position): Additional parameter
11077 mode_line_p. If non-zero, merge with the mode line face
11078 instead of the default face.
11079 * dispextern.h (struct it): Add mode_line_p.
11080 * xdisp.c (init_iterator): Set it.
11081 (compute_face_in_string): Use it.
11082 (face_before_or_after_it_pos): Handle strings.
11083 (get_next_display_element): Don't look for relief end in C strings.
11084 (next_element_from_string): Deliver string position instead of
11085 buffer position.
11086
11087 * xterm.c (x_flush): Flush X output buffer.
11088 (XTflash): Use it.
11089
11090 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11091 Allow strings as face names.
11092
11093 * xfns.c (forall_images_in_image_cache): Check that frame is
11094 alive.
11095
11096 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11097 it's also called from x_destroy_window. Since this function is
11098 called from X, freeing stuff allocated with xmalloc is dangerous
11099 here, anyway.
11100
11101 * xfaces.c (free_realized_faces): Don't clear current matrices
11102 of a frame being destroyed.
11103
427ec082 11104 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11105 Fset_window_buffer.
11106
11107 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11108 with an additional argument specifying whether or not hooks may
11109 be called.
11110 (Fset_window_buffer): Call it.
11111
11112 * dispnew.c (clear_desired_matrices): Check that frame has
11113 a valid root window before clearing matrices in the window tree.
11114 (clear_current_matrices): Ditto.
11115 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11116 vchild are valid windows if not nil.
11117
11118 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11119 for :inverse-video.
11120 (Finternal_set_lisp_face_attribute): Ditto.
11121 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11122 (Finternal_get_lisp_face_attribute): Ditto.
11123 (Finternal_lisp_face_attribute_values): Ditto.
11124 (syms_of_xfaces): Define the symbol `:reverse-video'.
11125
11126 * xdisp.c (get_glyph_property): Renamed from
11127 fill_iterator_from_glyph_property.
11128 (next_element_from_buffer): Handle case that no `glyph' property
11129 was found correctly.
11130 (display_line): Extend face to end of line only if we have faces.
11131
111321998-07-29 Gerd Moellmann <gerd@gnu.org>
11133
11134 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11135 additional window argument.
11136
11137 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11138 set_iterator_to_previous_visible_line_start.
11139 (reseat_at_next_visible_line_start): Likewise.
11140 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11141 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11142 (compute_face_in_buffer): Renamed from
11143 compute_face_at_iterator_position.
11144 (compute_face_in_string): Renamed from
11145 compute_face_at_iterator_string_position.
11146 (get_space_width): Renamed from get_iterator_space_width.
11147 (next_overlay_string): Renamed from
11148 set_iterator_to_next_overlay_string.
11149 (get_overlay_strings): Renamed from
11150 get_overlay_strings_at_iterator_position.
11151 (restore_overlay_strings): Renamed from
11152 setup_overlay_strings_from_glyph_pos.
11153 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11154 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11155 (init_to_row_start): Renamed from init_iterator_to_row_start.
11156 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11157
11158 * xterm.c: Merge with 20.2.97.
11159 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11160
11161 * dispextern.h (struct glyph): Replace text_pos position with
11162 simple charpos.
11163
11164 * xdisp.c (this_line_start_pos): Use struct text_pos.
11165 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11166 (enum move_it_result): Renamed from move_iterator_result.
11167 (string_pos_nchars_ahead): Compute text_pos in a string from a
11168 known text_pos plus a character delta.
11169 (string_pos): Compute text_pos in string from charpos.
11170 (c_string_pos): Likewise for a C string.
11171 (number_of_chars): Return number of characters in a possibly
11172 multi-byte C string.
11173 (check_it): Renamed from check_iterator. Check that charpos and
11174 bytepos are in sync.
11175 (push_it): Renamed from save_iterator_settings.
11176 (pop_it): Renamed from restore_iterator_settings.
11177 (move_it_.*): Renamed from move_iterator_.*.
11178 (charset_at_position): Take charpos/bytepos into account.
11179 (back_to_previous_line_start): Set iterator to previous line start.
11180 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11181 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11182 move_iterator_previous_visible_line_start.
11183 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11184 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11185 Handle charpos/bytepos.
11186 (compute_face_at_iterator_position): Handle charpos/bytepos.
11187 (compute_face_at_iterator_string_position): Likewise.
11188 (get_iterator_space_width): Likewise.
11189 (load_overlay_strings): Likewise.
11190 (get_overlay_strings_at_iterator_position): Likewise.
11191 (reseat_iterator): Take a text_pos position argument.
11192 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11193 bytepos.
11194 (init_iterator): Take additional bytepos parameter.
11195 (reseat_iterator_to_string): Handle charpos/bytepos.
11196 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11197 (next_element_from_string): Handle charpos/bytepos.
11198 (next_element_from_c_string): Likewise.
11199 (fill_iterator_from_glyph_property): Likewise.
11200 (next_element_from_buffer): Likewise.
11201 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11202 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11203 (move_it_to): Likewise.
11204 (move_it_vertically_backward): Likewise.
11205 (move_it_vertically): Likewise.
11206 (move_it_by_lines): Likewise.
11207 (hscroll_window_tree): Likewise.
11208 (redisplay_internal): Likewise.
11209 (set_cursor_from_row): Likewise.
11210 (redisplay_window): Likewise.
11211 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11212 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11213 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11214 (try_window_id): Handle charpos/bytepos.
11215 (Ftrace_redisplay_toggle): Return Qnil.
11216 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11217 (insert_left_trunc_glyphs): Likewise.
11218
11219 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11220 do a real merge).
11221 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11222 (increment_glyph_row_buffer_positions): Ditto.
11223 (copy_glyph_row_contents): Ditto.
11224 (check_matrix_invariants): Add additional checks for charpos/
11225 bytepos consistency.
11226 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11227 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11228 `direction-reversed' in #if 0.
11229
11230 * xterm.h: Merge with 20.2.97.
427ec082 11231
26901792
DL
11232 * frame.h: Merge with 20.2.97.
11233
11234 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11235
11236 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11237 start.
11238 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11239 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11240 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11241 (struct it): Various members renamed from .*pos to .*charpos.
11242 (IT_CHARPOS): Access current buffer character position of an
11243 iterator.
11244 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11245 (IT_STRING_CHARPOS): Access current string character position of
11246 an iterator.
11247 (IT_STRING_BYTEPOS): Access current string byte position of
11248 an iterator.
11249 (globally): Add function prototypes from 20.2.97.
11250
11251 * everywhere: Use P_ instead of PROTO for function prototypes
11252 because everyone else seems to use P_.
11253
11254 * dispextern.h (struct text_pos): Structure describing a charpos/
11255 bytepos position in text.
11256 (BYTEPOS): Access the byte position part of a text_pos.
11257 (CHARPOS): Likewise for the character position.
11258 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11259 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11260 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11261 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11262 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11263 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11264 for buffer and string positions.
11265 (struct glyph): Use text_pos.
11266 (struct it): Renamed from display_iterator. Use text_pos.
11267
112681998-07-23 Gerd Moellmann <gerd@gnu.org>
11269
11270 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11271 pixmap.
11272
112731998-07-21 Gerd Moellmann <gerd@gnu.org>
11274
11275 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11276 * xterm.c (x_draw_row_bitmaps): Use it.
11277 * dispnew.c (row_equal_p): Ditto.
11278 (update_window_line): Ditto.
11279
11280 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11281 flag of images.
11282
11283 * dispextern.h (struct image): Removed member loading_failed_p.
11284 It's probably better to have the chance to try to load an image
11285 again.
11286
112871998-07-20 Gerd Moellmann <gerd@gnu.org>
11288
11289 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11290 at ZV if `indicate-zv-lines' is non-nil.
11291 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11292
11293 * dispnew.c (row_equal_p): Compare displays_text_p and
11294 ends_at_zv_p flags of rows.
11295 (update_window_line): Ditto.
11296
11297 * buffer.h (struct buffer): New member indicate_zv_lines.
11298
11299 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11300 (init_buffer_once): New variable `default-indicate-zv-lines'.
11301 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11302
11303 * xdisp.c (redisplay_window): Don't try moving the cursor
11304 if current glyph row w->last_cursor.vpos isn't enabled.
11305
11306 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11307
11308 * window.c (Fset_window_vscroll): Allow only negative scroll
11309 values. Others don't seem to make sense, and this way it's easy
11310 to restore a vscroll of zero.
11311
11312 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11313 allocated.
11314 (x_draw_image_glyph_string_background): Don't clip if pixmap
11315 could not be created.
11316
11317 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11318 be created.
11319 (xbm_load): Ditto.
11320 (gs_load): Ditto.
11321
11322 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11323 glyphs into account.
11324
11325 * xfaces.c (realize_default_face): Don't set font family of
11326 the default face from the fontset alias name for `fontset-startup'.
11327
11328 * xfns.c (gs_load): Pass frame's pixel foreground and background
11329 color to the Lisp loader.
11330
113311998-07-19 Gerd Moellmann <gerd@gnu.org>
11332
11333 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11334 libtiff34.
11335
11336 * configure.in (--with-tiff, HAVE_TIFF): Added.
11337
11338 * config.in (HAVE_TIFF): Added.
11339
11340 * Makefile.in (LIBTIFF): Added.
11341
11342 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11343
11344 * Makefile.in (LIBJPEG): Added.
11345
11346 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11347 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11348 jpeglib.h.
11349
427ec082 11350 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11351 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11352 configure must be run with `--x-includes=/usr/X11R6/include:
11353 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11354
113551998-07-18 Gerd Moellmann <gerd@gnu.org>
11356
11357 * config.in (HAVE_JPEG): Added.
11358
11359 * xfns.c (ct_init): Initialize color table used to map RGB colors
11360 from images to X pixel colors.
11361 (ct_free): Free color table.
11362 (ct_lookup): Look an RGB color up.
11363 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11364 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11365 image specification.
11366 (pbm_scan_number): Scan a decimal ASCII number from a file.
11367 (pbm_load): Load a PPM image.
11368
11369 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11370 necessary. Take canonical character units as parameter.
11371 (Fwindow_vscroll): Return canonical character units.
11372
11373 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11374 w->dy to display height for which glyph rows must be allocated.
11375
113761998-07-17 Gerd Moellmann <gerd@gnu.org>
11377
11378 * xfaces.c (face_at_string_position): Merge in region face
11379 so that it won't overwrite the font in the region.
11380 (face_at_buffer_position): Ditto.
11381 (realize_basic_faces): Don't realize region face.
11382
11383 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11384
11385 * xterm.c (x_set_glyph_string_background_width): Don't let
11386 cursor face extend to end of line.
11387
11388 * xdisp.c (append_space): If adding space of default face,
11389 make sure glyph ist produced with right face.
11390
11391 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11392 background color of a glyph string.
11393 (x_draw_glyph_string_background): Call it.
11394 (x_draw_glyph_string_bg_rect): Ditto.
11395 (x_draw_stretch_glyph_string): Ditto.
11396
113971998-07-15 Gerd Moellmann <gerd@gnu.org>
11398
11399 * xdisp.c (init_iterator): Initialize it->current_y to the
11400 window's vscroll w->dy.
11401
11402 * window.c (Fwindow_vscroll): Return number of pixels window
11403 is vscrolled smoothly.
11404 (Fset_window_vscroll): Set the number.
11405
11406 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11407 to_pos in truncated part of a line.
11408
114091998-07-14 Gerd Moellmann <gerd@gnu.org>
11410
11411 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11412 doesn't fit on the line, truncate it, despite truncate_lines nil.
11413 (display_line): Ditto.
11414
11415 * xfns.c: Experimental support for Ghostscript images.
11416
11417 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11418 (XTread_socket): React on events from Ghostscript.
11419 (expose_frame): If width or height are zero, redraw entire frame.
11420 (XTread_socket): Call expose_frame after receiving event from
11421 Ghostscript.
11422
11423 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11424 for Ghostscript support.
11425
11426 * xdisp.c (redisplay_internal): Return quickly if called
11427 recursively.
11428
11429 * alloc.c (NSTATICS): Increased to 1024.
11430
114311998-07-08 Gerd Moellmann <gerd@gnu.org>
11432
11433 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11434 iterator's glyph row.
11435 (x_produce_stretch_glyph): Call it.
11436 (x_produce_glyphs): Handle `space-width' property; call
11437 x_append_stretch_glyph.
11438
11439 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11440 property.
11441 (get_iterator_space_width): Determine value of `space-width'
11442 property at iterator's position.
11443 (reseat_iterator): Call it.
11444 (next_element_from_string): Ditto.
11445 (next_element_from_buffer): Ditto.
11446 (init_iterator): Initialize space_width of iterator.
11447 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11448 moved, but cursor blinks.
11449 (redisplay_internal): Set w->last_cursor_off_p after update.
11450
11451 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11452 (struct display_iterator): Add new member space_width.
11453
11454 * window.h (struct window): Add last_cursor_off_p.
11455
114561998-07-07 Gerd Moellmann <gerd@gnu.org>
11457
11458 * Saved.
11459
11460 * window.c (Fpos_visible_in_window_p): Case window not up to
11461 date---return nil if iterator hasn't reached position.
11462
114631998-07-06 Gerd Moellmann <gerd@gnu.org>
11464
11465 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11466 overlays have changed.
11467 (redisplay_window): Case cursor movement. Don't try it if
11468 last_cursor.vpos is out of range.
11469
11470 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11471 way, the display optimization for the line containing the cursor
11472 is used more frequently, esp. when we have a blinking cursor.
11473 (display_line): Don't set this_line_.* variables.
11474
11475 * xterm.c (x_redraw_cursor): Removed.
11476 (x_display_and_set_cursor): Set cursor type depending on
11477 cursor_off_p flag of window.
11478
11479 * dispnew.c (redraw_cursor_hook): Removed.
11480 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11481 member of the selected window.
11482
11483 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11484
11485 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11486 Return glyph area under x/y.
11487 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11488
11489 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11490 after redisplaying.
11491
114921998-07-05 Gerd Moellmann <gerd@gnu.org>
11493
11494 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11495 are all outside of a line of text.
11496 (redisplay_internal): Use it.
11497
114981998-06-30 Gerd Moellmann <gerd@gnu.org>
11499
11500 * xdisp.c (next_element_from_buffer): After skipping over
11501 invisible text, look for the `glyph' property.
11502 (set_iterator_stop_pos): Ignore check positions in front
11503 of an iterator's current position.
11504
11505 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11506 anymore or which are marked as not having valid contents.
11507
11508 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11509 realized faces if new attribute value is equal to old value.
11510
115111998-06-29 Gerd Moellmann <gerd@gnu.org>
11512
11513 * xfaces.c (Finternal_make_lisp_face): Increment
11514 lface_id_to_name_size when lface_id_to_name is reallocated.
11515
115161998-06-27 Gerd Moellmann <gerd@gnu.org>
11517
11518 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11519 as minimum of endpos and overlay_pos.
11520 (load_overlay_strings): Set next_overlay_pos of iterator to
11521 -1 if we don't have to check for more overlay strings.
11522
115231998-05-09 Gerd Moellmann <gerd@gnu.org>
11524
11525 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11526 do anything if iterator is at ZV because scan_buffer doesn't
11527 work otherwise.
11528
11529 * xterm.c (x_encode_char): Inline it.
11530 (x_get_char_font_and_encoding): Simplified.
11531 (x_per_char_metric): Inline it.
11532
11533 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11534
11535 * xdisp.c (get_next_display_element): Check for end of relief
11536 face moved here from next_element_from_buffer.
11537
11538 * xterm.c (x_produce_image_glyph): Add relief thickness.
11539 (x_produce_stretch_glyph): Ditto.
11540
115411998-05-08 Gerd Moellmann <gerd@gnu.org>
11542
11543 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11544 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11545
11546 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11547 from a glyph property.
11548 (x_produce_glyphs): Use it.
11549
11550 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11551
427ec082 11552 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11553 in text area.
11554 (x_produce_glyphs): Ditto.
11555
427ec082 11556 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11557 marginal areas.
11558
427ec082 11559 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11560 background of an image glyph string.
427ec082 11561 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11562 the background of a glyph string.
11563 (x_draw_image_glyph_string_foreground): Draw the foreground of
11564 an image glyph string.
11565 (x_inverted_image_mask): Return the inverted mask of an image.
11566
11567 * xfns.c (x_draw_image): Removed.
11568
11569 * dispextern.h (struct image_type): Remove drawing function.
11570
11571 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11572
11573 * xdisp.c (get_next_display_element): In marginal areas, translate
11574 newlines, tabs, etc. like normal control characters.
11575
11576 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11577 and color.
11578 (free_realized_faces): Set frame garbaged.
11579
11580 * xfaces.c (syms_of_xfaces): Add defsubr for
11581 internal-lisp-face-attribute-values.
11582
115831998-05-07 Gerd Moellmann <gerd@gnu.org>
11584
11585 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11586 full.
11587 (x_produce_image_glyph): Set IT->nglyphs to 1.
11588 (x_draw_image_glyph_string): Use inverted mask to draw background.
11589
11590 * dispextern.h (struct image_type): Additional clipping rect
11591 parameters for drawing functions.
11592
427ec082 11593 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11594 a glyph string.
11595 (x_draw_image_glyph_string): Use it and pass the rect to the
11596 image drawing function.
11597
11598 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11599 first character with `glyph' property as image position. Set
11600 iterator back to that position as long as the image hasn't been
11601 consumed with set_iterator_to_next.
11602 (set_cursor_from_row): Accept when glyph with given position is
11603 not found in the row. Set cursor x to end of line in that case,
11604 so that we can hscroll.
11605 (redisplay_internal): Correct computation of delta by which
11606 positions have changed in redisplay optimization for cursor
11607 row of selected window.
11608
11609 * xdisp.c (display_line): Remove start_pos.
427ec082 11610 (display_line): Fix bug preventing display optimization for
26901792
DL
11611 cursor line of selected window.
11612 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11613 instead.
11614
11615 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11616 (update_text_area): Take glyph pixel width into account
11617 when trying to find a resync point.
11618 (row_equal_p): Compare glyphs in all areas.
11619
116201998-05-06 Gerd Moellmann <gerd@gnu.org>
11621
11622 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11623
11624 * dispextern.h (struct glyph_row): Use unsigned hash value.
11625
11626 * xdisp.c (display_line): Simplified and made faster by setting
11627 the cursor with set_cursor_from_row.
11628 (set_cursor_from_row): Handle rows of desired matrix.
11629
116301998-05-05 Gerd Moellmann <gerd@gnu.org>
11631
11632 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11633 with type != CHAR_GLYPH.
11634 (fill_iterator_from_glyph_property): Return void. Set
11635 method to next_element_from_image.
11636 (next_element_from_image): Dummy function for delivering a
11637 single image id.
11638 (set_iterator_to_next): Add method next_element_from_image.
11639 (redisplay_window): When recentering, and cursor vpos is -1
11640 after display, assume middle of window is in first line displayed
11641 in window, and display again.
427ec082 11642 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11643 the position of the first character having the glyph property.
11644
11645 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11646 * xfns.c (x_draw_image): Use it.
11647 * xterm.c (x_produce_image_glyph): Use it.
11648
11649 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11650
11651 * Makefile.in: Extraneous #define of LIBXPM removed.
11652
11653 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11654 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11655 stretch glyph.
11656 (x_compute_glyph_string_overhangs): Compute overhangs only
11657 for text glyph strings.
11658 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11659 (x_draw_glyph_string): Call it.
11660
11661 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11662 (struct glyph): Add sub-structure for stretchable glyphs.
11663 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11664
11665 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11666 #ifdef HAVE_FACES.
11667
11668 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11669
11670 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11671 setup_iterator_from_glyph_property. Don't do it for terminal
11672 frames.
11673
11674 * xterm.c (x_produce_image_glyph): Produce glyph for image
11675 that can't be loaded.
11676
11677 * xfns.c (lookup_image): If image can't be loaded, set its
11678 width and height so that we can draw a rectangle.
11679 (x_draw_image): Draw a rectangle for images that don't have
11680 a pixmap.
11681 (make_image): Set hash value.
11682 (image_spec_equal_p): Use image_spec_value.
11683
11684 * xterm.c (expose_frame): Don't try to redraw if basic faces
11685 haven't benn realized yet.
427ec082 11686 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11687 is not as tall as row.
11688
116891998-05-04 Gerd Moellmann <gerd@gnu.org>
11690
11691 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11692 (LIBX)[HAVE_X11]: Add LIBXPM.
11693
11694 * xfns.c (xpm_image_p): Implementation of image type functions
11695 for XPM.
11696 (xpm_load): Ditto.
11697
11698 * dispextern.h (struct image): Add mask pixmap for XPM.
11699
11700 * xfns.c (x_draw_image): Handle images with masks.
11701
11702 * configure.in: --with-xpm added. Code detecting -lXpm added.
11703
11704 * config.in: Add HAVE_XPM.
11705
11706 * xfns.c (xbm_draw): Removed.
11707 (x_draw_image): Default implementation for drawing images.
11708 (xbm_keyword_index): Remove XBM_DEPTH.
11709 (xbm_format): Remove `:depth'.
11710 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11711 (xbm_load_image_from_file): Added for the same reason.
26901792 11712
427ec082 11713 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11714 glyph string.
11715 (x_draw_image_glyph_string): Pass ybase to image draw function.
11716
11717 * xfns.c (make_image): Set default baseline.
11718
11719 * xterm.c (x_produce_image_glyph): Compute ascent of image
11720 from its height and baseline percentage.
11721
11722 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11723 (xbm_format): Add description for `:baseline'.
11724 (xbm_image_spec_from_file): Add keywords from original spec to
11725 result.
11726 (xbm_load): Set baseline of image.
11727 (xbm_image_p): Check range for baseline.
11728
11729 * dispextern.h (struct image): Add member baseline.
11730
11731 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11732
11733 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11734
11735 * xdisp.c (get_next_display_element): Do character translations
11736 only if delivering characters.
11737
117381998-05-03 Gerd Moellmann <gerd@gnu.org>
11739
427ec082 11740 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11741 DISP_CHARACTER.
11742
11743 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11744 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11745
117461998-05-02 Gerd Moellmann <gerd@gnu.org>
11747
11748 * xfns.c (prepare_image_for_display): Set image timestamp.
11749 (clear_image_cache): Clear images if image's timestamp +
11750 Vimage_eviction_seconds is > now.
11751 (syms_of_xfns): New variables image-eviction-seconds, and
11752 image-types.
11753 (add_image_format): Add to image-types.
11754 (xbm_load): Support new image spec format.
11755 (x_alloc_image_color): Allocate a color for an image.
11756
11757 * dispextern.h (struct image): Add timestamp.
11758
11759 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11760 vectors of bool-vectors.
11761 (xbm_lisp_object_from_file): Build new format image spec.
11762
117631998-05-01 Gerd Moellmann <gerd@gnu.org>
11764
11765 * xfaces.c (init_frame_faces): Initialize image cache.
11766 (free_frame_faces): Free it.
11767
11768 * xterm.c (x_delete_display): Don't free image cache.
11769
11770 * emacs.c (main): Call init_xfns.
11771
117721998-04-30 Gerd Moellmann <gerd@gnu.org>
11773
11774 * alloc.c (mark_object): Mark objects in image cache.
11775
427ec082 11776 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11777 widget_store_internal_border_width.
11778
11779 * widget.c (widget_store_internal_border): Return void.
11780
11781 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11782 void.
11783 (init_x_parm_symbols): Return void.
11784 (x_report_frame_params): Ditto.
11785 (x_set_border_pixel): Ditto.
11786 (syms_of_xfns): Ditto.
11787 (x_destroy_all_bitmaps): Use xfree instead of free.
11788
11789 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11790
11791 * xterm.c (x_term_init): Initialize image_cache of display info.
11792 (x_delete_display): Free image cache.
11793
11794 * xterm.h (struct x_display_info): Add image_cache.
11795
11796 * xfns.c (make_image_cache): Allocate a new image cache.
11797 (free_image_cache): Free an image cache.
11798 (make_image): Allocate an image.
11799 (free_image): Free an image.
11800
11801 * dispextern.h (struct image): Structure describing an image.
11802 (struct image_cache): Structure describing an image cache.
11803
118041998-04-29 Gerd Moellmann <gerd@gnu.org>
11805
11806 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11807 non-zero if iterator is filled with something to return.
11808 (next_element_from_buffer): Immediately return if
11809 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11810 (next_element_from_string): Likewise.
11811
11812 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11813
11814 * dispextern.h (struct glyph): Add pixmap_id.
11815 (display_element_type): Add DISP_PIXMAP.
11816
11817 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11818 malloc/free.
11819
11820 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11821 (clear_face_cache): Call it.
11822
11823 * xterm.c (x_query_font): Don't look at empty font table slots.
11824 (x_compute_min_glyph_bounds): Likewise.
11825 (x_term_init): Initialize font_table to null.
11826 (x_load_font): Change allocation of font_info structures so
11827 that it is possible to free fonts.
11828
427ec082 11829 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11830 Only free fonts from filled font table entries.
11831
11832 * xfaces.c (best_matching_font): Support use of scalable fonts.
11833 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11834
11835 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11836 and resy.
11837 * xterm.c (x_term_init): Compute resx and resy.
11838
11839 * xfaces.c (split_font_name): Don't reject scalable fonts.
11840
427ec082 11841 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11842 in #if 0.
11843
11844 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11845 point size cannot be determined.
11846
11847 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11848 width over all fonts on a frame.
11849 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11850 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11851 macros.
11852
11853 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11854 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11855 (x_load_font): Use x_compute_min_char_bounds.
11856
11857 * xterm.h (struct x_display_info): New members smallest_char_width
11858 and smallest_font_height.
11859
118601998-04-28 Gerd Moellmann <gerd@gnu.org>
11861
11862 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11863 the same name if GC of face is zero.
11864
11865 * dispextern.h (struct face): Member non_ascii_gc removed.
11866
11867 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11868 for characters < 0177 in default face. Prepare face for
26901792
DL
11869 display before returning it.
11870 (x_produce_glyphs): Use it->charset.
11871 (x_get_char_font_and_encoding): Simplified.
11872 (x_encode_char): Remove parameter `font'.
11873
11874 * xfaces.c (choose_face_font): If registry from charset symbol
11875 doesn't contain a `-', make it a pattern by appending "*-*".
11876
11877 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11878 glyph_check_pos computation to character boundary.
11879
118801998-04-27 Gerd Moellmann <gerd@gnu.org>
11881
11882 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11883
11884 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11885 ASCII face for a given Lisp face id.
11886
11887 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11888 account.
427ec082 11889 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11890 new position is < original position.
11891 (check_iterator_glyph_property): Handle glyph property in strings.
11892 (next_element_from_string): Call above function.
11893 (next_element_from_display_vector): Handle faces in glyphs.
11894 (get_next_display_element): Set face_id of glyphs for
11895 control chars to zero.
11896
11897 * Makefile.in (term.o): Add dependency on dispextern.h.
11898
11899 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11900 (display_line): Handle marginal areas.
11901 (move_iterator_in_display_line_to): Likewise.
11902
11903 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11904
11905 * xfaces.c (face_at_buffer_position): Don't merge with nil
11906 text property.
11907 (face_at_string_position): Ditto.
11908
11909 * dispextern.h (struct display_iterator): Use a stack of saved
11910 values instead of saving check positions etc. individually.
11911
11912 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11913 maybe pop the iterator's stack.
11914 (save_iterator_settings): Push a value on iterator's stack.
11915 (get_overlay_strings_at_iterator_position): Use it.
11916 (restore_iterator_settings): Pop the stack.
11917 (set_iterator_to_next_overlay_string): Use it.
11918
11919 * xfaces.c (try_font_list): Use alternative font families.
11920
119211998-04-26 Gerd Moellmann <gerd@gnu.org>
11922
11923 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11924 font selection matches fonts.
11925 (Fface_font_sort_order): Return the font sort order.
11926 (best_matching_font): Find best matching font based on sort order.
11927 (cmp_font_names): Sort by given sort order.
11928
11929 * dispextern.h (struct display_iterator): New member faces_p.
11930 * xdisp.c (init_iterator): Initialize it->faces_p.
11931 (compute_face_at_iterator_string_position): Use it.
11932 (compute_face_at_iterator_position): Use it.
11933 (init_iterator): Use it.
11934 (display_mode_line): Ditto.
11935
11936 * xdisp.c (get_next_display_element): Put code choosing a face
11937 when the charset changes in #ifdef HAVE_FACES.
11938
427ec082 11939 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11940 lookup_face_for_charset.
11941
11942 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11943 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11944
119451998-04-25 Gerd Moellmann <gerd@gnu.org>
11946
11947 * xfaces.c (best_matching_font): Return the name of the best
11948 matching font in an array of font_name structures.
11949 (choose_face_font): Use it.
11950 (choose_face_fontset_font): Use it.
11951 (find_best_weight_font): If final font found has same weight as
11952 the font we started with, return the original font because it is a
11953 better match for the resolution of the display.
11954 (find_best_slant_font): Likewise.
11955 (merge_face_vector_with_property): Check more invalid attribute
11956 values.
11957 (lface_suitable_for_charset_p): Replaced by a macro with the same
11958 name in upper-case.
11959
119601998-04-24 Gerd Moellmann <gerd@gnu.org>
11961
11962 * dispextern.h (struct face): Member
11963 fontset_chosen_for_realization_p removed.
11964
11965 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11966 end of the collision list, so that we find more specific faces
11967 first.
11968 (lookup_face_for_charset): Look up a new face if face->fontset >=
11969 0, and charset != CHARSET_COMPOSITION.
11970
11971 * xfaces.c (split_font_name): Return zero if point size of font
11972 couldn't be computed.
11973 (realize_default_face): Use ASCII font of a fontset to determine
11974 font-related attributes of the default face.
11975 (face_fontset): Return fontset id for face family.
11976 (font_list): Additional parameter font_pattern. If non-nil,
11977 return fonts matching that pattern.
11978
119791998-04-23 Gerd Moellmann <gerd@gnu.org>
11980
11981 * xfaces.c (choose_face_fontset): If new fontset cannot be
11982 constructed, or fontset name cannot be split, return the id of the
11983 standard fontset.
11984
11985 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11986 When Emacs starts, it may be called for the initial frame which
11987 isn't an X frame.
11988
11989 * dispextern.h (struct face): New members foreground_defaulted_p,
11990 background_defaulted_p.
11991 (struct face): Members `mask' and `cache' removed.
11992
11993 * xfaces.c (load_color): Set them.
11994 (free_face_colors): Check them.
427ec082 11995 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11996 font unknown.
11997
11998 * xfaces.c (free_font): Removed.
11999 (load_face_font_or_fontset): Renamed from load_font.
12000 (load_face_font_or_fontset): Use message2 instead of signalling.
12001 (load_color): Likewise.
12002 (load_pixmap): Likewise.
12003
12004 * xterm.h (struct x_display_info): Add screen_dpi.
12005 * xterm.c (x_term_init): Initialize it.
12006 * xfaces.c (xlfd_point_size): Use it.
12007 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12008 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12009 similar to that of the frame appear first in the result.
12010
12011 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12012 is set for the face to cache, add it to the end of the collision
12013 list.
12014 (try_font_list): If fonts for given family and registry cannot
12015 be found, first try to keep the registry, and choose a different
12016 family.
12017 (choose_face_font): Allow nfonts == 0.
12018 (try_font_list): Give up if no font matches given registry.
12019
120201998-04-22 Gerd Moellmann <gerd@gnu.org>
12021
12022 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12023 font info id of the face.
12024
12025 * xfaces.c (load_font): Set font_info_id.
12026 (realize_face): Ditto.
12027
12028 * dispextern.h (struct face): Change member font_info to
12029 font_info_id.
12030
12031 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12032 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12033
12034 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12035 isn't ASCII, get the ASCII face before adding a space.
12036 (append_space): Likewise.
12037 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12038 to -1 so that it will compute the right face for the truncation
12039 glyphs.
12040
12041 * xfaces.c (realize_face): Set
12042 face->fontset_chosen_for_realization_p.
12043 (lookup_face_for_charset): If fontset wasn't specified originally
12044 and new charset != CHARSET_COMPOSITION, get a new face for that
12045 charset.
12046
12047 * dispextern.h (struct face): New member
12048 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12049 realize_face has chosen a fontset to display composite characters
12050 for a Lisp face not specifying a fontset.
12051
12052 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12053 face and line already filled here. Don't do anything if current
12054 face hasn't a relief or has a background equal to the frame
12055 background.
12056
12057 * xfaces.c (split_font_name): Additional parameter numeric_p.
12058 Don't compute numeric values if it is non-zero.
12059 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12060 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12061 font whose name cannot be split into fields.
12062
120631998-04-21 Gerd Moellmann <gerd@gnu.org>
12064
427ec082 12065 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12066 possibly using less restrictive patterns.
12067 (choose_face_font): Use it.
12068
12069 * xterm.c (x_get_char_font_and_encoding): For charset !=
12070 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12071
12072 * dispextern.h (struct face): New member font_info.
12073
12074 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12075 specifying a fontset as well as those not having a fontset.
12076 (free_font): Make it empty.
12077 (realize_face): Use changed load_font.
12078
12079 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12080 fit for charset, get the right one.
12081
12082 * xfaces.c (load_font): Take frame and name parameter, return
12083 font.
12084 (free_font): Likewise.
12085 (split_font_name): Compute numeric values for height, swidth etc.
12086 (cmp_font_names): Use them.
12087 (find_best_width_font): Ditto.
12088 (find_best_height_font): Ditto.
12089 (find_best_weight_font): Ditto.
12090 (find_best_slant_font): Ditto.
12091 (lface_hash): Add weight, slant, swidth and relief to hash value.
12092 (lface_equal_p): Make it faster.
12093 (lface_from_symbol): Use assq_no_quit.
12094 (Fnote_default_face_changed): Removed.
12095 (cmp_font_names): Use strcmp instead of xstricmp.
12096 (face_charset_registries): Removed.
12097
120981998-04-20 Gerd Moellmann <gerd@gnu.org>
12099
12100 * frame.h (CHECK_FRAME): Give this macro a statement form.
12101 (CHECK_LIVE_FRAME): Ditto.
12102
12103 * xfaces.c (find_best_width_font): Find the best matching font
12104 for a given width.
12105 (find_best_height_font): Likewise for height.
12106 (find_best_weight_font): Likewise for weight.
12107 (find_best_slant_font): Likewise for slant.
12108 (choose_face_font): Use them.
12109 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12110 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12111 global face attributes.
12112
12113 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12114 Lisp face attributes.
12115
121161998-04-19 Gerd Moellmann <gerd@gnu.org>
12117
12118 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12119 and :italic for compatibility.
12120 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12121 :bold and :italic. Handle boolean resource values for
26901792
DL
12122 :underline and :italic.
12123
12124 * xfns.c (display_x_get_resource): Make it externally visible.
12125
12126 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12127 If that frame is non-null, return the frame-local face.
12128 (Finternal_make_lisp_face): Additional frame argument.
12129 (lface_attributes): Get face attributes from global and frame-local
12130 definitions.
12131 (Finternal_lisp_face_equal_p): Additional frame argument.
12132 (merge_lisp_face_vector_with_property): Ditto.
12133 (Frealize_basic_faces): Removed.
12134 (Finternal_get_lisp_face_attribute): Additional frame argument.
12135 (Finternal_lisp_face_p): Ditto.
12136 (load_color) [MSDOS]: Removed because it isn't clear how
12137 to do this for MS-DOS.
12138
12139 * xfaces.c (lface_from_symbol): Get global face definition
12140 from face-global-alist.
12141
12142 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12143 as values for :underline and :inverse-video.
12144 (Finternal_set_lisp_face_attribute): Allow nil values.
12145
121461998-04-17 Gerd Moellmann <gerd@gnu.org>
12147
12148 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12149
12150 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12151 (Finternal_make_lisp_face): Add new face to Vall_faces.
12152
12153 * xdisp.c (echo_area_display): Remove code recomputing faces.
12154 (redisplay_internal): Ditto.
12155 (init_iterator): Do it here.
12156
12157 * xfaces.c (choose_face_font): Check that swidth doesn't change
12158 for subusequent attributes.
12159 (xlfd_point_size): Return int.
12160
12161 * xdisp.c (redisplay_internal, echo_area-display): If realized
12162 faces have been cleared, call recompute_basic_faces.
12163
12164 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12165 face_attributes_changed_p.
427ec082 12166 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12167 all frames.
12168 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12169
12170 * xdisp.c (redisplay_internal): If face attributes have been
12171 changed since the last redisplay, recompute basic faces.
12172 (echo_area_display): Ditto.
12173
12174 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12175
12176 * xfaces.c (min_char_bounds): If face cache not yet present,
12177 don't try to get font dimensions from faces.
12178
12179 * xterm.c (x_frame_mode_line_height): If face cache not present
12180 set, return default height.
12181
12182 * alloc.c (mark_face_cache): Check for null faces. Correct
12183 index bug.
12184
12185 * dispextern.h (struct face): Renamed from struct rface. Member
12186 underline renamed underline_p. Make it a bit-field.
12187
12188 * xfaces.c (init_frame_faces): Allocate face cache.
12189 (free_frame_faces): Free face cache.
12190 (recompute_basic_faces): Realize basic faces only if face cache is
12191 allocated, i.e. after init_frame_faces has been called.
12192
12193 * frame.c (make_frame): Initialze face cache with null.
12194
12195 * xfaces.c (same_size_fonts): Removed.
12196
427ec082 12197 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12198 s->gc != 0.
12199 (x_set_mouse_face_gc): Ditto.
12200 (x_set_mode_line_face_gc): Ditto.
12201
427ec082
SS
12202 * xfaces.c (realize_default_face): Return int. Value is
12203 zero if frame params don't contain enough information to
26901792
DL
12204 realize the default face.
12205 (realize_basic_faces): Ditto.
12206 (init_frame_faces): Realize basic faces.
12207
12208 * xfns.c (x_set_font): First store real font name in frame
12209 parameters, then call recompute_basic_faces.
12210
12211 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12212
122131998-04-16 Gerd Moellmann <gerd@gnu.org>
12214
12215 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12216
12217 * xfns.c (Fx_face_fixed_p): Removed.
12218 (Fx_list_fonts): Moved to xfaces.c.
12219
12220 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12221 face_at_buffer_position. Parameter charset removed; always
12222 compute face for CHARSET_ASCII.
12223 (face_at_string_position): Renamed from
12224 compute_face_at_string_pos. Parameter charset removed; always
12225 compute for CHARSET_ASCII.
427ec082 12226 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12227 face_cache.
12228 (lookup_face): Ditto.
12229 (compute_char_face): Renamed from compute_glyph_face.
12230
12231 * xdisp.c (init_iterator): Initialize charset member.
12232 (reseat_iterator_to_string): Ditto.
12233 (get_charset_at_buffer_position): Determine charset at
12234 buffer position in current_buffer.
12235 (reseat_iterator): Call above function.
12236 (compute_face_at_iterator_position): Call
12237 compute_face_at_buffer_pos.
12238 (compute_face_at_iterator_string_position): Call
12239 compute_face_at_string_pos.
12240 (get_face_from_id): Removed.
12241 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12242 Call get_charset_at_buffer_position.
12243 (reseat_iterator): Determine face if charset at pos differs
12244 from iterator's charset.
12245 (reseat_iterator_to_glyph_pos): Removed.
12246
12247 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12248 Determine charset from buffer position.
12249 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12250 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12251
12252 * dispextern.h (struct display_iterator): Add member charset.
12253
122541998-04-15 Gerd Moellmann <gerd@gnu.org>
12255
12256 * xfaces.c (compute_char_face): Removed.
12257
12258 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12259 with new parameter list.
12260
12261 * xfaces.c (region_face): Removed.
12262 (allocate_face): Removed.
12263 (copy_face): Ditto.
12264 (face_eql): Removed.
12265 (intern_face): Removed.
12266 (clear_face_cache): Removed.
12267 (load_font): Ditto.
12268 (unload_font): Ditto.
12269 (load_color): Ditto.
12270 (unload_color): Ditto.
12271 (new_computed_face): Ditto.
12272 (intern_computed_face): Ditto.
12273 (ensure_face_ready): Ditto.
12274 (merge_faces): Ditto.
12275 (compute_base_face): Ditto.
12276 (merge_face_list): Ditto.
12277 (Fmake_face_internal): Removed.
12278 (Fset_face_attribute_internal): Ditto.
12279 (face_name_id_number): Removed.
12280 (Fframe_face_alist): Ditto.
12281 (Fset_frame_face_alist): Ditto.
12282 (Finternal_next_face_id): Ditto.
12283
12284 * xterm.h (struct x_output): Remove computed_faces, and
12285 param_faces. Remove macros accessing them.
12286
12287 * xfaces.c: Entirely new face implementation added.
12288
122891998-04-11 Gerd Moellmann <gerd@gnu.org>
12290
12291 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12292 `charpos'.
12293
122941998-04-10 Gerd Moellmann <gerd@gnu.org>
12295
12296 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12297 scroll bar window to reduce flickering. Clear entire height.
12298
12299 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12300 current_x and hpos to zero after moving to previous line
12301 start.
12302
123031998-04-03 Gerd Moellmann <gerd@gnu.org>
12304
12305 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12306
12307 * xfaces.c (xlfd_point_size): Compute relative point size of
12308 fonts from font and frame resolution.
12309 (sort_fonts): New function to sort fonts, temporarily setting
12310 font_frame to the frame in effect.
12311 (xlfd_point_size): Take additional frame parameter to be able
12312 to get at the display's resolution.
12313
12314 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12315 BLACK_PIX_DEFAULT.
12316 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12317 screen of display.
12318
123191998-03-31 Gerd Moellmann <gerd@gnu.org>
12320
12321 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12322
12323 * fontset.h: Add external declarations for Vfontset_alias_alist
12324 and Vglobal_fontset_alist.
12325
12326 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12327 (realize_default_face): If frame parameters contain an artificial
12328 font name naming a fontset, set the family of the default face to
12329 the fontset name given by the registry.
12330
12331 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12332
123331998-03-22 Gerd Moellmann <gerd@gnu.org>
12334
12335 * alloc.c (mark_object): Add function prototype. Add cast to
12336 Lisp_Object pointer in call to mark_object for symbol names
12337 because this otherwise gives a warning from gcc 2.8.1.
12338 (mark_face_cache): Mark Lisp objects in realized faces.
12339
123401998-03-19 Gerd Moellmann <gerd@gnu.org>
12341
12342 * frame.h (struct frame): Add member face_cache.
12343
12344 * alloc.c (mark_object): Mark face cache.
12345 (mark_face_cache): Mark Lisp faces in face cache of frame.
12346
12347 * frame.c (make_frame): Initialize face_cache.
12348 (Fdelete_frame): Free it.
12349
123501998-03-18 Gerd Moellmann <gerd@gnu.org>
12351
12352 * xfaces.c: Very first skeleton of functions for face realization,
12353 face merging, face cache etc.
12354
12355 * dispextern.h (struct rface): Realized faces. Will replace
12356 struct face when tested.
12357 (struct face_cache): Realized face caches.
12358
12359 * xdisp.c (init_iterator): Initialize area member of display
12360 iterator.
12361
123621998-03-17 Gerd Moellmann <gerd@gnu.org>
12363
12364 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12365
12366 * dispextern.h (struct display_iterator): New member area.
12367
12368 * xterm.c (note_overwritten_text_cursor): Note when the text
12369 cursor of a window is overwritten.
12370
12371 * xdisp.c (set_cursor_from_row): If PT is not found in the
12372 row, display the cursor at the start of the row.
12373
12374 * dispnew.c (direct_output_forward_char): Call
12375 set_cursor_from_row.
12376
12377 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12378 position is not in an overlay string, set iterator's position and
12379 method explicitly so.
427ec082 12380 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12381 Make it externally visible.
12382 (redisplay_window): Call set_cursor_from_row so that there is only
12383 one place where the cursor position is calculated from a current
12384 row.
12385
12386 * dispextern.h (struct display_iterator): New member
12387 overlay_strings_at_end_processed_p.
12388
12389 * xdisp.c (check_iterator): Perform sanity checks on
12390 display_iterators.
12391 (next_element_from_buffer): Check for overlay strings at ZV.
12392
123931998-03-16 Gerd Moellmann <gerd@gnu.org>
12394
12395 * buffer.c (init_buffer_once): Add left_margin_width and
12396 right_margin_width to buffer_local_flags.
12397
12398 * dispnew.c (margin_glyphs_to_reserve): Function computing
12399 number of glyphs to reserve for a marginal area.
12400 (adjust_glyph_matrix): Call it.
12401 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12402 is not alive.
12403
12404 * window.c (Fset_window_margins): Allow floats.
12405
12406 * buffer.c (syms_of_buffer): Add buffer-local variables
12407 left-margin-width and right-margin-width. Add defaults
12408 default-left-margin-width and default-right-margin-width.
12409
12410 * buffer.h (struct buffer): New members left_margin_width
12411 and right_margin_width.
12412
12413 * window.c (Fset_window_margins): Make window the last and
12414 optional argument.
12415
12416 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12417 flag no_marginal_areas_p differently.
12418 (x_clear_end_of_line): Ditto.
12419 (x_draw_glyph_string_relief): Compute width of relief differently
12420 for rows with flag no_marginal_areas_p.
12421
12422 * dispnew.c (update_window_line): Update marginal areas only
12423 for rows that don't have no_marginal_areas_p set.
12424
12425 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12426 (display_menu_bar): Ditto.
12427
12428 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12429
12430 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12431 marginal areas in window-based redisplay.
12432
12433 * dispextern.h (struct glyph_matrix): New members
12434 left_margin_glyphs and right_margin_glyphs.
12435
124361998-03-15 Gerd Moellmann <gerd@gnu.org>
12437
12438 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12439
12440 * charset.c (non_ascii_char_to_string): Use char type parameters
12441 because the function is used that way from outside. Use unsigned
12442 char internally.
12443
12444 * window.c (change_window_height): Return void.
12445 (make_dummy_parent): Return void.
12446 (init_window_once): Return void.
12447 (syms_of_window): Ditto.
12448 (keys_of_window): Ditto.
12449 (delete_window): Correct return with and without value.
12450
12451 * buffer.c (record_buffer): Return void.
12452
12453 * marker.c (unchain_marker): Return void.
12454
12455 * window.c (unshow_buffer): Return void.
12456 (replace_window): Ditto.
12457 (delete_window): Ditto.
12458
12459 * term.c (delete_glyphs_hook): Void return type.
12460 (ring_bell_hook): Ditto.
12461 (set_terminal_window_hook): Ditto.
12462
12463 * sysdep.c (init_sigio): Return void.
12464
12465 * xterm.c (x_set_window_size): Return void.
12466 (x_calc_absolute_position): Ditto.
12467 (x_set_offset): Ditto.
12468 (x_focus_on_frame): Ditto.
12469 (x_unfocus_frame): Ditto.
12470 (x_make_frame_visible): Ditto.
12471 (x_make_frame_invisible): Ditto.
12472 (x_iconify_frame): Ditto.
12473 (x_destroy_window): Ditto.
12474 (x_wm_set_window_state): Ditto.
12475 (x_wm_set_icon_pixmap): Ditto.
12476 (x_wm_set_icon_position): Ditto.
12477 (x_initialize): Ditto.
12478 (x_error_quitter): Ditto.
12479 (x_destroy_window): Use xfree instead of free.
12480
12481 * keyboard.c (clear_waiting_for_input): Return void.
12482
12483 * xterm.c (x_wm_set_size_hint): Return void.
12484 (x_raise_frame): Ditto.
12485 (refreshicon): Ditto.
12486 (x_error_catcher): Ditto.
12487 (x_clear_errors): Ditto.
12488
12489 * keyboard.c (record_asynch_buffer_change): Return void.
12490
bb6677a8
GM
12491 The first line of the following paragraph was garbled for an
12492 unknown reason. It couldn't be fully reconstructed.
178c5d9c 12493
bb6677a8 12494 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12495 (x_lower_frame): Ditto.
12496 (x_scroll_bar_clear): Ditto.
12497 (XTflash): Add default case in switch for -Wall.
12498 (construct_mouse_click): Return Qnil.
12499 (cancel_mouse_face): Return void.
12500 (x_queue_event): Use xmalloc instead of malloc.
12501 (x_unqueue_events): Use xfree instead of free.
12502
12503 * ccl.c (ccl_driver): Return int.
12504
12505 * keyboard.c (stop_polling): Return void.
12506 (start_polling): Ditto.
12507
12508 * term.c (keys): Add braces in initializer list for -Wall.
12509
12510 * sysdep.c (tabs_safe_p): Return int.
12511 (init_baud_rate): Return void.
12512
12513 * xterm.c (x_draw_bitmap): Add default case.
12514 (x_setup_relief_colors): Use DefaultScreen instead of
12515 DefaultScreenOfDisplay.
12516 (x_delete_glyphs): Return void.
12517 (construct_menu_click): Put in #if 0 because it isn't called.
12518
12519 * xdisp.c (load_overlay_strings): Remove extraneous argument
12520 in call to qsort.
12521 (get_overlay_arrow_glyph_row): Add missing return value.
12522
12523 * window.c (set_window_height): Return void.
12524 (set_window_width): Ditto.
12525
12526 * sysdep.c (request_sigio): Return void.
12527 (unrequest_sigio): Ditto.
12528 (get_frame_size): Ditto.
12529
12530 * scroll.c (scroll_cost): Return int.
12531 (do_line_insertion_deletion_costs): Return void.
12532
12533 * frame.c (Fdelete_frame): Use xfree instead of free.
12534
12535 * fileio.c (report_file_error): Return void.
12536
12537 * dispnew.c: Make compilable with -Wall.
12538 * term.c: Ditto.
12539
12540 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12541
125421998-03-14 Gerd Moellmann <gerd@gnu.org>
12543
12544 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12545 increased.
12546 (x_setup_relief_color): Free color only for appropriate visual
12547 classes.
12548
12549 * xterm.c (expose_window): Fix calculation of intersection of mode
12550 line rectangle with exposed rectangle.
12551
12552 * xdisp.c (redisplay_window): Don't do cursor movement based
12553 on current matrix if w->last_point is not valid.
12554
125551998-03-09 Gerd Moellmann <gerd@gnu.org>
12556
12557 * xterm.c (expose_line): Redraw mode line and menu lines
12558 differently because they reach into the scroll bar area.
12559
12560 * xdisp.c (redisplay_window): If redisplaying with same window
12561 start, don't accept cursor on partially visible line.
12562
125631998-03-08 Gerd Moellmann <gerd@gnu.org>
12564
12565 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12566 for wider mode lines.
12567 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12568
12569 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12570 scroll bar width for mode lines.
12571
12572 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12573 vertical scroll bar width in width calculation so that we can
12574 display mode lines wider.
12575
12576 * xdisp.c (redisplay_window): Restore buffers before returning
12577 when fonts have changed.
12578
12579 * dispnew.c (update_window): Mark invisible rows in the current
12580 matrix invalid.
12581
12582 * xdisp.c (try_window_id): Force update of first row displayed
12583 at window end.
12584 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12585
125861998-03-05 Gerd Moellmann <gerd@gnu.org>
12587
12588 * dispextern.h (struct glyph_row): Member max_ascent renamed
12589 ascent. Member max_descent replaced by height.
12590 (struct display_iterator): Member max_descent replaced by height.
12591 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12592
12593 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12594 class makes it unnecessary or dangerous.
12595
12596 * xdisp.c (redisplay_window): Case only point has changed, and
12597 point has moved forward. Move forward over overlay strings.
12598 (display_line): Don't set cursor if first glyph from PT is part of
12599 a continuation line.
12600
126011998-02-21 Gerd Moellmann <gerd@gnu.org>
12602
12603 * xdisp.c (start_display): When computing continuation lines
12604 width, add current_x to the continuation lines width because
12605 move_iterator_to will stop in front of the buffer position moved
12606 to.
12607
126081998-02-20 Gerd Moellmann <gerd@gnu.org>
12609
12610 * xdisp.c (redisplay_window): Don't try try_window_id if
12611 windows_or_buffers_changed.
12612
12613 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12614 determine a color.
12615 (x_setup_relief_color): Allocate/ change one relief.
12616 (x_setup_relief_colors): Call above function.
12617
12618 * xterm.h (struct relief): New structure type holding relief info:
12619 GCs, colors, and whether colors are allocated.
12620
427ec082 12621 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12622 produces the same color, try adding a delta to RGB values.
12623 (x_setup_relief_colors): Free color cells.
12624
427ec082 12625 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12626 black_relief_pixel holding the foreground colors allocated for
12627 relief GCs. New members white_allocated_p, black_allocated_p.
12628
12629 * xterm.c (x_scroll_run): Don't set updated_window to null.
12630 This resets updated_window when called from scrolling_window.
12631
12632 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12633
26901792
DL
12634 * xterm.c (x_scroll_run): Additional window parameter. Set
12635 and reset updated_window.
12636
12637 * dispnew.c (line_dance_hook): Additional window parameter.
12638
12639 * xdisp.c (try_window_reusing_current_matrix): Don't call
12640 update_window_begin/end here. The end function would display the
12641 cursor on a wrong position and the additional functionality of
12642 update_window_begin is not needed anyway. Just set
12643 updated_window.
12644 (try_window_id): Ditto.
12645
12646 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12647 Don't redraw cursor during redisplay.
12648
12649 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12650
12651 * xdisp.c (redisplay_window): For window-based redisplay, alway
12652 try try_window_id.
12653
12654 * xterm.c (struct glyph_string): New member two_byte_p that is
12655 non-zero if 16-bit drawing functions must be used.
12656 (x_fill_composite_glyph_string): Set it.
12657 (x_fill_glyph_string): Set it.
12658 (x_draw_glyph_string_foreground): Use it.
12659 (x_draw_vertical_border): Make line 1 pixel less tall.
12660 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12661 side by 1 pixel if window is not right-most hasn't vertical scroll
12662 bars.
12663 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12664 out of bounds.
12665 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12666 hl == DRAW_CURSOR.
12667
12668 * xdisp.c (start_display): Check that window start is at line
12669 start if GLYPH_DEBUG != 0.
12670
12671 * window.c (window_scroll_pixel_based): Move assertion to
12672 start_display.
12673
126741998-02-19 Gerd Moellmann <gerd@gnu.org>
12675
427ec082 12676 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12677 frame hasn't the focus.
12678
12679 * window.c (make_window): Initialize dy.
12680 (replace_window): Ditto.
12681
12682 * window.h (window): New member dy specifying the amount by which
12683 a window is scrolled "smoothly".
12684
12685 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12686 y-position because it can be negative.
26901792
DL
12687 (x_draw_row_bitmaps): Don't clear with negative y-position like
12688 above.
12689 (x_clear_end_of_line): Same theme as above.
12690
12691 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12692 exact match exists, the nearest existing color. Patterned after
12693 defined_color.
12694 (x_alloc_lighter_color): Allocate a color that is lighter or
12695 darker than a given color by a specified factor.
427ec082 12696 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12697 the background color of a glyph string face.
12698 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12699
12700 * xfns.c (x_make_gc): Don't allocate relief GCs.
12701 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12702 (setup_frame_gcs): Don't change relief GCs.
12703
12704 * xterm.h (struct x_output): New member relief_background giving
12705 the background pixel color for which relief GCs can be used.
12706 Set by x_setup_relief_colors.
12707
12708 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12709 for mode and menu lines.
12710
12711 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12712
12713 * dispnew.c (direct_output_for_insert): Call
12714 set_next_iterator_stop_pos after having changed it2.endpos.
12715
127161998-02-17 Gerd Moellmann <gerd@gnu.org>
12717
12718 * dispnew.c (update_window): Work on selected_window, only.
12719
12720 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12721 hpos is >= number of glyphs in the cursor row.
12722
12723 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12724 called.
12725
127261998-02-16 Gerd Moellmann <gerd@gnu.org>
12727
12728 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12729 and menu lines.
12730
12731 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12732 enough glyphs to display a mode line or menu line which draws over
12733 flags areas.
12734
12735 * xterm.c (XTset_vertical_scroll_bar): Use
12736 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12737 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12738 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12739 or menu.
12740 (x_set_glyph_string_clipping): Set clipping differently if drawing
12741 a mode line or menu line.
12742
12743 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12744
12745 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12746 menu lines.
12747 (x_scroll_bar_create): Don't clear flags areas.
12748 (x_draw_row_bitmaps): Clear visible row height, only.
12749
12750 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12751
127521998-02-15 Gerd Moellmann <gerd@gnu.org>
12753
12754 * dispnew.c (direct_output_for_insert): When checking for tabs in
12755 the line, set it2.endpos to ZV.
427ec082 12756
26901792
DL
12757 * window.h (struct window): New member cursor_off_p.
12758 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12759 for X.
12760 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12761 be called to display or erase the cursor.
12762 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12763 or selected_window.
12764
12765 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12766
12767 * dispnew.c (update_window_line): Special handling of inverse
12768 lines in #if 0 removed.
12769
12770 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12771 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12772 (x_clear_frame): Renamed from XTclear_frame.
12773 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12774 (x_ins_del_lines): Renamed from XTins_del_lines.
12775 (x_change_line_height): Renamed from XTchange_line_height.
12776 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12777 (x_clear_cursor): Renamed from clear_cursor.
12778 (x_update_begin): Renamed from XTupdate_begin.
12779 (x_update_end): Renamed from XTupdate_end.
12780 (x_update_window_begin): Renamed from XTupdate_window_begin.
12781 (x_update_window_end): Renamed from XTupdate_window_end.
12782 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12783 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12784 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12785 (x_produce_special_glyphs): Implementation in #if 0 removed.
12786
12787 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12788 flag in the dump.
12789
12790 * dispnew.c (update_text_area): Handling of glyphs with pixel
12791 width zero removed. Decrement desired stop pos if desired row
12792 fills its line.
12793
12794 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12795 width zero removed.
12796 (BUILD_GLYPH_STRINGS): Set glyph string flag
12797 extends_to_end_of_line_p based on row's flag fill_line_p and face
12798 background and stipple. Make sure it works for composite characters.
12799
12800 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12801 fill_line_p. For window-based redisplay, add a space only if
12802 the row is empty so that we know the face to draw.
12803
12804 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12805 means draw the face of the last glyph in the text area to the
12806 right end of the text area.
12807
12808 * xdisp.c (init_iterator): Show region in window mini-buffer
12809 window refers to.
12810
427ec082 12811 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12812 region_showing_p removed. Test for region_beg > 0 instead.
12813
12814 * dispnew.c (update_text_area): Clear to end of line if cursor is
12815 beyond the end of the desired line. Necessary because we don't
12816 have a phys_cursor_glyph with which to erase the cursor. We don't
12817 have one because this method of drawing a cursor doesn't work with
12818 lbearing/rbearing.
12819
12820 * xterm.c (XTinsert_glyphs): Block input.
12821
128221998-02-14 Gerd Moellmann <gerd@gnu.org>
12823
12824 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12825 glyph strings.
12826 (x_draw_glyph_string_background): Fill background with background
12827 pixel for the first glyph of a composite character.
12828
12829 * xdisp.c (try_window): Change return type to int. Value is zero
12830 if fonts were loaded during redisplay.
12831 (redisplay_window): Return if fonts have been loaded during
12832 redisplay.
12833 (append_space): New parameter default_face_p.
12834
128351998-02-13 Gerd Moellmann <gerd@gnu.org>
12836
12837 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12838 don't let a partially visible line in a current matrix stay
12839 enabled.
12840
128411998-02-09 Gerd Moellmann <gerd@gnu.org>
12842
12843 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12844 in #if PROMPT_IN_BUFFER.
12845
12846 * xdisp.c (display_line): If row ends in ZV, make the space
12847 that is added to place the cursor on it appear in default face.
12848
427ec082 12849 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12850 glyph row area.
12851 (expose_line): Use it to redraw all areas of a row.
12852
12853 * dispextern.h (move_operation_enum): New enum
12854 move_operation_enum.
12855
12856 * window.c (window_scroll_pixel_based): Remove now unnecessary
12857 code that made sure that it->current_y doesn't become negative.
12858
12859 * xdisp.c (move_iterator_in_display_line_to): New parameter
12860 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12861 (move_iterator_to): Ditto.
12862
12863 * dispextern.h (struct glyph_matrix): New member window_width.
12864
12865 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12866 case of changing window height.
12867
12868 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12869 border to the left.
26901792
DL
12870
12871 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12872 says this aspect of Emacs is currently redesigned.
12873
12874 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12875 have to draw a vertical border.
12876
12877 * window.c (window_scroll_pixel_based): When scrolling down by
12878 screen-fulls, make sure it.current_y doesn't get negative because
12879 this would confuse move_iterator_vertically.
12880
12881 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12882 the case continuation lines are involved.
12883 (try_window_id): Don't set the cursor into scroll margins.
12884
128851998-02-08 Gerd Moellmann <gerd@gnu.org>
12886
12887 * xterm.c (x_append_glyph): Don't compute left_overhang and
12888 right_overhang.
12889 (XTproduce_glyphs): left_overhang and right_overhang removed.
12890 Set it->glyph_row->contains_overlapping_glyphs_p.
12891
12892 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12893 and right_overhang removed.
12894
12895 * dispextern.h (struct glyph_row): New member
12896 contains_overlapping_glyphs_p used to optimize glyph drawing.
12897 (struct display_iterator): left_overhang and right_overhang
12898 removed.
12899 (struct glyph): Ditto.
12900
12901 * xterm.c (x_draw_relief): Removed.
12902 (x_draw_bitmap): Renamed from draw_bitmap.
12903 (x_draw_glyphs): Completely new implementation of draw_glyphs
12904 capable of handling arbitrary lbearing and rbearing values.
12905 Several sub-functions not mentioned here.
12906
129071998-01-30 Gerd Moellmann <gerd@gnu.org>
12908
12909 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12910 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12911 other cases.
12912 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12913 overlap with previous or following characters.
26901792 12914 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12915 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12916 character under the cursor would be invisible.
12917 (x_draw_bar_cursor): Don't draw over previous character if it
12918 has right_overhang.
12919
12920 * window.c (get_phys_cursor_glyph): Return the glyph under a
12921 window's physical cursor.
427ec082 12922
26901792
DL
12923 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12924 (x_draw_bar_cursor): Ditto.
12925 (x_erase_phys_cursor): Ditto.
12926 (x_phys_cursor_in_rect_p): Ditto.
12927 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12928
12929 * window.c (make_window): Remove reference to phys_cursor_glyph.
12930 (replace_window): Ditto.
12931
12932 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12933 now always a glyph present for placing the cursor on it in
26901792
DL
12934 each glyph row, even at the end of a line.
12935
12936 * xdisp.c (append_space): Function to add a space to an iterators
12937 glyph row.
12938 (display_line): Add spaces at the end of lines that are used to
12939 place the cursor on them.
12940 (compute_line_metrics): If row consists of a space only that was
427ec082 12941 added to place the cursor on it, use that space's height as the
26901792
DL
12942 line height.
12943
129441998-01-29 Gerd Moellmann <gerd@gnu.org>
12945
12946 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12947 glyphs.
12948
129491998-01-28 Gerd Moellmann <gerd@gnu.org>
12950
12951 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12952 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12953
12954 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12955 right_overhang.
26901792
DL
12956 (struct display_iterator): Ditto.
12957
12958 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12959 glyphs have different ascent or descent than original row.
12960
12961 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12962 row->max_descent only if unknown.
12963 (display_line): Compute row->max_ascent and row->max_descent.
12964 (display_string): Ditto.
12965
12966 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12967 phys_cursor_descent.
26901792
DL
12968
12969 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12970 (x_draw_hollow_cursor): Ditto.
12971 (x_erase_phys_cursor): Ditto.
12972 (x_display_and_set_cursor): Set them.
12973 (x_append_glyph): Don't set glyph members that were removed.
12974
12975 * dispextern.h (struct glyph): Members ascent, descent,
12976 contributes_to_line_height_p removed.
12977
129781998-01-25 Gerd Moellmann <gerd@gnu.org>
12979
12980 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12981 names for face ids of frame default face and mode line face.
12982
12983 * xdisp.c (compute_face_at_iterator_string_position): If
12984 displaying a mode line use MODE_LINE_FACE_ID instead of
12985 DEFAULT_FACE_ID.
12986
12987 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12988 (display_string): Ditto, additional parameter lisp_string.
12989 (display_line): Call display_string with Lisp mini-buffer prompt
12990 string.
12991 (display_menu_bar): Call display_string with Lisp string.
12992 (display_mode_element): Ditto.
12993 (next_element_from_string): Make it work for non-overlay Lisp
12994 strings with field width and precision.
12995
12996 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12997 PROMPT_IN_BUFFER.
12998
12999 * xfaces.c (compute_string_char_face): Fix face computation
13000 for overlay strings.
13001
13002 * xdisp.c (struct overlay_entry): Add member after_string_p.
13003 (load_overlay_strings): Simplify.
13004
13005 * window.c (delete_window): Defer glyph matrix adjustment.
13006 (Fsplit_window): Ditto.
13007 (change_window_height): Ditto.
13008 (Fset_window_configuration): Ditto.
13009 (Fset_window_margins): Ditto.
13010 * frame.c (set_menu_bar_lines): Ditto.
13011 (Fmake_terminal_frame): Ditto.
13012 * dispnew.c (change_frame_size_1): Ditto.
13013
130141998-01-24 Gerd Moellmann <gerd@gnu.org>
13015
13016 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13017
427ec082 13018 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13019 position has overlay strings.
13020
13021 * xdisp.c (display_line): Don't set cursor if row ends in middle
13022 of overlay string.
13023 (Fdump_redisplay_state): Print complete row start and end
13024 position.
13025 (redisplay_window): Cursor movement when matrix hasn't changed---
13026 if PT < last_point, maybe move forward if row ends at PT and
13027 in middle of char.
13028
13029 * minibuf.c (read_minibuf): Save the value of
13030 minibuffer_prompt_length in minibuf_save_list.
13031 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13032
13033 * xdisp.c (redisplay_window): Add assertion for cursor movement
13034 case, PT < last_point.
13035 (move_iterator_in_display_line_to): If to_pos specified, move
13036 over before-strings.
13037
13038 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13039 start.string_index > 0.
13040
13041 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13042 is set. Retry redisplay if fonts_changed_p is set before update.
13043
13044 * xterm.c (x_load_font): Set fonts_changed_p.
13045
13046 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13047
13048 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13049
13050 * xdisp.c (try_window): Check fonts_changed_p.
13051 (try_window_reusing_current_matrix): Ditto.
13052 (try_window_id): Ditto.
13053
13054 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13055 (fonts_changed_p): Flag indicating a font change since the last
13056 glyph matrix adjustment.
13057
13058 * xterm.c (x_per_char_metric): Use font->max_bounds as
13059 char metric of the font's default char if the default char
13060 hasn't per char metric itself.
13061
13062 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13063 for font change.
13064 (min_char_bounds): Check face->font != NULL.
427ec082 13065 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13066 case of invalid min_bounds contents.
13067 (min_char_bounds): Call font_min_bounds.
13068
130691998-01-22 Gerd Moellmann <gerd@gnu.org>
13070
13071 * xdisp.c (start_display): Don't set it->prompt_width if
13072 PROMPT_IN_BUFFER.
13073 (move_iterator_in_display_line_to): Ditto.
13074 (display_line): Don't display prompt via display_string if
13075 PROMPT_IN_BUFFER.
13076
13077 * minibuf.c (Fminibuffer_prompt_width): Return value from
13078 current_buffer if PROMPT_IN_BUFFER.
427ec082 13079 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13080 mini-buffer and make it read-only.
13081 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13082 minibuffer_prompt_length instead of BEGV.
13083 (Fminibuffer_complete_word): Ditto.
13084 (Fminibuffer_complete_word): Ditto.
13085
13086 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13087 is less than mini-buffer prompt width, use prompt width as start.
13088
13089 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13090 position is less than mini-buffer prompt width, use the prompt
13091 width as start.
13092
13093 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13094 end of prompt if applied to a mini-buffer and BEG reached.
13095
130961998-01-21 Gerd Moellmann <gerd@gnu.org>
13097
13098 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13099 length to start position.
13100
13101 * buffer.c (Fget_buffer_create): Initialize
13102 minibuffer_prompt_length.
13103 (Fmake_indirect_buffer): Ditto.
13104 (Fkill_buffer): Ditto.
13105
13106 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13107 if PROMPT_IN_BUFFER.
13108
131091998-01-19 Gerd Moellmann <gerd@gnu.org>
13110
13111 * xdisp.c (next_element_from_string): Make it work for arbitrary
13112 Lisp strings.
13113 (set_iterator_to_next): Advance to next overlay string only
13114 if it->string is an overlay string.
13115
13116 * dispextern.h (struct display_iterator):
13117 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13118
427ec082 13119 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13120 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13121
13122 * xdisp.c (next_element_from_string): Renamed from
13123 next_element_from_overlay_string.
427ec082 13124 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13125 compute_face_at_iterator_overlay_string_position.
13126
13127 * dispextern.h (struct display_iterator): Member overlay_string
13128 renamed string.
13129
13130 * xdisp.c (next_element_from_c_string): Renamed from
13131 next_element_from_string.
13132
13133 * dispextern.h (struct glyph_pos): Reversed meaning of
13134 overlay_string_index and string_index.
13135
13136 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13137 this function always return the first character of an overlay
13138 string.
13139
131401998-01-18 Gerd Moellmann <gerd@gnu.org>
13141
13142 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13143 forced or new pos > next_invisible_check_pos.
13144 (redisplay_window): Don't try same window start if PT < window
13145 start.
13146 (move_iterator_vertically): Bug fix satisfying post-condition
13147 when ZV is reached and no newline in front.
13148 (move_iterator_vertically_backward): New implementation.
13149 (move_iterator_vertically_backward): Bug fixes.
13150
13151 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13152 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13153 (adjust_glyphs_for_font_change): Always adjust.
13154
13155 * dispnew.c (struct dim): Use int.
13156
13157 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13158 (allocate_face): Initialize it.
13159 (load_font): Use XLoadQueryFont again instead of x_load_font.
13160 (unload_font): Use XFreeFont again.
13161 (min_char_bounds): Iterate over fonts of faces. Use frame's
13162 font sizes as default. Remove parameter except_last_font_p.
13163
13164 * dispextern.h (struct face): Add font_name.
13165
131661998-01-17 Gerd Moellmann <gerd@gnu.org>
13167
13168 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13169 to start of line if ending at ZV and no newline in front.
13170 (move_iterator_to): If to_y specified, always first move to x = 0,
13171 so that move stops at line start instead of line end. This is
13172 probably what callers would expect to happen.
13173
13174 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13175 can handle different line heights.
13176 (window_scroll_line_based): Formerly window_scroll.
13177 (window_scroll): Call both.
13178
13179 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13180 (move_iterator_in_display_line_to): Ditto.
13181 (display_line): Ditto.
13182
13183 * minibuf.c (read_minibuf): Conditionally insert prompt into
13184 buffer instead of handling prompts specially. Change other
13185 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13186
13187 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13188 upper window. Optimize calls to xrealloc if same width.
13189
13190 * xdisp.c (redisplay_window): Don't use
13191 try_window_reusing_current_matrix if window scroll functions
13192 exist.
13193
13194 * dispextern.h (struct display_iterator): Member
13195 redisplay_end_trigger_p removed.
13196
13197 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13198 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13199
132001998-01-16 Gerd Moellmann <gerd@gnu.org>
13201
13202 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13203 nil. Optimize truncate-lines t and moving backward.
13204 (move_iterator_to_previous_visible_line_start): Contains the heart
13205 of the previous set_iterator_to_previous_visible_line_end. Don't
13206 reseat the iterator. Used by move_iterator_by_lines.
13207 (set_iterator_to_previous_visible_line_start): Call function
13208 above.
13209 (move_iterator_in_display_line_to): Check TO_POS before doing
13210 anything else. Otherwise to_pos == PT would move to x of PT+1.
13211
13212 * indent.c (Fvertical_motion): Use display_iterator.
13213
13214 * xdisp.c (move_iterator_by_lines): New function moving by screen
13215 lines.
13216 (redisplay_window): Use it.
13217 (move_iterator_to): Correct branch of to_vpos specified.
13218 (move_iterator_vertically_backward): Increment nlines after having
13219 backed up over some lines because the last line was not backed up
13220 over.
13221 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13222 calculate it->vpos and it->current_y relative to this row.
427ec082 13223 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13224 have a big effect and it is complex.
13225 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13226
132271998-01-15 Gerd Moellmann <gerd@gnu.org>
13228
13229 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13230 join nicely. Lines with widths > 2 don't join nicely under X.
13231 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13232 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13233 width 1; remove references to relief_gc_line_width.
13234 * xfns.c (x_make_gc): Ditto.
13235
13236 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13237 if relief changes.
13238 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13239 to get a relief because they can be negative.
13240
13241 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13242 positions are for the middle of lines under X.
13243
13244 * xdisp.c (try_window_id): Always search for the cursor by setting
13245 w->cursor.vpos = -1. Search in unchanged rows at the top and
13246 bottom if cursor not found in displayed lines.
427ec082 13247 (display_mode_line): First extend face, then set right shadow
26901792
DL
13248 flag. Otherwise the wrong glyph gets the right shadow.
13249
13250 * dispnew.c (direct_output_for_insert): Give up if line contains
13251 a tab. The number of spaces inserted for a tab changes if we
13252 insert glyphs in front of it.
13253
13254 * xterm.c (x_list_fonts): Changes undone because the Lisp
13255 implementation for make-face-smaller, make-face-larger, and
13256 make-face-fixed can do without them.
13257
13258 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13259 inserted.
13260
13261 * xdisp.c (try_window_id): First compute beg_unchanged, then
13262 compare with window start pos.
13263
13264 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13265 fixed-width font.
13266 (syms_of_xfns): defsubr for x-face-fixed-p.
13267
13268 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13269 enabled, don't do anything because this row will be newly drawn
13270 anyway and because we can additionally no longer determine the row
13271 height.
13272
13273 * xdisp.c (display_line): Bug fix cursor positioning.
13274
13275 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13276 removed. x-list-fonts.c is now obsolete.
13277 (Qfixed, Qvariable): Moved here from xfaces.c.
13278
132791998-01-14 Gerd Moellmann <gerd@gnu.org>
13280
13281 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13282 FETCH_BYTE for truncated lines.
13283 (display_line): Set cursor differently.
13284 (display_line): Fixed bug setting last_pos_on_this_line wrong
13285 for truncated lines.
13286
13287 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13288 redisplay.
13289
13290 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13291
13292 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13293 assertion that character dimensions are not zero.
13294
13295 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13296 input is blocked.
13297
13298 * xdisp.c (decode_mode_spec): Faster implementation of line number
13299 display.
13300
13301 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13302 bitmaps if bitmaps don't fill the entire area.
13303 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13304
427ec082 13305 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13306 pixel height of flags bitmaps.
13307
13308 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13309 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13310
13311 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13312 in pixels of a flags area of a frame.
13313 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13314 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13315 occupied by a flags area.
13316
133171998-01-13 Gerd Moellmann <gerd@gnu.org>
13318
13319 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13320 window_end_valid.
13321
13322 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13323 GLYPH_DEBUG != 0.
13324
13325 * xdisp.c (display_line): Correct wrong calculation of row->x for
13326 the case of nglyphs == 1.
13327 (hscroll_window_tree): Renamed from hscroll_windows.
13328 (hscroll_windows): New function calling hscroll_window_tree that
13329 clears desired matrices on a frame when hscroll has been changed.
13330 (redisplay_p): Global flag set during redisplay.
13331 (redisplay_internal): Set and clear redisplay_p.
13332
13333 * xfaces.c (min_char_bounds): Add assertion that width and height
13334 are not zero at the end. Initialize *height and *width to -1,
13335 instead of using BITS_PER_SHORT. If font has min_bounds.width
13336 zero, use its max_bounds.width.
13337
13338 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13339 width and height.
13340
133411998-01-12 Gerd Moellmann <gerd@acm.org>
13342
13343 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13344 changed. Don't clear desired matrices.
13345
13346 * xdisp.c (hscroll_windows): Compute pt after setting
13347 current_buffer.
13348 (redisplay_window): Don't do cursor movement based on current
13349 matrix if just_this_one_p is zero.
13350
13351 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13352 specifying that fixed-width, variable-width fonts or both
26901792
DL
13353 should be returned.
13354
13355 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13356 (syms_of_xfaces): Initialize them.
13357
13358 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13359 cached information.
13360
133611998-01-11 Gerd Moellmann <gerd@acm.org>
13362
13363 * xdisp.c (display_mode_line): Extend face to end of line.
13364
13365 * xdisp.c (echo_area_display): Don't call display_string with
13366 echo_area_glyphs_length == 0 which would mean infinite precision.
13367 (redisplay_internal): Adjust window_end_vpos if necessary.
13368
133691998-01-07 Gerd Moellmann <gerd@acm.org>
13370
13371 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13372
133731998-01-05 Gerd Moellmann <gerd@acm.org>
13374
13375 * xdisp.c (get_row_start_continuation_line_width): Removed.
13376 (init_iterator_to_row_start): Set it.current_x from row.
13377 (try_window_id): Set it.continuation_lines_width directly from
13378 row.
13379
13380 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13381 selected_window.
13382 (hscroll_windows): Center cursor in window.
13383 (hscroll_windows): Call move_iterator_in_display_line_to.
13384
133851998-01-04 Gerd Moellmann <gerd@acm.org>
13386
13387 * xdisp.c (hscroll_windows): Check hscroll < 0.
13388 (redisplay_window): Allow quick cursor movement if overlay arrow
13389 but frame uses window-based redisplay.
13390 (display_line): Take special case for nglyphs == 1 out of #if 0.
13391 (display_line): Set row->ends_at_zv_p after the loop displaying
13392 glyphs because ZV can be in truncated text.
13393 (hscroll_windows): Use init_iterator_to_row_start.
13394
13395 * dispnew.c (scrolling_window): Calculation of overlapping
13396 runs fixed.
13397 (row_equal_p): Compare continued_p and continuation_line_p.
13398
133991998-01-02 Gerd Moellmann <gerd@acm.org>
13400
13401 * xterm.c (x_get_mode_line_face_gc): Renamed from
13402 x_get_modeline_face_gc.
13403
13404 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13405 buffer position to look for text properties.
13406 (get_face_from_cursor_pos): Use it.
13407 (compute_face_at_iterator_position): Use it.
13408 (next_element_from_buffer): Use it.
13409
13410 * dispnew.c (scrolling_window): Decrement run's y-position
13411 when extending it backwards.
13412
13413 * xterm.c (do_line_dance): Don't ever copy more than window height.
13414
134151998-01-01 Gerd Moellmann <gerd@acm.org>
13416
13417 * xdisp.c (redisplay_window): Cursor motion in unchanged
13418 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13419 (init_iterator_to_next_row_start): Special handling of lines
13420 ending in middle of char removed.
13421 (hscroll_windows): Hscroll windows only if window_end_valid is not
13422 nil.
13423 (try_window_reusing_current_matrix): Call hscroll_windows.
13424 (init_iterator_to_row_start): Initialize iterator for display
13425 starting at a position given by a glyph_row->start.
13426 (redisplay_window): Don't use vmotion because it gives wrong
13427 results if lines are continued and variable width fonts are used.
13428
427ec082 13429 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13430 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13431 the middle of a character.
427ec082 13432 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13433 the middle of a character.
13434
13435 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13436 it.
13437 (next_element_from_display_vector): Use it->dpvec_index.
13438 (reseat_iterator): Reset it.
13439 (init_iterator): Reset it.
13440 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13441 it->pos.dpvec_index from a glyph_pos structure.
13442 (init_iterator_from_glyph_pos): Call the function above.
13443 (reseat_iterator_to_glyph_pos): Ditto.
13444
13445 * dispnew.c (direct_output_forward_char): Don't use this method at
13446 overlay boundaries or near invisible text.
13447 (direct_output_forward_char): Step through glyph row to find
13448 cursor position.
13449
427ec082 13450 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13451 frame font if line height differs from font height.
13452
13453 * xdisp.c (set_iterator_to_next): Renamed from
13454 move_iterator_forward to avoid confusion with other move_.*
13455 functions.
13456
13457 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13458
134591997-12-31 Gerd Moellmann <gerd@acm.org>
13460
13461 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13462 same naming convention as for other GC functions.
13463 (draw_glyphs): Don't fill background when drawing a cursor and
13464 font height is less than line height.
13465
134661997-12-30 Gerd Moellmann <gerd@acm.org>
13467
13468 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13469 init_iterator_.*.
13470
13471 * xdisp.c (move_iterator_forward): Restore it->len from
13472 it->dpvec_char_len if dpend reached.
13473 (get_next_display_element): Don't consume translated char
13474 prematurely.
13475 (display_line): Don't set this_.* variables if row is continued.
13476 (start_display): Move to start of continuation line if ending
13477 up at end of continued line.
13478
13479 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13480
13481 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13482 checking TO_X and continuation lines.
13483 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13484 of a continued line, don't consider this line as unchanged because
13485 it may no longer be continued.
13486
134871997-12-29 Gerd Moellmann <gerd@acm.org>
13488
13489 * xdisp.c (try_window_id): Catch the case that moving over
13490 continuation lines moves first_unchanged_at_end_row to a row not
13491 displaying text.
13492
13493 * dispextern.h (struct glyph_row): New member
13494 continuation_lines_width. Member continuation_line_p removed.
427ec082 13495 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13496 continuation line.
13497 * xdisp.c (display_line): Set row->continuation_lines_width.
13498 (get_row_start_continuation_line_width): Set continuation lines
13499 width of iterator from continuation lines width of glyph row.
13500 (get_row_start_continuation_line_width): Make it inline.
13501 (set_window_cursor): Make it inline.
13502 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13503 (Fdump_redisplay_state): Ditto.
427ec082 13504
26901792
DL
13505 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13506 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13507
13508 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13509 after determining the continuation lines width for
13510 last_unchanged_at_beg_row.
13511
13512 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13513
13514 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13515 which support faces.
13516 (init_display_iterator): Ditto.
13517 (move_iterator_via_matrix): Skip over truncation glyph at the row
13518 start on terminal frames.
13519 (hscroll_windows): Choose hscroll margin differently for window
13520 system and terminal frames.
13521
135221997-12-28 Gerd Moellmann <gerd@acm.org>
13523
13524 * xdisp.c (hscroll_windows): Change hscroll of windows.
13525 (redisplay_internal): Call it.
13526
427ec082 13527 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13528 doesn't fit completely on the line.
13529 (direct_output_forward_char): Give up for non-ASCII chars.
13530 (direct_output_forward_char): Set redisplay_performed_directly_p.
13531
13532 * dispextern.h (struct display_iterator): Make first_visible_x
13533 and last_visible_x ints; this is for very long truncated lines.
13534
13535 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13536 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13537 positioning problems with the mouse.
13538 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13539 >= it->last_visible_x instead of >.
13540 (display_line): Ditto.
13541
13542 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13543 loaded.
13544 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13545 non-ASCII chars differently. Always produce 1 glyph for composite
13546 chars. If font not found, use CHARSET_WIDTH to calculate width of
13547 non-ASCII chars.
13548 (x_get_char_font_and_encoding): Return null if font could not be
13549 loaded. Reset font to null if fontset could not be loaded.
13550 (draw_glyphs): Fill background if font not found.
13551 (draw_glyphs): Unused parameter just_foreground_p removed. New
13552 parameter composite_glyph.
13553 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13554 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13555 draw_glyphs when calling it recursively for composite chars.
13556
135571997-12-27 Gerd Moellmann <gerd@acm.org>
13558
13559 * xterm.c: Patches from handa.etl.go.jp integrated.
13560 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13561 find a font_info.
13562
13563 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13564 for nglyphs == 1.
13565
13566 * xterm.c (x_draw_relief): Draw relief lines.
13567 (draw_glyphs): Call x_draw_relief.
13568
135691997-12-26 Gerd Moellmann <gerd@acm.org>
13570
13571 * xfns.c (x_make_gc): Create relief GC's.
13572
13573 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13574 (setup_frame_gcs): Initialize them.
13575 (EmacsFrameDestroy): Free them.
13576
427ec082 13577 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13578 last_unchanged_at_beg_row is continued or a continuation line.
13579 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13580 (redisplay_window): Case point has changed, and it has not
26901792
DL
13581 moved off the frame. Don't increment row if PT equals the row
13582 end if the row ends in ZV.
13583
13584 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13585 (expose_line): Call it.
13586 (x_after_update_window_line): Call it.
13587
13588 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13589 reached.
13590
13591 * xterm.c (x_after_update_window_line): Draw continuation line
13592 bitmap.
13593
13594 * dispnew.c (update_window_line): Call
13595 after_update_window_line_hook when row's continuation_line_p
13596 changes.
13597
13598 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13599
13600 * xdisp.c (display_line): Handle continued lines on window system
13601 frames differently since continuation glyphs are not displayed.
13602 (move_iterator_in_display_line_to): Ditto.
13603 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13604 into account.
13605 (move_iterator_vertically_backward): Handle dy == 0 specially.
13606 (redisplay_window): Catch the case of small windows when
13607 recentering where moving back window_height/2 moves us beyond the
13608 top of the display area of the window.
13609
136101997-12-18 Gerd Moellmann <gerd@acm.org>
13611
13612 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13613 dvpos removed.
13614
136151997-12-17 Gerd Moellmann <gerd@acm.org>
13616
13617 * dispnew.c (direct_output_forward_char): Correct new cursor
13618 x-position.
13619
136201997-12-16 Gerd Moellmann <gerd@acm.org>
13621
13622 * xterm.c (x_after_update_window_line): Remove unused parameters.
13623 (XTclear_end_of_line): Clear to display_height instead of
13624 display_height - 1.
13625
13626 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13627 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13628 rows have different y-positions, or different height.
13629
136301997-12-14 Gerd Moellmann <gerd@acm.org>
13631
13632 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13633
13634 * window.c (coordinates_in_window): Call frame_mode_line_height.
13635
13636 * xterm.c (x_draw_3d_border): Removed.
13637 (x_draw_row_borders): Removed.
13638
13639 * dispnew.c (update_window): References to
13640 FRAME_MODE_LINE_BORDER_WIDTH removed.
13641
13642 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13643 (FRAME_MODE_LINE_HEIGHT): Removed.
13644
13645 * xterm.c (draw_3d_borders_p): Removed.
13646 (draw_glyphs): Ditto.
13647 (XTwrite_glyphs): Ditto.
13648 (expose_line): Ditto.
13649 (x_initialize): Ditto.
13650
13651 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13652 frame_mode_line_height.
13653
13654 * term.c (frame_mode_line_height): Get the pixel height of a
13655 frame's mode line.
13656 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13657 versions.
13658
26901792
DL
13659 * xterm.c (x_initialize): Set the hook.
13660 (XTframe_mode_line_height): X version of frame_mode_line_height.
13661
13662 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13663 output buffer.
13664 (display_string): Don't add right truncation mark if line ends in
13665 padding space.
13666 (init_display_iterator): If called with modeline_p non-zero, set
13667 face_id to 1, which is the id of the mode line face.
13668
13669 * keyboard.c (cmd_error_internal): Write to stderr if selected
13670 frame is Vterminal_frame under X. This is the case when a font
13671 cannot be loaded when Emacs starts. Replace test for
13672 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13673
13674 * xfaces.c (compute_overlay_string_char_face): Compute the
13675 face of a character in an overlay string.
13676 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13677 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13678 Use it.
13679
13680 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13681 set_iterator_to_next_overlay.
13682 (struct overlay_entry): Structure used to sort overlay strings.
13683 (compare_overlay_entries): Compare overlay strings.
13684 (load_iterator_with_overlay_strings): Load a chunk of overlay
13685 strings.
13686 (get_overlay_strings_at_iterator_position): Call it.
13687 (next_element_from_overlay_string): Set it->object to the overlay
13688 string. Prepare for setting it->position to a string position.
13689 (get_overlay_strings_at_iterator_position): Renamed from
13690 get_overlays_at_iterator_position.
13691 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13692 chunks of overlay strings.
13693 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13694
13695 * dispextern.h (struct display_iterator): New vector
13696 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13697 overlays and n_overlays.
13698 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13699 renamed to string_index.
13700
137011997-12-13 Gerd Moellmann <gerd@acm.org>
13702
13703 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13704 when allocating a vector.
13705 (release_iterator): Removed.
13706 (restore_iterator): Removed.
13707 (copy_iterator): Removed.
13708
137091997-12-08 Gerd Moellmann <gerd@acm.org>
13710
13711 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13712 clearing a mini-buffer window that is not active.
13713 (redisplay_window): Do not scroll one line too early when last
13714 window line is completely visible.
13715 (init_display_iterator): Leave some room to display the cursor
13716 after the last glyph on a continued line.
13717
13718 * xterm.h (struct x_output): trunc_area_extra renamed
13719 flags_areas_extra.
13720 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13721
13722 * dispnew.c (update_window_line): Call
13723 after_update_window_line_hook when current row is not enabled
13724 which is the case after a frame has been cleared.
13725
13726 * xdisp.c (display_mode_line): Reset row flags for truncation
13727 on right side for the mode line.
13728
13729 * xterm.c (bitmap_type): Type of bitmap to display in flags
13730 area of frame.
13731 (x_after_update_window_line): Use the enum.
13732 (draw_bitmap): Ditto.
13733
137341997-12-07 Gerd Moellmann <gerd@acm.org>
13735
13736 * xterm.c (x_clip_to_row): Include width of both flag areas.
13737 (do_line_dance): Ditto.
13738 (expose_window_tree): Ditto.
13739 * dispnew.c (update_window_line): Call
13740 after_update_window_line_hook for right truncation and continuation.
13741 * xdisp.c (init_display_iterator): Don't subtract width of
13742 continuation glyphs for window-based redisplay.
13743 * xterm.c (draw_bitmap): Draw continuation bitmap.
13744 * widget.c (set_frame_size): Double trunc_area_extra.
13745 (EmacsFrameSetCharSize): Ditto.
13746 * xfns.c (x_figure_window_size): Ditto.
13747 * xterm.c (x_set_window_size): Ditto.
13748 (x_after_update_window_line): Draw right truncation mark.
13749
13750 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13751
13752 * window.h: Include blocker around dispextern.h removed.
13753
13754 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13755
26901792
DL
13756 * dispextern.h (struct display_iterator): Former ovstr made a
13757 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13758 next_ovstr_invisble_check_pos; check at these positions for
13759 face changes and changes in invisible text property.
13760 (struct glyph_pos): Former ovlen now overlay_string_index.
13761
13762 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13763 overlay_string.
13764 (set_iterator_to_next_overlay_string): Set overlay_string and
13765 pos.overlay_string_index.
13766 (get_overlays_at_iterator_position): Use overlay_string and
13767 overlay_string_index.
13768 (next_element_from_overlay_string): Use overlay_string and
13769 overlay_string_index.
13770 (move_iterator_forward): Increment overlay_string_index.
13771 (try_window_id): Use overlay_string and overlay_string_index.
13772 (move_iterator_forward): At end of dpvec, maybe use method
13773 next_element_from_overlay_string for the case a character from an
13774 overlay string was translated via a display table.
13775 (reseat_iterator_to_string): Take a Lisp string.
13776 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13777 (compute_face_at_iterator_overlay_string_position): Compute face
13778 based on text properties for an overlay string.
13779 (next_element_from_overlay_string): Check invisible and face text
13780 properties.
178c5d9c 13781
26901792
DL
13782 (set_iterator_to_next_overlay_string): Restore face id before
13783 overlay strings when no more overlay strings are found to return.
13784 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 13785
bb6677a8
GM
13786 A line in the following paragraph was garbled for an unknown
13787 reason. It couldn't be fully reconstructed.
178c5d9c 13788
bb6677a8 13789 (compute_base_face): Made public.
26901792
DL
13790 (merge_face_list): Ditto.
13791 (intern_computed_face): Ditto.
13792
427ec082 13793 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13794 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13795 of row is > instead of >= last_y.
13796
13797 * buffer.h (overlays_at): Function prototype.
13798
13799 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13800 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13801
427ec082 13802 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13803 memory of a display_iterator.
13804 (copy_iterator): Copy an iterator.
13805 (restore_iterator): Restore an iterator from a backup copy.
13806 (global): Use the functions above.
13807 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13808 * dispnew.c (direct_output_for_insert): Call release_iterator.
13809
13810 * dispextern.h (struct display_iterator): Allocate overlays
13811 vector dynamically.
13812
138131997-12-06 Gerd Moellmann <gerd@acm.org>
13814
13815 * Makefile.in (window.o): Depends on dispextern.h.
13816
13817 * buffer.c (overlays_at): Make it work when extending vectors
13818 and an initial vector of zero size.
13819
13820 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13821 from set_cursor_to_previous_visible_line_end.
13822 (set_iterator_to_next_visible_line_start): Renamed from
13823 set_cursor_to_next_visible_line_end.
13824 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13825 (compute_face_at_iterator_position): Renamed from
13826 compute_cursor_face.
13827 (set_iterator_to_next_overlay_string): Renamed from
13828 cursor_to_next_overlay_string.
13829 (get_overlays_at_iterator_position): Renamed from
13830 get_overlays_for_cursor.
13831 (reseat_iterator): Renamed from reseat_cursor.
13832 (setup_iterator_overlays_from_glyph_pos): Renamed from
13833 setup_overlays_from_pos.
13834 (init_string_iterator): Renamed from init_string_cursor.
13835 (get_next_display_element): Renamed from next_display_element.
13836 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13837 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13838 dynamically.
13839
13840 * xdisp.c: display_cursor renamed display_iterator.
13841 * dispextern.h: Ditto.
13842 * dispnew.c: Ditto.
13843
138441997-12-01 Gerd Moellmann <gerd@acm.org>
13845
13846 * window.c (mark_window_cursors_off): Function comment added.
13847 (window_topmost_p, window_rightmost_p): Removed because not used.
13848
138491997-11-30 Gerd Moellmann <gerd@acm.org>
13850
13851 * emacs.c (main): Function prototypes removed in profiling code.
13852 Use safe_bcopy as start of text.
13853
13854 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13855 mirrored_make_current -> make_current.
13856
13857 * xdisp.c: (store_frame_title_char): New function to store a
13858 single character for the frame title with re-allocation of
13859 frame_title_buf.
13860 (init_xdisp): Intialize frame_title_.* variables to null.
13861
13862 * dispnew.c (quit_error_check): Removed.
13863
13864 * eval.c (Fsignal): Call to quit_error_check removed.
13865 * keyboard.c (quit_throw_to_read_char): Ditto.
13866
138671997-11-23 Gerd Moellmann <gerd@acm.org>
13868
13869 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13870 to mean a zero relief.
13871
26901792
DL
138721997-11-19 Gerd Moellmann <gerd@acm.org>
13873
13874 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13875 unconditionally.
13876 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13877 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13878 (check_glyph_memory): Define function body unconditionally.
13879
138801997-11-17 Gerd Moellmann <gerd@acm.org>
13881
13882 * dispnew.c (scrolling_window): Alternative version of this
13883 function removed.
13884
138851997-11-16 Gerd Moellmann <gerd@acm.org>
13886
13887 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13888 of height CANON_Y_UNIT.
13889 * dispextern.h: Prototype for that function.
427ec082 13890 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13891 produce empty rows. Use make_empty_enabled_row instead.
13892
13893 * dispnew.c (scrolling_window): New version using diff-like
13894 algorithm activated.
427ec082 13895
26901792
DL
138961997-11-15 Gerd Moellmann <gerd@acm.org>
13897
13898 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13899 (clear_desired_matrices): Ditto.
13900 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13901 for menu_bar_window.
13902
13903 * alloc.c (mark_object): Mark menu_bar_window of frames.
13904
13905 * xterm.c (XTupdate_window_end): Don't display cursor if
13906 pseudo_window_p.
13907
13908 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13909 set mini_p.
13910 (update_window): Don't set cursor if pseudo_window_p.
13911
13912 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13913
13914 * window.h (struct window): New flag pseudo_window_p set to
13915 1 for windows that aren't really part of the window tree, like
13916 menu_bar_window's of frames.
13917 * window.c (make_window): Initialize it.
13918 (replace_window): Ditto.
13919 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13920
13921 * frame.c (make_frame): Initialize menu_bar_window to nil.
13922
13923 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13924 FACE_RELIEF
13925
13926 * xfaces.c (copy_face): shadow_thickness -> relief.
13927 (face_eql): Ditto.
13928 (merge_faces): Ditto.
13929 (compute_base_face): Ditto.
13930 (Fset_face_attribute_internal): Ditto.
13931 * dispextern.h (struct face): Ditto.
13932
13933 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13934 it is non-nil.
13935
13936 * xdisp.c (display_menu_bar): Display the menu bar in
13937 f->menu_bar_window if appropriate.
13938 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13939
13940 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13941 dummy window and window matrices for f->menu_bar_window.
13942 (free_glyphs): Free the dummy window and its glyph matrices.
13943
13944 * frame.h (struct frame): New member menu_bar_window.
13945
139461997-11-09 Gerd Moellmann <gerd@acm.org>
13947
13948 * dispnew.c (scrolling_window): New version with diff-like
13949 algorithm.
13950
13951 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13952 old_start always start displaying at start of
13953 first_row_to_display. The previous scheme failed if the last row
13954 was fully visible.
13955
13956 * dispnew.c (update_window): Remove cost calculations. Remove
13957 redundant preempt_count calculations.
13958
13959 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13960 differently.
13961
13962 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13963
427ec082 13964 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13965 WITH_MARGINAL_AREAS is defined.
13966
427ec082 13967 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13968 removed.
13969
13970 * dispnew.c (scrolling): Call line_hash_code because hash values
13971 are not set in the frame matrix.
13972
13973 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13974 (redisplay_window): Check line_ins_del_ok before calling
13975 try_window_id.
13976 (try_window_reusing_current_matrix): Give up for terminal frames
13977 if window is not full width or we cannot insert/delete lines.
13978 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13979 frames.
13980
13981 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13982 Lisp_Object to mark_object.
13983
13984 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13985 window rows have the same glyph pointers.
13986 (try_window_id): Call it.
13987
13988 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13989 a glyph matrix.
13990 (mark_object): Call it.
13991
13992 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13993 truncations.
13994 (display_line): Ditto.
13995 (display_line): Ditto for DISP_CONTINUATION.
13996 (display_line): Truncation on right: test current_x >
13997 last_visible_x.
13998 (skip_in_display_line_to): Ditto.
13999 (skip_via_matrix): Stop skipping in glyph row at face extending
14000 glyphs or at padding spaces.
14001
14002 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14003
14004 * xdisp.c (display_line): Use glyph->object == 0 for padding
14005 glyphs.
14006 (redisplay_window): Don't let cursor move over padding
14007 spaces.
14008
14009 * dispextern.h (struct glyph): Fix comment for object.
14010
140111997-11-08 Gerd Moellmann <gerd@acm.org>
14012
14013 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14014 has a mode line.
14015 * xdisp.c (redisplay_window): Use it.
14016 (display_mode_line): Check that window wants mode line.
14017
140181997-11-03 Gerd Moellmann <gerd@acm.org>
14019
14020 * xdisp.c (display_menu_bar): Enable menu bar rows.
14021
14022 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14023 (x_erase_phys_cursor): Ditto.
14024 (x_draw_bar_cursor): Ditto.
14025
140261997-11-02 Gerd Moellmann <gerd@acm.org>
14027
14028 * dispnew.c (update_marginal_area): Update a marginal area.
14029 (update_text_area): Update text area.
14030 (update_window_line): Call both.
14031
14032 * xterm.c (XTclear_end_of_line): Translate coordinates area
14033 dependent.
14034
14035 * dispnew.c (updated_area): Row area being updated in
14036 update_window_line.
14037 (update_window_line): Set it.
14038 (update_marginal_area): Clear to end of line if not in text area.
14039
14040 * window.c (Fset_window_margins): Increment
14041 windows_or_buffer_changed. Adjust glyphs.
14042
14043 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14044 area X coordinates to frame coordinates.
427ec082 14045 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14046 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14047 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14048
14049 * xterm.c (draw_glyphs): Use text area width as display width.
14050
14051 * xdisp.c (init_display_info): Subtract widths of marginal areas
14052 from last_visible_x.
14053
14054 * alloc.c (mark_object): Mark objects in glyphs only if they are
14055 overlays. Mark only if current_matrix != 0. Activate the code.
14056
14057 * window.c (Fset_window_margins): Set margins.
14058 (Fwindow_margins): Return margin area widths.
14059 (syms_of_window): Add defsubr's.
14060
14061 * window.h (struct window): left_margin_width, right_margin_width.
14062
14063 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14064 and cols.
14065
14066 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14067 truncation/overlay arrow area.
14068 (struct frame): trunc_area_pixel_width, and _cols.
14069
14070 * window.c (Fsplit_window): Use it.
14071
14072 * window.c (Fsplit_window): Set cursor vpos to -1 after
14073 splitting.
14074 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14075 split windows.
14076
14077 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14078 of bounds cursor positions.
26901792
DL
14079
14080 * xdisp.c (redisplay_internal): Check that after cursor motion
14081 within line, PT is on same line.
14082
14083 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14084 FRAME_TRUNC_WIDTH.
14085
14086 * xterm.h (struct x_output): trunc_area_extra.
14087 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14088 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14089 * widget.c (set_frame_size): Set it.
14090 (EmacsFrameSetCharSize): Ditto.
14091 * xfns.c (x_figure_window_size): Ditto.
14092 * xterm.c (x_set_window_size): Ditto.
14093
14094 * dispnew.c (check_matrix_invariants): First try to check window
14095 ends (in #if 0).
14096
14097 * xdisp.c (try_window_reusing_current_matrix): Try window
14098 redisplay with different window start.
14099
141001997-11-01 Gerd Moellmann <gerd@acm.org>
14101
14102 * window.c (make_window): Set window_end_pos/vpos.
14103 (Fsplit_window): Zero last_cursor, window_end_valid.
14104 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14105
14106 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14107
141081997-10-31 Gerd Moellmann <gerd@acm.org>
14109
14110 * window.c (make_window): Initialize last_cursor.
14111 (replace_window): Ditto.
14112
141131997-10-29 Gerd Moellmann <gerd@acm.org>
14114
14115 * window.h: New member last_cursor.
14116 * dispnew.c (direct_output_for_insert): Set it.
14117 (direct_output_forward_char): Ditto.
14118 * xdisp.c (redisplay_internal): Ditto.
14119
141201997-10-28 Gerd Moellmann <gerd@acm.org>
14121
14122 * xdisp.c (redisplay_internal): Optimization 1 change partially
14123 reverted. Check this again later.
14124 (skip_via_matrix): Remove redundent test for
427ec082 14125 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14126
141271997-10-27 Gerd Moellmann <gerd@acm.org>
14128
14129 * dispnew.c (update_window_line): Call
14130 after_update_window_line_hook only for interesting constellations.
14131 (free_glyph_matrix): Fix memory leak.
14132
14133 * window.h: Include blocker WINDOW_H_INCLUDED, include
14134 dispextern.h.
14135 (struct window): phys_cursor_glyph as struct glyph. * window.c
14136 (make_window): Initialize it.
427ec082 14137 (replace_window): Ditto.
26901792
DL
14138 * dispnew.c (free_window_matrices): Remove freeing of
14139 phys_cursor_glyph.
14140 (check_matrix_invariants): Renamed from check_current_matrix_...
14141 * xterm.c: All references to phys_cursor_glyph changed.
14142
14143 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14144
14145 * xfaces.c: Comment update.
14146
14147 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14148 pointer. Remove phys_cursor_ascent, descent, etc.
14149 * dispnew.c (free_window_matrices): Free it.
14150 * window.c (make_window): Allocate it.
14151 (replace_window): Ditto.
14152 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14153 (x_display_and_set_cursor): Fill it.
14154 (x_phys_cursor_in_rect_p): Use it.
14155 (x_draw_hollow_cursor): Ditto.
14156 (x_draw_bar_cursor): Ditto.
14157 (x_erase_phys_cursor): Ditto.
14158
14159 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14160
14161 * xterm.c (XTget_display_info): Handle 3D facess.
14162 (draw_glyphs): Ditto.
14163
14164 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14165
14166 * xfaces.c (Fset_face_attribute_internal): New face attribute
14167 shadow-thickness.
14168 (copy_face): Handle shadow_thickness.
14169 (face_eql): Ditto.
14170 (merge_faces): Ditto.
14171 (compute_base_face): Ditto.
14172
14173 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14174 (struct display_info): Ditto.
14175 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14176 * xdisp.c (compute_cursor_face): Set it.
14177 (advance_display_cursor): Clear it.
14178
14179 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14180 (init_string_cursor): Init face_id to zero.
14181
14182 * dispextern.h (struct face): New member shadow_thickness.
14183
427ec082 14184 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14185 search to 100.
14186
14187 * dispnew.c (update_window_line): Try to resynch with current line
14188 to prevent mode line flickering.
14189
141901997-10-26 Gerd Moellmann <gerd@acm.org>
14191
427ec082 14192 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14193 on cursor_in_echo_area >= 0.
14194
14195 * xdisp.c (echo_area_display): Clear desired matrix before
14196 displaying into it.
14197 (display_menu_bar): Clear glyph row instead of hoping it is not
14198 enabled. This is safer.
14199
14200 * dispnew.c (check_current_matrix_invariants): Check only
14201 visible rows.
14202
14203 * xdisp.c (try_window_id): Handle window end setting in case of
14204 display to end of window, but only non-text lines displayed.
14205
14206 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14207 (check_current_matrix_invariants): Check used counts.
14208
14209 * Revisiob v114.
14210
14211 * dispnew.c (scrolling): Use hash codes from rows.
14212
14213 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14214
14215 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14216
142171997-10-25 Gerd Moellmann <gerd@acm.org>
14218
14219 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14220 * dispnew.c (update_window): Use it.
14221 (clear_glyph_matrix): Clear it.
14222 * xdisp.c (try_window_id): Set it.
14223
14224 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14225
14226 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14227
14228 * dispextern.h: More comments etc.
14229
142301997-10-24 Gerd Moellmann <gerd@acm.org>
14231
14232 * dispnew.c (set_window_cursor_after_update): Set cursor
14233 for cursor_in_echo_area == 0 to (0, 0).
14234
14235 * dispextern.h (struct glyph_row): New flags continuation_line_p
14236 and displays_text_p.
14237 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14238 * xdisp.c (display_line): Set them.
14239 (try_window_id): Move to start of continuation line to find out
14240 continuation_line_width.
14241 (first_unchanged_current_row): Don't retract row if continued,
14242 truncated etc.
14243
14244 * xterm.c: Map X coordinates.
14245
142461997-10-23 Gerd Moellmann <gerd@acm.org>
14247
14248 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14249 left text.
14250
14251 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14252
14253 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14254
f28eba7b 14255 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14256
14257 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14258
14259 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14260 Set this to functions to be called before/after window updates.
14261 (direct_output_for_insert): Call them.
14262 (update_window): Ditto.
14263 (update_frame): Call update_begin/ update_end for windows.
14264
14265 * xterm.c (XTupdate_window_begin): Called before window updates.
14266 (XTupdate_end): Called after window updates.
14267 (x_initialize): Set hooks to above.
14268
14269 * xdisp.c (init_display_info): Initialize c and len of
14270 display_info.
14271
14272 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14273 fonts more than once.
14274
142751997-10-22 Gerd Moellmann <gerd@acm.org>
14276
14277 * xdisp.c (display_line): Handle most common case of current_x <
14278 last_visible_x separately.
14279
14280 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14281
14282 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14283 so that face extending space doesn't compare equal to normal space
14284 with same face.
14285
14286 * xdisp.c (display_line): Make sure we have a position for
14287 a line end in an otherwise blank line if face is extended.
14288
14289 * dispnew.c (direct_output_for_insert): Increment row end position.
14290
427ec082 14291 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14292 window_end_pos.
14293
14294 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14295
14296 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14297
14298 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14299 start and end positions in rows.
14300 (increment_glyph_row_buffer_positions): Stop adjusting at
14301 glyphs with positions <= 0.
14302
14303 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14304 position including position in overlay.
26901792
DL
14305 (struct glyph_row): Use it for start and end positions.
14306 (struct display_cursor): Use it.
14307 * xdisp.c: Use it.
14308 (display_line): Set row start and end positions.
14309
14310 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14311 assignment.
14312
143131997-10-21 Gerd Moellmann <gerd@acm.org>
14314
14315 * dispnew.c (update_window): Add scrolling_window again. It's
14316 necessary for scroll_step != 0.
14317
14318 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14319 scrolling.
14320
14321 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14322
14323 * xterm.c (XTupdate_end): Flush only for messages.
14324
14325 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14326 first_unchanged_row.
14327
14328 * xterm.c (XTupdate_end): Flush if miniwindow.
14329
14330 * dispnew.c (matrix_row_last_pos): New function.
14331 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14332 Large comment moved to xdisp.c.
26901792
DL
14333
14334 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14335 (skip_via_matrix): Check window_end_valid instead of
14336 display_completed.
14337
14338 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14339 (update_window): scrolling_window commented out. It has negative
14340 effect most of the time.
14341
14342 * xdisp.c (try_window_id): Correct parameters to
14343 scroll_glyph_matrix_range.
14344
427ec082 14345 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14346
14347 * window.h: Comments for window_end_pos/vpos.
14348
f28eba7b 14349 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14350 of the window in which we are skipping.
14351
14352 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14353
14354 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14355 reached.
14356
143571997-10-20 Gerd Moellmann <gerd@acm.org>
14358
14359 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14360 a face extending glyph.
14361
427ec082 14362 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14363 (set_cursor_from_row): Set cursor position from a glyph row.
14364
14365 * dispnew.c (update_window_line): Write entire line if hash
14366 codes of lines differ.
14367
14368 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14369 if glyph row has an infinite width glyph at its end.
14370
14371 * xdisp.c (last_unchanged_current_row): Respect partially visible
14372 lines when looking for the last row displaying text.
14373 (try_window_id): Handle partially visible lines better.
14374
143751997-10-19 Gerd Moellmann <gerd@acm.org>
14376
14377 * dispnew.c (update_window): Remove unused variable.
14378 (update_window_line): Simplified.
14379
14380 * xterm.c (x_get_char_font_and_encoding): Handle most common
14381 case at the beginning.
14382
14383 * xdisp.c (advance_display_cursor): Dispatch on method and
14384 order if statements by expected call frequency. Fixed unclosed
14385 comment.
14386
14387 * xdisp.c (try_window_id): New implementation.
14388
14389 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14390 rows displaying a line end, only.
14391
143921997-10-18 Gerd Moellmann <gerd@acm.org>
14393
14394 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14395
143961997-10-14 Gerd Moellmann <gerd@acm.org>
14397
14398 * xdisp.c (display_line): Mark empty lines not corresponding to
14399 text with position -1.
14400
14401 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14402 not within window matrix bounds.
14403
14404 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14405 (struct display_info): NGLYPHS_TO_IGNORE removed.
14406 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14407 * term.c: Ditto.
14408 * xterm.c: Ditto.
14409
14410 * xdisp.c (init_display_cursor): Set it.
14411 (display_line): Use it to set W->REGION_SHOWING.
14412
14413 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14414
14415 * region-cache.h: functino prototypes with PROTO.
14416
14417 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14418
14419 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14420 a position.
14421
427ec082 14422 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14423 rectangle based on minimum character bounds.
14424
f28eba7b 14425 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14426 glyph position calculations.
14427 (make_lispy_movement): Use buffer_posn_from_coords and window
14428 relative coordinates.
14429
14430 * xterm.c (construct_mouse_click): Remove #if 0 case.
14431
14432 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14433 given row.
14434
427ec082
SS
14435 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14436 date.
26901792
DL
14437 (skip_to): Use it.
14438 (redisplay_window): Remove code skipping using current matrix.
14439
144401997-10-13 Gerd Moellmann <gerd@acm.org>
14441
14442 * xdisp.c (redisplay_window): Use available current matrix to
14443 skip faster when only point is moved withing the window.
14444
427ec082 14445 * intervals.c: Include stdio.h.
26901792
DL
14446 (find_interval): Trace to stderr to catch some nasty error
14447 that did not yet occur again with tracing.
14448 (set_point): Ditto.
14449
14450 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14451 cursor positioning on partially visible lines.
14452 (set_window_cursor_after_update): Ditto.
14453
f28eba7b 14454 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14455
14456 * window.h (struct window): start_y removed.
14457
14458 * window.c (make_window): start_y removed.
14459 (replace_window): Ditto.
14460
427ec082 14461 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14462 descent values of the last line processed by skip_to.
14463 (redisplay_window): Use them.
14464 (skip_to): Set them.
14465
14466 * dispextern.h (struct display_cursor): New member METHOD.
14467
14468 * xdisp.c: Use function member METHOD.
14469
14470 * xdisp.c (set_next_stop_pos): Determine next position at which to
14471 check for face properties, invisible text properties, and overlays.
14472 (compute_cursor_face): Use it.
14473 (get_overlays_for_cursor): Ditto.
14474 (reseat_cursor): Ditto.
14475 (next_display_element): Ditto.
14476
14477Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14478
14479 * termhooks.h: Some hooks with prototypes.
14480
14481 * term.c: Some hooks with function prototypes.
427ec082 14482
26901792
DL
14483 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14484 computing face if possible.
14485
14486 * xdisp.c (next_display_element): Use face from glyph from display
14487 table only if != 0.
14488
14489 * emacs.c: FreeBSD headers for profiling removed.
14490
427ec082
SS
14491 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14492 display cursor, use DEC_POS instread.
26901792
DL
14493
14494 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14495 all fonts are in the font table.
26901792
DL
14496 (unload_font): Don't XFreeFont.
14497
14498 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14499 row height.
14500
14501 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14502 (x_erase_phys_cursor): Clear only visible part of row.
14503 (x_draw_bar_cursor): Set clipping.
14504 (x_draw_hollow_cursor): Ditto.
14505 (x_display_and_set_cursor): Remove clipping.
14506 (expose_window_tree): Take trunc border into account.
14507 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14508 (expose_window): Use it.
14509
14510 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14511 current_x already beyond max_x.
26901792
DL
14512 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14513 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14514 last_visible_x.
26901792
DL
14515
14516 * scroll.c (scrolling_window_1): Removed.
14517
14518 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14519 based on redisplay method used.
14520 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14521 based redisplay.
14522 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14523 window based redisplay.
14524
14525 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14526 on data structures.
14527
14528 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14529 Handle own storage for purely window based redisplay.
14530 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14531 allocate_matrices.
26901792
DL
14532 (allocate_matrices_for_window_redisplay): Ditto.
14533
14534 * dispextern.h (struct glyph_matrix): window_top_y,
14535 window_height.
14536
14537 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14538 and optimize some common cases of window changes.
14539
14540 * emacs.c (main): Remove own profiling code because 0.95 now
14541 has it in.
14542
14543Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14544
d7d0dac0 14545 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
14546 (expose_window): Draw vertical border.
14547 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14548 don't do anything.
14549
14550 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14551 for non full width windows only if not window redisplay.
14552
14553 * dispnew.c (update_window_tree): Or paused_p return of called
14554 functions.
14555
14556 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14557 of window.
14558
14559 * window.c (Fset_window_configuration): adjust_glyphs being
14560 called twice.
14561 (Fset_window_configuration): Set frame garbaged if not all
14562 leaf windows reused.
14563
145641997-08-21 Gerd Moellmann <gerd@acm.org>
14565
14566 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14567 that rows should really be cleared. Used for current matrices.
14568
d7d0dac0
SM
14569 * dispnew.c (scrolling_window): Bug fix.
14570 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
14571
14572 * dispextern.h (struct run): Remove current_vpos.
14573
14574 * xterm.c (do_line_dance): Only one parameter.
14575
f28eba7b 14576 * xdisp.c (display_line): Set continued_p.
26901792
DL
14577
14578 * dispextern.h (struct glyph_row): New flag continued_p.
14579 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14580 (struct glyph_row):
26901792
DL
14581
14582Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14583
14584 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14585 when calling skip_to for continued lines.
14586
14587 * dispnew.c (change_frame_size_1): Set frame garbaged.
14588
14589 * xterm.c (expose_window): Check enabled_p of rows.
14590
14591 * xdisp.c (redisplay_internal): Compare line heights before and
14592 now for redisplay optimization 2 (hit).
14593 (display_line): Set this_line_pixel_height.
14594
14595 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14596 value.
14597 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14598 (do_line_dance): Simplified and pixel corrected.
14599
14600 * dispnew.c (scrolling_window): Simplified.
14601
14602 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14603
14604 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14605 to mode line row->x.
14606
14607Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14608
14609 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14610 override font of face.
14611 (draw_glyphs): Correct return value.
14612 (XTclear_end_of_line): Compare differently with output cursor
14613 position.
14614 (x_draw_hollow_cursor): 2 parameters, window and row.
14615
14616 * dispnew.c (update_window_line): If rows have different height
14617 or y, write entire line.
14618
f28eba7b 14619 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14620 of info struct.
14621
427ec082 14622 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14623 frame_update_line_height.
14624 (merge_faces): Don't use default font if new font has different
14625 size.
14626
14627Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14628
14629 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 14630 unknown. Some fonts have min_width zero.
26901792 14631 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 14632 line if face is merely extended to that point.
26901792 14633 (draw_glyphs): Don't assume background is filled if
d7d0dac0 14634 just_foreground_p but extending to end of line.
26901792
DL
14635
14636 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14637 for partially visible last lines.
14638 (x_clip_to_row): Ditto.
14639 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14640 display_height since line_height is really a line distance.
14641 (x_display_and_set_cursor): If cursor on padding glyph, use
14642 min_bounds pixel width.
14643
14644Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14645
14646 * xterm.c (x_clip_to_row): Height value was 1 too large.
14647 (XTclear_end_of_line): Clip to display area.
14648
14649 * xfns.c (x_figure_window_sizes): Add trunc border width
14650 to frame pixel width.
14651
14652 * xdisp.c (next_display_element): Don't display overlay strings
14653 within invisible text.
427ec082 14654 (skip_vertically_backward): Skip display lines.
26901792
DL
14655
14656Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14657
14658 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14659
14660 * xdisp.c (next_display_element): Next invisible
14661 text check position computed differently.
14662
14663 * dispextern.h (struct display_cursor): last_invisible_text_pos
14664 and display_ellipsis_for_invisible_p removed.
14665
14666 * xdisp.c (next_display_element): Set last_invisible_text_pos
14667 to the last position at which invisible text was found. Don't
14668 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14669 dpvec for `...' due to invisible text directly.
26901792
DL
14670 (redisplay_internal): Don't assert that cursor is at PT after
14671 skip_to. It may be in invisible text.
14672
427ec082 14673 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14674 x_y_to_hpos_vpos.
14675
427ec082 14676 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14677 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14678 checking for invisible text.
14679
14680 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14681
14682 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14683
d7d0dac0 14684 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
14685 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14686
14687 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14688 Removed.
14689
14690 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14691
14692 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14693 pixel coordinates.
14694 (note_mouse_highlight): Use it.
14695
14696 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14697 under a window system.
14698
427ec082 14699 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14700 necessary.
427ec082 14701 (update_window_line): Add width of face padding glyph to
26901792
DL
14702 displayed widths of rows.
14703
14704 * xterm.c (x_display_and_set_cursor): Set clipping after
14705 erasing cursor.
427ec082
SS
14706
14707 * window.c (Fset_window_configuration): Free only those
26901792
DL
14708 window matrices not reused.
14709 (get_leaf_windows): Build vector of leaf windows.
14710 Corrupted archive restored from v77.
14711
f28eba7b 14712 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14713 like display_line does.
14714
14715 * xdisp.c (display_mode_line): Don't hscroll mode line.
14716
14717 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14718 windows.
14719 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14720 garbage between mode lines when splitting windows horiz.
14721
14722 * dispnew.c (direct_output_for_insert): Bug fix.
14723
14724 * dispextern.h (struct display_cursor): New member string_length.
14725
14726 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14727 (init_string_cursor): Take precision and field_width
26901792
DL
14728 (display_string): Use string cursor, skip over invisible text.
14729
14730Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14731
14732 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14733 (x_display_and_set_cursor): Call it.
14734 (draw_glyphs): Call it
14735 (draw_bitmap): Call it.
14736
427ec082 14737 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14738 (allocate_leaf_matrix): Return flags.
14739 (row_equal_p): Compare enabled_p.
14740
14741 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14742 for type == -1.
14743
14744 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14745 (draw_glyphs): Clip height one pixel taller.
26901792 14746
427ec082 14747 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14748 mini window.
14749
f28eba7b 14750 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14751
427ec082
SS
14752 * xdisp.c (echo_area_display): Call update_single_window if
14753 possible.
26901792
DL
14754
14755 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14756 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14757 (update_single_window): Update a single window like update_frame
14758 does for all windows.
427ec082 14759 (update_window, update_window_tree): Additional argument
26901792
DL
14760 no_scrolling_p.
14761 (update_frame): Pass no_scrolling_p to update_window_tree.
14762 (update_window): Don't call scrolling_window if no_scrolling_p.
14763
14764 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14765 Erase under hollow cursor.
14766 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14767 not enabled. Draw bar cursor 1 pixel smaller.
14768
f28eba7b 14769 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14770 since update will follow soon.
14771
14772 * xdisp.c (echo_area_display): Unitialized variable.
14773
f28eba7b 14774 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14775 overlay arrow bitmap.
14776
f28eba7b 14777 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14778 up to the final \n as part of the line for cursor positioning.
26901792 14779
f28eba7b
SM
14780 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14781 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14782
14783 * xterm.h (FRAME_X_TRUNC_WIDTH).
14784
f28eba7b 14785 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14786 of a window reserved for truncation mark.
14787
427ec082 14788 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14789
14790 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14791 hook.
26901792
DL
14792
14793 * xdisp.c (display_line): Set overlay_arrow_p in row.
14794
14795 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14796
14797 * xterm.c (x_after_update_window_line): Draw truncation marks.
14798
14799 * xdisp.c (display_line): Insert truncation for lines with
14800 current_x > 0.
14801
14802 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14803 Correct y by 1.
14804 (x_display_cursor): Use default font width if width not
427ec082 14805 known.
26901792 14806
f28eba7b 14807 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14808
14809 * dispnew.c (set_window_cursor_after_update): Don't assume
14810 all rows are enabled.
14811
14812 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14813 of cursor.pos.
14814 (skip_in_display_line_to): Check cursor.position after call to
14815 next_display_element.
14816
427ec082 14817 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14818 buffer position.
14819
14820 * xdisp.c (display_line): Set row->y here.
14821 (skip_in_display_line_to): Test for to_pos after all glyphs
14822 have been added to hpos so that hpos is at the end of all
14823 glyphs for to_pos.
14824 (start_display): Remove assertion.
14825
d7d0dac0 14826 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
14827 (update_window): Don't set row->y here.
14828
14829 * xdisp.c (next_display_element): Don't translate control chars
14830 from display table entries.
14831
427ec082 14832 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14833 update end to prevent cursor flickering. Revert changes to
14834 setting cursor.endpos.
14835
14836Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14837
14838 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14839 to PT because this prevents multi-byte characters from being
14840 recognized.
14841
427ec082
SS
14842 * xdisp.c (skip_to, display_line): Advance cursor at end of
14843 truncated line.
26901792
DL
14844
14845 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14846 replaced by XRectangle.
14847
d7d0dac0 14848 * dispnew.c (scrolling_window): New method.
26901792
DL
14849
14850 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14851
26901792
DL
14852 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14853 visible part of line.
14854
14855 * dispnew.c (update_window_line): Fill inverse video lines
14856 with infinite width space.
14857 (update_window): Handle completely empty matrices.
14858 (set_window_cursor_after_update): Bug fix.
14859
427ec082 14860 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14861
14862 * dispnew.c (update_window_line): Don't ignore spaces, don't
14863 fill with spaces.
14864
14865 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14866 the first glyph having width 0.
14867
14868 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14869 a glyph that extends to the end of the line.
26901792
DL
14870
14871 * xdisp.c (display_line): Insert one padding glyph
14872
14873 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14874 amount from info.current_x.
14875 (display_line): Ditto.
14876
14877 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14878 (change_frame_size_1): Correct cursor.x if frame gets too small.
14879 (update_window_line): Start at row->x.
14880
14881 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14882 in xdisp.c).
14883
14884 * xterm.c (set_output_cursor): Use window relative X/Y.
14885 (global): Use window relative output cursor x/y.
14886 (draw_glyphs): Remove y param. Pass window relative x/y.
14887
14888 * dispnew.c (update_window): Start rows at start_y.
14889 (update_window): Don't try scrolling because it wouldn't work
14890 with variable height lines, anyway.
14891
14892 * dispextern.h (struct glyph_row): Remove shift_left_by,
14893 add x.
14894
14895 * window.h: (struct window): New member start_y.
14896
14897 * window.c (replace_window): Initialize start_y.
14898 (make_window): Ditto.
14899
14900Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14901
14902 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14903 the mode line.
26901792 14904
427ec082
SS
14905 * dispnew.c (update_window): Take mode line border into
14906 account.
26901792
DL
14907
14908 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14909 of border around mode line.
26901792
DL
14910
14911 * xterm.c (x_draw_row_borders): Bug fix.
14912 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14913 drawing functions.
14914
14915 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14916 around modeline instead of inverting it.
26901792 14917
427ec082 14918 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14919
14920 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14921 window relative pixel coordinates as arguments.
14922
14923 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14924 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14925 COORDS mit new arguments.
14926
14927Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14928
14929 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14930 DISPLAY_LINE.
26901792
DL
14931
14932 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14933 pixel coords.
14934 (make_lispy_movement): Same.
14935
14936 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14937 with new parameter meaning.
14938
14939 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14940 from canon units to pixels.
14941 (coordinates_in_window): Pixel based.
14942 (Fcoordinates_in_window_p): Convert result pixel values back
14943 to canonical units.
14944
14945 * window.h: phys_cursor_ascent + descent instead of height.
14946
14947 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 14948 chars with charset width 1.
26901792
DL
14949
14950 * dispnew.c (direct_output_for_insert): Set updated_row.
14951
14952Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14953
14954 * dispextern.h (struct glyph): Padding flag removed.
14955
14956Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14957
14958 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14959
14960 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14961
14962 * dispnew.c (update_window_line): Use pixels.
14963
14964 * xdisp.c (compute_line_metrics): Correct pixel_width by
14965 shift_left_by.
14966
14967 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14968 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14969 glyph_row -> right_to_left_p. Change references to it.
14970
14971Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14972
14973 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14974
14975 * xterm.c (XTinsert_glyphs): Implement it.
14976
14977 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14978 of a call from DIRECT_OUTPUT_FOR_INSERT.
14979
14980 * window.h (struct cursor_pos): Keeps both matrix positions
14981 and pixel positions.
14982 (struct window): Use it.
14983
14984 * dispnew.c (direct_output_for_insert): New version.
14985
14986 * xdisp.c (redisplay_internal): Don't do anything if it has
14987 already be done directly.
14988
14989 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14990 for any character.
14991
14992Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14993
14994 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14995
14996Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14997
14998 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14999 (struct glyph): ASCENT, DESCENT.
15000 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15001 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15002
15003 * xterm.c (XTget_display_info): Correct tab computation.
15004
15005 * term.c (get_display_info): Correct tab computation.
15006
15007 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15008 Renamed from CHAR_CURSOR.
15009
15010Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15011
15012 * xdisp.c (display_text_line): Mostly pixel oriented.
15013
15014 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15015
15016 * term.c (append_intermediate_glyph): Generate padding glyphs.
15017
15018 * xdisp.c (display_text_line): More into final direction.
15019
15020 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15021 (XTget_char_info): Use tabs as multiples of spaces.
15022
15023 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15024 Use tabs as multiples of spaces.
15025
15026 * dispextern.h (struct char_info ): WHAT field.
15027
15028 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15029 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15030
15031Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15032
15033 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15034 value.
15035 (init_char_info): Initialize with glyph row.
15036
15037 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15038
15039 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15040
15041 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15042 glyphs.
15043
15044 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15045 moved to xdisp.c.
15046
15047 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15048
15049 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15050 generation.
15051 (XTget_char_info): Ditto.
15052
15053 * term.c (get_char_info): Intermediate glyph generation.
15054 (append_intermediate_glyph): Ditto.
15055
15056Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15057
427ec082 15058 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15059 CHAR_CURSOR.
15060 (init_char_cursor): Initialize a CHAR_CURSOR.
15061 (get_char_and_advance): Get next character to display.
15062
15063 * dispextern.h (struct char_cursor): Cursor for iterating over
15064 display text of CURRENT_BUFFER.
15065
15066Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15067
15068 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15069
15070 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15071 New member MAX_PIXEL_HEIGHT.
15072
15073 * xterm.c (x_per_char_metric): Get per character metrics.
15074 (XTget_char_info): More cases covered.
15075
15076 * term.c (get_char_and_info): Get next character and character
15077 display information.
15078 (get_char_info): Get character display information.
15079
15080 * dispextern.h: Character display information.
15081
427ec082 15082 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15083 encode character.
15084 (XTget_char_info): Get display information about a character.
15085
15086Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15087
15088 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15089 zero if window is mini-window.
15090
15091 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15092 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15093
427ec082 15094 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15095 (clear_glyph_row): Clear pixel height.
15096 (update_window): Use PIXEL_HEIGHT.
15097
15098 * xdisp.c (display_string): Set row pixel height temporarily.
15099 (display_text_line): Ditto.
15100
427ec082 15101 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15102 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15103
427ec082 15104 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15105 line in default font.
15106 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15107 in default font.
15108 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15109
15110 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15111 in pixels.
15112
15113 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15114
15115 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15116 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15117 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15118 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15119 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15120 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15121 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15122 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15123 pixel values related to windows.
15124
15125Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15126
15127 * xterm.c (XTflash): Flash last line of frame.
15128
15129 * dispextern.h (cursor_in_echo_area): Extern declaration.
15130
15131 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15132 freezes stem from 16-bit functions.
26901792
DL
15133
15134 * xterm.c (x_display_and_set_cursor): Don't display hollow
15135 cursor in mini windows.
15136
15137 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15138 (make_window): Ditto.
15139
15140 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15141 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15142 and X_DISPLAY_BAR_CURSOR.
15143 (x_display_cursor): Use it.
15144 (x_update_window_cursor): Use it.
15145
15146 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15147 selected.
26901792
DL
15148
15149 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15150 of X and Y to denote matrix positions.
15151 (x_display_cursor): Ditto.
15152
15153 * dispnew.c (scrolling_window): Scrolling for windows.
15154
15155Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15156
15157 * dispnew.c (build_frame_matrix): Work on windows with update
15158 flag set.
15159 (build_frame_matrix_from_window_tree): Ditto.
15160 (build_frame_matrix_from_leaf_window): Ditto.
15161
15162 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15163 building frame matrix.
427ec082 15164 (redisplay_internal): Set window update flags instead of
26901792
DL
15165 building frame matrix.
15166
15167 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15168 building frame matrix.
15169
15170 * window.c (make_window): Initialize new members.
15171 (replace_window): Ditto.
15172
15173 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15174 I don't believe this is really necessary.
15175
15176 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15177 border glyph once.
26901792
DL
15178
15179Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15180
427ec082 15181 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15182 window tree off.
15183
427ec082 15184 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15185 window matrix.
15186 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15187 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15188 (x_update_cursor): Work on windows.
15189 (x_display_bar_cursor): Ditto.
15190 (x_draw_single_glyph): Ditto.
15191
15192 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15193
15194 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15195 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15196 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15197 parameter.
26901792 15198
d7d0dac0 15199 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15200
15201 * window.c (window_rightmost_p, window_topmost_p): Based on
15202 window tree.
15203
15204 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15205 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15206
15207 * window.h: PHYS_CURSOR_.* added.
15208
15209 * frame.h (struct frame): Cursor information removed.
15210
15211 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15212 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15213
15214 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15215
15216 * window.c (window_internal_width): Scroll bars no longer
15217 part of window.
15218
d7d0dac0 15219 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15220
d7d0dac0 15221 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15222
15223 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15224 (redisplay_internal): Ditto.
15225 (redisplay_window): Ditto.
15226 (redisplay_window): Ditto.
15227 (display_text_line): Ditto.
15228 (display_mode_line): Ditto.
15229
15230 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15231
15232 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15233 (direct_output_for_insert): Ditto.
15234 (direct_output_forward_char): Ditto.
15235 (update_frame_1): Ditto.
15236
15237Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15238
15239 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15240 being updated.
26901792
DL
15241 (update_window): Set and clear it.
15242
15243 * dispnew.c (update_window_line, update_window, scrolling_window):
15244 First versions.
15245
15246 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15247 bar for window borders.
15248 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15249 with spaces.
15250 (fill_up_glyph_row_with_spaces): Call above function.
15251
15252 * xdisp.c (display_text_line): Don't add vertical bar for
15253 window borders.
15254 (display_string): Ditto.
15255
15256 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15257 (replace_window): Ditto.
15258
15259 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15260
15261 * xfns.c (Fx_contour_region): Use selected window cursor position.
15262 (Fx_uncontour_region): Ditto.
15263 (Fx_select_region): Ditto.
15264
15265 * frame.c (make_frame): Remove CURSOR_X/Y.
15266
15267 * xdisp.c (redisplay_internal): Use window cursor position.
15268
15269 * dispnew.c (update_frame_1): Use cursor position of selected
15270 window.
15271 (change_frame_size_1): Ditto.
15272
15273 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15274 (XTwrite_glyphs): Use cursor position of selected window.
15275
d7d0dac0 15276 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15277
15278 * dispnew.c (set_cursor_to): Set window cursor position.
15279 (direct_output_for_insert): Use window cursor position.
15280 (init_display): Don't use frame cursor position.
15281
15282 * window.h: CURSOR_VPOS/HPOS added.
15283
15284 * frame.h (struct frame): CURSOR_X/Y removed.
15285 (FRAME_CURSOR_X): Removed.
15286 (FRAME_CURSOR_Y): Ditto.
15287
15288 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15289 (direct_output_forward_char): Ditto.
15290
d7d0dac0 15291 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15292
15293 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15294
15295 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15296
15297Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15298
15299 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15300 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15301
15302 * dispextern.h: Changed function names.
15303
15304 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15305 < 2.
15306 (clear_window_matrices): Formerly two functions for desired
15307 and current matrix.
15308 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15309 (update_frame): Return return value from UPDATE_FRAME_1.
15310
15311Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15312
15313 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15314 LAST_TEXT_VPOS.
15315
15316 * frame.c (set_menu_bar_lines): Adjust matrices.
15317
15318 * dispnew.c (set_cursor_to): Set cursor position.
15319
15320 * minibuf.c (read_minibuf): Build frame matrix.
15321
15322 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15323 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15324 relative.
26901792
DL
15325 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15326 reason.
15327
427ec082 15328 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15329 menu bar.
15330 (clear_window_records): Clear window rows.
15331 (clear_frame_records): Clear window and frame rows.
15332 (clear_glyph_matrix): Set all rows of a matrix to empty.
15333
d7d0dac0
SM
15334 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15335 Update frame if set.
26901792
DL
15336 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15337 removed.
15338 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15339 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15340
15341 * dispnew.c (assign_row): Assign one glyph row to another.
15342 (mirrored_make_current): Use it.
15343 (mirror_make_current): Use it.
15344 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15345 used counters for the current glyph row.
427ec082 15346
26901792
DL
15347
15348Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15349
15350 * lisp.h: Prototype for SCAN_BUFFER.
15351
15352 * xdisp.c (redisplay_windows): Simplified.
15353
15354 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15355 with debug checks.
15356 (window_to_frame_hpos): Convert window to frame hpos with checks.
15357 (frame_to_window_vpos): Convert frame to window vpos with checks.
15358 (frame_to_window_hpos): Convert frame to window hpos with checks.
15359
15360 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15361
15362 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15363
15364 * xdisp.c (redisplay_internal): Another instance of
15365 DISPLAY_TEXT_LINE with window relative VPOS.
15366 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15367
15368 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15369 only.
15370
15371 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15372 (redisplay_internal): Ditto.
15373
15374 * dispnew.c (cancel_window_line): Use window matrix. Changed
15375 name to CANCEL_WINDOW_LINE.
15376
15377 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15378 relative VPOS.
15379
427ec082
SS
15380 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15381 to frame vpos.
26901792
DL
15382 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15383 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15384 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15385
15386 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15387 window relative VPOS.
15388 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15389 relative VPOS.
15390
15391 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15392 MATRIX_BUFFER_POSITIONS.
15393
15394 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15395
15396 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15397
427ec082 15398 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15399 matrix. Change name to scroll_full_width_window.
15400
15401 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15402 NONINTERACTIVE.
26901792
DL
15403
15404Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15405
15406 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15407 and window matrices.
26901792
DL
15408 (adjust_window_charstarts): Use window matrix.
15409 (cancel_my_columns): Use window matrix.
15410 (direct_output_for_insert): Use window matrix, only.
15411
15412 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15413 (display_string): Call display_glyphs.
15414 (display_menu_bar_string): Display a string in a menu bar line.
15415 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15416 (display_text_line): Use window matrix.
15417 (try_window): Use window relative positions.
15418
15419Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15420
15421 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15422 (0, 0).
26901792 15423 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15424 top-most windows.
26901792
DL
15425
15426 * window.h (WINDOW_TOPMOST_P): Added.
15427
15428 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15429 (redisplay_window): Ditto.
15430 (display_text_line): Ditto.
15431 (display_menu_bar): Ditto.
15432 (display_mode_line): Ditto.
15433 (display_mode_line): Use window matrix.
15434 (display_string): Use window matrix.
15435 (display_mode_element): Ditto.
15436 (echo_area_display): Don't display if frame has no pools yet.
15437 (echo_area_display): Work with window matrix for mini window.
15438 (redisplay_window): Use window marix for mini window.
15439 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15440 use that for DISPLAY_STRING.
26901792
DL
15441
15442 * dispextern.h: Prototype for prepare_desired_row.
15443
d7d0dac0 15444 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15445
15446 * dispnew.c (adjust_window_charstarts): Always allocate window
15447 matrices.
15448 (clear_glyph_row): Only reset used counters and flags.
15449
15450Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15451
15452 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15453 line is non-empty.
26901792
DL
15454 (realloc_glyph_pool): Don't add 1 to the pool size.
15455 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15456
15457 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15458 (line_draw_cost): Ditto.
15459 (update_line): Ditto.
15460 (update_line): Use SPACE_GLYPH.
15461 (count_blanks): Additional parameter LEN.
15462
15463 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15464 (display_text_line): Don't add null-glyph end marker.
15465 (display_string): Use SPACE_GLYPH.
15466 (display_string): Don't use null-glyph end marker.
15467
15468 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15469
15470 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15471 (fill_up_glyph_row_with_spaces): Ditto.
15472 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15473 rows, instead of null-glyphs.
15474 (direct_output_for_insert): Don't add null-glyph end marker.
15475
15476 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15477 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15478 (do_scrolling): Ditto.
15479
15480 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15481 frame matrix in window matrices.
26901792 15482 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15483 Maybe do corresponding assignments in window matrices.
26901792 15484 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15485 rows agree about glyph pointers.
26901792
DL
15486 (check_matrix_pointers): Ditto.
15487 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15488 maybe mirror the operation in window matrices.
26901792 15489 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15490 frame matrix row was made current.
26901792
DL
15491
15492Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15493
15494 * dispnew.c (check_matrix_pointer_lossage): Check against
15495 pointer lossage in matrices.
15496 (get_glyph_matrix_row): Removed.
15497
15498 * scroll.c (do_scrolling): Simplified.
15499 (do_direct_scrolling): Simplified.
15500 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15501 DO_.*SCROLLING.
427ec082 15502
26901792
DL
15503
15504 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15505 (rotate_vector): Removed.
15506 (rotate_pointers): Removed.
15507 (scroll_frame_lines): Simplified.
15508
15509Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15510
15511 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15512
15513 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15514 what the name says.
15515 (clear_glyph_row): Make a glyph row structure empty.
15516 (make_matrix_row_current): Make a glyph row current.
15517 (make_window_matrix_row_current): Perform analogous row swaps
15518 for window matrices.
15519 (update_line): Call make_matrix_row_current.
15520
15521Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15522
15523 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15524 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15525 INVERSE_P.
15526 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15527 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15528
15529 * all files: use above new names.
15530
15531 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15532 SCROLL_GLYPH_MATRIX.
26901792 15533 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15534 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15535 buffer positions in a glyph row.
15536 (increment_glyph_matrix_buffer_positions): Increment buffer
15537 positions in a range of rows.
15538 (scroll_glyph_matrix): Scroll a glyph matrix.
15539 (swap_glyphs_in_rows): Swap glyphs between rows.
15540 (swap_glyph_pointers): Swap pointers between rows.
15541 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15542 (init_display): Initialize SPACE_GLYPH.
15543 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15544 spaces.
26901792
DL
15545
15546Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15547
15548 * xterm.c (dumprectangle): Use vectors in glyph rows.
15549
15550 * xdisp.c (display_text_line): Use vectors in glyph rows.
15551 (display_string): Ditto.
15552
15553 * scroll.c (do_scrolling): Use vectors in glyph rows.
15554 (do_direct_scrolling): Ditto.
15555
15556 * alloc.c (mark_object): Use vectors in glyph rows.
15557 Mark for all frame types.
15558
15559 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15560 glyph rows.
15561 (get_glyph_matrix_row): Ditto.
15562 (matrix_row): Ditto.
15563 (rotate_pointers): Ditto.
15564 (scroll_frame_lines): Ditto.
15565 (preserve_other_columns): Ditto.
15566 (cancel_my_columns): Ditto.
15567 (update_line): Ditto.
15568 (direct_output_for_insert): Ditto.
15569
15570 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 15571 instead of individual members. Use a vector of used counters.
26901792
DL
15572 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15573 (MATRIX_ROW_GLYPH_START): Ditto.
15574 (MATRIX_ROW_GLYPH_END): Ditto.
15575 (MATRIX_ROW_USED): Ditto.
15576 (MATRIX_ROW_SET_USED): Ditto.
15577
15578 * dispnew.c (line_hash_code): Simplified.
15579
15580Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15581
15582 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15583 CHANGE_FRAME_SIZE_1
15584 (preserve_other_columns): Void return.
15585 (cancel_my_columns): Void return type.
15586 (scrolling): Int return type.
15587 (do_pending_window_change): Void return type.
15588 (change_frame_size): Ditto.
15589 (bitch_at_user): Ditto.
15590 (init_display): Ditto.
15591 (syms_of_display): Ditto.
15592
15593 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
15594 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15595 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15596 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15597 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15598 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15599 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 15600 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15601
26901792 15602 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 15603 void.
26901792
DL
15604 (cancel_line): Return void.
15605 (clear_frame_records): Return void.
427ec082 15606
26901792
DL
15607 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15608 (SET_CHAR_GLYPH): Fill a character glyph.
15609 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15610 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15611 glyph.
26901792
DL
15612 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15613 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15614 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15615 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15616 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15617 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15618 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15619 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15620 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15621
15622 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15623
15624 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 15625 come below CURRENT_MATRIX.
26901792
DL
15626
15627 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 15628 member CURRENT_MATRIX.
26901792
DL
15629
15630Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15631
15632 * scroll.c (do_scrolling): Change algorithm to use pointers.
15633 (do_direct_scrolling): Ditto.
15634
15635 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15636 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15637 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15638 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 15639 Returns 1 if pool changed.
26901792
DL
15640 (matrix_row): Additional check for lost pointers to glyph rows.
15641 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
15642 allocation should take place. Addtional parameter
15643 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 15644 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
15645 when window matrix changes. Additional parameter DIM_ONLY_P set
15646 to 1 to indicate that no allocation should take place.
26901792 15647 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 15648 matrices. Optimize frame redraws.
26901792
DL
15649 (free_glyphs): Free pools.
15650 (check_glyph_memory): Check pools not freed.
15651 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15652 (scroll_frame_lines): Change algorithm to use pointers.
15653 (update_line): Ditto.
15654
15655 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15656 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 15657 MATRIX.
26901792
DL
15658
15659Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15660
15661 * dispextern.h (struct glyph_pool): Replacement for former
15662 FRAME_GLYPH_MATRIX.
15663 (struct glyph_matrix): No longer contains sizes of allocated
15664 areas.
15665
15666 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15667 no glyph pools.
15668
15669 * frame.c (make_frame): Initialize pools.
15670
15671Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15672
427ec082 15673 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15674 line moving algorithm has no intermediate steps.
15675 (do_scrolling): Ditto.
15676
15677 * Makefile.in (alloc.o): Add dependency dispextern.h.
15678
15679 * alloc.c: Include dispextern.h for glyph definitions.
15680
15681 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15682 is legal, return 0 otherwise.
15683
15684 * window.h: Add comment that windows are marked specially.
15685
15686 * alloc.c (mark_object): Mark windows specially.
15687
15688
15689Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15690
15691 * dispextern.h (struct glyph): Add member OBJECT
15692 referencing a Lisp object from which a glyph was drawn.
15693 Member TEXT_POSITION renamed POSITION.
15694 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15695
15696 * alloc.c: Include dispextern.h
15697 (mark_object): Mark objects referenced from glyphs.
15698
f28eba7b 15699 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15700
15701 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15702 (do_scrolling): Ditto.
15703
427ec082 15704 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15705 DECODE_MODE_SPEC_BUFFER added.
15706
15707 * window.h: TEMP_MATRIX removed.
15708
15709 * scroll.c: OPHYS_LINES removed.
15710
15711 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15712 FRAME_PTR -> struct frame *.
15713
15714 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15715 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15716
15717 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15718 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15719
15720 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15721 (do_verify_charstarts): Removed.
15722
15723 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15724 (Fdelete_frame): Free glyphs.
15725 (make_frame): Initialize matrix fields in frame.
15726
f28eba7b 15727 * config.in (PROTO): Added.
26901792 15728
f28eba7b 15729 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15730
15731 * window.c (Fdelete_window): Free window matrices.
15732 (Fset_window_configuration): Ditto.
15733 (Fdelete_window): Adjust glyphs.
15734 (Fsplit_window): Ditto.
15735 (change_window_height): Ditto.
15736 (Fset_window_configuration): Ditto.
15737 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15738 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15739
15740 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15741
15742 * window.c: Include dispextern.h
15743
15744 * scroll.c (do_scrolling): Use new glyphs.
15745 (do_direct_scrolling): Ditto.
15746
15747 * xdisp.c: Some function prototypes.
15748 (redisplay_internal): Don't do anything if matrices not yet set.
15749 (redisplay_internal): Use new glyphs.
15750 (try_window_id): Ditto.
15751 (copy_part_of_rope): Ditto.
15752 (display_text_line): Ditto.
15753 (display_menu_bar): Ditto.
15754 (display_mode_line): Ditto.
15755 (display_string): Ditto.
15756
15757 * xterm.c: Prototypes for some local functions.
15758 (dumpglyphs): Use new glyphs.
15759 (XTwrite_glyphs): Ditto.
15760 (dumprectangle): Ditto.
15761 (note_mouse_highlight): Ditto.
15762 (fast_find_position): Ditto.
15763 (show_mouse_face): Ditto.
15764 (x_draw_single_glyph): Ditto.
15765 (x_display_bar_cursor): Ditto.
15766 (x_display_box_cursor): Ditto.
15767 (x_new_font): Adjust glyphs when font change.
15768
15769 * term.c (clear_end_of_line): Use new glyphs.
15770 (write_glyphs): Ditto.
15771 (insert_glyphs): Ditto.
15772
15773 * Makefile.in (term.o): term.c depends on dispextern.h
15774
15775 * term.c: Include dispextern.h
15776
15777 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15778 removed, new inserted.
26901792
DL
15779 (line_hash_code): Use new glyphs.
15780 (line_draw_cost): Ditto
15781 (cancel_line): Ditto
15782 (clear_frame_records): Ditto.
15783 (init_desired_glyphs): Ditto.
15784 (get_display_line): Ditto
15785 (scroll_frame_lines): Ditto.
15786 (preserve_other_columns): Ditto.
15787 (adjust_window_charstarts): Ditto.
15788 (cancel_my_columns): Ditto.
15789 (direct_output_for_insert): Ditto.
15790 (update_frame): Ditto.
15791 (quit_error_check): Made empty.
15792 (scrolling): Use new glyphs.
15793 (count_blanks): Ditto.
15794 (count_match): Ditto.
15795 (update_line): Ditto.
15796 (init_display): Adjust glyphs initially.
15797 (change_frame_size_1): Adjust glyphs.
15798
15799 * dispextern.h: Old glyphs removed, new added.
15800
15801 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15802
15803 * xterm.h: Prototype for min_char_bounds.
15804
15805 * window.h (struct window): Remove old glyphs, add new.
15806
15807 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15808
26901792
DL
158091999-07-20 Dave Love <fx@gnu.org>
15810
15811 * buffer.c (syms_of_buffer): Make
15812 default-enable-multibyte-characters a user variable.
15813
158141999-07-14 Richard Stallman <rms@gnu.org>
15815
15816 * Version 20.4 released.
15817
158181999-07-14 Richard Stallman <rms@gnu.org>
15819
15820 * filelock.c (lock_file): Do nothing if purifying.
15821
158221999-07-10 Richard Stallman <rms@gnu.org>
15823
15824 * xterm.c (x_display_bar_cursor): Use the cursor-color
15825 to display the bar, not the cursor foreground pixel.
15826
158271999-07-09 Andrew Innes <andrewi@gnu.org>
15828
15829 * w32console.c (w32_use_full_screen_buffer): New variable.
15830 (syms_of_ntterm): Register it.
15831 (initialize_w32_display): Set initial frame size accordingly,
15832 respecting the LINES and COLUMNS environment variables if set.
15833
15834 * w32inevt.c (w32_console_read_socket): Use it.
15835
158361999-07-07 Kenichi Handa <handa@etl.go.jp>
15837
15838 * callproc.c (Fcall_process): Decide coding system for decoding
15839 after we set to the target buffer. If the output goes to a
15840 unibyte buffer, suppress character code conversion.
15841
15842 * fileio.c (Finsert_file_contents): If reading into a unibyte
15843 buffer, suppress character code conversion.
15844
15845 * process.c (create_process): If the output goes to a unibyte
15846 buffer, suppress character code conversion.p
15847
158481999-07-07 Andreas Schwab <schwab@gnu.org>
15849
15850 * xdisp.c (line-number-display-limit): Doc fix.
15851
158521999-07-05 Richard Stallman <rms@gnu.org>
15853
15854 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15855 (Fcall_process_region): Likewise.
15856
158571999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15858
15859 * callproc.c (init_callproc): Set exec_directory if
15860 installation_directory is non-nil, without a test of exec_path.
15861
158621999-07-01 Andrew Innes <andrewi@gnu.org>
15863
15864 * w32xfns.c (drain_message_queue): New function.
15865
15866 * w32term.h (drain_message_queue): Add extern.
15867
15868 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15869 of WaitForMultipleObjects when user input is allowed, so we can
15870 handle incoming window messages. Call drain_message_queue when
15871 there are messages waiting; this ensures that windows created
15872 indirectly from the lisp thread get processed properly, and don't
15873 hang other applications by failing to respond to broadcasts.
15874
158751999-07-01 Andreas Schwab <schwab@gnu.org>
15876
15877 * callint.c (Fcall_interactively): Ignore first element of
15878 event-symbol-elements property.
15879
158801999-07-01 Richard Stallman <rms@gnu.org>
15881
15882 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15883
158841999-07-01 Kenichi Handa <handa@etl.go.jp>
15885
15886 * minibuf.c (read_minibuf): Set the multibyteness of the
15887 minibuffer before inserting `initial' string.
15888
158891999-06-30 Richard Stallman <rms@gnu.org>
15890
15891 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15892
158931999-06-29 Richard M. Stallman <rms@gnu.org>
15894
15895 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15896 Move the handling of MALLOC_CHECK_ envvar here.
15897 (main): Moved from here.
15898
158991999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15900
15901 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15902 function, assigned to the global __malloc_initialize_hook pointer.
15903 (main): Move malloc_set_state call into malloc_initialize_hook
15904 so that it happens as early as possible.
15905
159061999-06-27 Richard M. Stallman <rms@gnu.org>
15907
15908 * keyboard.c (read_key_sequence): Properly reinitialize
15909 fkey_map after translating thru Vkey_translation_map.
15910 After translating thru Vfunction_key_map, don't reset
15911 keytrans-start to 0.
15912
159131999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15914
15915 * w32.c (get_emacs_configuration): Use GetVersionEx to
15916 handle NT5.0 correctly. Include build number in configuration.
15917 w32heap.c (osinfo_cache): New variable.
15918 (cache_system_info): Initialize osinfo_cache.
15919 w32heap.h (osinfo_cache): Declare.
15920
159211999-06-24 Richard M. Stallman <rms@gnu.org>
15922
15923 * casefiddle.c (casify_object): Use make_multibyte_string
15924 if we casify a multibyte string.
15925
159261999-06-22 Ken'ichi Handa <handa@gnu.org>
15927
15928 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15929 del_range_byte instead of del_range_1, set `inserted' to the
15930 number of characters actually inserted.
15931
159321999-06-17 Dave Love <fx@gnu.org>
15933
15934 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15935
159361999-06-18 Paul Eggert <eggert@twinsun.com>
15937
15938 * filelock.c (BOOT_TIME_FILE): New macro.
15939 (get_boot_time): Use it instead of hardwiring the file name.
15940 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15941
159421999-06-17 Dave Love <fx@gnu.org>
15943
15944 * xdisp.c (invalid_eol_type): Make it unsigned.
15945
159461999-06-17 Karl Heuer <kwzh@gnu.org>
15947
15948 * process.c (send_process): Delete unsafe/redundant assignment.
15949
159501999-06-17 Jason Rumney <jasonr@gnu.org>
15951
15952 * w32term.c (dumprectangle): Handle wide characters properly.
15953
159541999-06-16 Andrew Innes <andrewi@gnu.org>
15955
15956 * s/ms-w32.h (strerror): Override the default implementation of
15957 strerror, so we can map winsock error codes.
15958
15959 * w32.c (sys_strerror): New function.
15960
15961 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15962
159631999-06-15 Ken'ichi Handa <handa@gnu.org>
15964
15965 * buffer.c (syms_of_buffer): Don't make
15966 enable-multibyte-characters customizable.
15967
159681999-06-15 Richard M. Stallman <rms@gnu.org>
15969
15970 * editfns.c (Fuser_full_name): Doc fix.
15971
159721999-06-14 Tak Ota <ota@atc.sel.sony.com>
15973
15974 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15975 (get_bitmap_with_cache): Check if CreateBitmap failed.
15976 Adjust cache size dynamically so cache is never larger than the
15977 system limit of GDI resources.
15978 Do cache clearing inline. Move global variables to local scope.
15979
15980
159811999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15982
15983 * unexsgi.c (unexec): Dump the .rodata section from memory
15984 under IRIX6.5 in order to be able to unexec with gcc.
15985
159861999-06-11 Greg Hudson <ghudson@MIT.EDU>
15987
15988 * indent.c (compute_motion): Fix boundary case.
15989
159901999-06-11 Jason Rumney <jasonr@altavista.net>
15991
15992 * w32term.c (cancel_mouse_face): New function. See equiv
15993 changes to xterm.c on 1996-10-31.
15994 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
15995 (w32_read_socket): Use cancel_mouse_face.
15996 Update frame position when size is restored.
26901792
DL
15997
159981999-06-04 Richard M. Stallman <rms@gnu.org>
15999
16000 * lread.c (Vuser_init_file): New variable.
16001 (syms_of_lread): Set up Lisp variable.
16002 (Fload): Store the file name there, if var was t before.
16003
160041999-06-04 Paul Eggert <eggert@twinsun.com>
16005
16006 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16007 doesn't work if the system date is changed, or if the system
16008 is suspended. Look at the last-modified time of
16009 /var/run/random-seed instead.
16010
160111999-06-03 Ken'ichi Handa <handa@gnu.org>
16012
16013 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16014 japanese-jisx0208-1978 correctly.
16015
160161999-06-03 Andrew Innes <andrewi@gnu.org>
16017
16018 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16019 as possible to be dumped, for safety.
16020
160211999-06-02 Ken'ichi Handa <handa@gnu.org>
16022
16023 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16024 latin-jisx0201 correctly.
16025
160261999-05-26 Ken'ichi Handa <handa@gnu.org>
16027
16028 * charset.h (Vcharset_table): Comment fixed.
16029
160301999-05-24 Richard Stallman <rms@gnu.org>
16031
16032 * coding.c (syms_of_coding): Doc fix.
16033
16034 * buffer.c (syms_of_buffer): Doc fix.
16035
16036 * filelock.c (lock_if_free): After deleting a stale lock,
16037 try again to lock the file.
16038
160391999-05-22 Andrew Innes <andrewi@gnu.org>
16040
16041 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16042 console window size.
16043 (w32_console_read_socket): Call maybe_generate_resize_event
16044 whenever input events are received, since we don't get told when
16045 the window size changes (as opposed to the buffer size, which we
16046 don't care about).
16047
16048 * w32console.c (clear_frame): Remember that the window width might
16049 be smaller than the screen buffer width.
16050 (write_glyphs): Remove redundant variable attrs. Use
16051 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16052
160531999-05-20 Andrew Innes <andrewi@gnu.org>
16054
16055 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16056 loses focus.
16057
16058 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16059 frame loses focus, and that mouse button state is reset. Ditto
16060 when the menu bar is activated.
16061
160621999-05-18 Richard Stallman <rms@gnu.org>
16063
16064 * abbrev.c (Fdefine_abbrev): Doc fix.
16065
160661999-05-13 Paul Eggert <eggert@twinsun.com>
16067
16068 * filelock.c: Fix performance bug on hosts with large
16069 /var/adm/wtmp files with no boot records.
16070
16071 (boot_time_initialized): New var.
16072 (init_filelock): Initialize it.
16073 (get_boot_time): Use it, instead of nonzero boot_time,
16074 to test whether boot_time is initialized.
16075 Don't invoke utmp routines when dumping.
16076
16077 (get_boot_time): First, try to get the boot time from the
16078 current utmp file, as this can be much faster. Don't try to
16079 get the boot time from utmp and/or wtmp more than once.
16080
16081 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16082 New arg LATEST. All uses changed.
16083
160841999-05-15 Andrew Innes <andrewi@gnu.org>
16085
16086 * w32term.c (dumpglyphs): Use correct colours for drawing
16087 rectangles in place of missing fonts, and make them the right
16088 size.
16089
160901999-05-14 Dave Love <fx@gnu.org>
16091
16092 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16093 non-nil.
16094
160951999-05-11 Andrew Innes <andrewi@gnu.org>
16096
16097 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16098 definition.
16099 (w32_wnd_proc): Reinstall debugging output.
16100 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16101 (syms_of_w32fns): Reinstall new initializer for
16102 Vw32_phantom_key_code.
16103
16104 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16105 names for most non-European charsets, to cope with wildcards or
16106 missing spec dates.
16107 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16108 to avoid deadlock when activating the menu bar.
16109
161101999-05-10 Ken'ichi Handa <handa@gnu.org>
16111
16112 * search.c (boyer_moore): Get charset base value of `untranslated'
16113 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16114
161151999-05-10 Andreas Schwab <schwab@gnu.org>
16116
16117 * fileio.c (Fread_file_name): Correct handling of dollars in file
16118 names. Protect dollars in strings put on the file-name-history.
16119 Substitute homedir by `~' also in default_filename.
16120
16121 * xdisp.c (try_window_id): Fix computation of tab_offset when
16122 backing up over a character that is splitted across lines.
16123
161241999-05-08 Kenichi HANDA <handa@etl.go.jp>
16125
16126 * coding.c (code_convert_region): If eol format is inconsistent,
16127 change coding->symbol to the sibling coding system of Unix like
16128 eol format.
16129
161301999-05-09 Richard M. Stallman <rms@gnu.org>
16131
16132 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16133
16134 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16135
161361999-05-05 Andrew Innes <andrewi@gnu.org>
16137
16138 * w32fns.c (w32_strict_painting): New variable.
16139 (w32_wnd_proc): Use it to select repaint rules.
16140 (syms_of_w32fns): Defvar it.
16141
161421999-05-04 Andrew Innes <andrewi@gnu.org>
16143
16144 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16145 charsets to the standard Windows charset for Japanese.
16146
161471999-05-04 Ken'ichi Handa <handa@gnu.org>
16148
16149 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16150
16151 * ccl.h (struct ccl_program): New member stack_idx.
16152
16153 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16154 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16155 before returing.
16156 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16157
161581999-05-03 Jason Rumney <jasonr@altavista.net>
16159
16160 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16161
161621999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16163
16164 * dired.c (make_time): Make argument type be time_t.
16165
161661999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16167
16168 * msdos.c (unibyte_display_via_language_environment): Add extern.
16169
83c8f461 161701999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16171
16172 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16173 if unibyte_display_via_language_environment is set.
16174 (unibyte_display_via_language_environment):
16175 Variable moved from xfns.c and elsewhere.
16176 (syms_of_xfns): Set up Lisp var.
16177
16178 * xfns.c (unibyte_display_via_language_environment):
16179 Variable moved to xdisp.c.
16180 (syms_of_xfns): Don't set up Lisp var here.
16181
16182 * msdos.c (unibyte_display_via_language_environment):
16183 Variable moved to xdisp.c.
16184 (syms_of_msdos): Don't set up Lisp var here.
16185
16186 * w32fns.c (unibyte_display_via_language_environment):
16187 Variable moved to xdisp.c.
16188 (syms_of_w32fns): Don't set up Lisp var here.
16189
161901999-05-02 Andrew Innes <andrewi@gnu.org>
16191
16192 * s/ms-w32.h (HAVE_FSYNC): New macro.
16193 (fsync): Map to _commit.
16194 (ftruncate): Map to _chsize.
16195
16196 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16197 for ASCII, if enabled, to avoid memory allocation overhead for
16198 implicit Unicode conversion. Also, recognize that ASCII and
16199 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16200 already contains the Unicode characters in that case.
16201 (construct_drag_n_drop): Remove old code that was
16202 trashing the drop location.
16203
16204 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16205 nlines to encoding_buffer_size (real bug was in a ccl program in
16206 lisp/international/coding.el).
16207
16208 * w32reg.c (w32_get_string_resource): Check for name in current
16209 user area, and if not found look in the local machine area.
16210
16211 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16212 (Fw32_shell_execute): New function; used to support browse-url.
16213 (syms_of_w32fns): Register it.
16214 (w32_load_system_font): Force max width to be average
16215 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16216 slowdown.
16217 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16218 already defined.
16219 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16220
16221 * unexw32.c (get_section_info): Dump back the entire EMDATA
16222 section if we can put Emacs' initialized data in a separate
16223 section, otherwise use the my_begdata/my_edata method.
16224
16225 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16226
16227 * coding.c (decode_eol): Set produced/consumed values to zero if
16228 src_bytes is <= 0 on entry.
16229
162301999-05-02 Jason Rumney <jasonr@altavista.net>
16231
16232 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16233 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16234 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16235 field in frame.
16236 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16237 (dumprectangle): Take into account the width of a left-side
16238 scroll bar.
16239
16240 * w32proc.c (sys_kill): Attach to current foreground thread
16241 when grabbing focus; necessary on NT 5.0.
16242
16243 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16244 GetUpdateRect rather than BeginPaint.
16245 (w32_wnd_proc): Attach to current foreground thread
16246 when grabbing focus; necessary on NT 5.0.
16247 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16248 debugging display messages.
16249 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16250 false matching.
16251
162521999-05-02 Kenichi HANDA <handa@etl.go.jp>
16253
16254 * coding.c (setup_raw_text_coding_system): Call
16255 setup_coding_system to initialize the fields of struct
16256 coding_system correctly.
427ec082 16257
26901792
DL
162581999-04-26 Kenichi HANDA <handa@etl.go.jp>
16259
16260 * xterm.c (x_list_fonts): Fix previous change.
16261
162621999-04-26 Richard Stallman <rms@gnu.org>
16263
16264 * config.in (HAVE_LIBXP): Add #undef.
16265 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16266
162671999-04-12 Ken'ichi Handa <handa@gnu.org>
16268
16269 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16270 by them.
16271
162721999-04-12 Karl Heuer <kwzh@gnu.org>
16273
16274 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16275
162761999-04-11 Ken'ichi Handa <handa@gnu.org>
16277
16278 * fontset.c (Fset_fontset_font): Fix previous change.
16279
162801999-04-09 Ken'ichi Handa <handa@gnu.org>
16281
16282 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16283 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16284
162851999-04-08 Richard Stallman <rms@gnu.org>
16286
16287 * process.c (Faccept_process_output): Check validity of PROCESS.
16288
162891999-04-08 Eli Zaretskii <eliz@gnu.org>
16290
16291 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16292
162931999-04-07 Richard Stallman <rms@gnu.org>
16294
16295 * xfns.c (x_set_font): Fix error message.
16296
16297 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16298 (Fnew_fontset, Fset_fontset_font): Check for them here.
16299 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16300 Fix error message syntax.
16301
16302 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16303 from the base buffer.
16304 (Fset_buffer_multibyte): Copy new multibyte status
16305 into the buffer's indirect buffers.
16306
163071999-04-07 Ken'ichi Handa <handa@gnu.org>
16308
16309 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16310 tail.
16311
163121999-04-06 Richard Stallman <rms@gnu.org>
16313
16314 * dired.c (Ffile_attributes): Doc fix.
16315
16316 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16317 Convert 0200 to meta only in a unibyte string.
16318 (Fkey_description): Likewise.
16319
16320 * eval.c (do_autoload): Preserve match data.
16321
163221999-04-06 Kenichi HANDA <handa@etl.go.jp>
16323
16324 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16325 encode_coding to avoid carryover.
16326
16327 * coding.c: Add comments for decode_coding and encode_coding.
16328
16329 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16330 a composite character by skipping its leading code.
16331 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16332 correctly.
16333
16334 * coding.c: Add comments for decode_coding and encode_coding.
16335
16336 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16337 a composite character by skipping its leading code.
16338 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16339 correctly.
16340
163411999-04-06 Eli Zaretskii <eliz@gnu.org>
16342
16343 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16344 table was used.
16345 (jp_kbd_translate_table): Support C-\.
16346 (it_kbd_translate_table): Map `>' correctly.
16347 (it_keyboard): Add `>'.
16348
163491999-04-06 Richard Stallman <rms@gnu.org>
16350
16351 * intervals.c (graft_intervals_into_buffer): Turn off
16352 inhibit_modification_hooks around calling Fset_text_properties.
16353
163541999-04-05 Kenichi HANDA <handa@etl.go.jp>
16355
16356 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16357 glyphs.
16358
163591999-04-05 Eli Zaretskii <eliz@gnu.org>
16360
16361 * msdos.c (jp_kbd_translate_table): Fix last change.
16362
163631999-04-04 Eli Zaretskii <eliz@gnu.org>
16364
16365 * msdos.c (struct kbd_translate): New struct, for key translation
16366 tables private to certain national keyboard layouts.
16367 (struct dos_keyboard_map): Add a pointer to a private translation
16368 table.
16369 (jp_kbd_translate_table): Private table for the Japanese
16370 keyboard.
16371 (jp_keyboard): Japanese keyboard layout.
16372 (it_kbd_translate_table): Private table for the Italian keyboard.
16373 (it_keyboard): Use it_kbd_translate_table.
16374 (keyboard_layout_list): Add the Japanese keyboard.
16375 (dos_rawgetc): Use the keyboard-private translation table, if
16376 available.
16377 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16378
163791999-04-02 Kenichi HANDA <handa@etl.go.jp>
16380
16381 * xdisp.c (redisplay_window): When we call compute_motion with
16382 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16383 (display_text_line): Stop the loop for processing overlay strings
16384 when we reach the right edge of the window.
16385
83c8f461 163861999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16387
16388 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16389 let the data control whether string is unibyte.
16390
163911999-03-30 Richard M. Stallman <rms@gnu.org>
16392
16393 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16394 (pop_kbd_macro): Restore the saved real_this_command.
16395 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16396
163971999-03-26 Richard M. Stallman <rms@gnu.org>
16398
16399 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16400 if buffer-file-name is nil.
16401
164021999-03-25 Jason Rumney <jasonr@altavista.net>
16403
16404 * w32select.c (Fw32_set_clipboard_data): Take into account line
16405 ends when calculating clipboard storage needed for non-ASCII text.
16406
164071999-03-25 Andrew Innes <andrewi@gnu.org>
16408
16409 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16410 (epaths.h): Renamed from paths.h.
427ec082
SS
16411 (clean):
16412 ($(BLD)\filelock.obj):
16413 ($(BLD)\lread.obj):
26901792
DL
16414 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16415
164161999-03-23 Ken'ichi Handa <handa@gnu.org>
16417
16418 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16419 ENCODE_ISO_CHARACTER for the previous change on this macro.
16420
164211999-03-23 Kenichi Handa <handa@etl.go.jp>
16422
16423 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16424 eoltype correctly for backward compatibility.
16425
164261999-03-20 Kenichi HANDA <handa@etl.go.jp>
16427
16428 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16429 invalid, produce the buffer internal byte sequence without encoding.
16430
164311999-03-19 Karl Heuer <kwzh@gnu.org>
16432
16433 * editfns.c (Fformat): Accept %i format.
16434
164351999-03-17 Karl Heuer <kwzh@gnu.org>
16436
16437 * filelock.c (get_boot_time): Test tempname, not filename.
16438
164391999-03-17 Jason Rumney <jasonr@altavista.net>
16440
e5619f6b
JR
16441 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16442 speed display.
16443
16444 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16445 speed display.
16446 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16447 New functions.
16448 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16449 Use bitmap cache.
26901792
DL
16450
16451 * w32fns.c (enum_font_cb2): Set the font height to be the
16452 character height, not the cell height.
16453 (Fw32_select_font): Initialize font dialog with current default font.
16454 (Vw32_system_coding_system): New variable.
16455 (w32_strict_filenames): Add comment.
16456 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16457 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16458 (syms_of_w32fns): Add w32-system-coding-system.
16459
164601999-03-15 Richard M. Stallman <rms@gnu.org>
16461
16462 * xterm.c (XTread_socket) <ConfigureNotify>:
16463 If cursor pos is outside the new frame size, mark cursor as off.
16464
164651999-03-14 Ken'ichi Handa <handa@gnu.org>
16466
16467 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16468
16469 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16470 by them.
16471
164721999-03-14 Richard M. Stallman <rms@gnu.org>
16473
16474 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16475 at beginning.
16476
164771999-03-14 Jason Rumney <jasonr@altavista.net>
16478
16479 * w32fns.c (w32_strict_fontnames): New variable.
16480 (Fx_create_frame): Formatting fix.
16481 (w32_load_system_font): Keep trying to load non-existant font
16482 if w32_strict_fontnames is nil. Formatting fix.
16483 (syms_of_w32fns): Add w32-strict-fontnames.
16484
16485 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16486 (dumpglyphs): Formatting fixes.
16487
164881999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16489
16490 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16491
164921999-03-10 Karl Heuer <kwzh@gnu.org>
16493
16494 * puresize.h (BASE_PURESIZE): Increase to 505000.
16495
164961999-03-09 Richard M. Stallman <rms@gnu.org>
16497
16498 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16499
16500 * filelock.c (init_filelock): New function.
16501
165021999-03-09 Dave Love <fx@gnu.org>
16503
16504 * fileio.c (Ffile_directory_p): Doc fix.
16505
83c8f461 165061999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16507
16508 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16509
165101999-03-08 Richard M. Stallman <rms@gnu.org>
16511
16512 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16513 to only the part that uses get_boot_time_1.
16514
165151999-03-07 Dave Love <fx@gnu.org>
16516
16517 * fileio.c (Finsert_file_contents): Use xfree.
16518
165191999-03-06 Kenichi Handa <handa@etl.go.jp>
16520
16521 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16522 term.o, xselect.o): Depend on ccl.h.
16523
165241999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16525
16526 * makefile.nt: Remove common multiple file compilation commands.
16527
165281999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16529
16530 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16531 newlines added when the arg NO-LINE-BREAK is nil.
16532
165331999-03-04 Karl Heuer <kwzh@gnu.org>
16534
16535 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16536
16537 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16538
165391999-03-04 Dave Love <fx@gnu.org>
16540
16541 * term.c (term_init): Use xmalloc, not malloc.
16542
16543 * callproc.c (Fcall_process): Use xmalloc, xfree.
16544
165451999-03-03 Andreas Schwab <schwab@gnu.org>
16546
16547 * eval.c (Fdefconst): Doc fix.
16548
165491999-03-01 Kenichi Handa <handa@etl.go.jp>
16550
16551 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16552
165531999-03-01 Eli Zaretskii <eliz@gnu.org>
16554
16555 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16556
165571999-02-28 Richard M. Stallman <rms@gnu.org>
16558
16559 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16560
16561 * cmds.c (internal_self_insert): Calculate column properly
16562 in overwrite-of-tab case.
16563
165641999-02-27 Andreas Schwab <schwab@gnu.org>
16565
16566 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16567 malloc in glibc 2.1.
16568
165691999-02-26 Richard Stallman <rms@gnu.org>
16570
16571 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16572
16573 * epaths.in: Renamed from paths.in.
16574 This avoids a conflict with a system header file paths.h on GNU/Linux.
16575
16576 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16577 Use epaths.h istead of paths.h.
16578
165791999-02-26 Andreas Schwab <schwab@gnu.org>
16580
16581 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16582 malloc.
16583
165841999-02-25 Dave Love <fx@gnu.org>
16585
16586 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16587
165881999-02-25 Richard Stallman <rms@gnu.org>
16589
16590 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16591 (WTMP_FILE): Default definition in case not defined.
16592 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16593
26901792
DL
165941999-02-25 Ken'ichi Handa <handa@gnu.org>
16595
16596 * keymap.c (push_key_description): If enable-multibyte-characters
16597 is nil and C is single byte, push C as is.
16598
165991999-02-24 Kenichi Handa <handa@etl.go.jp>
16600
16601 * keymap.c (push_key_description): If enable-multibyte-characters
16602 is non-nil, try to convert unibyte character to multibyte. For
16603 invalid multibyte character, show all bits by octal form.
16604 (Fsingle_key_description): Check the validity of charset for a
16605 generic character.
16606
166071999-02-23 Richard M. Stallman <rms@gnu.org>
16608
16609 * fileio.c (Ffile_regular_p): Undo previous change.
16610
16611 * eval.c (Fdefconst): Doc fix.
16612
16613 * filelock.c (get_boot_time): Don't use BUFSIZ.
16614
166151999-02-22 Andrew Innes <andrewi@gnu.org>
16616
16617 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16618 (EXTRA_LINK): Do version test with strings.
16619
166201999-02-22 Andreas Schwab <schwab@gnu.org>
16621
16622 * fns.c (Fbase64_encode_string): Fix last change.
16623
16624 * termhooks.h (event_kind): Add user_signal.
16625
16626 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16627 (syms_of_keyboard): Initialize them.
16628 (lispy_user_signals): New variable.
16629 (make_lispy_event): Handle user_signal event type.
16630
16631 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16632 (syms_of_emacs): Don't initialize them.
16633 (handle_USR1_signal, handle_USR2_signal): Set event type to
16634 user_signal instead of non_ascii_keystroke, and use plain integers
16635 as code instead of Lisp symbols.
16636
166371999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16638
16639 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16640
166411999-02-21 Richard Stallman <rms@gnu.org>
16642
16643 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16644
16645 * print.c (print_error_message): Don't crash if (cdr data)
16646 is not a list.
16647
166481999-02-21 Eli Zaretskii <eliz@gnu.org>
16649
16650 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16651
166521999-02-20 Andrew Innes <andrewi@gnu.org>
16653
16654 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16655 run, since size can vary from run to run.
16656
16657 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16658 data is included, to enable profiling.
16659 ($(EMACS)): Map file not needed for emacs.exe.
16660
16661 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16662 as malloc before calling uninterrupt_malloc, for consistency.
16663 This also enables profiling to work on WINDOWSNT.
16664
166651999-02-18 Richard Stallman <rms@gnu.org>
16666
16667 * Makefile.in (emacs.o): Depend on termhooks.h.
16668 (filelock.o): Depend on systime.h.
16669
166701999-02-18 Ken'ichi Handa <handa@gnu.org>
16671
16672 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16673 (Fdecode_big5_char): Likewise.
16674
166751999-02-17 Richard Stallman <rms@gnu.org>
16676
16677 * insdel.c (adjust_markers_for_replace): When doing an insertion
16678 (replacing a region of zero length), handle markers at the
16679 insertion point properly.
16680
166811999-02-17 Andrew Innes <andrewi@gnu.org>
16682
16683 * w32fns.c (Vw32_quit_key): New variable.
16684 (post_character_message): Use it.
16685 (syms_of_w32fns): DEFVAR it.
16686
166871999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16688
16689 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16690
166911999-02-16 Richard Stallman <rms@gnu.org>
16692
16693 * filelock.c (within_one_second): New function.
16694 (current_lock_owner): Use that.
16695 (get_boot_time): Use /proc/uptime if available.
16696 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16697 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16698
26901792
DL
166991999-02-16 Richard Stallman <rms@gnu.org>
16700
16701 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16702 (syms_of_emacs): Init and staticpro them.
16703 (handle_USR1_signal): Don't run any code, just queue up an event.
16704 (handle_USR2_signal): Likewise.
16705
167061999-02-16 Eli Zaretskii <eliz@gnu.org>
16707
16708 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16709 an integer, return it as a float. Doc string fixed.
16710
167111999-02-16 Richard Stallman <rms@gnu.org>
16712
16713 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16714 (syms_of_emacs): Init and staticpro them.
16715 (handle_USR1_signal): Don't run any code, just queue up an event.
16716 (handle_USR2_signal): Likewise.
16717
167181999-02-15 Kenichi Handa <handa@etl.go.jp>
16719
16720 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16721 ASCII correctly. Signal error on invalid characters.
16722 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16723
167241999-02-15 Eli Zaretskii <eliz@gnu.org>
16725
16726 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16727 DOS box which doubles the reported size of text in the clipboard.
16728
167291999-02-15 Kenichi Handa <handa@etl.go.jp>
16730
16731 * coding.c (decode_coding_iso2022): Don't set
16732 coding->composed_chars to 0 here.
16733 (setup_coding_system): Set coding->composed_chars to 0 here.
16734
167351999-02-10 Richard Stallman <rms@gnu.org>
16736
16737 * fileio.c (Ffile_regular_p): Use lstat.
16738
167391999-02-09 Richard Stallman <rms@gnu.org>
16740
16741 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16742 (unexec): Test this instead of specific systems.
16743
16744 * m/macppc.h: New file.
16745
167461999-02-08 Dave Love <fx@gnu.org>
16747
16748 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16749
167501999-02-08 Ken'ichi Handa <handa@gnu.org>
16751
16752 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16753 should be set to coding->produced.
16754
167551999-02-07 Paul Fisher <rao@gnu.org>
16756
16757 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16758 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16759
167601999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16761
16762 * editfns.c (Fformat): Doc fix.
16763
167641999-02-06 Richard Stallman <rms@gnu.org>
16765
16766 * process.c (syms_of_process): defsubr it.
16767 (Fprocess_running_child_p): New function.
16768
167691999-02-05 Andrew Innes <andrewi@gnu.org>
16770
16771 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16772 recording drop position.
16773
167741999-02-05 Ken'ichi Handa <handa@gnu.org>
16775
16776 * coding.c (encode_coding_iso2022): Before writing out an invalid
16777 code, reset graphic planes and registers if necessary.
16778
16779 * term.c (encode_terminal_code): Fix previous change.
16780
167811999-02-04 Eli Zaretskii <eliz@gnu.org>
16782
16783 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16784 static variables.
16785 (set_clipboard_data): Save a copy of the text we put into
16786 clipboard in last_clipboard_text.
16787 (get_clipboard_data): If the clipboard text is identical to what
16788 last_clipboard_text holds, pretend there's no data in the clipboard.
16789
167901999-02-03 Richard Stallman <rms@gnu.org>
16791
16792 * s/gnu.h (NLIST_STRUCT): Add #undef.
16793
167941999-02-03 Eli Zaretskii <eliz@gnu.org>
16795
16796 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16797 encoded, set its pointer and size as returned by encode_coding.
16798
167991999-02-02 Ken'ichi Handa <handa@gnu.org>
16800
16801 * fns.c (Fset_char_table_default): To handle the case that CH is
16802 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16803
168041999-02-02 Andrew Innes <andrewi@gnu.org>
16805
16806 * w32fns.c (syms_of_w32fns): Change default value of
16807 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16808 some mice works properly.
16809
168101999-02-02 Eli Zaretskii <eliz@gnu.org>
16811
16812 * w16select.c (set_clipboard_data): Correctly null-terminate the
16813 string to be put into the Windows clipboard. Use xbuf_addr.
16814
168151999-02-01 Richard Stallman <rms@gnu.org>
16816
16817 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16818
168191999-01-31 Richard Stallman <rms@gnu.org>
16820
16821 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16822 then don't send the signal if the shell owns the terminal.
16823 (Finterrupt_process): Doc change.
427ec082 16824
26901792
DL
168251999-01-31 Andrew Innes <andrewi@gnu.org>
16826
16827 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16828 (copy_executable_and_dump_data): Use it to ensure alignment slop
16829 is zeroed.
16830
168311999-01-30 Andrew Innes <andrewi@gnu.org>
16832
16833 * w32.c (init_environment): Change argv[0] to contain the full
16834 path to Emacs.
16835
16836 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16837
168381999-01-29 Ken'ichi Handa <handa@gnu.org>
16839
16840 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16841 returned by x_new_font (the resolved one) but use the font name
16842 set in the fontset specification.
16843 (x_load_font): For the height of font, if normarl ascent and
16844 descent value are larger than those in max_bounds field, use the
16845 former.
16846
168471999-01-28 Eli Zaretskii <eliz@gnu.org>
16848
16849 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16850
168511999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16852
16853 * makefile.nt: Use full path to temacs.exe when dumping.
16854
168551999-01-27 Jason Rumney <jasonr@altavista.net>
16856
16857 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16858 list was reliable.
16859 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16860 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16861 (w32_list_synthesized_fonts): New function.
16862 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16863 available instead of EnumFontFamilies. List synthesized fonts if
16864 Vw32_enable_italics is non-nil.
427ec082 16865
26901792
DL
168661999-01-27 Richard Stallman <rms@gnu.org>
16867
16868 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16869 Don't complain if ttcompat does not exist.
16870
16871 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16872
168731999-01-27 Andrew Innes <andrewi@gnu.org>
16874
16875 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16876 the lwindow, rwindow and apps keys could not be used as function
16877 keys, because they were being passed to TranslateMessage which
16878 ignores them. Also, key was being changed to SPC.
16879
16880 * makefile.nt: Do make version comparison as strings.
16881
168821999-01-27 Eli Zaretskii <eliz@gnu.org>
16883
16884 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16885 strings, not characters.
16886
16887 * coding.h: Likewise.
16888
16889 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16890 string.
16891
168921999-01-26 Dave Love <fx@gnu.org>
16893
16894 * emacs.c (main): Up-date copyright.
16895
168961999-01-25 Dave Love <fx@gnu.org>
16897
16898 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16899
169001999-01-25 Andreas Schwab <schwab@gnu.org>
16901
16902 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16903
169041999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16905
16906 * xfns.c (x_set_frame_parameters): gcpro as needed.
16907
16908 * window.c (Fset_window_point): If WINDOW is selected but the
16909 current buffer is not its buffer, don't use Fgoto_char.
16910
169111999-01-22 Richard M. Stallman <rms@gnu.org>
16912
16913 * syntax.c (scan_sexps_forward): Delete duplicate code
16914 to set prev_from_syntax, above start of main loop.
16915 At startinstring, check syntax when checking for a match.
16916
169171999-01-22 Jason Rumney <jasonr@altavista.net>
16918
16919 * w32bdf.c: New file.
16920 * w32bdf.h: New file.
16921 * makefile.nt: Add w32bdf.c and w32bdf.h.
16922
16923 * w32gui.h: Include w32bdf.h.
16924 (W32FontStruct) Add bdf element.
16925
16926 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16927 Support BDF fonts.
16928
16929 * w32term.c (W32_TEXTOUT): New macro.
16930 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16931 Simplify baseline calculation. Detect SJIS by font, not glyph.
16932 Call SetTextAlign.
16933 (syms_of_w32term): Remove "jisx0212-sjis" from
16934 w32-charset-to-codepage-alist.
16935 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16936 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16937
26901792
DL
16938 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16939 (x_destroy_bitmap): Returns void not int.
16940 (x_set_border_pixel): Returns void.
16941 (w32_load_bdf_font): New function.
16942 (w32_load_system_font): New function, was w32_load_font. List
16943 fonts before loading. Explicitly set encoding for SJIS fonts.
16944 Set default_ascent to 0 as comment indicates.
16945 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16946 (w32_unload_font): Support BDF fonts.
16947 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16948 Autodetect whether to use koi8-r instead of iso8859-5.
16949 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16950 Associate "ksc5601.1992" with JOHAB_CHARSET.
16951 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16952 (w32_to_x_font): Add resolution.
16953 (x_to_w32_font): Use font resolution to calculate height if supplied.
16954 (w32_font_match): Handle wildcards anywhere within field.
16955 (enumfont_t): Remove unused head pointer.
16956 (enum_font_cb2): Dereference elfLogFont.
16957 (w32_list_bdf_fonts): New function.
16958 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16959 valid frame. Remove MessageBox. Support BDF fonts.
16960 (Fw32_find_bdf_fonts): New function.
16961 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16962 Sw32_find_bdf_fonts.
16963
169641999-01-21 Andrew Innes <andrewi@gnu.org>
16965
16966 * makefile.nt (temacs): Use del to delete file, not rm.
16967
169681999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16969
16970 * keyboard.c (read_key_sequence): Fix previous change.
16971
16972 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16973 as the same. Treat "myname:0" as the same as those two.
16974
169751999-01-19 Jason Rumney <jasonr@altavista.net>
16976
16977 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16978 (w32_to_x_charset): Fix charset mappings.
16979
16980 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16981 (dumpglyphs): Move definitions out of block containing goto.
16982 Remove redundant code for BIG5.
16983 Use w32_codepage_for_font instead of
16984 w32_codepage_for_charset. Add cast to int where float
16985 operation is assigned to int.
16986 (Vw32_charset_to_codepage_alist): New variable.
16987 (w32_codepage_for_charset): Removed.
427ec082
SS
16988 (w32_codepage_for_font): New function, replacing
16989 w32_codepage_for_charset.
26901792
DL
16990 (syms_of_w32term): Add and initialize
16991 w32-charset-to-codepage-alist.
16992
169931999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16994
16995 * xselect.c (x_handle_selection_clear): Don't clear the
16996 selection if Emacs still owns it through a different display.
16997
169981999-01-17 Andrew Innes <andrewi@gnu.org>
16999
17000 * w32proc.c: (w32_executable_type): Relax the check to identify
17001 cygwin-compiled applications, because the exact dll name varies
17002 with release. Now only require the name to start "cygwin".
17003
17004 * w32heap.h: (ROUND_UP):
17005 (ROUND_DOWN): New macros.
17006 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17007 (init_heap): New extern.
17008 (data_region_size):
17009 (recreate_heap):
17010 (read_in_bss):
17011 (map_in_heap):
17012 (round_to_next):
17013 (w32_fatal_reload_error):
17014 (get_section_size): Obsolete externs removed.
17015
17016 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17017 current process.
17018 (round_to_next): Obsolete function removed.
17019 (preload_heap_section): New variable.
17020 (data_region_size): Obsolete variable removed.
17021 (allocate_heap): Modified to determine end of static heap section
17022 used during preload, and use that as initial base address for
17023 dynamic heap instead of hard-coded value.
17024 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17025 calls to commit or decommit pages when allocating from static heap
17026 section during preload.
17027 (recreate_heap): Obsolete function removed.
17028 (init_heap): New function to initialize internal sbrk heap
17029 variables. Uses static heap section during preload, otherwise
17030 calls allocate_heap to reserve a heap region dynamically.
17031 (round_heap): Use ROUND_UP macro instead of round_to_next.
17032
17033 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17034 static "bss" section is used for heap space during preload, and
17035 bss data is now written to the proper section area when dumping.
17036 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17037 (heap_index_in_executable): Obsolete variable removed.
17038 (data_section): New variable.
17039 (data_start_va): Renamed to data_start.
17040 (data_start_file): Obsolete variable removed.
17041 (bss_section):
17042 (extra_bss_size):
17043 (bss_section_static):
17044 (bss_start_static):
17045 (bss_size_static):
17046 (extra_bss_size_static):
17047 (heap_section): New variables.
17048 (_start): Remove code based on old unexec method. Call init_heap
17049 to initialize sbrk heap.
17050 (close_file_data): Update size of file when closing, so that
17051 unexec doesn't have to work out exact size in advance.
17052 (get_bss_info_from_map_file):
17053 (get_section_size): Obsolete functions removed.
17054 (rva_to_section): Fix minor bug, and add a work-around for a bug
17055 in very old linkers.
17056 (offset_to_section):
17057 (relocate_offset): New functions.
17058 (OFFSET_TO_RVA):
17059 (RVA_TO_OFFSET):
17060 (RVA_TO_SECTION_OFFSET):
17061 (PTR_TO_RVA):
17062 (PTR_TO_OFFSET):
17063 (OFFSET_TO_PTR): New macros.
17064 (get_section_info): Modify to support new unexec method;
17065 determines address ranges in process that need dumping, and COFF
17066 sections where data will be dumped. Allows for static and global
17067 bss data to be in separate ranges. No longer relies on knowledge
17068 of section names.
17069 (copy_executable_and_dump_data_section): Renamed
17070 copy_executable_and_dump_data. Completely rewritten to copy
17071 executable section by section, so that raw data areas can be
17072 expanded to hold dumped data as necessary. Allows for bss data to
17073 be in same section as initialized data. Reduces size of static
17074 heap section to that used during preload.
17075 (dump_bss_and_heap):
17076 (w32_fatal_reload_error):
17077 (read_in_bss):
17078 (map_in_heap): Obsolete functions removed.
17079 (unexec): Rounds off preload heap to nearest page rather than
17080 virtual allocation unit. Modified to match other changes.
17081
17082 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17083 data_region_size.
17084
17085 * makefile.nt: (TEMACS_TMP): New macro.
17086 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17087 processor to add static heap section in support of new unexec.
17088
17089 * lastfile.c: Include config.h to pick up data layout pragmas.
17090 [WINDOWSNT]: Remove explicit pragma.
17091
170921999-01-12 Kenichi Handa <handa@etl.go.jp>
17093
17094 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17095 correctly.
17096 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17097
170981999-01-11 Dave Love <fx@gnu.org>
17099
17100 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17101
171021999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17103
17104 * keyboard.c (read_key_sequence): In key-translation-map and
17105 function-key-map, handle symbol with array as fn def.
17106 In function-key-map, handle symbol with keymap as fn def,
17107 and autoloaded definitions.
427ec082 17108
26901792
DL
17109 * puresize.h (BASE_PURESIZE): Increment to 500000.
17110
17111 * print.c (Qtemp_buffer_setup_hook): New variable.
17112 (syms_of_print): Init and staticpro that.
17113 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17114
171151999-01-11 Kenichi Handa <handa@etl.go.jp>
17116
17117 * insdel.c (del_range_1): Call signal_after_change.
17118 (del_range_byte): Likewise.
17119 (del_range_both): Likewise.
17120 (del_range_2): Don't call signal_after_change.
17121
17122 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17123 Lisp code here.
17124
171251999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17126
17127 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17128 never run the debugger, and don't bother checking the args
17129 to see whether the debugger should be run.
17130
171311999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17132
17133 * keyboard.c (read_key_sequence):
17134 Tell get_keyelt to look handle autoloads.
17135 Handle symbols defined as keymaps, and autoloaded keymaps.
17136
171371999-01-06 Kenichi Handa <handa@etl.go.jp>
17138
17139 * search.c (search_buffer): Fix previous change.
17140
171411999-01-06 Eli Zaretskii <eliz@gnu.org>
17142
17143 * w16select.c (set_clipboard_data): Terminate the text with a null
17144 character. Don't allow to put binary data into the clipboard.
17145 Return zero in case of success, 1 or 2 otherwise.
17146 (get_clipboard_data): Only bail out if the null character is in
17147 the last 32-byte chunk of clipboard data
17148 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17149 they save binary data, print a message in the echo area saying the
17150 text was not put into the clipboard.
17151
17152 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17153
171541999-01-06 Andreas Schwab <schwab@gnu.org>
17155
17156 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17157 _BSD_SOURCE, the latter is always defined.
17158
171591999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17160
17161 * fns.c (Frequire): Don't fail to unbind bindings.
17162
171631999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17164
17165 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17166
17167 * charset.c (Ffind_charset_region): Fix doc typo.
17168
171691998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17170
17171 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17172 multibyte in unibyte buffers only.
17173
17174 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17175 and pass it to Fmake_sparse_keymap.
17176
171771998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17178
17179 * alloc.c (MMAP_MAX_AREAS): New macro.
17180 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17181 (init_alloc_once): Use that.
17182
17183 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17184
17185 * alloc.c (lisp_malloc, lisp_free): New functions.
17186 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17187 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17188 (n_interval_blocks, n_float_blocks): New variable.
17189 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17190 (n_marker_blocks, n_string_blocks): New variable.
17191 (init_intervals, make_interval): Set a count variable.
17192 Use lisp_malloc instead of setting allocating_for_lisp.
17193 (init_float, make_float, init_cons, Fcons): Likewise.
17194 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17195 (init_marker, allocate_misc, init_strings): Likewise.
17196 (make_uninit_multibyte_string): Likewise.
17197 (gc_sweep, compact_strings): Decrement the count variables.
17198
17199 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17200 into the old_..._hook variables.
17201
172021998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17203
17204 * keyboard.c: In each active map, for each menu bar item, use only
17205 the first submap.
17206 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17207 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17208 (syms_of_keyboard): Staticpro and init it.
17209
427ec082 17210 * xmenu.c (single_keymap_panes):
26901792
DL
17211
172121998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17213
17214 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17215 by complete_deferred_msg.
17216 (post_character_message): Cancel all deferred messages when
17217 quit_char is typed, in order to break out of potential deadlocks.
17218 (cancel_all_deferred_msgs): New function.
17219 (complete_deferred_msg): Don't abort if msg not found; may have
17220 been cancelled.
17221 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17222 (Fw32_send_sys_command): Wait for system command to
17223 complete before returning.
427ec082 17224
26901792
DL
17225 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17226 not set async_iconified flag though.
17227
17228 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17229 (create_child): Use it.
17230 (syms_of_ntproc): Defvar it. Also fix docstrings for
17231 w32-start-process-share-console and w32-start-process-show-window.
17232
17233 * unexw32.c (_start): Force system calls accessing unmounted
17234 devices to fail without prompting.
17235
172361998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17237
17238 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17239 even when starting the dumped Emacs.
17240
17241 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17242 (Fkey_description): Handle lists like vectors.
17243
172441998-12-21 Kenichi Handa <handa@etl.go.jp>
17245
17246 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17247 because of the change of the second argument of Fread_char.
17248
17249 * charset.c (Fcharset_after): Check range. If POS is out of
17250 range, return nil.
17251
17252 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17253
17254 * lread.c (Fread_char): Change the meaning of the second argument.
17255 (Fread_event): Likewise.
17256 (Fread_char_exclusive): Likewise.
17257
17258 * print.c (printchar): Fix previous change.
17259
17260 * process.c (read_process_output): Decide the multibyteness of
17261 string given to a process filter by a coding system used for
17262 decoding the process output.
17263
172641998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17265
17266 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17267 nonascii-translation-table.
17268 * msdos.c (IT_write_glyphs): Likewise.
17269 * fns.c (concat): Likewise.
17270 * charset.c (unibyte_char_to_multibyte): Likewise.
17271 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17272
172731998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17274
17275 * doc.c (Fdocumentation): Change the doc string for prefix
17276 commands to make it a complete sentence in one line.
17277
172781998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17279
17280 * s/irix6-5.h: New file.
17281 * s/irix6-0.h (IRIX6): Define this symbol.
17282 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17283 (bcopy, bcmp, bzero): Likewise.
17284 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17285 (C_SWITCH_MACHINE): New value for irix6.5.
17286
172871998-12-15 Richard Stallman <rms@gnu.org>
17288
17289 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17290 Do free malloc'd memory even in case of failure. Use xfree, not free.
17291 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17292 (base64_decode_1): Don't fail for short lines.
17293
17294 * print.c (printchar): Outputting multibyte characters
17295 to echo area always makes it multibyte.
17296
17297 * search.c (search_buffer): Don't use Boyer-Moore
17298 to search for an invalid multibyte code.
17299 In unibyte case, no need to check whether there are translations
17300 in more than one charset; just set charset_base to 0.
17301
173021998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17303
17304 * print.c (printchar): Cancel previous change.
17305
173061998-12-15 Kenichi Handa <handa@etl.go.jp>
17307
17308 * callproc.c: Include "ccl.h".
17309 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17310 bit in argument_coding.mode to tell encoding procedure to flush
17311 data. While encoding arguments, if argument_coding uses CCL
17312 program, initialize it again after encoding.
17313 (Fcall_process_region): Doc-string modified. Handle the case that
17314 NARGS is 3.
17315
17316 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17317 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17318 Set `ic' to the head of this command.
17319 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17320 code for an invalid code.
17321 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17322 based on VEC.
17323
17324 * charset.c (Qunknown): New variable.
17325 (init_charset_once): Intern and staticpro Qunknown. Initialize
17326 all elements of Vcharset_symbol_table to Qunknown.
17327 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17328 unibyte characters only. For an invalid composition sequence, set
17329 CHARSETS[1] to 1.
17330 (Ffind_charset_region): Call find_charset_in_str with an
17331 appropriate MULTIBYTE arg. If undefined charsets are found,
17332 include `unknown' is the return value.
17333 (Ffind_charset_string): Likewise.
17334 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17335 (str_cmpchar_id): Max composite character code should be less than
17336 GENERIC_COMPOSITION_CHAR.
17337
17338 * charset.h (find_charset_in_str): Update declaration.
17339
17340 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17341 final_char is invalid.
17342 (decode_coding): If coding->type is coding_type_ccl, call
17343 ccl_coding_driver even if SRC_BYTES is zero.
17344 (code_convert_region): Update `inserted' correctly after calling
17345 coding->post_read_conversion. Even after the code converter
17346 consumed all source text, call it once more if it is
17347 coding_type_ccl to flush out data.
17348
17349 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17350 CODING is handled by CCL program, call code_convert_region.
17351
17352 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17353 correctly.
17354 (string_byte_to_char): Likesize.
17355
17356 * print.c (printchar): When outputting a multibyte character to
17357 echo area, always set message_enable_multibyte to 1.
17358
17359 * process.c (read_process_output): If NBYTES is zero and
17360 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17361 and try decoding again.
17362 (Fprocess_send_eof): If the coding system of PROCESS
17363 requires flushing, call send_process with null-string at first.
17364
17365 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17366 with MULTIBYTE arg 0.
17367 * w32select.c (Fw32_set_clipboard_data): Likewise.
17368 * xselect.c (lisp_data_to_selection_data): Likewise.
17369
173701998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17371
17372 * search.c (Freplace_match): Set OPOINT clearly for the case
17373 where point is in the middle of the text to be replaced.
17374
17375 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17376 if compute_motion fails to advance at all, don't back it up.
17377
173781998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17379
17380 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17381
427ec082 17382 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17383
173841998-12-09 Richard Stallman <rms@gnu.org>
17385
17386 * insdel.c (insert_from_buffer_1): Properly count the size
17387 of output from conversion to multibyte even when input
17388 is split across the gap.
17389
173901998-12-09 Karl Heuer <kwzh@gnu.org>
17391
17392 * keyboard.c: Doc fixes.
17393
17394 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17395
173961998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17397
17398 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17399 characters, only convert CRLF to LF.
17400
174011998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17402
17403 * makefile.nt: Do string comparision of _NMAKE_VER.
17404
174051998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17406
17407 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17408 coding.h, and disptab.h
17409
17410 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17411 (syms_of_msdos): DEFVAR_LISP it.
17412 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17413 (internal_terminal_init): Set up insert_glyphs_hook and
17414 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17415 (unibyte_display_via_language_environment): New variable.
17416 (syms_of_msdos): Devfar it.
17417 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17418 Encode the character codes of the glyphs according to the
17419 terminal_coding in effect.
17420
174211998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17422
17423 * fns.c (Fstring_as_unibyte): Doc fix.
17424
174251998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17426
17427 * charset.h: Declare char_valid_p.
17428
174291998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17430
17431 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17432
17433 * msdos.c (init_environment): Record the time we started up.
17434 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17435 fast after startup (aka crash).
17436
174371998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17438
17439 * w32.c (check_windows_init_file): Use decode_env_path when
17440 using EMACSLOADPATH.
17441
174421998-12-02 Jason Rumney <jasonr@altavista.net>
17443
17444 * w32term.c (dumpglyphs): Use unsigned char arrays.
17445 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17446 for various languages.
17447 Compensate for fonts that have underhangs (e.g., Thai).
17448
17449 * w32term.h (FONT_MAX_WIDTH): New macro.
17450
174511998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17452
17453 * keyboard.c (Qlanguage_change): New variable.
17454 (syms_of_keyboard): Init it.
17455 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17456 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17457 keys; add name for Escape key; extend to 256 elements.
17458 (parse_modifiers): Make non-static.
17459
17460 * keyboard.h (parse_modifiers): Declare prototype.
17461
17462 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17463
17464 * w32fns.c (w32_last_error): Fix cut+paste error.
17465 (Vw32_phantom_key_code): New variable.
17466 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17467 (syms_of_w32fns): Init and register them.
17468 (reset_modifiers): Use a more precise test for whether Emacs has
17469 keyboard focus. Synchronize state of all keys that can be used as
17470 modifiers, to overcome problems arising from hot-keys.
17471 (w32_key_to_modifier): Be careful not to call intern() to avoid
17472 requiring thread synchronization.
17473 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17474 (w32_wnd_proc): Ensure lock key indicator lights are updated
17475 promptly on Windows 9x, by passing key events on to the system.
17476 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17477 responding to Windows key events when not wanted.
17478 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17479 Ctrl-NumLock into pause by the system.
17480 (w32_wnd_proc): Don't translate key combinations containing any
17481 modifiers other than shift (and capslock).
17482 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17483 can't determine the key states until we have keyboard focus).
17484 (Fw32_toggle_lock_key): New function.
17485 (syms_of_w32fns): Defsubr it.
17486
17487 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17488 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17489 (w32_console_toggle_lock_key): New function.
17490
17491 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17492
174931998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17494
17495 * search.c (Freplace_match): Set OPOINT clearly for the case
17496 where point is in the middle of the text to be replaced.
17497
17498 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17499 if compute_motion fails to advance at all, don't back it up.
17500
175011998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17502
17503 * xfns.c (Qouter_window_id): New variable.
17504 (syms_of_xfns): Initialize it.
17505 (x_report_frame_params): Set up outer-window-id parameter.
17506
17507 * keymap.c (Fsingle_key_description): Fix previous change.
17508
175091998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17510
17511 * lisp.h (Frequire): Update declaration.
17512
175131998-11-26 Kenichi Handa <handa@etl.go.jp>
17514
17515 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17516 if the charset is ascii.
17517 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17518
17519 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17520 make an appropriate one byte string.
17521 (char_bytes): Handle the case that C is a single byte char or has
17522 modifier bits.
17523
17524 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17525
17526 * cmds.c (internal_self_insert): If C has modifier bits, insert
17527 appropriate one byte char.
17528
175291998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17530
17531 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17532 Clear text properties in the new string.
17533
175341998-11-24 Felix Lee <flee@cygnus.com>
17535
17536 * process.c (read_process_output): Call signal_after_change.
17537
175381998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17539
17540 * buffer.c (syms_of_buffer): Doc fix.
17541
17542 * keyboard.c (syms_of_keyboard): Doc fix.
17543
175441998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17545
17546 * frame.c (Fset_mouse_position): Doc fix.
17547
175481998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17549
17550 * keymap.c (Fmake_keymap): Doc fix.
17551
175521998-11-17 Kenichi Handa <handa@etl.go.jp>
17553
17554 * category.c (word_boundary_p): If C1 or C2 are composite
17555 characters, test their first components.
17556
175571998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17558
17559 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17560 don't do save-excursion, just restore selected window.
17561
17562 * window.c (window_loop): For UNSHOW_BUFFER,
17563 always do consider minibuffer windows.
427ec082 17564
26901792
DL
175651998-11-16 Kenichi Handa <handa@etl.go.jp>
17566
17567 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17568
17569 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17570
17571 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17572
17573 * s/bsdos4.h: New file.
17574
175751998-11-16 Kenichi Handa <handa@etl.go.jp>
17576
17577 * Makefile.in (abbrev.o): Depend on charset.h
17578 (bytecode.o): Depend on charset.h.
17579
17580 * bytecode.c: Include charset.h.
17581
17582 * abbrev.c: Include charset.h.
17583
17584 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17585 the first component.
17586
175871998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17588
17589 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17590
175911998-11-11 Richard Stallman <rms@gnu.org>
17592
17593 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17594
17595 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17596
17597 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17598 (INTERRUPT_INPUT): #define commented out.
17599
17600 * m/aviion-intel.h: New file.
17601
176021998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17603
17604 * fns.c (MAX_ALLOCA): New macro.
17605 (Fbase64_encode_region, Fbase64_encode_string,
17606 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17607 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17608
176091998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17610
17611 * insdel.c (byte_combining_error): Error message improved.
17612
17613 * charset.c (char_valid_p): Handle a composite character correctly.
17614
176151998-11-11 Kenichi Handa <handa@etl.go.jp>
17616
17617 * charset.c (str_cmpchar_id): Check the byte sequence for
17618 composition more rigidly.
17619 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17620 contains an invalid multibyte sequence.
17621
17622 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17623
176241998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17625
17626 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17627 (WM_EMACS_SETKEYBOARDLAYOUT):
17628 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17629 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17630 (LEFT_WIN_PRESSED):
17631 (RIGHT_WIN_PRESSED):
26901792
DL
17632 (APPS_PRESSED): New console keyboard modifier flags.
17633
17634 * w32term.c (convert_to_key_event): Removed.
17635 (is_dead_key): Copied to w32fns.c.
17636 (w32_read_socket): Generate language_change_event. Modify to work
17637 with keyboard handling changes in w32_wnd_proc.
17638
17639 * w32proc.c (sys_kill): Set extended key flag when faking
17640 Ctrl-Break keystrokes.
17641 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17642 arbitrary locale property using a numerical index.
17643 (Vw32_valid_codepages): New variable.
427ec082
SS
17644 (enum_codepage_fn):
17645 (Fw32_get_valid_codepages):
17646 (Fw32_get_console_codepage):
17647 (Fw32_set_console_codepage):
17648 (Fw32_get_console_output_codepage):
17649 (Fw32_set_console_output_codepage):
17650 (Fw32_get_codepage_charset):
17651 (Fw32_get_valid_keyboard_layouts):
17652 (Fw32_get_keyboard_layout):
26901792
DL
17653 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17654 handling functions.
17655 (syms_of_ntproc): Register them.
17656
17657 * w32inevt.c: Include w32term.h and w32heap.h.
17658 (map_keypad_keys):
17659 (Vw32_enable_caps_lock):
17660 (Vw32_enable_num_lock):
17661 (Vw32_pass_lwindow_to_system):
17662 (Vw32_pass_rwindow_to_system):
17663 (Vw32_lwindow_modifier):
17664 (Vw32_rwindow_modifier):
17665 (Vw32_apps_modifier):
17666 (Vw32_scroll_lock_modifier):
17667 (w32_key_to_modifier): Add externs.
17668 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17669 Scroll Lock as potential modifiers; exclude numpad keys from
17670 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17671 code.
17672 (is_dead_key): Copy from w32fns.c.
17673 (w32_kbd_patch_key): Comment attempt to improve handling of
17674 dead-keys, and system bug relating to same on Windows NT. Work
17675 around the bug by calling ToUnicode and then converting to the
17676 correct codepage.
17677 (map_virt_key): Removed obsolete variable.
17678 (lispy_function_keys): Add extern.
17679 (key_event): Major rework of keyboard input handling: optionally
17680 recognize Windows keys and Apps key as modifiers; optionally treat
17681 NumLock, CapsLock and ScrollLock as function keys; let system
17682 translate keystrokes to characters to avoid system bugs relating
17683 to dead-key handling; preserve shift distinction for control
17684 characters. Remove some obsolete code.
17685
17686 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17687 and w32heap.h.
17688
17689 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17690 (Vw32_pass_lwindow_to_system):
17691 (Vw32_pass_rwindow_to_system):
17692 (Vw32_lwindow_modifier):
17693 (Vw32_rwindow_modifier):
17694 (Vw32_apps_modifier):
17695 (Vw32_enable_num_lock):
17696 (Vw32_enable_caps_lock):
17697 (Vw32_scroll_lock_modifier): New variables.
17698 (modifier_set): Return toggle state for Scroll Lock.
17699 (w32_key_to_modifier): New function. Returns chosen modifier bit
17700 for given key.
17701 (w32_get_modifiers): Returns modifier flags for
17702 non-keyboard input events.
17703 (construct_console_modifiers): Renamed from construct_modifiers;
17704 recognize Windows and Apps keys as modifiers.
17705 (w32_get_key_modifiers): New function. Returns modifier flags for
17706 keyboard input events.
17707 (map_keypad_keys): Make non-static. Use second arg as extended
17708 flag.
17709 (w32_grabbed_keys): New variable.
17710 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17711 (register_hot_keys):
17712 (unregister_hot_keys):
17713 (lookup_vk_code):
17714 (w32_parse_hot_key):
17715 (Fw32_register_hot_key):
17716 (Fw32_unregister_hot_key):
17717 (Fw32_registered_hot_keys):
17718 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17719 (post_character_message): New function.
17720 (w32_msg_pump): Handle new messages for using hotkeys and changing
17721 keyboard layout/language.
17722 (w32_wnd_proc): Major rework of keyboard input handling:
17723 optionally recognize Windows keys and Apps key as modifiers;
17724 optionally treat NumLock, CapsLock and ScrollLock as function
17725 keys; let system translate keystrokes to characters to avoid
17726 system bugs relating to dead-key handling; preserve shift
17727 distinction for control characters; forward keyboard
17728 layout/language changes to lisp; detect and convert hot-key events
17729 to normal keystrokes.
17730 (syms_of_w32fns): Register new functions and variables.
17731 (w32_last_error): New function for use in debugging.
17732
177331998-11-10 Kenichi Handa <handa@etl.go.jp>
17734
17735 * category.h (CATEGORY_SET): Adjusted for the change of
17736 cmpchar_component.
17737 (CATEGORY_SET): Likewise.
17738
17739 * charset.c (cmpchar_component): New arg NOERROR. Check
17740 composition char ID more strictly.
17741 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17742 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17743 return 255.
17744 (Fcompose_string): Signal error if STR contains a rule-based
17745 composition character.
17746
17747 * charset.h (cmpchar_component): Proto-type adjusted.
17748
177491998-11-09 Kenichi Handa <handa@etl.go.jp>
17750
17751 * charset.c (string_to_non_ascii_char): Return correct length for
17752 a charset of dimension 2 and composition character.
17753
177541998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17755
17756 * keymap.c (Fsingle_key_description): Handle generic characters.
17757
17758 * process.c (Fprocess_status): Doc fix.
17759
177601998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17761
17762 * charset.c (init_charset_once): Fix previous change.
17763
177641998-11-06 Kenichi Handa <handa@etl.go.jp>
17765
17766 * charset.c (string_to_non_ascii_char): Fix previous change.
17767 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17768
17769 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17770 character correctly.
17771 (STRING_CHAR): Handle an invalid charater correctly.
17772
177731998-11-05 Kenichi Handa <handa@etl.go.jp>
17774
17775 * charset.c (string_to_non_ascii_char): Fix previous change.
17776
17777 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17778
17779 * editfns.c (Fstring_to_char): Don't return a multibyte character
17780 if STRING is a unibyte string.
17781
17782 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17783 character.
17784
17785 * xdisp.c (display_text_line): Check validity of a multibyte character.
17786 (display_string): Likewise. Handle an invalid character correctly.
17787
177881998-11-05 Karl Heuer <kwzh@gnu.org>
17789
17790 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17791 If nothing to do, return immediately.
17792 (syms_of_insdel): Initialize combine_after_change_buffer.
17793
177941998-11-05 Richard Stallman <rms@gnu.org>
17795
17796 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17797
177981998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17799
17800 * w32term.c (w32_enable_unicode_output): Rename from
17801 w32_no_unicode_output.
17802 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17803 and new semantics.
17804
178051998-11-04 Jason Rumney <jasonr@altavista.net>
17806
17807 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17808 been created yet.
17809
17810 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17811
178121998-11-04 Kenichi Handa <handa@etl.go.jp>
17813
17814 * charset.c (string_to_non_ascii_char): Change the check for the
17815 varidity of multibyte form.
17816 (update_charset_table): Check validity of BYTES. Don't set
17817 bytes_by_char_head here.
17818 (init_charset_once): Set bytes_by_char_head completely.
17819
17820 * frame.c (do_switch_frame): Cancel previous change.
17821
17822 * print.c (print_string): Check validity of a character.
17823 (print): Likewise.
17824
17825 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17826
17827 * m/ews4800.h, s/ux4800.h: New files.
17828
178291998-11-03 Theodore Jump <tjump@tertius.com>
17830
17831 * makefile.nt: Compile multiple source files when possible.
17832
17833 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17834
26901792
DL
178351998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17836
17837 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17838 so don't rely on it succeeding.
17839
17840 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17841 LOGFONT struct if x font doesn't specify the charset.
17842 (x_to_w32_charset): Change >= to == when testing results of
17843 stricmp.
17844
178451998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17846
17847 * fns.c (Frequire): New arg NOERROR.
17848
178491998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17850
17851 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17852
178531998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17854
17855 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17856 (syms_of_xfaces): Initialization deleted.
17857
17858 * textprop.c (Qmouse_face): Variable definition moved here.
17859 (syms_of_textprop): Initialize it.
17860
17861 * data.c (set_internal): For built-in maybe-local vars,
17862 when BINDFLAG is set, do not mark them as local.
17863
178641998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17865
17866 * insdel.c (replace_range): Fix previous change.
17867
178681998-10-31 Kenichi Handa <handa@etl.go.jp>
17869
17870 * editfns.c (Fsubst_char_in_region): Fix previous change.
17871 (Ftranslate_region): Fix previous change.
17872
17873 * fns.c (Fbase64_decode_region): Fix previous change.
17874
17875 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17876
17877 * insdel.c (byte_combining_error): New function.
17878 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17879 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17880 CHECK_BYTE_COMBINING_FOR_INSERT.
17881 (insert_from_buffer_1): Likewise.
17882 (adjust_after_replace): Check the posibility of inhibitted byte
17883 combining correctly.
17884 (replace_range): Before signaling an error for inhibitted byte
17885 combining, recover the buffer in a safe state.
17886 (del_range_2): Check the posibility of inhibitted byte combining
17887 correctly.
17888
178891998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17890
17891 * xselect.c (Vselection_coding_system): Doc fix.
17892
17893 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17894 when we have both char and byte position. Fix type clashes.
17895
17896 * eval.c (Fsignal): Use a separate format string when passing
17897 error message string to fatal, in case it contains %'s.
17898
17899 * editfns.c (Fchar_after): Fix type clashes.
17900
17901 * charset.c (Fchar_bytes): Doc fix.
17902 (char_bytes): Fix returned value to match returned type.
17903 (syms_of_charset): Fix type clash in initialisation of
17904 Vauto_fill_chars.
17905
179061998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17907
17908 * w32console.c (initialize_w32_display): Use buffer coords
17909 instead of buffer size (which may be larger than the window).
17910
17911 * fileio.c (init_fileio_once): New function.
17912
17913 * emacs.c (main): Invoke init_fileio_once.
17914
179151998-10-28 Paul Eggert <eggert@twinsun.com>
17916
17917 * xterm.c (XTread_socket): Check the returned value of
17918 XmbLookupString more carefully.
17919
179201998-10-28 Kenichi Handa <handa@etl.go.jp>
17921
17922 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17923 (DECODE_CHARACTER_DIMENSION1): Likewise.
17924 (DECODE_CHARACTER_DIMENSION2): Likewise.
17925 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17926
17927 * editfns.c (Fsubst_char_in_region): Fix previous change.
17928 (Ftranslate_region): Fix previous change.
17929
17930 * insdel.c (check_markers): Check if markers are at character boundry.
17931 (adjust_markers_for_insert): Fix previous change.
17932 (count_combining_before): Don't limit the check at BEGV.
17933 (count_combining_after): Don't limit the check at ZV.
17934 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17935 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17936 (insert_from_string_1): Likewise.
17937 (insert_from_buffer_1): Likewise.
17938 (adjust_after_replace): Inhibit bytes combined across region
17939 boundary. Update end_unchanged correctly.
17940 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17941 end_unchanged correctly.
17942 (del_range_2): Inhibit bytes combined across region boundary.
17943 Update end_unchanged correctly.
17944
179451998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17946
17947 * w32.c (check_windows_init_file): Also look in load path specified
17948 in environment.
17949
17950 * w32console.c (Fset_message_beep): Recognize 'silent.
17951 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17952
26901792
DL
17953 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17954
17955 * w32select.c (Vnext_selection_coding_system): New variable.
17956 (syms_of_w32select): DEFVAR_LISP it.
17957 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17958 non-nil. Always convert multibyte strings.
17959 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17960 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17961
26901792
DL
179621998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17963
17964 * fns.c (Fbase64_decode_string): Doc fix.
17965 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17966 Likewise.
17967
179681998-10-27 Dave Love <fx@gnu.org>
17969
17970 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17971 newline in doc string.
17972
179731998-10-27 Kenichi Handa <handa@etl.go.jp>
17974
17975 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17976 that byte combining before happens.
17977 (Ftranslate_region): Likewise.
17978
17979 * insdel.c (adjust_after_replace): Correctly handle the case that
17980 both byte combining before and byte combining after happen.
17981 (replace_range): Likewise.
17982
179831998-10-26 Kenichi Handa <handa@etl.go.jp>
17984
17985 * category.c (syms_of_category): Doc-string modified.
17986
17987 * coding.c (code_convert_region): Kill the work buffer created by
17988 pre-write-conversion.
17989
179901998-10-25 Jason Rumney <jasonr@altavista.net>
17991
17992 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17993
179941998-10-23 Kenichi Handa <handa@etl.go.jp>
17995
17996 * coding.c (code_convert_region): While preserving the orignal
17997 point, pay attention to the byte combining problem.
17998
17999 * fns.c (Fbase64_decode_region): Pay attention to the byte
18000 combining problem.
18001
18002 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18003 combined_before_bytes and combined_after_bytes into account.
18004 (count_combining_after): Handle the case that LENGTH is zero.
18005 (adjust_after_replace): Record deletion at correct buffer
18006 position. Handle the case that LEN is zero.
18007 (replace_range): Record deletion at correct buffer position.
18008 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18009 combined bytes.
18010
180111998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18012
18013 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18014
26901792
DL
180151998-10-21 Kenichi Handa <handa@etl.go.jp>
18016
18017 * coding.c (setup_coding_system): Fix setting up
18018 coding->spec.ccl.valid_codes for CCL based coding system.
18019 (code_convert_region): Set point to FROM before inserting the
18020 result of pre-write-funciton. Preserve original point.
18021 (code_convert_string): If coding->type is coding_type_ccl, do
18022 conversion even if the length of conversion region is zero.
18023
18024 * fontset.c: Include frame.h before fontset.h.
427ec082 18025 (list_fonts_func): Fix prototype.
26901792
DL
18026
18027 * frame.c: Include frame.h before fontset.h.
18028
18029 * xterm.c: Likewise.
18030
180311998-10-21 Jason Rumney <jasonr@altavista.net>
18032
18033 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18034 general macros. Don't call x_list_font directory, instead call a
18035 function set in list_fonts_func.
18036
18037 * fontset.h (list_fonts_func): Fix prototype.
18038
180391998-10-20 Jason Rumney <jasonr@altavista.net>
18040
18041 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18042
18043 * w32faces.c: Update comments referring to obsolete structs.
18044 (allocate_face, copy_face, face_eql, load_font,
18045 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18046 frame_update_line_height, merge_faces, compute_base_face,
18047 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18048
18049 * w32fns.c: (Vx_pixel_size_width): New global variable.
18050 (unibyte_display_via_language_environment): New global variable.
18051 (x_set_font): Add support for setting fontsets.
18052 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18053 font names to match xlfd-tight-regexp.
18054 (w32_load_font): Rewrite based on x_load_font.
18055 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18056 `iso8859-1' rather than `ansi'.
18057 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18058 end. Move charset into `charset registry' field.
18059 (enum_font_cb2): Check charsets match. Include width in font list.
18060 (w32_list_fonts): Rewrite based on x_list_fonts.
18061 Moved from w32term.c to have access to enumfont_t struct.
18062 (Fx_list_fonts): w32 specific version eliminated. Include
18063 `x-list-fonts.c'.
18064 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18065 functions for fontset support - adapted from x_ equivalents.
18066 (syms_of_w32fns): New lisp variables initialised. Function
18067 pointers for fontset.c set up.
18068
427ec082 18069 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18070 Add ENCODE_BIG5 macro from coding.c.
18071 (w32_no_unicode_output): New variable.
18072 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18073 functions.
18074 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18075 (dumpglyphs): Rewrite based on xterm.c equivalent.
18076 (x_new_font): Use functionality provided in fontset.c.
18077 (x_new_fontset): New function based on the one in xterm.c.
18078 (syms_of_w32term): Add w32-no-unicode-output flag.
18079
427ec082 18080 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18081 (Vx_pixel_size_width_font_regexp,
18082 unibyte_display_via_language_environment): Declare variables.
427ec082 18083 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18084 Declare functions.
18085 (w32_output): New fields font_baseline and fontset.
18086 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18087
18088 * w32xfns.c: Include charset.h and fontset.h.
18089
180901998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18091
18092 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18093
180941998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18095
18096 * msdos.c (mouse_init): Reset the button press/release info of the
18097 mouse driver.
18098 (mouse_preempted): New variable.
18099 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18100 (XMenuActivate): Preempt the mouse during menu-handling loop.
18101 Release the current time slice while idling in the menu-handling
18102 loop. Leave the loop only if the user pressed, then released the
18103 same button. Discard all mouse events that are pending in the
18104 event queue before exiting.
18105
181061998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18107
18108 * editfns.c (Fformat): Increase buffer size for floating format.
18109
181101998-10-17 Kenichi Handa <handa@etl.go.jp>
18111
18112 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18113 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18114 Declare auto-fill-chars as a Lisp variable and initialize it.
18115
18116 * charset.h (Vauto_fill_chars): Extern it.
18117
18118 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18119
181201998-10-16 Kenichi Handa <handa@etl.go.jp>
18121
18122 * casefiddle.c (casify_object): Use make_string instead of
18123 make_specified_string to cope with byte-combining situation.
18124
18125 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18126 1 when encountered with a code of the range 0x80..0x9F.
18127
181281998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18129
18130 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18131 trying $TMP and $TEMP, since the former is always set in msdos.c.
18132 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18133 the temporary files, check $TMPDIR as well.
18134
181351998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18136
427ec082 18137 * process.c (exec_sentinel, read_process_output):
26901792
DL
18138 Restore waiting_for_user_input_p after running Lisp code.
18139
18140 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18141 (command_loop): Likewise.
18142
181431998-10-14 Kenichi HANDA <handa@etl.go.jp>
18144
18145 * data.c (Faset): Fix previous change.
18146
18147 * fns.c (Ffillarray): Fix previous change.
18148
18149 * insdel.c (adjust_markers_for_combining): This function deleted.
18150 (adjust_markers_for_replace): Correctly adjust marker positions.
18151 Don't record these adjustment because they were recorded already.
18152 (combine_bytes): Don't adjust markers here.
18153
181541998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18155
18156 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18157
181581998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18159
18160 * keyboard.c (Fclear_this_command_keys): New function.
18161 (syms_of_keyboard): defsubr it.
18162
18163 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18164
181651998-10-12 Kenichi Handa <handa@etl.go.jp>
18166
18167 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18168
18169 * charset.c (Fstring): Call make_string instead of
18170 make_string_from_bytes.
18171 (Ffind_charset_region): Include `composition' in the returned list
18172 if the region contains any composite characters.
18173 (Ffind_charset_string): Include `composition' in the returned list
18174 if the string contains any composite characters.
18175 (find_charset_in_str): Handle CMPCHARP arg correctly.
18176
18177 * coding.c (shrink_decoding_region): If a charset other than ascii
18178 is initially designated to G0, don't shrink the region.
18179 (shrink_encoding_region): Likewise.
18180
18181 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18182 byte-combining situation.
18183
18184 * fns.c (clear_string_char_byte_cache): New function.
18185 (Ffillarray): Handle multibyte string correctly.
18186
18187 * lisp.h (clear_string_char_byte_cache): Extern it.
18188
18189 * xselect.c (lisp_data_to_selection_data): Call
18190 find_charset_in_str with CMPCHARP arg 0.
18191 * w16select.c (Fw16_set_clipboard_data): Likewise.
18192 * w32select.c (Fw32_set_clipboard_data): Likewise.
18193
181941998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18195
18196 * keyboard.c (parse_menu_item): For top level of menu bar,
18197 accept ordinary commands, and treat them just like a keymap.
18198
181991998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18200
18201 * xdisp.c (redisplay_window): Clear w->window_end_valid
18202 before running the window-scroll-functions hook, if appropriate.
18203
182041998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18205
18206 * data.c (Fstring_to_number): Don't recognize floating point
18207 if base is not 10.
18208
18209 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18210 (check_all_windows): New function for debugging tests.
18211 (syms_of_window): Initialize it.
18212
18213 * window.c (Qwindow_configuration_p): New variable.
18214 (Fwindow_configuration_frame): New function.
18215 (syms_of_window): defsubr it.
18216 (Fset_window_configuration): Return t if frame is live.
18217 Use Qwindow_configuration_p.
18218
18219 * xfns.c (check_x_display_info): Don't use selected_frame
18220 if it is dead.
18221
182221998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18223
18224 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18225
182261998-10-08 Kenichi Handa <handa@etl.go.jp>
18227
18228 * buffer.h (inhibit_modification_hooks): Extern it.
18229
18230 * buffer.c (inhibit_modification_hooks): New variable.
18231 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18232
18233 * charset.c (invalid_character): Prepend `0' to octal
18234 representation. Give error sufficient args.
18235
18236 * coding.c (code_convert_region): Set inhibit_modification_hooks
18237 to 1 before calling Fset_text_properties.
18238
18239 * insdel.c (signal_before_change): If inhibit_modification_hooks
18240 is nonzero, do nothing.
18241 (signal_after_change): Likewise.
18242
182431998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18244
18245 * process.c: Doc fixes.
18246
182471998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18248
18249 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18250
182511998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18252
18253 * w32.c (init_ntproc): Check for Windows init file.
18254 (term_ntproc): Do not check for it here.
18255
182561998-09-28 Kenichi Handa <handa@etl.go.jp>
18257
18258 * coding.c (check_composing_code): Fix previous change. Now it
18259 alwasy returns 0 or -1.
18260 (decode_coding_iso2022): Adjusted for the above change.
18261 (encode_coding_iso2022): When encoding the last block, flush out
18262 tailing garbage bytes.
18263 (setup_coding_system): Delete unnecessary code.
18264 (shrink_decoding_region): Check translation table. If ASCII
18265 should be translated, give up shrinking.
18266 (shrink_encoding_region): Likewise.
18267 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18268 (SHRINK_CONVERSION_REGION): New macro.
18269 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18270 properties here.
18271 (code_convert_region): In the case of encoding, always calulate
18272 correct character number.
18273 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18274 (code_convert_region1): Don't delete text properties here.
18275
18276 * insdel.c (adjust_after_replace): Don't delete text properties here.
18277
18278 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18279
182801998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18281
18282 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18283
182841998-09-26 Kenichi Handa <handa@etl.go.jp>
18285
18286 * coding.h (struct coding_system): New member composed_chars.
18287
18288 * coding.c (check_composing_code): If the current composing
18289 sequence doesn't end properly, return -1.
18290 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18291 (DECODE_CHARACTER_DIMENSION1): Likewise.
18292 (decode_coding_iso2022): Check validity of a composing sequence.
18293 (code_convert_string): If the length of text to be converted is
18294 shrunk to zero, don't perform code conversion.
18295 (shrink_decoding_region): Fix previous change.
18296
18297 * editfns.c (Fformat): Check format control characters.
18298
182991998-09-25 Kenichi Handa <handa@etl.go.jp>
18300
18301 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18302 single CR code correctly.
18303 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18304 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18305
183061998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18307
18308 * w32fns.c (w32_color_map_lookup): New function.
18309 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18310
183111998-09-22 Kenichi Handa <handa@etl.go.jp>
18312
18313 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18314
18315 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18316 strings unibyte.
18317 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18318
183191998-09-22 Kenichi Handa <handa@etl.go.jp>
18320
18321 * callint.c (Fcall_interactively): Don't use input method when
18322 reading a character in the case of `c' code letter.
18323
183241998-09-21 Dave Love <fx@gnu.org>
18325
18326 * editfns.c (Fsave_restriction): Doc fix.
18327
183281998-09-21 Richard Stallman <rms@gnu.org>
18329
18330 * lread.c (build_load_history): Do add to Vload_history
18331 even when dumping Emacs.
18332
183331998-09-18 Kenichi Handa <handa@etl.go.jp>
18334
18335 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18336 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18337 cause error if the program is going to output some bytes. When
18338 outputing a string to notify an error, check the case that
18339 DST_BYTES is zero.
18340
427ec082 18341 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18342
18343 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18344 user or the CCL program executed an invalid command, return
18345 CODING_FINISH_INTERRUPT.
18346 (code_convert_region): Pay attention to the converters return
18347 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18348
183491998-09-16 Kenichi Handa <handa@etl.go.jp>
18350
18351 * coding.c (code_convert_region): Update beg_unchanged and
18352 end_unchanged after we delete the source text.
18353
18354 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18355 position if it is FROM.
18356 (adjust_markers_for_combining): New function.
18357 (combine_bytes): Call adjust_markers_for_combining instead of
18358 adjust_markers_for_replace.
18359 (adjust_after_replace): Record deletion of combining after bytes
18360 with the correct position.
18361 (replace_range): Likewise. Record the actual deletion after
18362 recoding deletions of combining bytes.
18363
18364 * xdisp.c (message_log_check_duplicate): Count byte length of the
18365 latest message correctly.
18366
183671998-09-12 Richard Stallman <rms@gnu.org>
18368
18369 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18370 instead of SET_PT_BOTH.
18371 (try_window_id, display_text_line): Likewise.
18372
183731998-09-12 Karl Heuer <kwzh@gnu.org>
18374
18375 * data.c (Fmake_local_variable): Doc fix.
18376
183771998-09-10 Dave Love <fx@gnu.org>
18378
18379 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18380
183811998-09-10 Richard Stallman <rms@gnu.org>
18382
18383 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18384 (bcopy, bcmp, bzero): Add #undef.
18385
18386 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18387 first exit if selected frame is dead (no live frames remain).
18388 (read_key_sequence): Likewise.
18389
183901998-09-10 Karl Heuer <kwzh@gnu.org>
18391
18392 * emacs.c (main): Mention --display and --eval in help.
18393
183941998-09-07 Paul Eggert <eggert@twinsun.com>
18395
18396 * editfns.c (emacs_memftime): New function.
18397 (Fformat_time_string): Use it to handle null bytes in formats
18398 correctly.
18399
184001998-09-08 Kenichi Handa <handa@etl.go.jp>
18401
18402 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18403 (Ffind_charset_string): For unibyte string, return (ascii).
18404
18405 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18406 arg MARKERS 1.
18407
18408 * insdel.c (adjust_after_replace): Don't add combining bytes to
18409 the args given to adjust_point. Handle correctly the case that
18410 there are both before and after combining bytes.
18411 (replace_range): Likewise.
18412
184131998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18414
18415 * fns.c (base64_decode_1, base64_encode_1): New functions.
18416 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18417 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18418
184191998-09-07 Karl Heuer <kwzh@gnu.org>
18420
18421 * eval.c (error): After enlarging buffer, write to it, not to buf.
18422
18423 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18424
184251998-09-07 Kenichi Handa <handa@etl.go.jp>
18426
18427 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18428 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18429 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18430
18431 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18432 chars in produced byte sequence.
18433 (Ffind_operation_coding_system): Doc-string fixed.
18434
18435 * insdel.c (count_combining_after): Check also preceding bytes at
18436 POS if all characters in STRING are not character head.
18437
184381998-09-06 Paul Eggert <eggert@twinsun.com>
18439
18440 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18441 Don't assume that localtime and gmtime return non-NULL.
18442
184431998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18444
18445 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18446 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18447 New functions.
18448
184491998-09-06 Richard Stallman <rms@gnu.org>
18450
18451 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18452
18453 * lread.c (Fload): Handle case where openp finds a magic file
18454 but it has no `load' handler or that handler calls `load'.
18455 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18456
184571998-09-04 Dave Love <fx@gnu.org>
18458
18459 * buffer.c (enable-multibyte-characters): Doc fix.
18460
184611998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18462
18463 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18464
184651998-09-01 Kenichi Handa <handa@etl.go.jp>
18466
18467 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18468 address in buffer from byte-position.
18469
184701998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18471
18472 * w16select.c (Vnext_selection_coding_system): New variable.
18473 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18474 Vselection_coding_system.
18475 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18476 Vnext_selection_coding_system if non-nil.
18477 (Fw16_get_clipboard_data): Always convert a string that includes
18478 non-ASCII characters. Use Vnext_selection_coding_system if
18479 non-nil.
18480
184811998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18482
18483 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18484 mouse capture.
18485
184861998-08-31 Kenichi Handa <handa@etl.go.jp>
18487
18488 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18489 x_list_font returns.
18490
184911998-08-31 Paul Eggert <eggert@twinsun.com>
18492
18493 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18494 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18495
184961998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18497
18498 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18499 cursor, save and restore previous cursor position in the
18500 minibuffer.
18501
185021998-08-31 Kenichi Handa <handa@etl.go.jp>
18503
18504 * charset.c (unibyte_char_to_multibyte):
18505 Vnonacii_translation_table will convert a 7-bit charcater.
18506 (multibyte_char_to_unibyte): Handle the case that
18507 Vnonacii_translation_table converts a multibyte charcater to a
18508 unibyte charcter of less than 128.
18509 (init_charset_once): Initialize nonascii_insert_offset and
18510 Vnonacii_translation_table.
18511
18512 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18513 processing if CODING requires flushing.
18514 (encode_coding): Likewise.
18515 (code_convert_region): Likewise.
18516 (code_convert_string): Likewise.
18517
18518 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18519 to convert a character less than 160 to multibyte.
18520 * insdel.c (copy_text): Likewise.
18521 (count_size_as_multibyte): Likewise.
18522 * xterm.c (dumpglyphs): Likewise.
18523
185241998-08-29 Paul Eggert <eggert@twinsun.com>
18525
18526 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18527 using negation, not subtraction; this makes a difference with
18528 IEEE floating point arithmetic (and also if integer arithmetic
18529 is ones' complement or signed-magnitude!).
18530
185311998-08-29 Karl Heuer <kwzh@gnu.org>
18532
18533 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18534
185351998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18536
18537 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18538
185391998-08-28 Paul Eggert <eggert@twinsun.com>
18540
18541 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18542 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18543 path only if we're not building with Motif.
18544
185451998-08-28 Kenichi Handa <handa@etl.go.jp>
18546
18547 * insdel.c (adjust_after_replace): Fix the code to record undo
18548 information for the case that `before combining' happens. Remove
18549 text properties which are added to the new text by
18550 offset_intervals.
18551
18552 * coding.c (code_convert_region1): Remove all text properties of
18553 the region.
18554
185551998-08-28 Kenichi Handa <handa@etl.go.jp>
18556
18557 * charset.h (CHAR_BYTES): New macro.
18558
18559 * charset.c (Fchar_bytes): Now always return 1.
18560 (char_bytes): New function.
18561
18562 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18563 range, return nil.
18564 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18565 nil.
18566
18567 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18568 * fns.c (concat): Likewise.
18569 * insdel.c (count_size_as_multibyte): Likewise.
18570 * xdisp.c (message_dolog): Likewise.
18571
185721998-08-27 Kenichi Handa <handa@etl.go.jp>
18573
18574 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18575 correctly. They are for SS2 and SS3 respectively.
18576 (ccl_coding_driver): Fix previous change.
18577
185781998-08-26 Paul Eggert <eggert@twinsun.com>
18579
18580 * xterm.c (fixup_locale): New function. For now, it resets
18581 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18582 resets LC_MESSAGES to "C".
18583 (x_term_init): Use it to fix up the locale after setlocale
18584 (LC_ALL, "").
18585
185861998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18587
18588 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18589 case it was prototyped the old way.
18590
185911998-08-25 Kenichi Handa <handa@etl.go.jp>
18592
18593 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18594 returns a null string. This happens when dxpc 3.7 is being used.
18595
185961998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18597
18598 * keyboard.c (input-method-previous-message): Doc fix.
18599
18600 * coding.c (file-coding-system-alist,
18601 select-safe-coding-system-function): Doc fix.
18602
186031998-08-23 Kenichi HANDA <handa@etl.go.jp>
18604
18605 * coding.c (detect_coding_iso2022): Don't check the byte length of
18606 succeeding codes (0xa0..0xFF) if the codes follows single shift
18607 code (SS2 or SS3).
18608
186091998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18610
18611 * coding.c (detect_coding_system): If detect_eol_type returns
18612 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18613 correctly.
18614
18615See ChangeLog.7 for earlier changes.