(Fwindow_list): Declare arg `window'.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
069f5950
DL
12000-07-18 Dave Love <fx@gnu.org>
2
3 * window.c (Fwindow_list): Declare arg `window'.
4
aa96c820
KH
52000-07-18 Kenichi Handa <handa@etl.go.jp>
6
7 * coding.c (setup_coding_system): Don't override the explicitly
8 specified designations.
9
06be8d32
MB
102000-07-15 Miles Bader <miles@gnu.org>
11
12 * editfns.c (char_property_eq, char_property_stickiness): Renamed
13 from `text_property_eq' and `text_property_stickiness', respectively.
14 (find_field, Fconstrain_to_field, char_property_eq)
15 (char_property_stickiness): Changed to call char-property functions
16 instead of text-property-only ones.
17
18 * textprop.c (Fnext_single_char_property_change): Made a subr (was
19 `next_single_char_property_change'). Do more error checking, and
20 cleanup limit behavior.
21 (Fprevious_single_char_property_change): New function.
22 (syms_of_textprop): Initialize new subrs.
23
24 * xdisp.c (display_prop_end, invisible_text_between_p):
25 Call Fnext_single_char_property_change instead of
26 next_single_char_property_change.
27
3fddcdc3
JR
282000-07-15 Jason Rumney <jasonr@gnu.org>
29
30 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
31 after menu is finished with.
32 (add_menu_item): Only consider wv->title as a menu title.
33 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
34
35 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
36 null title.
37 (FONT_REGEXP): Remove unused macro, and its sub-components.
38 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
39
40 * w32term.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 (w32_read_socket): Use gen_help_event instead of filling
49 input_events manually.
50 (syms_of_w32term): Staticpro help_echo_object.
51 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
52 set, arrange for a mouse-highlight redisplay in
53 XTframe_up_to_date.
54 (x_clear_mouse_face): New function.
55 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
56 (x_update_window_begin): No need to turn off the mouse
57 highlight here.
58 (show_mouse_face): Set the mouse_face_p flag of glyph rows
59 depending on whether they contain glyphs highlighted in
60 mouse-face.
61 (x_fill_stretch_glyph_string): Consume runs of stretch
62 glyphs instead of a single one.
63 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
64 with new argument list.
65 (x_set_glyph_string_gc): Make sure the face's GC is valid.
66 (x_append_glyph, x_append_composite_glyph)
67 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
68 changes in struct glyph starting 1999-12-27. See comments for
69 xterm.c on 2000-07-05.
70
178c5d9c
SS
712000-07-14 Sam Steingold <sds@gnu.org>
72
73 * xfaces.c (realize_x_face): Fix the last patch:
74 check `default_face' before dereferencing.
75
6fe533f6
DL
762000-07-14 Dave Love <fx@gnu.org>
77
069f5950 78 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 79
dd7b81cf
KH
802000-07-14 Kenichi Handa <handa@etl.go.jp>
81
0693904a 82 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 83 default_face's fontset, not using the default fontset.
0693904a 84
dd7b81cf
KH
85 * coding.c (inhibit_iso_escape_detection): New variable.
86 (syms_of_coding): Make it a Lisp variable.
87 (detect_coding_iso2022): If inhibit_iso_escape_detection is
88 nonzero, ignore ISO2022's escape sequence.
89
d5aa31d8
GM
902000-07-14 Gerd Moellmann <gerd@gnu.org>
91
e5acf0ca
GM
92 * alloca.c (malloc) [emacs]: Define as xmalloc.
93
bd23a692
GM
94 * xfns.c (Fx_show_tip): If frame parameters contain a position,
95 use that instead of the mouse position. Add parameters DX and DY.
96
97 * dispextern.h (Fx_show_tip): Adjust number of parameters
98 in prototype.
99
9662da0b
GM
100 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
101 if HELP is a function, call it with OBJECT and POS as parameters
102 to get the help to display.
103 (gen_help_event, kbd_buffer_store_help_event): New functions.
104 (kbd_buffer_get_event): Construct the Lisp help-event differently.
105 (read_char): Call show_help_echo with new parameters.
106
178c5d9c 107 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
108 Add prototypes.
109
110 * xterm.c (help_echo_object, help_echo_pos): New variables.
111 (note_mode_line_highlight): Store additional information about the
112 help-echo in help_echo_object and help_echo_pos. Check both
113 `local-map' and `keymap' properties for changing the cursor
114 (note_mouse_highlight): Store additional information about the
115 help-echo in help_echo_object and help_echo_pos.
116 (note_tool_bar_highlight): Set help_echo_object to nil and
117 help_echo_pos to -1.
118 (XTread_socket): Use gen_help_event instead of filling
119 input_events manually.
120 (syms_of_xterm): Staticpro help_echo_object.
121
122 * xmenu.c (menu_highlight_callback): Use
123 kbd_buffer_store_help_event instead of setting up and input_event
124 structure manually.
125
126 * xdisp.c (eval_form): GCPRO argument sexpr.
127 (call_function): New function.
128 (handle_single_display_prop): Use call_function and FUNCTIONP
129 instead of checking whether if font_height is a symbol and
130 using eval_form.
131
132 * eval.c (internal_condition_case_2): New function.
133
134 * lisp.h (FUNCTIONP): New macro.
135 (internal_condition_case_2, call_function): Add prototypes.
136
d5aa31d8
GM
137 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
138 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
139 Always set `arg' member of input_events.
140 (construct_menu_click): Unused function removed.
141
142 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
143
144 * w32term.c (construct_mouse_click, construct_mouse_wheel)
145 (construct_drag_n_drop, x_scroll_bar_handle_click)
146 (w32_read_socket): Always set `arg' member of input_events.
147
148 * keyboard.c (show_help_echo): Use eval_form. Add comment.
149
150 * lisp.h (eval_form): Add prototype.
151
152 * xdisp.c (eval_form): Make it externally visible.
153
0f1a9b23
GM
1542000-07-13 Gerd Moellmann <gerd@gnu.org>
155
156 * xterm.c (x_handle_tool_bar_click): Store the frame in the
157 frame_or_window slot of TOOL_BAR_EVENT input events instead of
158 consing. For prefix events, store the frame in the `arg' slot of
159 the event, otherwise store the key there.
160 (XTread_socket): Instead of consing, use the frame_or_window slot
161 of HELP_EVENTs for the frame, and the `arg' slot for the help
162 string.
163
164 * xmenu.c (menu_highlight_callback): Store help string in the
165 `arg' member of the input event; don't cons.
166 (menubar_selection_callback): Use the `arg' slot of input events
167 to queue additional information, instead of consing.
168
169 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
170
171 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
172 TOOL_BAR_EVENTs.
173 (w32_read_socket): Adapt to changes in HELP_EVENTs.
174
175 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
176 input events to queue additional information, instead of consing.
177
178 * keyboard.c (kbd_buffer_gcpro): Renamed from
179 kbd_buffer_frame_or_window. Now used for all Lisp objects
180 referenced from the input queue.
181 (kbd_buffer_store_event): Always use structure assignment for
182 copying input events. Record all Lisp objects referenced from
183 events in kbd_buffer_gcpro.
184 (kbd_buffer_get_event): Construct Lisp `help-echo' events
185 differently from input events. Test for prefix menu_bar_events
186 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
187 event in kbd_buffer_gcpro to nil.
188 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
189 frame_or_window is equal to its arg member as prefix events.
190 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
191 used by an input event to nil.
192 (init_keyboard): Use two times the size of the input queue
193 for kbd_buffer_gcpro.
194 (syms_of_keyboard): Likewise.
195
196 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
197 USER_SIGNAL_EVENT.
198
199 * termhooks.h (struct input_event): Add member `arg'.
200 (MENU_BAR_EVENT): Renamed from menu_bar_event.
201 (USER_SIGNAL_EVENT): Renamed from user_signal.
202
203 * xfaces.c (ASET): Remove definition.
204
205 * lisp.h (AREF, ASET, ASIZE): New macros.
206
207 * fontset.c (AREF, ASIZE): Remove definitions.
208
209 * fns.c (AREF): Remove definition.
178c5d9c 210
0f1a9b23
GM
211 * composite.c (AREF): Remove definition.
212
712eaef2
GM
2132000-07-12 Gerd Moellmann <gerd@gnu.org>
214
d8ee7803
GM
215 * dispnew.c (redraw_overlapped_rows): Add missing local.
216 (scrolling_window): Remove debug code.
217
712eaef2
GM
218 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
219 Before scrolling, turn off a mouse-highlight in the window
220 being scrolled.
221
222 * xterm.c (x_update_window_end): Add parameter
223 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
224 redisplay in XTframe_up_to_date.
225 (x_clear_mouse_face): New function.
226 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
227
228 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
229 current glyph row.
230 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
231 it when any row is written to that contains glyphs highlighted in
232 mouse-face.
233 (update_window): Call the window update end hook with new
234 parameter MOUSE_FACE_OVERWRITTEN_P.
235 (direct_output_for_insert): Give up if row contains mouse-face.
236
237 * dispextern.h (struct redisplay_interface): Add parameter
238 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
239 (clear_mouse_face): New function pointer member.
240
02010917
SM
2412000-07-11 Stefan Monnier <monnier@cs.yale.edu>
242
243 * syntax.c (back_comment): Use one switch rather than a few `if's.
244 Obey open_paren_in_column_0_is_defun_start.
245 When reverting to the `slow' method, try to nicely handle the case
246 of nested comments by checking that the comment-starter we found
247 does indeed match the comment-ender.
248 (scan_sexps_forward, scan_sexps_forward):
249 Ignore excessive opening parenthesis rather than throwing an error.
250
d76c03ea
GM
2512000-07-11 Gerd Moellmann <gerd@gnu.org>
252
253 * doc.c (Fsubstitute_command_keys): Handle case that a GC
254 in Fwhere_is_internal or get_keymap_1 relocates string contents.
255
256 * dispnew.c (direct_output_forward_char): Give up if currently
257 displaying a message instead of the minibuffer contents.
258
259 * xterm.c (x_update_window_begin): No need to turn off the mouse
260 highlight here.
261 (show_mouse_face): Set the mouse_face_p flag of glyph rows
262 depending on whether they contain glyphs highlighted in
263 mouse-face.
264
265 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
266 compare the mouse_face_p flags of both rows.
267
268 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
269
d55ead18
EZ
2702000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
271
272 * keyboard.c (show_help_echo): Accept additional parameter
273 ok_to_overwrite_keystroke_echo.
274 (read_char): Call show_help_echo with a zero
275 ok_to_overwrite_keystroke_echo argument.
276 * keyboard.h (show_help_echo): Update prototype of
277 show_help_echo.
278 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
279 ok_to_overwrite_keystroke_echo argument.
280 * w32menu.c (w32_menu_display_help): Call show_help_echo with
281 non-zero ok_to_overwrite_keystroke_echo argument.
282
df75b1a3
GM
2832000-07-10 Gerd Moellmann <gerd@gnu.org>
284
4b92c49a
GM
285 * xdisp.c (try_window_id): If changes are all below what is
286 displayed in the window, and point is in the window, we still
287 might have to find point on the display.
288
289 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
290 glyphs instead of a single one.
291 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
292 with new argument list.
293 (x_set_glyph_string_gc): Make sure the face's GC is valid.
294
df75b1a3
GM
295 * keymap.c (get_keymap_1): Add comment that this function can GC.
296 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
297 comment that functions can GC.
298 (Fset_keymap_parent): GCPRO arg KEYMAP.
299
4314cf3e
EZ
3002000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
301
302 * msdos.c (XMenuActivate): After exiting the menu, restore the
303 echo area message and erase it.
304
ab49ce15
KH
3052000-07-10 Kenichi Handa <handa@etl.go.jp>
306
307 * fontset.c (Ffontset_info): Make the return value more compatible
308 with that of Emacs 20.
309
090a072f
GM
3102000-07-07 Gerd Moellmann <gerd@gnu.org>
311
312 * eval.c (Fsignal): Handle case that backtrace_list is null.
313
f92de4a6
KH
3142000-07-07 Kenichi Handa <handa@etl.go.jp>
315
316 * ccl.c (Fccl_execute): Typo fixed.
317
dd8888a1
GM
3182000-07-06 Gerd Moellmann <gerd@gnu.org>
319
e5c81191 320 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 321
dd8888a1
GM
322 * window.c (Fwindow_list): Reverse list at the end.
323 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
324 means allow windows on OWINDOW's frame, only.
325 (window_loop): Simplified; use Fwindow_list.
326
327 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
328
485266d0
GM
3292000-07-05 Gerd Moellmann <gerd@gnu.org>
330
331 * xterm.c (XTread_socket): Increment handling_signal at the start,
332 decrement it at the end.
333
334 * eval.c (handling_signal): New variable.
335 (Fsignal): Abort if handling_signal is non-zero.
336
337 * lisp.h (handling_signal): External declaration.
178c5d9c 338
485266d0
GM
339 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
340
80fcd514
KR
3412000-07-05 Ken Raeburn <raeburn@gnu.org>
342
343 Sound support for NetBSD through "Linux emulation" support:
344 * config.in (HAVE_SOUNDCARD_H): Undef.
345 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
346 * Makefile.in (LIBSOUND): New variable.
347 (LIBES): Include it.
348 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
349 <soundcard.h>.
350 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
351 elsewhere.
352 (vox_open): Use DEFAULT_SOUND_DEVICE.
353 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
354
d5c5cddd
GM
3552000-07-05 Gerd Moellmann <gerd@gnu.org>
356
357 * print.c (print_error_message): If Vsignaling_function is set,
358 show it in *Messages*.
359
360 * lisp.h (Vsignaling_function): External declaration.
361
362 * eval.c (Vsignaling_function): New variable.
363 (Fsignal): Compute it.
364 (syms_of_eval): Staticpro it.
365
65171e3a
DL
3662000-07-05 Dave Love <fx@gnu.org>
367
368 * syswait.h: Use the autoconf recommended approach. Old code
369 #if'd out in case we need to revert.
370
178c5d9c 371 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 372
e2c46326
AI
3732000-07-05 Andrew Innes <andrewi@gnu.org>
374
375 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
376 when non-NULL instead of __morecore, to take account of buffer
377 memory. This also solves a problem with spurious memory warnings
378 on Windows.
379
380 * ralloc.c: Make real_morecore non-static.
381
382 * eval.c (internal_condition_case): Comment out abort if
383 interrupt_input_blocked is not zero.
384
385 * makefile.nt: Add support for `bootstrap' and related targets.
386 Include minimal debug info in emacs.exe in release build.
387 Remove all dependencies on lisp.h, and fixup some others.
388
389 * w32.c (init_environment): Install code from 20.7 for providing
390 default values for environment variables, based on the
391 executable's own location.
392 (map_w32_filename): Handle filenames that are longer than
393 MAX_PATH.
394 (sys_socket): Install socket inheritance bug fix from 20.7.
395
396 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
397 here via blockinput.h).
398
a027a91b
SM
3992000-07-05 Stefan Monnier <monnier@cs.yale.edu>
400
e4b31601
SM
401 * w32menu.c (w32_menu_display_help):
402 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
403
404 * keyboard.h (show_help_echo): Declare.
405
406 * keyboard.c (show_help_echo): New function, extracted from read_char.
407 Feval its `msg' argument if it's a cons cell.
408 (read_char): Use it.
4cf8d9d5 409 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 410
178c5d9c 411 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 412 (note_tool_bar_highlight, XTread_socket):
178c5d9c 413 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
414 (dos_rawgetc):
415 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
416 (note_tool_bar_highlight, w32_read_socket):
417 Do not gratuitously ignore non-string `help-echo' properties.
418
88d75730
GM
4192000-07-05 Gerd Moellmann <gerd@gnu.org>
420
969f7e79
GM
421 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
422
71201b00
GM
423 * window.c (delete_all_subwindows): Reset Vwindow_list.
424
88d75730
GM
425 * xterm.c (x_append_glyph, x_append_composite_glyph)
426 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
427 changes in struct glyph starting 1999-12-27. Some bit-fields of
428 struct glyph were not set, which made glyphs unequal when compared
429 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
430 effects were the result. This also depended on the contents of
431 memory returned by xmalloc. If flickering happens again, activate
432 the code in clear_glyph_row that's in #if 0. If the flickering is
433 gone with that, chances are that it is caused by something
434 similar.
435
436 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 437
88d75730
GM
438 * dispextern.h: Add some comments.
439
440 * window.c (add_window_to_list): Add parameter LIST.
441 (window_list): Order list so that, for each frame, windows are
442 in canonical order, and so that frames appear in the list in
443 the order given by Vframe_list.
444 (next_window): Reverse the handling of NEXT_P.
445
53654733
GM
4462000-07-04 Gerd Moellmann <gerd@gnu.org>
447
87efd256
GM
448 * window.c (Vwindow_list): New variable.
449 (make_window, delete_window): Set Vwindow_list to nil.
450 (check_window_containing): New function.
451 (window_from_coordinates): Rewritten.
452 (add_window_to_list, window_list, candidate_window_p)
453 (decode_next_window_args, next_window): New functions.
454 (Fnext_window, Fprevious_window): Rewritten in terms of
455 next_window.
456 (Fwindow_list): New function.
457 (Fother_window): Cleaned up.
458 (foreach_window): Add a longer "variable argument list". Let
459 callback function return 0 to indicate that cycling over windows
460 should stop.
461 (foreach_window_1): Likewise.
462 (freeze_window_start): Return int.
463 (init_window): New function.
464 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
465
466 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
467 input_event with bzero.
468 (main): Call init_window.
469
53654733
GM
470 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
471 a menu filter.
472
4a8c194f
KH
4732000-07-04 Kenichi Handa <handa@etl.go.jp>
474
475 * composite.h (make_composition_value_copy): Extern it.
476
477 * composite.c (make_composition_value_copy): New function.
478
479 * editfns.c (Fformat): While copying text properties, make each
480 composition property value a copy.
481
482 * fns.c (concat): While copying text properties, make each
483 composition property value a copy.
484
831a6cb0
GM
4852000-07-03 Gerd Moellmann <gerd@gnu.org>
486
2f516940
GM
487 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
488
178c5d9c 489 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
490 marked already.
491
831a6cb0
GM
492 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
493 include those frames as candidates which have their focus
494 redirected to the minibuffer frame.
495
d9c4f922
SM
4962000-07-03 Stefan Monnier <monnier@cs.yale.edu>
497
498 * fns.c (Fputhash): Return `value' rather than nil.
499
3780bc22
GM
5002000-06-30 Gerd Moellmann <gerd@gnu.org>
501
97d176db
GM
502 * frame.c (next_frame): Don't check focus redirection in case
503 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
504 unless their focus is redirected, which contradicts the
505 specification of next-frame, and leads to infinite loops in
506 certain situations when cycling through windows with next-window.
507
dca9961d
KH
5082000-06-30 Kenichi Handa <handa@etl.go.jp>
509
510 * coding.c (code_convert_region): Even if the length of text is
511 zero, try to convert it if coding->type is coding_type_ccl.
512 (decode_coding_string, encode_coding_string): Likewise.
513
d5483ab1
GM
5142000-06-28 Gerd Moellmann <gerd@gnu.org>
515
af5c25e1 516 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 517 the display if windows_or_buffers_changed.
af5c25e1
GM
518
519 * dispnew.c (struct row_entry): New structure.
520 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
521 (row_table_size, old_lines, new_lines, old_lines_size)
522 (new_lines_size, run_pool, runs_size, runs): New variables.
523 (add_row_entry): New function.
524 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 525 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
526 holding them in local variables. Use a larger hash table whose
527 size depends on glyph matrix sizes. Don't use bzero to clear the
528 hash table; instead, clear used slots only.
529
530 * fns.c (next_almost_prime): Make it externally visible.
531
532 * lisp.h (next_almost_prime): Add prototype.
533
d5483ab1
GM
534 * s/isc4-0.h (sigunblock): Define.
535
536 * s/sco5.h (sigunblock): Define.
537
93e40f40
DL
5382000-06-27 Dave Love <fx@gnu.org>
539
540 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
541 (moved to osf5-0.h).
542 [!NOT_C_CODE]: Protect string.h stuff.
543
544 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
545 (sys_siglist, NSIG): Definitions moved here from osf1.h.
546
3c4b7685
GM
5472000-06-27 Gerd Moellmann <gerd@gnu.org>
548
97d176db 549 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
550 below the last line from the needed window height.
551
32cad0aa
SM
5522000-06-26 Stefan Monnier <monnier@cs.yale.edu>
553
554 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
555 (Fwidget_get): Use it.
556 (syms_of_fns): Defsubr it.
557
2c69ced2
GM
5582000-06-26 Gerd Moellmann <gerd@gnu.org>
559
178c5d9c 560 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
561 display info for XIM.
562 (xim_open_dpy): Likewise.
563 (xim_close_dpy): Don't free the display info's XIM.
564
565 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
566
567 * config.in (USE_XIM): New define.
568
3fc720e4
GM
569 * keymap.c (get_keyelt): For menu-items containing a `:filter
570 FILTER', apply FILTER to the menu-item's definition to get the
571 real definition to use.
572
573 * lisp.h (QCfilter): External declaration.
574
2c69ced2
GM
575 * xfns.c (Fimage_size): New function.
576 (syms_of_xfns): Defsubr it.
577
f978b2a2
AS
5782000-06-26 Andreas Schwab <schwab@suse.de>
579
580 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
581 Fstring_as_unibyte.
582
94cc7892
DL
5832000-06-25 Dave Love <fx@gnu.org>
584
585 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
586 tgetnum.
587
588 * Makefile.in (blockinput.h): Depend on atimer.h.
589 (atimer.h): Depend on systime.h.
590
591 * blockinput.h: Protect against multiple inclusion. Include
592 atimer.h.
593
594 * atimer.h: Protect against multiple inclusion. Include
595 systime.h.
596
597 * lisp.h (swap_in_global_binding): Declare.
598
b8c24556
KR
5992000-06-24 Ken Raeburn <raeburn@gnu.org>
600
601 * process.c (Fopen_network_stream): Turn off atimers for duration
602 of call to connect. (Patch from Gerd.)
603
8cf8560b
DL
6042000-06-23 Dave Love <fx@gnu.org>
605
511c7541
DL
606 * ralloc.c: Maybe include unistd.h
607
8cf8560b
DL
608 * emacs.c (setgrp): Undefine before defining.
609 (malloc_warning, set_time_zone_rule, index): Prototype.
610
611 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
612 HAVE_STRUCT_TIMEZONE.
613
614 * s/osf1.h: Move string.h hack here from alpha.h and make it
615 conditional.
616 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
617 _XOPEN_SOURCE.
618 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
619 (SOCKLEN_TYPE): Don't define.
620
621 * m/alpha.h: Remove string.h hack.
622
623 * s/osf5-0.h: New file.
624
625 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
626 include time.h, done by systime.h.
627 [__FreeBSD__]: Remove redundant includes.
628
3fc720e4 629 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
630 (delete_temp_file): Return Qnil to avoid warning.
631
632 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
633
634 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
635 HAVE_X_WINDOWS.
636
637 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
638
639 * composite.h (compose_text): Declare.
640
641 * xterm.c: Don't include sys/types.h unconditionally. Don't
642 protect its inclusion with !USG (following xmenu.c).
643
ea055732
GM
6442000-06-23 Gerd Moellmann <gerd@gnu.org>
645
646 * xfns.c (x_create_tip_frame): Initialize frame's colors like
647 in x_create_frame.
648
74b01b80
EZ
6492000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
650
651 * coding.c (decode_eol_post_ccl): Special handling for undecided
652 and inconsistent EOL types.
653
64f3a166
GM
6542000-06-22 Gerd Moellmann <gerd@gnu.org>
655
16cf31f7
GM
656 * xrdb.c (x_load_resources): Add default resource for scroll bar's
657 trough color and main window's background color.
658
178c5d9c 659 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
660 differently.
661
662 * xterm.h (Xt_app_con): External declaration.
663
664 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 665
486a103d
GM
666 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
667
64f3a166
GM
668 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
669 (handle_invisible_prop): Record the start of invisible text in
670 it->add_overlay_start.
671 (struct overlay_entry): Add member `overlay'.
672 (handle_overlay_change): Simplify.
673 (next_overlay_string): After having processed overlay strings at the
674 end of the buffer, record that fact in
675 it->overlay_strings_at_end_processed_p.
676 (compare_overlay_entries): If before- and after-strings come
677 from the same overlay, let before-strings come first.
678 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
679 (load_overlay_strings): Take it->add_overlay_start into account
680 when adding overlay strings.
681
682 * dispextern.h (struct it): Add member add_overlay_start.
683
bb746ea6
DL
6842000-06-22 Dave Love <fx@gnu.org>
685
686 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
687
688 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
689
a8f573f3
KH
6902000-06-22 Kenichi Handa <handa@etl.go.jp>
691
692 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
693 is greater than 0.
694
9f2bbc92
DL
6952000-06-21 Dave Love <fx@gnu.org>
696
178c5d9c 697 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 698
3ee5041c
SM
6992000-06-21 Stefan Monnier <monnier@cs.yale.edu>
700
701 * syntax.c (back_comment): Simplify string-parity counting (with
702 the added benefit of handling multiple string-styles as long as
703 they are not intertwined).
704 Jump to the slow code as soon as a comment starter is found in
705 a "string_lossage" position. Fixes the case: " /* " /* " */.
706
4c343001
DL
7072000-06-21 Dave Love <fx@gnu.org>
708
709 * Makefile.in: Use GETLOADAVG_LIBS.
710
711 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
712 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
713
e6365855
SM
7142000-06-20 Stefan Monnier <monnier@cs.yale.edu>
715
716 * syntax.c (describe_syntax): Recognize the `n'estable bit.
717 (Fforward_comment, scan_lists):
718 Check the comstyle of single-char comment-starters.
719 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
720 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
721 Check the comstyle of single-char comment-starters.
722 Clarify control-flow around the Scomment case.
e6365855 723
5700d2cc
DL
7242000-06-20 Dave Love <fx@gnu.org>
725
d355bd8a
SM
726 * fns.c (make_hash_table, maybe_resize_hash_table):
727 Cast arg of next_almost_prime.
5700d2cc 728
178c5d9c 729 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
730
731 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
732 and unistd.h.
733
4a27bdfb
GM
7342000-06-20 Gerd Moellmann <gerd@gnu.org>
735
a61d762c
GM
736 * keyboard.c (adjust_point_for_property): Check if display
737 property should be treated as intangible by looking at its
738 value.
739
178c5d9c 740 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
741 (display_prop_intangible_p): New functions.
742
743 * dispextern.h (display_prop_intangible_p): Add prototype.
744
745 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 746
4a27bdfb
GM
747 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
748 argument to sigprocmask.
749
750 * s/sco5.h (sigblock): Redefined to pass a pointer as second
751 argument to sigprocmask.
752
753 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
754 sigprocmask_set, and pass a pointer to it to sigprocmask.
755
756 * sysdep.c (sigprocmask_set): New variable.
757
758 * fileio.c (make_temp_name): Don't use `%s' in string passed to
759 report_file_error.
760
427ec082
SS
7612000-06-20 Sam Steingold <sds@gnu.org>
762
763 * xrdb.c: Don't declare xmalloc, xrealloc.
764
8972fe79 7652000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
766
767 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
768 (re_comp): Cast gettext return value to avoid complaints when
769 !HAVE_LIBINTL.
770
074b6efe
DL
7712000-06-20 Dave Love <fx@gnu.org>
772
f85c008a
DL
773 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
774 HAVE_GETTIMEOFDAY.
775
5700d2cc 776 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 777
d355bd8a 778 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
779
780 * m/alpha.h: Don't declare xmalloc, xrealloc.
781
0af4f205
DL
782 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
783
784 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
785
786 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
787
788 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
789 HAVE_GETWD.
790
074b6efe
DL
791 * keyboard.h (poll_for_input_1): Declare.
792
793 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
794
795 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
796
797 * doprnt.c: Don't declare xmalloc, xrealloc.
798
799 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
800 (getenv, ctime, getwd): Removed.
801 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
802
803 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
804 x_set_tool_bar_lines.
805
806 * config.in: Add HAVE_GETWD. Move some definitions above
807 machine/system includes.
808
68a5e97b
KH
8092000-06-20 Kenichi Handa <handa@etl.go.jp>
810
95417e1e
KH
811 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
812
68a5e97b
KH
813 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
814 contain information about ENCODING.
815
816 * fontset.c (FONTSET_ASCII): Use the first element of char table
817 for an ASCII font, not defalt slot.
818 (fontset_ref_via_base): If FONTSET doesn't contain information for
819 C, try the default fontset.
820 (make_fontset): Don't copy the default fontset.
821 (fontset_font_pattern): Likewise.
822 (accumulate_font_info): If ELT is nil, use the corresponding
823 element in the default fontset.
824
3b4fa1b2
DL
8252000-06-19 Dave Love <fx@gnu.org>
826
943e731c
DL
827 * syntax.c (Fparse_partial_sexp): Doc fix.
828
829 * regex.h: Test PROTOTYPES as well as __STDC__.
830
3b4fa1b2
DL
831 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
832 errno, strerror. Put text after #endif in comment.
833
834 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
835 pcc).
836
837 * xterm.c (x_frame_of_widget): Likewise.
838
cdf0357b
GM
8392000-06-19 Gerd Moellmann <gerd@gnu.org>
840
841 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
842 to Vfundamental_mode_abbrev_table.
843
844 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
845 bogus objects are marked. This slows down GC by ~80 percent, but
846 it might be worth trying when debugging GC-related problems.
847 This feature requires conservative stack marking to be enabled.
848
849 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
850 returns XLookupChars, reset `modifiers' to zero.
851
998e9f8c
DL
8522000-06-19 Dave Love <fx@gnu.org>
853
854 * mktime.c: Unprotoized.
855
d1504184
GM
8562000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
857
858 * data.c (set_internal): If variable is frame-local,
859 store the new value immediately into the frame parameter alist.
860
140c4ac6
KR
8612000-06-19 Ken Raeburn <raeburn@gnu.org>
862
14358466
KR
863 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
864 in the custom handler pointer.
865
140c4ac6
KR
866 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
867 value, or checks for CHAR_META can fail when Lisp_Object is a
868 union type.
869 * keymap.c (get_keyelt): Likewise.
870
10d7bf84
KH
8712000-06-19 Kenichi Handa <handa@etl.go.jp>
872
873 * ccl.h (struct ccl_program): New member eol_type.
874 (struct ccl_spec): New member cr_carryover.
875
876 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
877 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
878
879 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
880 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
881 (decode_eol_post_ccl): New function.
882 (decode_coding): Don't detect EOL format here for CCL based coding
883 systems.
884 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
885 decode_eol_post_ccl after running the CCL program.
886 (code_convert_region): Don't detect EOL format here for CCL based
887 coding systems.
888 (decode_coding_string): Likewise.
889
52e386c2
KR
8902000-06-18 Ken Raeburn <raeburn@gnu.org>
891
892 * charset.c (update_charset_table): Use XINT on "iso_final_char"
893 when treating it as an integer.
894
895 * coding.h (encode_coding_string): Declare.
896
897 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
898 it as an integer.
899
900 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
901 "xkeymap" to avoid shadowing the "enum map_type" value that needs
902 to be passed to get_local_map.
903
904 * sound.c (Fplay_sound): Don't call make_number on
905 Frun_hook_with_args count argument.
906
907 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
908 for lisp objects in X event structure data field, when lisp
909 objects are represented with unions.
910 (x_scroll_bar_to_input_event): Ditto.
911
b357b9d4
KR
9122000-06-16 Ken Raeburn <raeburn@gnu.org>
913
914 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
915 termination of string. Fix sense of test whether
916 Vline_number_display_limit is an integer.
b357b9d4 917
a871441d
GM
9182000-06-16 Gerd Moellmann <gerd@gnu.org>
919
a9021acd
GM
920 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
921 only if HAVE_X_WINDOWS.
922
6344985d
GM
923 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
924 of titles.
925
427ec082 926 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
927 out of bounds.
928
228b083e
EZ
9292000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
930
931 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
932 of its headers.
933
c25b53a2
KH
9342000-06-15 Kenichi Handa <handa@etl.go.jp>
935
936 * coding.c (decode_coding_emacs_mule): Always set src_base at the
937 start of the while loop.
938
a6981b11
GM
9392000-06-15 Gerd Moellmann <gerd@gnu.org>
940
e9924e52
GM
941 * atimer.c (alarm_signal_handler): Add forward declaration.
942
a6981b11
GM
943 * data.c (set_internal): Remove debug code.
944
25fa6deb
GM
9452000-06-14 Gerd Moellmann <gerd@gnu.org>
946
dce6b995
GM
947 * Makefile.in (bootstrap-temacs): Add `-I../src'.
948
9f817ea4
GM
949 * unexec.c (toplevel) [COFF]: Include coff.h.
950
951 * s/lynxos.h: New file.
952
953 * keymap.c (Fsingle_key_description): Enclose function key and
954 event symbol names in angle brackets.
955
8a4e3c0c
GM
956 * xdisp.c (setup_echo_area_for_printing): Call
957 message_log_maybe_newline if message_buf_print is not set.
958
959 * print.c (printchar, strout): Don't check message_buf_print
427ec082 960 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
961 function does something useful even when message_buf_print is
962 already set.
963
25fa6deb
GM
964 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
965 variables.
966 (ensure_echo_area_buffers): Initialize echo buffer's
967 truncate lines setting to nil.
968 (with_echo_area_buffer): Don't set the echo buffer's truncate
969 lines setting here.
8a4e3c0c 970 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
971 of message_truncate_lines.
972 (resize_mini_window): Handle case that lines are truncated.
973 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
974 message-truncate-lines.
975
976 * keyboard.c (read_char): Bind message-truncate-lines to t
977 while displaying a help-echo.
978
979 * lisp.h (Qmessage_truncate_lines): External declaration.
980
163dcff3
GM
9812000-06-13 Gerd Moellmann <gerd@gnu.org>
982
1681ead6
GM
983 * xdisp.c (Vline_number_display_limit): Renamed from
984 line_number_display_limit.
985 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
986 Extend documentation string. Initialize
987 Vline_number_display_limit to nil meaning no limit.
988 (decode_mode_spec): Use Vline_number_display_limit with its new
989 meaning.
990
163dcff3
GM
991 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
992
9932000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
994
995 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 996
163dcff3
GM
997 * xfns.c (x_set_frame_parameters): Comment fix.
998
999 * frame.c (store_frame_param): Call swap_in_global_binding if the
1000 variable's current binding was chosen based on this frame.
1001
1002 * data.c (swap_in_global_binding): New function.
1003
a704139d
EZ
10042000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1005
1006 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1007 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1008
9b6610db
EZ
10092000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1010
1011 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1012
c68833d2
JR
10132000-06-12 Jason Rumney <jasonr@gnu.org>
1014
1015 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1016
1017 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1018
1019 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1020
1021 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1022
ed1056b3
GM
10232000-06-12 Gerd Moellmann <gerd@gnu.org>
1024
1025 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1026 (syms_of_xfaces): Defsubr Sdump_colors.
1027 (x_free_colors): Don't treat b&w specially on default visual.
1028 (x_free_dpy_colors): New function.
1029 (free_face_colors): Don't check visual class; it's done
1030 in x_free_colors.
1031
1032 * xterm.c (x_frame_of_widget): New function.
1033 (x_alloc_nearest_color_for_widget): Use it.
1034 (x_copy_dpy_color): New function.
1035 (x_destroy_window): Free various colors.
1036
5050a2ef
KH
10372000-06-12 Kenichi Handa <handa@etl.go.jp>
1038
1039 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1040
1041 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1042
1043 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1044
1045 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1046
1047 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1048
fb1b041d
DL
10492000-06-11 Dave Love <fx@gnu.org>
1050
1051 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1052
ff96b5f4
EZ
10532000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1054
1055 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1056
db8eeecd
GM
10572000-06-11 Gerd Moellmann <gerd@gnu.org>
1058
ed1056b3 1059 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
1060 to `XEvent *'.
1061
49b71c5f
KH
10622000-06-10 Kenichi Handa <handa@etl.go.jp>
1063
c479bd55
KH
1064 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1065 (regex_compile): Fix the code for handling the case of single byte
1066 char and multibyte char being mixed in a range within [...].
1067
ff6a65c2
KH
1068 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1069 and dst_multibyte members of coding.
1070
49b71c5f
KH
1071 * charset.c (update_charset_table): Update the table
1072 bytes_by_char_head.
1073 (init_charset_once): Initialize elements of bytes_by_char_head to
1074 1 except for leading codes for private charases.
1075
1076 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1077 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1078 sequence.
1079
9e80b57d
KR
10802000-06-09 Ken Raeburn <raeburn@gnu.org>
1081
1082 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1083 access the data it doesn't point to.
1084
f83fe4b4
GM
10852000-06-08 Gerd Moellmann <gerd@gnu.org>
1086
1087 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1088 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1089 event queue. This is necessary because Emacs otherwise won't
1090 perform a switch-frame to a new frame until some other event, for
1091 example a keystroke event, forces it to do so. This has various
1092 effects, one visible being that the cursor of a frame created with
1093 C-x 5 2 or switched to with a window manager key binding like
1094 A-TAB stays hollow because selected_window isn't on the newly
1095 focused frame until the switch-frame is performed.
1096
1097 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1098 generating a switch-frame event if necessary.
1099
1100 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1101
1102 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1103 it's an integer.
1104
0890801b
KH
11052000-06-08 Kenichi Handa <handa@etl.go.jp>
1106
1107 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1108 charset.
1109
173cbca8
GM
11102000-06-07 Gerd Moellmann <gerd@gnu.org>
1111
3091c2a6
GM
1112 * window.c (displayed_window_lines): Take empty lines at
1113 the bottom of a window into account.
427ec082 1114
f38952fe
GM
1115 * window.c (displayed_window_lines): New function.
1116 (Fmove_to_window_line): Use displayed_window_lines to determine
1117 the number of lines to move, instead of using the window's height.
1118
1119 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1120 to stop reading, even if the form read sets point to a different
1121 value when evaluated.
1122
427ec082 1123 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1124 put the cursor.
1125
6ba6c818
KH
11262000-06-07 Kenichi Handa <handa@etl.go.jp>
1127
1128 * fileio.c (e_write): Free composition data if stored in
1129 coding->cmp_data.
1130
5f1aea9a
GM
11312000-06-06 Gerd Moellmann <gerd@gnu.org>
1132
666852af
GM
1133 * xdisp.c (display_line): Set row's and iterator's
1134 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1135 Set cursor even if row ends in the middle of a character.
1136 (dump_glyph_row): Print values of new flags.
1137 (redisplay_window) <cursor movement in unchanged window>: When
1138 point has been moved forward, and PT is at the end of the cursor
1139 row, don't place the cursor in the next row if the cursor row ends
1140 in the middle of a character or at ZV.
1141
1142 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1143 (struct glyph_row): Add starts_in_middle_of_char_p and
1144 ends_in_middle_of_char_p.
1145 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1146 ends_in_middle_of_char_p flag.
1147 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1148
d13f3e2e
GM
1149 * term.c (append_glyph): Revert change of 2000-06-06.
1150
1151 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1152 padding glyph not fitting on line as whole character not
1153 fitting on line.
1154
5f1aea9a
GM
1155 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1156 this isn't true for images with `:ascent 100'.
1157
10cda9b0
KH
11582000-06-06 Kenichi Handa <handa@etl.go.jp>
1159
ed00559d
KH
1160 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1161 as modified if it is originally unmodified.
1162
10cda9b0
KH
1163 * term.c (encode_terminal_code): Change the way to check if
1164 terminal coding does any conversion.
1165 (append_glyph): Set glyph->pixel_width correctly.
1166
1167 * xdisp.c (display_line): While checking line continuation, pay
1168 attention to a padding glyph.
1169
1969fae2
GM
11702000-06-05 Gerd Moellmann <gerd@gnu.org>
1171
1172 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1173
162ccef4
DL
11742000-06-05 Dave Love <fx@gnu.org>
1175
f19f32dd
DL
1176 * xdisp.c: Include fontset.h.
1177
1178 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1179
1180 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1181
1182 * dispnew.c: Conditionally include term.h.
1183
1184 * coding.h: Declare code_convert_string_norecord.
1185
1186 * frame.h (struct frame): Use volatile unconditionally.
1187
1188 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1189
1190 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1191
1192 * systime.h: Protect against multiple inclusion.
1193 (timezone) [USG5_4]: Define as time_t.
1194
1195 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1196 (Foptimize_char_table, make_temp_name): Declare.
1197
1198 * Makefile.in (xdisp.o): Depend on fontset.h.
1199
1200 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1201
1202 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1203 (Foptimize_char_table, make_temp_name): Declare.
1204
427ec082 1205 * s/irix4-0.h:
162ccef4
DL
1206 * s/irix5-0.h:
1207 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1208
2082fe81
DL
12092000-06-02 Dave Love <fx@gnu.org>
1210
1211 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1212
dcf671d2
GM
12132000-06-02 Gerd Moellmann <gerd@gnu.org>
1214
1215 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1216 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1217 be freed.
1218
1219 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1220 glyph, use the ASCII NUL character to determine the face.
1221
d42122a3
DL
12222000-06-02 Dave Love <fx@gnu.org>
1223
1224 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1225 (VFORK_RETURN_TYPE): Remove.
427ec082 1226
d42122a3
DL
1227 * config.in: Add NO_MATHERR.
1228
dd432f16
DL
12292000-06-01 Dave Love <fx@gnu.org>
1230
90aa4ea8
DL
1231 * cmds.c (internal_self_insert): Don't check
1232 Vbefore_change_function, Vafter_change_function.
1233
1234 * insdel.c (signal_before_change, signal_after_change): Likewise.
1235
1236 * buffer.c (Vbefore_change_function, Vafter_change_function):
1237 Variables and their initializations deleted.
1238
2330c9d4
DL
1239 * callint.c (Fcall_interactively): Doc fix.
1240
dd432f16
DL
1241 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1242
bf9e8804
DL
12432000-05-31 Dave Love <fx@gnu.org>
1244
1245 * textprop.c: Revert last change -- duplicated.
1246
3694b4ab
GM
12472000-05-31 Gerd Moellmann <gerd@gnu.org>
1248
1249 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1250 in #if 0.
1251
1252 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1253
f14156cd
JR
12542000-05-31 Jason Rumney <jasonr@gnu.org>
1255
8119aab8
JR
1256 * search.c (Fre_search_forward, Fre_search_backward)
1257 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1258
f14156cd
JR
1259 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1260
4aab9be3
JR
12612000-05-30 Jason Rumney <jasonr@gnu.org>
1262
1263 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1264 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1265
1266 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1267 member.
1268
1269 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1270 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1271 expand a nil default_filename.
1272
1273 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1274 pointer to glyph_to_pixel_coords, not a frame.
1275
1276 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1277 coding.h to dependencies.
1278
1279 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1280
1281 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1282 window pointer to be consistent with w32term.c and xterm.c.
1283
1284 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1285 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1286 (Qline_spacing, Qcenter): New variables.
1287 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1288 (x_set_line_spacing): New function.
1289 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1290 macros.
1291 (x_specified_cursor_type): New function.
1292 (x_set_cursor_type): Use it.
1293 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1294 and icon strings.
1295 (validate_x_resource_name, x_get_resource_string): Measure lengths
1296 of external strings in bytes.
1297 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1298 GetTextExtentPoint32 with NULL title.
1299 (Fx_create_frame): Initialize Qline_spacing.
1300 (w32_load_system_font): Initialize font->double_byte_p.
1301 (x_to_w32_charset): Use Vw32_charset_info_alist.
1302 (Image, busy cursor, tooltip functions): Merged changes from
1303 xfns.c. Not yet functional on Windows.
1304
1305 * w32gui.h (W32FontStruct): Add double_byte_p member.
1306
1307 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1308 (emacs_button_translation): Use it.
1309 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1310 in `mask' to be set.
1311
1312 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1313 menu strings.
1314
1315 * w32term.c: Format and doc changes to bring closer to xterm.c.
1316 (w32_char_font_type): New enum.
1317 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1318 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1319 (w32_encode_char): New function.
1320 (x_encode_char): Removed.
1321 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1322 x_encode_char and w32_font_is_double_byte.
1323 (x_produce_image_glyph): Use image_ascent.
1324 (x_produce_glyphs): Use new version of w32_per_char_metric and
1325 handle NULL return value. Allow extra line spacing.
1326 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1327 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1328 w32_font_type member of glyph instead.
1329 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1330 (fast_find_position): Make sure not to consider rows not visible
1331 in the window.
1332 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1333 w32_menu_display_help with input blocked, as it can abort.
1334 (x_display_and_set_cursor): Choose cursor depending
1335 on buffer-local value of cursor_type.
1336 (x_draw_bar_cursor): Add parameter WIDTH.
1337
1338 * w32term.h (CP_DEFAULT): Define.
1339 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1340
10fc3187
GM
13412000-05-30 Gerd Moellmann <gerd@gnu.org>
1342
1343 * search.c (Fre_search_forward, Fre_search_backward)
1344 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1345
d0555360
KH
13462000-05-30 Kenichi Handa <handa@etl.go.jp>
1347
1348 * coding.c (detect_coding_iso2022): Fix code for checking
1349 CODING_CATEGORY_MASK_ISO_8_2.
1350
f1ad044f
SM
13512000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1352
1353 * regex.c (PREFETCH_NOLIMIT): New function.
1354 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1355
84ec3b4b
GM
13562000-05-29 Gerd Moellmann <gerd@gnu.org>
1357
66254a13
GM
1358 * syntax.c (find_defun_start): Move test for
1359 open_paren_in_column_0_is_defun_start outside of the loop.
1360
49e70dec
GM
1361 * xdisp.c (redisplay_window): Really switch buffers when
1362 displaying mode lines, and temporarily set selected_frame to the
1363 frame of the window that's redisplayed.
1364
84ec3b4b
GM
1365 * xfaces.c (free_realized_faces): Block/unblock input.
1366 (free_realized_multibyte_face): Ditto.
1367
869a3a14
DL
13682000-05-29 Dave Love <fx@gnu.org>
1369
1370 * textprop.c (Qkeymap): New variable.
1371 (syms_of_textprop): Intern it.
1372
1373 * keymap.c: Include intervals.h.
1374 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1375
1376 * Makefile.in (keymap.o): Depend on intervals.h.
1377
1378 * keyboard.c (menu_bar_items, tool_bar_items)
1379 (Fexecute_extended_command): Deal with `keymap' property.
1380 (read_key_sequence): Track map from `keymap' property as well as
1381 `local_map'.
1382
1383 * intervals.c (get_local_map): Extra arg to allow looking for
1384 `keymap' too.
1385
1386 * intervals.h (map_property): New enum.
1387 (get_local_map): Extra arg using it.
1388 (Qkeymap): Declare.
1389
84ec3b4b 1390 * lisp.h (get_local_map): Don't declare here.
869a3a14 1391
89d0c844
KH
13922000-05-29 Kenichi Handa <handa@etl.go.jp>
1393
1394 * Makefile.in (callproc.o): Depend on composite.h.
1395
1396 * callproc.c: Include composite.h.
1397 (Fcall_process): Handle composition correctly.
1398
1399 * coding.h (coding_allocate_composition_data): Extern it.
1400 (coding_restore_composition): Likewise.
1401
1402 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1403 yet allocated, finish decoding with result
1404 CODING_FINISH_INSUFFICIENT_CMP.
1405 (coding_allocate_composition_data): Make it non-static.
1406 (coding_restore_composition): Likewise.
1407
797a084a
EZ
14082000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1409
1410 * charset.c (syms_of_charset): Revert last change.
1411
cf872af5
EZ
14122000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1413
1414 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1415 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1416 Handa.
cf872af5 1417
5b1ae051
EZ
14182000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1419
1420 * charset.c (syms_of_charset): Set width of character sets
1421 eight-bit-control and eight-bit-graphic to 1 column.
1422
34ec9ebe
GM
14232000-05-26 Gerd Moellmann <gerd@gnu.org>
1424
1425 * config.in (HAVE_SPEED_T): New define.
1426
1427 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1428 `extern speed_t'.
1429
dd854dc2
DL
14302000-05-26 Dave Love <fx@gnu.org>
1431
1432 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1433
1434 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1435 (Fsubr_arity): New function.
1436 (syms_of_data): Install them.
1437
ba9f8f95
KH
14382000-05-26 Kenichi Handa <handa@etl.go.jp>
1439
0f3e0672
KH
1440 * charset.c (init_charset_once): Set the table bytes_by_char_head
1441 correctly.
1442
cebefb44
KH
1443 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1444 the default fontset to what Emacs uses by default.
0f3e0672
KH
1445 (check_registry_encoding): This function deleted.
1446 (Fset_fontset_font): Remove the adhoc condition for the default
1447 fontset. Allow cons in FONTNAME.
cebefb44 1448
0f3e0672
KH
1449 * fns.c (map_char_table): Ignore char-table entries for
1450 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1451
7a18af49
KR
14522000-05-25 Ken Raeburn <raeburn@gnu.org>
1453
1454 * emacs.c (main): Initialize keyboard syms before initializing
1455 window code, so face names are available.
1456
d2af47df
SM
14572000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1458
1459 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1460 of an anchor at the beginning of a shy-group.
1461
fc6a6a4e
GM
14622000-05-25 Gerd Moellmann <gerd@gnu.org>
1463
1464 * xdisp.c (handle_invisible_prop): Don't try to skip over
1465 invisible text if end of text is already reached.
1466
005f0d35
DL
14672000-05-25 Dave Love <fx@gnu.org>
1468
02513cdd
DL
1469 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1470
005f0d35
DL
1471 * coding.c (encode_eol): Add null statement after label.
1472
89f6ca4e
EZ
14732000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1474
1475 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1476 2000-05-20.
1477
a4e1759e
KH
14782000-05-25 Kenichi Handa <handa@etl.go.jp>
1479
1480 * ccl.c (ccl_driver): Fix previous change.
1481
eacfd7fe
KH
14822000-05-25 Kenichi Handa <handa@etl.go.jp>
1483
46ab33a9
KH
1484 * coding.c (run_pre_post_conversion_on_str): Set point to the
1485 beginning of buffer before calling coding->post_read_conversion.
1486 (decode_coding_string): Give correct args to
1487 run_pre_post_conversion_on_str.
1488 (encode_coding_string): Likewise.
1489
eacfd7fe
KH
1490 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1491 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1492 eight-bit-graphic correctly.
1493
f8569325
DL
14942000-05-24 Kenichi HANDA <handa@etl.go.jp>
1495
1496 * fileio.c (Finsert_file_contents): Even if a file is not found,
1497 execute codes for setting up coding system. Call
1498 after-insert-file-functions unconditionally.
1499
04545643
GM
15002000-05-24 Gerd Moellmann <gerd@gnu.org>
1501
1502 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1503 BSD_PGRPS are not defined.
1504
747d90ea
KH
15052000-05-24 Kenichi Handa <handa@etl.go.jp>
1506
1507 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1508 DESCRIPTION.
1509 (syms_of_charset): Avoid building same strings.
1510
716e3b88
GM
15112000-05-23 Gerd Moellmann <gerd@gnu.org>
1512
1513 * lread.c (Fload): Add a comment about the meaning of
1514 Vuser_init_file being t.
1515
1516 * puresize.h (BASE_PURESIZE): Increase to 675000.
1517
1518 * s/gnu-linux.h (setpgrp): Don't define it here because this
1519 prevents compilation on GNU/Linux systems with glib 2.2.
1520
1521 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1522 as setpgid.
427ec082 1523
9aeb39fa
EZ
15242000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1525
1526 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1527 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1528 version.
1529 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1530
29ced61b
KH
15312000-05-23 Kenichi Handa <handa@etl.go.jp>
1532
0574a2ed
KH
1533 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1534 unconditionally.
1535
3d80f24d
KH
1536 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1537
1538 * term.c (encode_terminal_code): Set coding->src_multibyte
1539 properly.
1540
29ced61b
KH
1541 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1542
d7e00792
KH
15432000-05-22 Kenichi Handa <handa@etl.go.jp>
1544
c9d80d38
KH
1545 * keyboard.c (read_char): Allow character codes 128..255 to be
1546 handled by input-method-function.
1547
d7e00792
KH
1548 * insdel.c (adjust_markers_for_replace): Fix previous change.
1549 (adjust_after_replace): If PREV_TEXT is nil, call
1550 adjust_markers_for_insert, not adjust_markers_for_replace.
1551
087121cc 15522000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1553
087121cc
GM
1554 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1555 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1556 [HAVE_GRANDPT]: Define.
1557 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1558
1559 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1560 like SYSV_PTYS.
1561
1562 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1563
1564 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1565
c9671f81
KH
15662000-05-20 Kenichi Handa <handa@etl.go.jp>
1567
1568 The following changes are to handle 8-bit characters in a
1569 multibyte buffer/string without facing with byte combining
1570 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1571 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1572
1573 * Makefile.in (fns.o): Depend on charset.h.
1574
1575 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1576 convert it to unibyte.
1577 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1578
1579 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1580 apparent char boundary.
1581 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1582 0x80..0x9F to/from multibyte form.
1583
1584 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1585 to unibyte.
1586
1587 * callproc.c (Fcall_process): Always encode an argument string if
1588 it is multibyte. Setup src_multibyte and dst_multibyte members of
1589 process_coding properly.
ce75fd23 1590
c9671f81
KH
1591 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1592 SPLIT_NON_ASCII_CHAR.
1593
1594 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1595 as is.
1596 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1597
1598 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1599 variables.
1600 (SPLIT_CHARACTER_SEQ): This macro deleted.
1601 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1602 valid.
1603 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1604 and eight-bit-graphic.
1605 (char_to_string): Likewise. Signal an error for too large
1606 character code.
1607 (char_printable_p): Return 0 for 8-bit characters.
1608 (update_charset_table): Update iso_charset_table only when a final
1609 character is non-negative.
1610 (find_charset_in_text): Renamed from find_charset_in_str.
1611 Arguments and return value changed. Callers changed.
1612 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1613 be -1 if CHARSET is used only internally.
1614 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1615 eight-bit-graphic.
1616 (Fcharset_after): Simplified.
1617 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1618 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1619 (multibyte_chars_in_text): Simplified by assuming there's no
1620 invalid multibyte sequence.
1621 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1622 str_as_unibyte): New functions.
1623 (Fstring): Simpified by assuming that byte combining never
1624 happens.
1625 (init_charset_once): Initialization for
1626 LEADING_CODE_8_BIT_CONTROL.
1627 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1628 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1629 eight-bit-control and eight-bit-graphic.
1630
1631 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1632 CHARSET_8_BIT_GRAPHIC): New macros.
1633 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1634 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1635 (CHARSET_REVERSE_CHARSET): Likewise.
1636 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1637 eight-bit-graphic.
1638 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1639 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1640 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1641 encounter an invalid multibyte sequence.
1642 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1643 sequence is always valid.
1644 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1645 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1646 macros.
1647 (CHAR_STRING): For 8-bit characters, call char_to_string.
1648 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1649 multibyte sequence is always valid.
1650 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1651 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1652 str_as_unibyte): Extern them.
1653 (BCOPY_SHORT): Fix a bug.
1654 (CHAR_LEN): This macro deleted. Callers changed to use
1655 CHAR_BYTES.
1656 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1657 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1658 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1659
bd4bde7f 1660 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1661 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1662 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1663 EMIT_BYTES): New macros.
1664 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1665 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1666 macros deleted.
1667 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1668 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1669 check the validity of multibyte sequence.
1670 (decode_coding_emacs_mule): New function.
1671 (encode_coding_emacs_mule): New macro.
1672 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1673 the source.
1674 (DECODE_ISO_CHARACTER): Just return a character code.
1675 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1676 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1677 EMIT_CHAR to produced decoded characters. Exit the loop only by
1678 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1679 block here.
1680 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1681 only position codes for an invalid character.
1682 (encode_designation_at_bol): Return new destination pointer. 5th
1683 arg DSTP is changed to DST.
1684 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1685 from the source by ONE_MORE_CHAR. Don't handle the case of last
1686 block here.
1687 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1688 macros deleted.
1689 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1690 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1691 TWO_MORE_BYTES to fetch a byte from the source.
1692 (encode_eol): Pay attention to coding->src_multibyte.
1693 (detect_coding, detect_eol): Preserve members src_multibyte and
1694 dst_multibyte.
1695 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1696 (encoding_buffer_size): Set magnification to 3 for all coding
1697 systems that require encoding.
1698 (ccl_coding_driver): For decoding, be sure that the result is
1699 valid multibyte sequence.
1700 (decode_coding): Initialize coding->errors and coding->result.
1701 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1702 and raw-text, always call decode_eol. Handle the case of last
1703 block here. If not coding->dst_multibyte, convert the resulting
1704 sequence to unibyte.
1705 (encode_coding): Initialize coding->errors and coding->result.
1706 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1707 and raw-text, always call encode_eol. Handle the case of last
1708 block here.
1709 (shrink_decoding_region, shrink_encoding_region): Detect cases
1710 that we can't skip data more rigidly.
1711 (code_convert_region): Setup src_multibyte and dst_multibyte
1712 members of coding. For decoding, if the buffer is multibyte,
1713 convert the source sequence to unibyte in advance. For encoding,
1714 if the buffer is multibyte, convert the resulting sequence to
1715 multibyte afterward.
1716 (run_pre_post_conversion_on_str): New function.
1717 (code_convert_string): Deleted and divided into the following two.
1718 (decode_coding_string, encode_coding_string): New functions.
1719 (code_convert_string1, code_convert_string_norecord): Call one of
1720 above.
1721 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1722 MAKE_NON_ASCII_CHAR.
1723 (Fset_terminal_coding_system_internal,
1724 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1725 and dst_multibyte members.
1726 (init_coding_once): Initialize iso_code_class with new enum
1727 ISO_control_0 and ISO_control_1.
1728
1729 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1730 devided into ISO_control_0 and ISO_control_1.
1731 (struct coding_system): New members src_multibyte, dst_multibyte,
1732 errors, and result. Delete member fake_multibyte.
1733 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1734 nonzero.
1735 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1736 nonzero.
1737
1738 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1739 (Faset): Likewise.
1740
1741 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1742 multibyte form.
1743 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1744 combining occurs.
1745 (Ftranspose_region): Delete codes for handling byte combining.
1746
1747 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1748 dst_multibyte members of coding. On handling REPLACE on unibyte
1749 buffer, convert the result of decode_coding to unibyte. On
1750 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1751 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1752 multibyteness of the source (buffer or string).
1753
1754 * fns.c (concat): Handle 8-bit characters correctly.
1755 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1756 unibyte in the result.
1757 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1758 valid multibyte form in the result.
1759 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1760 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1761 return -1, signal an error.
1762 (base64_encode_1): New arg MULTIBYTE. Get each character by
1763 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1764 character is found, return -1.
1765 (Fbase64_decode_region): Delete codes for handling byte-combining.
1766 Treat each decoded byte as a unibyte character.
1767 (Fbase64_decode_string): Return unibyte string.
1768 (Fcompare_strings, concat, string_byte_to_char): Use
1769 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1770 FETCH_STRING_CHAR_ADVANCE.
1771 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1772 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1773
1774 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1775 SPLIT_NON_ASCII_CHAR.
1776 (fontset_ref_via_base, fontset_set): Likewise
1777
1778 * insdel.c (adjust_markers_for_record_delete): Deleted.
1779 (adjust_markers_for_insert): Argument changed. Caller changed.
1780 (adjust_markers_for_replace): Likewise.
1781 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1782 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1783 (copy_text): Delete unused local varialbe c_save. For converting
1784 to multibyte, be sure to make all 8-bit characters in valid
1785 multibyte form.
1786 (count_size_as_multibyte): Handle 8-bit characters correctly.
1787 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1788 adjust_after_replace, replace_range, del_range_2)
1789 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1790 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1791 adjust_after_replace, replace_range, del_range_2) Delete codes for
1792 handling byte combining.
1793 (adjust_before_replace): Deleted.
427ec082 1794
c9671f81
KH
1795 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1796 SPLIT_NON_ASCII_CHAR.
1797 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1798 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1799 unconditionally.
1800 (Fkey_description): Likewise.
1801
1802 * lread.c (read1): On reading multibyte string, be sure to make
1803 all 8-bit chararacters in valid multibyte form.
1804 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1805
1806 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1807 unconditionally.
1808
1809 * process.c (Fstart_process): GCPRO current_dir before calling
1810 Ffind_operation_coding_system. Encode arguments here.
1811 (create_process): Don't encode arguments here. Setup
1812 src_multibyte and dst_multibyte members of struct coding.
1813 (read_process_output): Setup src_multibyte and dst_multibyte
1814 members of struct coding. If the output is to multibyte buffer,
1815 always decode the output of the process. Adjust the
1816 representation of 8-bit characters to the multibyteness of the
1817 output.
1818 (send_process): Setup coding->src_multibyte according to the
1819 multibyteness of the source.
1820
1821 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1822 unconditionally.
1823 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1824 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1825
1826 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1827 CHAR_LEN.
1828
1829 * w16select.c (Fw16_set_clipboard_data): Setup members
1830 src_multibyte and dst_multibyte of coding. Adjusted for the
1831 change for find_charset_in_str.
1832 (Fw16_get_clipboard_data): Likewise.
1833
1834 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1835 dst_multibyte of coding.
1836 (x_to_w32_font): Likewise.
1837
1838 * w32select.c (Fw32_set_clipboard_data): Setup members
1839 src_multibyte and dst_multibyte of coding. Adjusted for the
1840 change for find_charset_in_str.
1841 (Fw32_get_clipboard_data): Likewise.
1842
1843 * xdisp.c (get_next_display_element): Handle 8-bit characters
1844 correctly.
1845 (next_element_from_display_vector): Use CHAR_BYTES instead of
1846 CHAR_LEN.
1847 (disp_char_vector): Use SPLIT_CHAR instead of
1848 SPLIT_NON_ASCII_CHAR.
1849
1850 * xselect.c (selection_data_to_lisp_data): Setup members
1851 src_multibyte and dst_multibyte of coding. Adjusted for the
1852 change for find_charset_in_str.
1853 (lisp_data_to_selection_data): Likewise.
1854
5f64c9e0
GM
18552000-05-19 Gerd Moellmann <gerd@gnu.org>
1856
2b63d473
GM
1857 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1858 buffer.
1859
5f64c9e0
GM
1860 * dispextern.h (Vimage_types): Add extern declaration.
1861
1862 * xdisp.c (Vimage_types): Moved here from xfns.c.
1863 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1864
1865 * xfns.c (Vimages_types): Moved to xdisp.c.
1866 (syms_of_xfns): Move `image-types' to xdisp.c.
1867
1868 * w32fns.c (Vimage_types): Removed.
1869 (syms_of_w32fns): Remove `image-types'.
1870
813086ea
KH
18712000-05-18 Kenichi Handa <handa@etl.go.jp>
1872
1873 * fns.c (map_char_table): Pay attention to character number of
1874 charset. Check the validity of charset at the first level. For
1875 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1876 the default value.
1877
1878 * fontset.c: Include "buffer.h".
1879 (fs_load_font): If the face has fontset, record the face ID in
1880 that fontset.
1881 (Finternal_char_font): New function.
1882 (accumulate_font_info): New function.
1883 (Ffontset_info): Rewritten for the new fontset implementation.
1884 (syms_of_fontset): Register Vdefault_fontset in the first element
1885 of Vfontset_table. Include Vdefault_fontset in
1886 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1887 function.
1888
bdaebbf0
DL
18892000-05-16 Dave Love <fx@gnu.org>
1890
1891 * m/iris5d.h: Deleted -- unused.
1892
cb613bb8
GM
18932000-05-16 Gerd Moellmann <gerd@gnu.org>
1894
b15f3b77
GM
1895 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1896 `invalid' instead of `illegal'.
1897
1898 * indent.c (Fmove_to_column): When ending within a tab, insert
1899 spaces first so that markers at the end of the tab get adjusted.
1900
835c1b36
GM
1901 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1902 buffer list that wasn't selected in that frame.
1903
cb613bb8
GM
1904 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1905 is needed on mescaline, use a 2 char prefix, and call
1906 make_temp_name with second arg non-zero.
1907
1908 * fileio.c (make_temp_name): New function, extracted from
1909 Fmake_temp_name.
1910 (Fmake_temp_name): Use it.
1911
f685bea9
EZ
19122000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1913
1914 * window.c (coordinates_in_window): Subtract 1 when computing
1915 right_x.
1916
a1b8d58b
GM
19172000-05-15 Gerd Moellmann <gerd@gnu.org>
1918
1919 * Makefile.in (lisp): Add env.elc.
1920
1921 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1922
a265079f
GM
19232000-05-12 Gerd Moellmann <gerd@gnu.org>
1924
1925 * search.c (Freplace_match): Handle case of `\N' in the
1926 replacement when there's no group N.
1927
da4496b6
GM
19282000-05-11 Gerd Moellmann <gerd@gnu.org>
1929
0ace421a
GM
1930 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1931 of the message to message_dolog.
1932
1172eb8d
GM
1933 * keyboard.c (read_char): Don't clear current message for help
1934 events; let the code handling help events handle this. Change
1935 code detecting help events that should be ignored.
1936
da4496b6
GM
1937 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1938 we're interating over a string.
1939
0623e40f
DL
19402000-05-09 Dave Love <fx@gnu.org>
1941
1942 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1943 that offset before writing. Move gcpro region past call of
1944 Ffile_regular_p.
1945
bae2503b
DL
19462000-05-04 Dave Love <fx@gnu.org>
1947
1948 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1949
ec82fb2f
GM
19502000-05-04 Gerd Moellmann <gerd@gnu.org>
1951
1952 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1953 of inserted characters when BUF equals the current buffer, and PT
1954 is in front of or equal to FROM.
1955
cbf18892
GM
19562000-05-03 Gerd Moellmann <gerd@gnu.org>
1957
4ff40dd0
GM
1958 * xdisp.c (handle_single_display_prop): If display property value
1959 is invalid, or something not supported on the frame, restore
1960 iterator's position to what it was initially. Make sure to return
1961 0 for invalid and unsupported property values.
1962
cbf18892
GM
1963 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1964 that x_per_char_metric returns null.
1965
1b0672c3
GM
19662000-05-02 Gerd Moellmann <gerd@gnu.org>
1967
576da55d
GM
1968 * xterm.h (struct face): Add forward declaration.
1969 (struct image): Ditto.
1970 (image_ascent): Add prototype.
1971
1972 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1973 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1974 image_ascent instead of using IMAGE_ASCENT.
1975
1976 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1977 (IMAGE_ASCENT): Removed.
1978
1979 * xfns.c (Qcenter): New variable.
1980 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1981 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1982 (image_ascent): New function.
1983 (lookup_image): Recognize `:ascent center'.
1984 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1985 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1986 (xbm_load): Don't set image's ascent here.
1987 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1988 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1989 check ascent values here.
1990 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1991 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1992 (syms_of_xfns): Initialize Qcenter.
1993
1b0672c3
GM
1994 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1995 to the limits, increase the limits.
1996
0d7811ed
KH
19972000-05-01 Kenichi Handa <handa@etl.go.jp>
1998
1999 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2000 Check Vfont_encoding_alist against the full name of the opened
2001 font.
2002
a943a5ca
GM
20032000-04-28 Gerd Moellmann <gerd@gnu.org>
2004
2005 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2006 taller than the window.
2007
5dba1e29
KH
20082000-04-28 Kenichi Handa <handa@etl.go.jp>
2009
2010 * xfaces.c (realize_x_face): Fix the argument of the second
2011 xassert. BASE_FACE may not be a face for ASCII.
2012
353964e3
GM
20132000-04-27 Gerd Moellmann <gerd@gnu.org>
2014
c76e04a8
GM
2015 * print.c (print_object): Treat print-length < 0 as nil.
2016
2017 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2018
2019 * s/freebsd.h (TERMCAP_OBJ): Removed.
2020 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2021
2022 * lread.c (read1): Don't treat period followed by certain
2023 characters as symbol start.
2024
2025 * xfns.c (slurp_file): New function.
2026 (xbm_image_p): Handle case of in-memory XBM files.
2027 (xbm_scan): Rewritten to work on memory buffers instead of files.
2028 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2029 Work on memory buffers instead of files. If DATA is null test
2030 if buffer looks like an in-memory XBM file.
2031 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2032 memory buffers instead of files.
2033 (xbm_file_p): New function.
2034 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2035
353964e3
GM
2036 * lread.c (end_of_file_error): New function.
2037 (read1): Call it instead of signaling `end-of-file' directly.
2038
427ec082 2039 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
2040 with Fprinc instead of Fprin1.
2041
24d744ac
KR
20422000-04-26 Ken Raeburn <raeburn@gnu.org>
2043
2044 * window.c (freeze_window_start): Check that minibuffer scroll
2045 window isn't nil before extracting the window structure pointer
2046 from it.
2047
2048 * undo.c (record_delete): If we hit the end of the undo list, stop
2049 picking elements apart.
2050
7464346d
GM
20512000-04-26 Gerd Moellmann <gerd@gnu.org>
2052
2053 * xdisp.c (display_line): If lines are continued, restore
2054 iterator's ascent/descent information to the values before the
2055 first glyph not fitting on the line.
2056
612839b6
GM
20572000-04-25 Gerd Moellmann <gerd@gnu.org>
2058
2059 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2060 positions in glyph matrix. Don't compute new window end
2061 positions.
2062
2063 * dispnew.c (increment_matrix_positions): Renamed from
2064 increment_glyph_matrix_buffer_positions.
2065 (increment_row_positions): Renamed from
2066 increment_glyph_row_buffer_positions.
2067
2068 * dispextern.h: Change names of renamed functions from dispnew.c
2069 in prototypes.
2070
cc181e95
GM
20712000-04-24 Gerd Moellmann <gerd@gnu.org>
2072
abfcc168
GM
2073 * fileio.c (Fdo_auto_save): Create directories for auto-save
2074 list file if necessary.
2075
cc181e95
GM
2076 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2077 from buffer or frame.
2078 (automatic_hscrolling_p): New variable.
2079 (hscroll_windows): Scroll windows horizontally only if automatic
2080 hscrolling is allowed.
2081 (syms_of_xdisp): New variable `automatic-hscrolling'.
2082
2083 * frame.h (struct frame): Add member extra_line_spacing.
2084
2085 * xfns.c (x_set_line_spacing): New function.
2086 (Fx_create_frame): Set line spacing from resources.
2087 (Qline_spacing): New variable.
2088 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2089
cc181e95
GM
2090 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2091
2092 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2093 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2094 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2095 extra_line_spacing from default value.
2096 (init_buffer_once): Initialize default value of extra_line_spacing.
2097
2098 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2099 and extra3.
2100
2101 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2102 prompt_width. Add extra line spacing.
2103
2104 * term.c (produce_glyphs): Remove reference to struct it's
2105 prompt_width.
2106
2107 * dispextern.h (struct it): Remove member prompt_width, add
2108 extra_line_spacing.
2109
58827478
GM
21102000-04-22 Gerd Moellmann <gerd@gnu.org>
2111
2112 * dispnew.c (update_frame_line): When writing a whole line, make
2113 sure cursor is in the right row afterwards, otherwise a use of
2114 capability `ch' in cmgoto might leave the cursor in the row below.
2115
25a87f42
GM
21162000-04-21 Gerd Moellmann <gerd@gnu.org>
2117
2118 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2119
2120 * keyboard.c (timer_check): Fix typo in comment.
2121
54edf5c2
KH
21222000-04-21 Kenichi Handa <handa@etl.go.jp>
2123
2124 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2125 name change: ch -> character.
2126
3a64eef5
GM
21272000-04-20 Gerd Moellmann <gerd@gnu.org>
2128
2129 * keyboard.c (echo_message_buffer): New variable.
2130 (echo_now): Set echo_message_buffer to the echo area buffer used
2131 to display the echo.
2132 (cancel_echoing): Reset echo_message_buffer to nil.
2133 (read_char): Code rewritten that handles canceling an echo or
2134 echoing a dash, respectively.
2135
2136 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2137 directory doesn't exist.
2138
6142fdcb
DL
21392000-04-19 Dave Love <fx@gnu.org>
2140
2141 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2142 (concat): Don't allow numeric args.
2143 (Fconcat): Doc change.
6142fdcb 2144
ac6b5352
SM
21452000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2146
2147 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2148 instead define end_match(1|2) more carefully.
2149 Use GET_CHAR_BEFORE_2 for `begline'.
2150
cb9215e4
GM
21512000-04-19 Gerd Moellmann <gerd@gnu.org>
2152
5e3dac3f
GM
2153 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2154 on 64-bit systems where NULL is defined as `0'.
2155
2156 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2157 the `variable argument list' to make it work on Alpha.
2158
cb9215e4
GM
2159 * m/alpha.h (_LP64) [!_LP64]: Define.
2160 (ORDINARY_LINK): Define for NetBSD.
2161
2162 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2163
f532dca0
DL
21642000-04-19 Dave Love <fx@gnu.org>
2165
c750667e
DL
2166 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2167 change.
2168
2169 * Makefile.in (LIBS): Don't use.
2170 (GETLOADAVG_OBJ): Define again.
2171 (otherobj): Add GETLOADAVG_OBJ.
2172
f532dca0
DL
2173 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2174
1c7e22fd
GM
21752000-04-18 Gerd Moellmann <gerd@gnu.org>
2176
f6d3257b
GM
2177 * lread.c (read_filtered_event): Cancel and start busy cursor.
2178
427ec082 2179 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2180 that the per-character metrics may be null.
2181
e10f64e7
GM
21822000-04-17 Gerd Moellmann <gerd@gnu.org>
2183
0daee095
GM
2184 * buffer.c (clone_per_buffer_values): New function.
2185 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2186 clone_per_buffer_values if CLONE is not nil.
2187
e10f64e7
GM
2188 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2189
38687d43
DL
21902000-04-16 Dave Love <fx@gnu.org>
2191
2192 * Makefile.in: Remove obsolete localcpp stuff.
2193 (GETLOADAVG_OBJ): Don't define.
2194 (obj): Move LIBOBJS...
2195 (otherobj): ... to here.
2196 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2197 whitespace-only lines after the continuation (Irix).
2198
c21c7262
GM
21992000-04-14 Gerd Moellmann <gerd@gnu.org>
2200
2201 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2202
2203 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2204
314767c0
DL
22052000-04-14 Dave Love <fx@gnu.org>
2206
2207 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2208 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2209 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2210 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2211 NLIST_STRUCT.
2212
2213 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2214 autoconfiscated HAVE_GETLOADAVG.
2215
2216 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2217 BROKEN_MKTIME.
2218
a2522dca
GM
22192000-04-14 Gerd Moellmann <gerd@gnu.org>
2220
2221 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2222 (fill_in_lock_file_name): Avoid existing files that aren't
2223 links.
2224
33744b5d
DL
22252000-04-14 Dave Love <fx@gnu.org>
2226
c21c7262 2227 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2228 (INTERVAL_SRC): Convert to make variable.
2229 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2230 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2231 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2232 add LIBOBJS.
2233 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2234 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2235 (shortlisp): Add facemenu, float-sup, frame.
2236 (SOME_MACHINE_LISP): Remove them from here.
2237 (LIBES): Change unused LDLIBS to autoconf LIBS.
2238
2239 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2240
9d3d5916
KH
22412000-04-14 Kenichi Handa <handa@etl.go.jp>
2242
2243 * composite.c (update_compositions): If FROM and TO are not in a
2244 valid range, do nothing.
2245
198e3c7a
GM
22462000-04-13 Gerd Moellmann <gerd@gnu.org>
2247
2248 * tparam.c (tparam1): Abort when encountering an unknown
2249 `%'-specifier.
2250
2251 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2252 terminfo.o.
2253
2254 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2255 as TERMCAP_OBJ.
2256
055a28c9
EZ
22572000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2258
2259 * fileio.c (a_write): Remove redundant semi-colons.
2260 (e_write): Return -1 if failed to write all the data.
2261 This fixes the changes made at 1999-12-15.
2262
f5c75033
DL
22632000-04-12 Dave Love <fx@gnu.org>
2264
2265 * fns.c (mapcar1): Test for null vals to support mapc.
2266 (Fmapc): New function.
2267
0c3cfc51
EZ
22682000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2269
2270 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2271 (IT_frame_up_to_date): Support the buffer local value of
2272 cursor-type, if defined.
2273
33465a31
DL
22742000-04-10 Dave Love <fx@gnu.org>
2275
2276 * editfns.c (preceding-char, following-char): Doc fix.
2277
6ed56568
KR
22782000-04-10 Ken Raeburn <raeburn@gnu.org>
2279
2280 * Makefile.in (temacs): Revert 2000-03-12 change.
2281
7cf80d4e
JR
22822000-04-10 Jason Rumney <jasonr@gnu.org>
2283
2284 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2285
34f3f342
GM
22862000-04-10 Gerd Moellmann <gerd@gnu.org>
2287
1a1b1895
GM
2288 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2289 area buffer, if it's not set up yet.
2290
34f3f342
GM
2291 * indent.c (compute_motion): Set immediate_quit.
2292
be0dbdab
GM
22932000-04-09 Gerd Moellmann <gerd@gnu.org>
2294
c45be9ac
GM
2295 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2296 variable.
2297 (realize_tty_face): Suppress boldness if colors are the inverse of
2298 the default colors, and tty_suppress_bold_inverse_default_colors_p
2299 is set.
2300 (Ftty_suppress_bold_inverse_default_colors): New function.
2301 (syms_of_xfaces): Defsubr it.
2302
be0dbdab
GM
2303 * buffer.c (Frestore_buffer_modified_p): New function.
2304 (syms_of_buffer): Defsubr it.
2305
e8413c3b
KR
23062000-04-08 Ken Raeburn <raeburn@gnu.org>
2307
87f67317
KR
2308 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2309 charset id (int) argument, not a charset (Lisp_Object).
2310
e8413c3b
KR
2311 * coding.h (code_convert_string): Declare.
2312 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2313 object, as the fourth argument to code_convert_string.
2314
2315 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2316 value.
2317 (Fset_fontset_font): Use EQ to compare lisp objects.
2318
7c752c80
KR
23192000-04-05 Ken Raeburn <raeburn@gnu.org>
2320
c0333abc
KR
2321 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2322 a pointer that looks like a lisp object.
2323 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2324 zero, instead see whether it's an integer object, since they can't
2325 have intervals.
2326 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2327
7c752c80
KR
2328 * dispnew.c (allocate_matrices_for_frame_redisplay,
2329 direct_output_forward_char): Use X(U)INT and make_number as needed
2330 to convert between (unsigned) int values and lisp integers.
2331 * keyboard.c (read_key_sequence): Likewise.
2332 * lread.c (substitute_object_recurse): Likewise.
2333 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2334 * minibuf.c (do_completion, Fminibuffer_complete_word,
2335 Fminibuffer_completion_help): Likewise.
2336 * term.c (produce_special_glyphs): Likewise.
2337
2338 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2339 * print.c (print_preprocess, print_object): Likewise.
2340
2341 * search.c (compile_pattern): Use NILP when checking for nil.
2342
74e49b38
KR
2343 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2344 __OPTIMIZE__]: Provide a GNU C macro version that handles
2345 lisp-object unions.
2346 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2347 field, to better cope with ENABLE_CHECKING and calls that modify a
2348 Lisp_Object using its old value.
2349
685e5ed2
GM
23502000-04-04 Gerd Moellmann <gerd@gnu.org>
2351
c407c570
GM
2352 * window.c (compare_window_configurations): Signal an error
2353 if parameters C1 or C2 aren't window configurations.
2354
685e5ed2
GM
2355 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2356 AFTER_POTENTIAL_GC calls around calls to functions that can
2357 signal an error and thus invoke the debugger.
2358
587a49ab
GM
23592000-04-03 Gerd Moellmann <gerd@gnu.org>
2360
62f20204
GM
2361 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2362 an error if decoding fails.
2363
587a49ab
GM
2364 * keyboard.c (lispy_mouse_names): Variable removed.
2365 (Vlispy_mouse_stem): New variable.
2366 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2367 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2368 for any mouse button number. Increase size of mouse_syms and
2369 button_down_location as needed. Call modify_event_symbol with
2370 different arguments.
2371 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2372 Call modify_event_symbol with different arguments.
2373 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2374 for any button number. Call modify_event_symbol with different
2375 arguments.
2376 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2377 Accept a string for NAME_ALIST_OR_STEM.
2378
2379 * lisp.h (larger_vector): Add prototype.
2380
2381 * fns.c (larger_vector): Make externally visible.
2382
2383 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2384
2d1675e4
SM
23852000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2386
2387 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2388 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2389 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2390 we are between str1 and str2.
2391 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2392 (PATFETCH): Use `TRANSLATE'.
2393 (PATFETCH_RAW): Fetch multibyte char if applicable.
2394 (PATUNFETCH): Remove.
2395 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2396 When writing a char, write it directly into the pattern buffer rather
2397 than going needlessly through a temp char-array.
2398 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2399 multibyte magic and remove the useless `#ifdef emacs'.
2400 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2401 buffer.
2402
2403 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2404 conditional on `emacs'.
2405
2406 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2407
cc2d8c6b
KR
24082000-04-01 Ken Raeburn <raeburn@gnu.org>
2409
2410 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2411 non-union-type versions of XMARK and friends here, because XMARK
2412 and friends won't work on an integer field if NO_UNION_TYPE is not
2413 defined.
2414 (make_number): Define as a function if it's not defined as a
2415 macro.
2416
09654086
KR
2417 * composite.c (run_composite_function): Use NILP when checking for
2418 nil.
2419 (syms_of_composite): Delete local var NARGS, pass an int as first
2420 argument to Fmake_hash_table.
2421
2387b382
KR
2422 * editfns.c (text_property_stickiness): Use NILP to test
2423 Lisp_Object boolean value.
2424 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2425 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2426 problems reading from and changing the same lisp value in an
2427 XSETSTRING call.
2428
27660e89
GM
24292000-04-01 Gerd Moellmann <gerd@gnu.org>
2430
2431 * term.c (TN_no_color_video): New variable.
2432 (term_init): Intitialize TN_no_color_video.
2433 (enum no_color_bit): New enumeration.
2434 (MAY_USE_WITH_COLORS_P): New macro.
2435 (turn_on_face): Use it to determine if attributes may be used
2436 combined with colors.
2437
3578db3c
KR
24382000-04-01 Ken Raeburn <raeburn@gnu.org>
2439
2440 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2441 with int lvalues via casts; instead, just yield lisp object
2442 lvalues.
2443 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2444 proper accessor macros.
2445 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2446 (grow_mini_window): Fix typo getting int value of root->height.
2447
6fc556fd
KR
2448 * xdisp.c (compute_string_pos): Fix order of arguments to
2449 string_pos_nchars_ahead.
2450 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2451 count arg to variable-arg routines like Frun_hook_with_args and
2452 Fformat.
587a49ab
GM
2453 (back_to_previous_visible_line_start)
2454 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2455 fixed-arg routines like Fget_char_property and Fmake_string.
2456 (reconsider_clip_changes): Use XINT when comparing integer lisp
2457 objects, or passing them as int arguments.
587a49ab
GM
2458 (mark_window_display_accurate, insert_left_trunc_glyphs)
2459 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2460 storing or passing integer values as lisp objects.
2461 (set_cursor_from_row, highlight_trailing_whitespace): Use
2462 INTEGERP, not implicit test against zero, for glyph object.
2463 (try_window_id): Don't use make_number when we want an int value.
2464
2465 * xfaces.c (xlfd_symbolic_value): Make last argument a
2466 Lisp_Object, to be consistent with callers.
2467 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2468 (lface_hash): Apply XFASTINT to lisp values before folding in.
2469
2470 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2471 fill in window width and height. Pass an int, not a lisp object,
2472 as first arg to Finsert.
2473
6e7b2457
GM
24742000-04-01 Gerd Moellmann <gerd@gnu.org>
2475
610d841e
GM
2476 * xfaces.c (realize_basic_faces): Block input while realizing
2477 the faces.
2478
6e7b2457
GM
2479 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2480
2481 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2482
aa110c0c
GM
24832000-03-31 Gerd Moellmann <gerd@gnu.org>
2484
2485 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2486 or ASCII, handle case that per-char metric is null.
aa110c0c 2487
8801a864
KR
24882000-03-30 Ken Raeburn <raeburn@gnu.org>
2489
c6129d7e
KR
2490 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2491
8801a864
KR
2492 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2493 XSUBR, XBUFFER): Verify correct object type before returning
2494 pointer, using eassert.
2495 * frame.h (XFRAME): Likewise.
2496
2497 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2498 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2499 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2500 type.
2501 * data.c (set_internal): Likewise.
2502 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2503 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2504 * fileio.c (auto_save_1): Likewise.
2505 * insdel.c (check_markers): Likewise.
2506 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2507 * undo.c (record_insert): Likewise.
2508 * vmsproc.c (child_sig): Likewise.
2509 * window.c (unshow_buffer, window_loop): Likewise.
2510 * xterm.c (x_erase_phys_cursor): Likewise.
2511
8e7af858
GM
25122000-03-30 Gerd Moellmann <gerd@gnu.org>
2513
2514 * xfns.c (free_image_cache): Free the cache structure itself
2515 last, after all its members have been freed.
2516
2517 * lisp.h (xstrdup): Add prototype.
2518
2519 * alloc.c (xstrdup): Moved here from xfaces.c.
2520 (allocating_for_lisp): Variable removed.
2521 (lisp_malloc): Block input around the calls to malloc and
2522 mem_insert.
2523
2524 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2525 of Fsymbol_value.
2526 (xstrdup): Moved to alloc.c.
2527
e0b8c689
KR
25282000-03-29 Ken Raeburn <raeburn@gnu.org>
2529
b96f9fb7
KR
2530 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2531
2532 * emacs.c (main): Fix sense of no-loadup test.
2533
e0b8c689
KR
2534 * config.in (ENABLE_CHECKING): Undef.
2535
2536 * lisp.h (struct interval): Replace "parent" field with a union of
2537 interval pointer and Lisp_Object; add new bitfield to use as
2538 discriminant. Change other flag fields to bitfields.
2539 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2540 is defined and the supplied test fails, print a message and
2541 abort.
2542 (eassert): New macro. Use CHECK to provide an assert-like
2543 facility.
2544
2545 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2546 pointers; abort if the value looks like a lisp object.
2547 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2548 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2549 Modify for new interval parent definition.
2550
2551 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2552 UNMARK_BALANCE_INTERVALS): Update references that need an
2553 addressable lisp object in the interval structure.
2554 (die): New function.
2555 (suppress_checking): New variable.
2556
2557 * intervals.c (interval_start_pos): Just return 0 if there's no
2558 parent object.
2559
f83c5440
GM
25602000-03-29 Gerd Moellmann <gerd@gnu.org>
2561
2562 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2563 and earlier Emacs versions.
2564
2565 * keyboard.c (Ftop_level): Cancel busy-cursor.
2566
2567 * eval.c (call_debugger): Cancel busy-cursor.
2568
fdce64ff
KH
25692000-03-29 Kenichi Handa <handa@etl.go.jp>
2570
2571 * search.c (Freplace_match): Adjust multibyteness of the current
2572 buffer and NEWTEXT. Free allocated memory before signaling an
2573 error.
2574
f6a3f532
SM
25752000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2576
2577 * regex.c (analyse_first): New function obtained by ripping out most
2578 of re_compile_fastmap and generalizing it a little bit so that it
2579 can also just return whether a given (sub)pattern can match the empty
2580 string or not.
2581 (regex_compile): Use `analyse_first' to decide whether the loop-check
2582 needs to be done or not for *, +, *? and +? (the loop check is costly
2583 for non-greedy repetition).
2584 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2585
e9b309ac
DL
25862000-03-28 Dave Love <fx@gnu.org>
2587
bb15bd9a
DL
2588 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2589 alpha.
2590
e9b309ac
DL
2591 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2592
ed0767d8
SM
25932000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2594
2595 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2596 an expression.
2597 (enum re_opcode_t): Update description of succeed_n.
2598 (PATFETCH): Always define.
2599 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2600 operators, char classes, shy-groups and intervals).
2601 Optimize special cases of intervals so as to only use succeed_n and
2602 jump_n when really needed.
2603 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2604 that we don't have to handle the special cases any more.
2605 Simplify on_failure_jump handling as well.
2606
e11e7e46
JR
26072000-03-28 Jason Rumney <jasonr@gnu.org>
2608
2609 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2610
88faab89
GM
26112000-03-27 Gerd Moellmann <gerd@gnu.org>
2612
182ff242
GM
2613 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2614
2615 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2616
182ff242
GM
2617 * alloc.c (mark_maybe_object): New function.
2618 (mark_memory): Use it.
2619 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2620 (setjmp_tested_p, longjmp_done): New variables.
2621 (test_setjmp): New function.
2622 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2623 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2624
c1005d06
GM
2625 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2626 to DEC_TEXT_POS and INC_TEXT_POS.
2627
2628 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2629 with parameter MULTIBYTE_P.
2630
427ec082 2631 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2632 MULTIBYTE_P.
2633
7439e5b9 2634 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2635 buffers because it looks for multibyte character byte sequences
2636 which don't exist in unibyte text.
7439e5b9 2637
d9c545da
GM
2638 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2639
11fd416e 2640 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2641 [DEBUG_X_COLORS]: New functions.
2642 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2643
2644 * xfns.c (x_set_cursor_color): Get color reference counts right.
2645
2646 * xterm.c (x_copy_color): New function.
2647 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2648
2649 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2650 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2651 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2652 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2653 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2654 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2655 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2656 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2657 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2658 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2659
11fd416e
GM
2660 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2661 names for handling per-buffer variables.
d9c545da
GM
2662
2663 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2664 instead of MAX_BUFFER_LOCAL_VARS.
2665 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2666
2667 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2668
88faab89
GM
2669 * xfns.c (x_specified_cursor_type): New function.
2670 (x_set_cursor_type): Use it.
2671
2672 * buffer.h (struct buffer): Add cursor_type.
2673
d80f42b7
SM
26742000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2675
2676 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2677 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2678 opcode.
d80f42b7
SM
2679 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2680 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2681 executing it as well as when popping it off the stack to find infinite
2682 loops in non-greedy repetition operators.
2683
89e80928
GM
26842000-03-26 Gerd Moellmann <gerd@gnu.org>
2685
3d4ff2dd
GM
2686 * doc.c (Qfunction_documentation): New variable.
2687 (syms_of_doc): Initialize Qfunction_documentation.
2688 (Fdocumentation): If FUNCTION is a symbol with non-nil
2689 `function-documentation' property, return a documentation derived
2690 from that.
2691
bd96bd79
GM
2692 * buffer.c (syms_of_buffer): Add default-cursor-type.
2693 (init_buffer_once): Don't let cursor_type have a local value
2694 in every buffer.
2695
19d1bc27
GM
2696 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2697 on buffer-local value of cursor_type.
2698 (x_draw_bar_cursor): Add parameter WIDTH.
2699
2700 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2701 (init_buffer_once): Set default cursor_type value to t.
2702 Mark cursor_type as local everywhere.
2703 (syms_of_buffer): New per-buffer variable cursor-type.
2704
89e80928
GM
2705 * buffer.h (struct buffer): Remove member local_var_flags,
2706 add local_flags.
2707 (MAX_BUFFER_LOCAL_VARS): New macro.
2708 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2709 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2710 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2711 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2712
2713 * print.c (print_object): Use new macros for per-buffer
2714 variables.
2715
2716 * category.c (Fset_category_table): Use new macros for per-buffer
2717 variables.
2718
2719 * buffer.c (buffer_permanent_local_flags): Make a char array.
2720 (max_buffer_local_idx): New variable.
2721 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2722 for new handling of per-buffer variables.
2723 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2724 (init_buffer_once): Initialize per-buffer vars differently.
2725 Set max_buffer_local_idx.
2726
2727 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2728 variables.
2729
2730 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2731 variables.
2732
2733 * data.c (do_symval_forwarding, store_symval_forwarding)
2734 (find_symbol_value, set_internal, default_value, Fset_default)
2735 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2736 per-buffer variables.
2737
2738 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2739
9a0dd3dc
GM
27402000-03-24 Gerd Moellmann <gerd@gnu.org>
2741
b68c375f
GM
2742 * xterm.c (x_term_init): Unblock input around call1 of
2743 Qvendor_specific_keysyms.
2744
9a0dd3dc
GM
2745 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2746 (find_defun_start): Consider an open parenthesis in column 0
2747 a defun start only if open_paren_in_column_0_is_defun_start is set.
2748 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2749
7973e637
SM
27502000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2751
2752 * eval.c (Fautoload): Add entry in load-history (if after dump).
2753 * lread.c (load-history): Update docstring.
2754
39210e90
GM
27552000-03-24 Gerd Moellmann <gerd@gnu.org>
2756
2757 * indent.c (Fvertical_motion): Always use the current buffer.
2758 Temporarily change the window's buffer, if necessary.
2759
72db3ab5
GM
27602000-03-23 Gerd Moellmann <gerd@gnu.org>
2761
2762 * xterm.c (fast_find_position): Make sure not to consider rows
2763 not visible in the window.
2764
990b2375
SM
27652000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2766
2767 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2768 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2769
ff4df011
JR
27702000-03-22 Jason Rumney <jasonr@gnu.org>
2771
2772 * w32menu.c (single_submenu): Set help string to NULL if none.
2773 (w32_menu_show): Set help string correctly.
2774 (add-menu-item): Set help string in MIIM_DATA for menu item.
2775 Load SetMenuItemInfoA explicitly.
2776 (w32_menu_display_help): New function.
427ec082 2777
ff4df011
JR
2778 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2779 (QCdata): Moved to xdisp.c.
2780
2781 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2782 (Vw32_charset_to_codepage_alist): Removed.
2783 (Vw32_charset_info_alist): New variable.
2784 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2785 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2786 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2787 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2788 with TODO comment.
2789 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2790 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2791 Define Vw32_charset_info_alist and w32_charset symbols.
2792
27932000-03-22 Jason Rumney <jasonr@gnu.org>
2794
2795 * makefile.nt (w32bdf.obj): Update dependencies.
2796
2797 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2798
2799 * w32fns.c: Include fontset.h after dispextern.h.
2800 (Fx_create_frame): Do not create fontset.
2801 (w32_load_system_font): Doc fix.
2802 (Fx_close_connection): Free full_name if it is not shared.
2803
2804 * w32term.c: Include fontset.h after dispextern.h.
2805 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2806 updated.
2807 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2808 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2809 (w32_font_is_double_byte): New function, needs body.
2810 (x_append_glyph): Set glyph->glyph_not_available_p.
2811 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2812 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2813 character, convert it to a unibyte character.
2814 (struct glyph_string): Delete member `charset'.
2815 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2816 calculating it is found.
2817 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2818 the case that per char metric is not available correctly.
2819 (x_fill_glyph_string): Handle the case that the specific glyph is
2820 not available correctly.
2821 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2822 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2823 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2824 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2825 fontset. Don't call FS_LOAD_FONT.
2826
439d5cb4
KR
28272000-03-22 Ken Raeburn <raeburn@gnu.org>
2828
2829 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2830 (INT_LISPLIKE): New macro.
2831 (NULL_INTERVAL_P): Use it.
2832 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2833 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2834 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2835
2836 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2837 explicit references to "parent" field of struct interval and
2838 associated unclean type conversions.
2839 * intervals.c (create_root_interval, root_interval, rotate_right,
2840 rotate_left, balance_possible_root_interval, split_interval_right,
2841 split_interval_left, interval_start_pos, find_interval,
2842 next_interval, previous_interval, update_interval,
2843 adjust_intervals_for_insertion, delete_node, delete_interval,
2844 adjust_intervals_for_deletion, merge_interval_right,
2845 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2846 copy_intervals_to_string): Likewise.
2847 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2848 Likewise.
2849 * syntax.c (update_syntax_table): Likewise.
2850
2851 * intervals.c (reproduce_tree_obj): New function, like
2852 reproduce_tree but takes a Lisp_Object for the parent. Declare
2853 with prototype.
2854 (graft_intervals_into_buffer): Use it when appropriate.
2855 (reproduce_tree): Declare with prototype.
2856 (balance_possible_root_interval): Check that the parent is a lisp
2857 object before trying to examine its type.
2858
ee1c5b21
GM
28592000-03-22 Gerd Moellmann <gerd@gnu.org>
2860
2861 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2862 as strings only if both are known to be strings.
2863
2864 * s/openbsd.h (LIBS_TERMCAP): Undef.
2865
1fb352e0
SM
28662000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2867
2868 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2869 definitions for non-Emacs compilation.
2870 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2871 outside of `#ifdef emacs'.
2872 (print_partial_compiled_pattern): Update.
2873 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2874 (re_compile_fastmap): Merge handling of charset and charset_not (for
2875 emacs and non-emacs compilation as well).
2876 Similarly for (not)categoryspec and (not)syntaxspec.
2877 Don't use the fastmap when reaching `anychar' since the added
2878 complexity is not justified.
2879 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2880 and (not)syntaxspec. Merge (not)categoryspec.
2881
fdaa1f77
KH
28822000-03-22 Kenichi Handa <handa@etl.go.jp>
2883
ff1a0d8e
KH
2884 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2885 FACE_FOR_CHAR): Define them differently for the configuration of
2886 --without-x.
fdaa1f77 2887
d152fb46
DL
28882000-03-21 Dave Love <fx@gnu.org>
2889
2890 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2891 doc string.
2892
d2cafc8c
GM
28932000-03-21 Gerd Moellmann <gerd@gnu.org>
2894
2895 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2896 (lface_fully_specified_p): Don't check contents of
2897 LFACE_FONT_INDEX because that attribute is optional.
2898 (realize_x_face): Remove now unwarranted xassert.
2899
9111d4b5
KH
29002000-03-21 Kenichi HANDA <handa@etl.go.jp>
2901
2902 The following changes are to make font selection based on
2903 characters, not charset. In addition, they recover fontset
2904 facilities while utilizing the new font selection mechanism.
2905
6c4bfdc0
KH
2906 * Makefile.in (fontset.o): Depend on dispextern.h.
2907
2908 * alloc.c (mark_face_cache): Don't mark face->registry.
2909
9111d4b5
KH
2910 * dispextern.h (struct glyph): New member glyph_not_available_p.
2911 Use 22 bits for face_id.
2912 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2913 (struct face): Delete member registry, new member ascii_face.
2914 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2915 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2916 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2917 (struct it): Delete member charset, new member
2918 glyph_not_available_p.
2919
2920 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2921 (struct fontset_info, struct fontset_data): Structs removed.
2922 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2923 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2924 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2925 (fs_free_face_fontset, fontset_font_pattern,
2926 face_suitable_for_char_p, face_for_char,
2927 make_fontset_for_ascii_face): Extern them.
2928 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2929 (FS_LOAD_FACE_FONT): New macro.
2930
2931 * fontset.c: All codes rewritten or adjusted for the change of
2932 fontset implementation. Now fontset is represented by char table.
2933 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2934 removed.
2935 (my_strcasecmp): Function removed.
2936 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2937 variables.
2938 (AREF, ASIZE): New macros.
2939 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2940 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2941 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2942 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2943 fontset_id_valid_p, font_family_registry, fontset_name,
2944 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2945 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2946 New functions.
2947 (fs_load_font): New arg FACE. Caller changed.
2948 (fs_query_fontset): Argument changed. Caller changed.
2949 (Fquery_fontset): call fs_query_fontset.
2950 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2951 Functions removed.
2952 (clear_fontset_elements, check_registry_encoding,
2953 check_fontset_name): New functions.
2954 (syms_of_fontset): Set char-table-extra-slots property of fontset
2955 to 3. Staticpro and initialize Vfontset_table and
2956 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2957
2958 * frame.h (struct frame): Member `fontset_data' removed.
2959 (FRAME_FONTSET_DATA): Macro removed.
2960
2961 * frame.c (make_frame): Don't allocate f->fontset_data.
2962 (Fdelete_frame): Don't free f->fontset_data.
2963
6c4bfdc0
KH
2964 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2965
9111d4b5
KH
2966 * xdisp.c (charset_at_position): Function removed.
2967 (init_iterator): Don't set member charset of struct `it'.
2968 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2969 next_element_from_display_vector, insert_left_trunc_glyphs):
2970 Likewise.
2971 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2972 FACE_FOR_CHARSET.
2973 (get_next_display_element, append_space,
2974 extend_face_to_end_of_line): Likewise.
2975
2976 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2977 Variables removed.
2978 (clear_font_table, frame_update_line_height, load_face_font):
2979 Adjusted for the change of fontset implementation.
2980 (load_face_fontset_font): Function removed.
2981 (pixel_point_size): New function.
2982 (font_list): Argument type changed. Caller changed.
2983 (LFACE_FONT): New macro.
2984 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2985 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2986 Lisp_Object. Determine the font name by actually loading a font
2987 by the specified pattern. Set LFACE_FONT (lface) to the specified
2988 pattern. Even if a font is not found, don't try alternatives.
2989 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2990 (set_font_frame_param): If `font' is specified in lface, use it.
2991 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2992 (lface_same_font_attributes_p): Likewise.
2993 (make_realized_face): Arguent changed. Caller changed. Set
2994 face->ascii_face to face itself.
2995 (free_realized_face): Free face->fontset if face is for ASCII.
2996 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2997 deduce_unibyte_registry, x_charset_registry): Functions removed.
2998 (free_realized_multibyte_face): New function.
2999 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3000 changed. Caller changed.
3001 (try_font_list): Argument type changed.
3002 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3003 (choose_face_font): Argument changed. Handle fontset properly.
3004 (choose_face_fontset_font): Function removed.
3005 (realize_default_face, realize_named_face): Don't remove the
3006 former face here.
3007 (realize_face): Argument changed. Caller changed. Remove face
3008 with the arg former_face_id in advance. Load font for the new
3009 face.
3010 (realize_x_face): Argument changed. Caller changed. For a
3011 multibyte character, share fontset with base_face. For a single
3012 byte character, make a new realized fontset. Don't load a font
3013 here.
3014 (realize_tty_face): Argument changed. Caller changed.
3015 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3016 (face_at_buffer_position): Don't check multibyte_p for returning
3017 DEFAULT_FACE_ID.
3018 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3019 FACE_SUITABLE_FOR_CHARSET_P.
3020 (syms_of_xfaces): Remove code for Qx_charset_registry and
3021 Vface_default_registry.
3022
6c4bfdc0
KH
3023 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3024 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
3025 (x_per_char_metric): Don't try FONT->default_char. Even if
3026 pcm->width is zero, glyph bits may exist.
3027 (x_encode_char): Always initialize char2b->byte1.
3028 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3029 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3030 changed.
3031 (x_append_glyph): Set glyph->glyph_not_available_p.
3032 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3033 it->charset. Handle the case that per char metric is not
3034 available. If it->multibyte_p is zero and it->c is a multibyte
3035 character, convert it to a unibyte character.
3036 (struct glyph_string): Delete member `charset'.
3037 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3038 the case that per char metric is not available correctly.
3039 (x_fill_glyph_string): Handle the case that the specific glyph is
3040 not available correctly.
3041 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3042 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3043 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3044 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3045 fontset. Don't call FS_LOAD_FONT.
3046
3047 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3048 (x_create_tip_frame): Likewise.
3049 (Fx_close_connection): Free full_name of font_info.
3050
3051 * fns.c (optimize_sub_char_table): New function.
3052 (Foptimize_char_table): New function.
3053 (syms_of_fns): Defsubr Soptimize_char_table.
3054
b33dd3b0
GM
30552000-03-20 Gerd Moellmann <gerd@gnu.org>
3056
3057 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3058 only if buffer is displayed in some window.
3059
3060 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3061 (try_window_reusing_current_matrix): Don't call scroll run
3062 function if run's current and desired position are the same;
3063 this prevents cursor flickering.
3064
4e8a9132
SM
30652000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3066
3067 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3068
3069 * regex.c (RE_STRING_CHAR): New macro.
3070 (GET_CHAR_AFER_2): Remove.
3071 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3072 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3073 (print_partial_compiled_pattern, re_compile_fastmap)
3074 (re_match_2_internal): Remove on_failure_jump_exclusive.
3075 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3076 optimization only need to work for * (ie. can use of_keep_string_jump).
3077 Remove the special case for .*\n since it is now covered by the general
3078 optimization.
3079 (re_search_2): Don't bother with `room'.
3080 (skip_one_char): New function.
3081 (skip_noops): Simplify since `memory' is not needed any more.
3082 (mutually_exclusive_p): Restructure slightly to use `switch' and
3083 add handling for "all" remaining cases.
3084 (re_match_2_internal): Change on_failure_jump_smart to use
3085 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3086 rather than on_failure_jump_exclusive.
3087
2136fdd4
GM
30882000-03-19 Gerd Moellmann <gerd@gnu.org>
3089
3090 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3091 number of bits per RGB because it's everywhere used as the depth
3092 of the visual.
3093
3094 * term.c (calculate_costs): Remove code dealing with X frames.
3095
e53ae11c
RS
30962000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3097
3098 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3099
d7b511c4
GM
31002000-03-18 Gerd Moellmann <gerd@gnu.org>
3101
3102 * lread.c (read_integer): Unread the last char not consumed.
3103
16b5d424
GM
31042000-03-17 Gerd Moellmann <gerd@gnu.org>
3105
3106 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3107 which are in the process of being deleted.
16b5d424 3108
1fa28578
GM
31092000-03-16 Gerd Moellmann <gerd@gnu.org>
3110
83488cce
GM
3111 * Makefile.in (mostlyclean): Add `*.core'.
3112 (clean): Add `bootstrap-emacs'.
3113
1fa28578
GM
3114 * lread.c (read_integer): New function.
3115 (read1): Support read syntax #o, #x, #b, #r.
3116
99633e97
SM
31172000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3118
1fa28578
GM
3119 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3120 make sure POINTER_TO_OFFSET gives the same value before and after
3121 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3122 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3123 (debug): Now only active if > 0 rather than if != 0.
3124 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3125 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3126 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3127 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3128 (store_op1, store_op2, insert_op1, insert_op2)
3129 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3130 (group_in_compile_stack): Move to after its arg's types are
3131 declared and add a prototype.
99633e97 3132 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3133 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3134 wrapper.
99633e97 3135 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3136 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3137 indentation of the greedy-op and shy-group code.
99633e97
SM
3138 (at_(beg|end)line_loc_p): Fix argument's types.
3139 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3140 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3141 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3142 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3143 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3144 QUIT unconditionally.
99633e97 3145
699238d9
GM
31462000-03-15 Gerd Moellmann <gerd@gnu.org>
3147
3148 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3149 a sole completion.
3150
3151 * process.c (send_process): Add a hint that the function
3152 can call Lisp code to its comment.
3153
3154 * lread.c (load_dangerous_libraries): New variable.
3155 (Vbytecomp_version_regexp): New variable.
3156 (safe_to_load_p): New function.
3157 (Fload): Handle files not compiled with Emacs specially.
3158 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3159
34e23e5a
GM
31602000-03-14 Gerd Moellmann <gerd@gnu.org>
3161
9c763cca
GM
3162 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3163
3164 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3165 support functions only if HAVE_X11R6_XIM is defined.
3166 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3167
3168 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3169
3170 * xfns.c (X_I18N_INHIBITED): Don't define.
3171 (create_frame_xic): Remove conditional compilation on
3172 X_I18N_INHIBITED.
3173 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3174
3175 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3176 (HAVE_X11R6_XIM): Define.
3177
3178 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3179
34e23e5a
GM
3180 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3181 If set, call XSynchronize.
3182
66f0296e
SM
31832000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3184
34e23e5a
GM
3185 * regex.c: Declare a new type `re_char' used throughout the code
3186 for the string char type. It's `const unsigned char' to match the
3187 rest of Emacs. Consistently make sure all pointers to strings use
3188 it and make sure all pointers into the pattern use `unsigned
3189 char'.
66f0296e 3190 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3191 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3192 code duplication.
66f0296e
SM
3193
3194 * charset.h (GET_CHAR_AFTER_2): Remove.
3195 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3196
854a025c
KR
31972000-03-12 Ken Raeburn <raeburn@gnu.org>
3198
3199 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3200 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3201 of them try to use backquotes.
3202
b9d2c7e2
DL
32032000-03-12 Dave Love <fx@gnu.org>
3204
3205 * unexelf.c: Restore changes of 1999-10-19.
3206 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3207 fix its type and alignment; copy it from current process.
3208
5e5dff44
GM
32092000-03-12 Gerd Moellmann <gerd@gnu.org>
3210
9b2f3c38
GM
3211 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3212 has been found. Fix bug not computing timer's predecessor.
3213
427ec082 3214 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3215 file name.
3216
e1cff360
GM
3217 * window.c (Fsave_window_excursion): Doc fix.
3218
5e5dff44
GM
3219 * xfns.c (x_defined_color): Rewritten to use
3220 x_allocate_nearest_color.
3221
e411ce4b
EZ
32222000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3223
3224 * msdos.c (vga_installed): New function, code moved from
3225 dos_set_window_size.
3226 (Qbar, Qcursor_type, outside_cursor): New variables.
3227 (syms_of_msdos): Intern and staticpro them.
3228 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3229 shape used outside Emacs when called for the first time.
3230 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3231 cursor shape used outside Emacs.
3232 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3233 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3234 type has changed.
3235 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3236 parameters specify the cursor. Make qreverse a global
3237 variable (renamed to Qreverse).
3238
80460654
GM
32392000-03-09 Gerd Moellmann <gerd@gnu.org>
3240
3241 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3242
95cd4c40
SM
32432000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3244
3245 This is a big redesign of failure-stack and register handling, prompted
3246 by bugs revealed when trying to add shy-groups. Overall, what happened
3247 is that loops are now structured a little differently, groups can be
3248 shy and the code is a little simpler.
3249
3250 * regex.h: Update the copyright.
3251 (RE_SHY_GROUPS): New value.
3252 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3253 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3254
80460654
GM
3255 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3256 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3257 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3258 for (start|stop)_memory since they now only take one argument (the
3259 second has becomes unnecessary).
3260 (print_partial_compiled_pattern): Adjust for changes in
3261 re_opcode_t.
3262 (print_compiled_pattern): Use %ld to printf long ints and flush to
3263 make debugging a little easier.
95cd4c40
SM
3264 (union fail_stack_elt): Make the integer unsigned.
3265 (struct fail_stack_type): Add a `frame' element.
3266 (INIT_FAIL_STACK): Init `frame' as well.
3267 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3268 (DEBUG_PUSH, DEBUG_POP): Remove.
3269 (NUM_REG_ITEMS): Remove.
3270 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3271 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3272 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3273 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3274 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3275 macros.
3276 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3277 address pushed is not the destination of the jump but the source
3278 of it instead.
95cd4c40
SM
3279 (NUM_FAILURE_ITEMS): Remove.
3280 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3281 registers before the actual failure point). Don't hardcode any
3282 meaning for str==NULL anymore.
95cd4c40 3283 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3284 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3285 Remove.
95cd4c40
SM
3286 (REG_UNSET_VALUE): Use NULL (why not?).
3287 (compile_range): Remove declaration since it doesn't exist.
3288 (struct compile_stack_elt_t): Remove inner_group_offset.
3289 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3290 (regex_grow_registers): Remove dead code.
3291 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3292 (regex_compile): Add shy-groups Change loops to use
3293 on_failure_jump_smart&jump instead of
3294 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3295 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3296 variable to me). Use `jump' instead of `jump_past_alt' and don't
3297 bother with push_dummy_failure in alternatives since it is now
3298 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3299 emacs' for (re)allocating the stack.
3300 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3301 from loop when bufp->can_be_null rather than jumping to `done'.
3302 Avoid jumping backwards so as to ensure termination. Use
3303 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3304 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3305 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3306 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3307 improve mutually_exclusive_p to handle ".+\n".
3308 (lowest_active_reg, highest_active_reg,
3309 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3310 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3311 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3312 variables. Push register (in `start_memory') on the stack rather
3313 than storing it in old_reg(start|end). Remove the cycle detection
3314 from `stop_memory', replaced by the use of on_failure_jump_loop
3315 for greedy loops. Add code for the new on_failure_jump_<foo>.
3316 Remove ad-hoc code in `on_failure_jump' to push more registers in
3317 the case of a loop. Take out code from `maybe_pop_jump' into
3318 separate functions and adapt it to the semantics of
3319 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3320 and push_dummy_failure. Remove dummy_failure handling and
3321 handling of `failures to jump to on_failure_jump' (this last one
3322 was already dead code, it seems).
3323 (group_match_null_string_p, alt_match_null_string_p)
3324 (common_op_match_null_string_p): Remove.
95cd4c40 3325
7397acc4
DL
33262000-03-08 Dave Love <fx@gnu.org>
3327
3328 * config.in: Don't depend on __STDC__ for volatile.
3329 Add POINTER_TYPE, PTR, PROTOTYPES.
3330
3331 * hftctl.c, strftime.c: Use PROTOTYPES.
3332 * eval.c (find_handler_clause): Likewise.
3333
3334 * mem-limits.h: Use POINTER_TYPE.
3335
3336 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3337 (memory_warnings): Declare using POINTER_TYPE.
3338
5e91ff9e
GM
33392000-03-08 Gerd Moellmann <gerd@gnu.org>
3340
feab4fba
GM
3341 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3342
25edb08f
GM
3343 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3344 collection.
3345
5e91ff9e
GM
3346 * xfns.c: Remove obsolete code in #if 0.
3347 (Fx_focus_frame): New function.
3348
a735b7e1
KH
33492000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3350
3351 * coding.c (coding_category_name): Add coding-category-utf-8,
3352 coding-category-utf-16-be, coding-category-utf-16-le.
3353 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3354 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3355 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3356 (detect_coding_utf_8): New function.
3357 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3358 UTF_16_LOW_SURROGATE_P): New macros.
3359 (detect_coding_utf_16): New function
3360 (detect_coding_mask): When priorities are specified, skip any
3361 categories that have `nil' coding-system. Fix bug of returning
3362 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3363 returns a mask not set in PRIORITIES.
3364 (detect_eol_type_in_2_octet_form): New function.
3365 (detect_eol): selects detect_eol_type_XXX to call according to
3366 cooding->category_idx.
3367 (detect_coding_system): Remove `nil' coding-system in the result.
3368 (Fupdate_coding_systems_internal): Update all coding-categories.
3369
3370 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3371 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3372 macros.
3373 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3374 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3375 CODING_CATEGORY_IDX_UTF_16_LE.
3376 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3377 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3378 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3379 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3380
9994cc69
GM
33812000-03-07 Gerd Moellmann <gerd@gnu.org>
3382
e9b4e5ff
GM
3383 * doc.c (Fdocumentation_property): If value is not a string,
3384 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3385
f7daf1e1
GM
3386 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3387 close the display with XtCloseDisplay. This caused a bus error
3388 on OpenWindows.
3389
9994cc69
GM
3390 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3391 complete but not unique.
3392
4336c705
GM
33932000-03-06 Gerd Moellmann <gerd@gnu.org>
3394
18bb0684
GM
3395 * process.c (send_process): Remove local variable `procname' that
3396 might become invalid when a GC happens. Instead, access the
3397 process name slot directly.
3398
4336c705
GM
3399 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3400 orig_height if set.
3401
3402 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3403 orig_height if set.
3404
515d0d0e
EZ
34052000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3406
3407 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3408 glyph matrices have been freed.
3409
100b3cbb
GM
34102000-03-05 Gerd Moellmann <gerd@gnu.org>
3411
50df5e5a 3412 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3413 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3414
3415 * xfns.c (QCdata): Moved to xdisp.c.
3416
3417 * xdisp.c (QCdata): Moved here from xfns.c.
3418 (syms_of_xdisp): Initialize QCdata.
3419
3420 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3421
3422 * window.c (coordinates_in_window): Use
3423 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3424 FRAME_INTERNAL_BORDER_WIDTH.
3425
100b3cbb 3426 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3427 it is obviously invalid.
100b3cbb
GM
3428
3429 * xterm.c (x_term_init): Create a colormap if not using the
3430 default visual.
3431
3432 * xterm.h (select_visual): Change prototype.
3433
3434 * xfns.c (select_visual): Rewritten. Recognize user-specified
3435 visual classes.
3436 (visual_classes): New variable.
3437
64d739c4
GM
34382000-03-04 Gerd Moellmann <gerd@gnu.org>
3439
3440 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3441 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3442 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3443 (x_decode_color): Don't handle allocation of white and black
3444 specially.
3445 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3446 XtNcolormap resources.
3447 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3448 (Fx_create_frame): Initialize color members of x_output structure.
3449 (xpm_load): Pass colormap to XPM lib.
3450
3451 * xfaces.c (x_free_colors): Access colormap of frame using
3452 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3453 when default colormap is used.
3454
3455 * xterm.c (x_term_init): Set Colormap member of x_display_info
3456 structure. Copy colormap if resource `privateColormap' is
3457 specified (PseudoColor only).
3458 (x_setup_relief_color): Access colormap of frame using
3459 FRAME_X_COLORMAP.
3460
3461 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3462 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3463
c3cee013
JR
34642000-03-04 Jason Rumney <jasonr@gnu.org>
3465
3466 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3467 other non-platform-specific equivalents.
64d739c4 3468 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3469 specific functions and macros as their w32 equivalents where
3470 non-platform-specifics are not available.
3471 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3472 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3473 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3474 (frame_update_line_height): Use macros to access f->output_data.
3475 (defined_color): Remove FIXME comments; fixed.
3476 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3477 into #ifdef blocks. Add WINDOWSNT blocks.
3478 (Fx_list_fonts): Use macros for accessing font data.
3479 (set_lface_from_font_name): Different default fonts for X and
3480 WINDOWSNT.
3481 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3482 scalable for backward compatibility.
64d739c4 3483 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3484 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3485
64d739c4 3486 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3487 syms_of_w32faces.
3488
3489 * makefile.nt (w32faces.obj): Remove.
3490 (xfaces.obj): Add.
3491
807cc41c
JR
34922000-03-03 Jason Rumney <jasonr@gnu.org>
3493
3494 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3495 correct parameters.
3496
0007072a
KR
34972000-03-03 Ken Raeburn <raeburn@gnu.org>
3498
3499 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3500 standard ELF definitions here if the system header does not.
3501
71a6ba55
GM
35022000-03-03 Gerd Moellmann <gerd@gnu.org>
3503
3504 * xterm.c (PER_CHAR_METRIC): Removed.
3505 (x_per_char_metric_1, x_default_char): New functions.
3506 (x_per_char_metric): If font's default char is invalid, return
3507 metrics of a suitably chosen usable default char.
3508 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3509 char, replace occurrences of unprintable chars with a suitably
3510 chosen usable default char.
71a6ba55 3511
900fa1f1
GM
35122000-03-02 Gerd Moellmann <gerd@gnu.org>
3513
42f55fe0
GM
3514 * xterm.c (note_mouse_highlight): Return quickly if frame's
3515 glyph matrices have been freed.
3516
3517 * dispnew.c (free_glyphs): Block input while freeing matrices.
3518
900fa1f1
GM
3519 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3520
3521 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3522 x_free_colors.
3523
3524 * dispextern.h (x_free_colors): Add prototype.
3525
3526 * xfaces.c (x_free_colors): New function.
3527 (unload_color, free_face_colors): Use it.
3528
2f950292
EZ
35292000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3530
3531 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3532
3533 * window.c [MSDOS]: Include msdos.h.
3534
54d04320
DL
35352000-03-02 Dave Love <fx@gnu.org>
3536
3537 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3538
3539 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3540 set C_OPTIMIZE_SWITCH for gcc.
3541
0ba93ac4
KH
35422000-03-02 Kenichi Handa <handa@etl.go.jp>
3543
3544 * coding.c (coding_save_composition): Be sure to allocate
3545 composition data area in coding even if there's no composition in
3546 the current run.
3547
a2bc11d4
JR
35482000-03-01 Jason Rumney <jasonr@gnu.org>
3549
3550 * w32term.c: Equivalent changes to those made to xterm.c on
3551 2000-02-25 and 2000-02-24.
3552
3553 * w32fns.c: Equivalent changes to those made to xfns.c on
3554 2000-02-25 and 2000-02-21.
3555
3556 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3557 correct line-end convention is followed.
3558
3559 * w32menu.c [HAVE_BOXES]: Remove #undef.
3560 (single_keymap_panes): Remove code for simulating checkmarks.
3561 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3562 Remove code for drawing simulated checkmarks.
3563 (w32_menu_show): make unibyte help string correctly.
3564 (add_menu_item): draw standard Windows checkmarks. Draw radio
3565 buttons as radio buttons if possible.
3566
72d19d75
GM
35672000-03-01 Gerd Moellmann <gerd@gnu.org>
3568
2df636f4
GM
3569 * sysdep.c (start_of_text): Don't define this function for NetBSD
3570 with ELF.
3571
427ec082 3572 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3573 Don't define.
3574 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3575 (LINKER): Don't undef if __NetBSD__ is defined.
3576
3577 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3578
3579 * fileio.c [__NetBSD__]: Define `unix'.
3580
72d19d75
GM
3581 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3582
ed4d0512
GM
35832000-02-29 Gerd Moellmann <gerd@gnu.org>
3584
50b1039f
GM
3585 * atimer.c (start_atimer): Don't abort when timers are stopped.
3586 (append_atimer_lists): New function.
3587 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3588 arbitrary lists of stopped and running atimers.
3589
ed4d0512
GM
3590 * atimer.c (cancel_atimer): Handle canceling an atimer when
3591 some timers are stopped.
3592
3593 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3594 after canceling it.
3595
3596 * fns.c (maybe_resize_hash_table): Handle case of new size
3597 coming out as being the same as old size.
3598
387023ee
JR
35992000-02-27 Jason Rumney <jasonr@gnu.org>
3600
3601 * makefile.nt: Add atimer.h to dependencies.
3602 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3603 * w32console.c: Only disable window system features for dispextern.h
3604 (initialize_w32_display): Build a display info for the console.
3605 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3606 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3607 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3608 as 2 button mice.
3609 * w32gui.h (struct W32FontStruct): Revert last change after change
3610 to xdisp.c.
3611 * w32menu.c (single_submenu): Set up help string.
3612 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3613 (w32_dialog_show): Set up help string.
3614 * w32term.c (w32_display_info_for_display): Remove unused function.
3615 (w32_draw_bitmap): Use pre-built bitmaps.
3616 (w32_initialize_display_info): New function to initialize parts of
3617 display info that are common to both GUI and console frames.
3618 (w32_term_init): Use w32_initialize_display_info. Do not set
3619 Vw32_num_mouse_buttons here, as it is not called for console
3620 frames. Build bitmaps for indicating truncated lines etc.
3621 (x_delete_display): Destroy pre-built bitmaps.
3622 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3623 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3624
4516715a
DL
36252000-02-27 Dave Love <fx@gnu.org>
3626
3627 * lisp.h: Add a bunch of prototypes.
3628
171ca836
KH
36292000-02-26 Kenichi Handa <handa@etl.go.jp>
3630
3631 * keyboard.c (read_char): Set `usec' correctly.
3632
4013921d
KH
36332000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3634
3635 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3636 `lambda', set reg[RRR] to the map index.
3637 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3638 reg[RRR] to 0. Otherwise, set it to -1.
3639
9244a058
GM
36402000-02-25 Gerd Moellmann <gerd@gnu.org>
3641
2df636f4 3642 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3643
f43d79c1 36442000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3645
f43d79c1
GM
3646 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3647 and contains a `:', prepend `/:'.
3648
3649 * window.c (select_window_1): If selected_window is nil,
3650 don't "swap out" the buffer's point.
3651 (Fset_window_configuration): Set selected_window to nil
3652 before calling Fselect_window.
3653 (unshow_buffer): Don't set point in buffer from window's point
3654 if another more recently selected window also shows the buffer.
3655
bed0c171
GM
36562000-02-25 Gerd Moellmann <gerd@gnu.org>
3657
449c3c52
GM
3658 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3659
f5b58615
GM
3660 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3661 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3662 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3663 variables.
3664 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3665 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3666 (hide_busy_cursor): New functions.
3667 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3668
3669 * minibuf.c (read_minibuf): Cancel busy-cursor.
3670
3671 * keyboard.c (command_loop_1): Call start_busy_cursor before
3672 Fcommand_execute and cancel_busy_cursor after it.
3673 (timer_check): Remove busy-cursor code.
3674 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3675 cursor timer.
3676
3677 * process.c (wait_reading_process_input): Remove busy-cursor code.
3678
3679 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3680 Fx_hide_busy_cursor.
3681
3682 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3683 Remove prototyoes.
3684 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3685
3686 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3687
3688 * xterm.c (XTread_socket): Remove busy-cursor code.
3689
4eb8436f
GM
3690 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3691 (build_frame_matrix_from_leaf_window): Put code handling
3692 glyph row's not being a slice of a frame row in #if 0.
3693 (sync_window_with_frame_matrix_rows): New function.
3694 (frame_row_to_window): New function.
3695 (mirror_line_dance): Handle copies between windows.
3696
3cb65b0e
GM
3697 * lread.c (Fload): Use `xfree' instead of `free'.
3698 (init_obarray): Use `xmalloc' instead of `malloc'.
3699
bed0c171
GM
3700 * window.c (Fset_window_buffer): Set WINDOW to the window
3701 after decoding.
2add4349
GM
3702 (coordinates_in_window): Take frame's internal border width
3703 into account.
bed0c171 3704
42088c12
GM
37052000-02-24 Gerd Moellmann <gerd@gnu.org>
3706
3707 * xterm.c (x_display_and_set_cursor): Display cursor of
3708 non-selected windows depending on the setting of
3709 cursor_in_non_selected_windows.
3710
3711 * xdisp.c (cursor_in_non_selected_windows): New variable.
3712 (syms_of_xdisp): DEFVAR_BOOL it.
3713
d1e103b2
GM
37142000-02-23 Gerd Moellmann <gerd@gnu.org>
3715
723e779c
GM
3716 * data.c (Fstring_to_number): If number is greater than what
3717 fits into an integer, return a float.
3718
d1e103b2
GM
3719 * eval.c (specbind): Remove references to
3720 keyword_symbols_constant_flag.
3721
3722 * data.c (keyword_symbols_constant_flag): Removed.
3723 (Fmakunbound, set_internal, syms_of_data): Remove references to
3724 keyword_symbols_constant_flag.
3725
3726 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3727
214f877f
KH
37282000-02-23 Kenichi Handa <handa@etl.go.jp>
3729
3730 * syntax.c (multibyte_syntax_as_symbol): New variable.
3731 (syms_of_syntax): Declare it as a Lisp variable.
3732 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3733 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3734 nonzero, treat all multibyte characters as symbol.
42088c12 3735 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3736 characters.
3737
130adcb7
EZ
37382000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3739
3cb65b0e 3740 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 3741 a deleted frame.
130adcb7 3742
17cbbf95
GM
37432000-02-21 Gerd Moellmann <gerd@gnu.org>
3744
3745 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3746
3747 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3748 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3749
beb0bc36
DL
37502000-02-21 Dave Love <fx@gnu.org>
3751
3752 * frame.c (Vmouse_position_function): New variable.
3753 (Fmouse_position): Use it.
3754 (syms_of_frame): Install it.
3755
3756 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3757
1d92afcd
GM
37582000-02-20 Gerd Moellmann <gerd@gnu.org>
3759
3760 * fileio.c (Finsert_file_contents): Unbind the binding of
3761 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3762
3763 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3764 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3765 (specbind, unbind_to): Handle most common case of non-constant
3766 symbol with trivial value specially.
3767
3768 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3769
2d06696f
RS
37702000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3771
3772 * data.c (Fmake_variable_buffer_local): Doc fix.
3773 Init found_for_buffer to 0.
3774 (Fmake_variable_frame_local): If the variable has already
3775 been buffer-local, set the check_frame field.
3776
1d4311c3
EZ
37772000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3778
3779 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3780 produced for CODING_MODE_LAST_BLOCK requires.
3781
2dc95ddd
DL
37822000-02-18 Dave Love <fx@gnu.org>
3783
3784 * keyboard.c (echo_keystrokes): Remove declaration.
3785 (Vecho_keystrokes) New variable.
3786 (read_char, record_menu_key, read_key_sequence): Use it to allow
3787 use of float value.
3788 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3789
3790 * lread.c: Undef feature selection macros before defining.
3791
f0930f35
GM
37922000-02-18 Gerd Moellmann <gerd@gnu.org>
3793
3794 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3795 for symbols other than the symbol in question.
3796
e3d4de90
DL
37972000-02-17 Dave Love <fx@gnu.org>
3798
3799 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3800
0b378936
GM
38012000-02-17 Gerd Moellmann <gerd@gnu.org>
3802
d621caf7
GM
3803 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3804
0b378936
GM
3805 * alloc.c (enum mem_type): Compile unconditionally.
3806
3b451f74
EZ
38072000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3808
3809 * xfaces.c (tty_defined_color): Don't return faulire indication
3810 for unspecified-fg and unspecified-bg pseudo-colors.
3811
10689a01
GM
38122000-02-17 Gerd Moellmann <gerd@gnu.org>
3813
1216f5e4
GM
3814 * alloc.c (mark_object): Don't mark symbol names in pure space.
3815 (gc_sweep): Don't unmark symbol names in pure space.
3816
3817 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3818 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3819 [GC_MARK_STACK]: New defines.
427ec082 3820 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3821 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3822
3823 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3824
3825 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3826 allocate_buffer instead of xmalloc.
3827
3828 * alloc.c (toplevel): Include setjmp.h.
3829 (PURE_POINTER_P): New define.
3830 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3831 (Vdead) [GC_MARK_STACK]: New variable.
3832 (lisp_malloc): Add parameter TYPE, call mem_insert if
3833 GC_MARK_STACK is defined.
3834 (allocate_buffer): New function.
427ec082 3835 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3836 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3837 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3838 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3839 (MEM_NIL) [GC_MARK_STACK]: New define.
3840 (struct mem_node) [GC_MARK_STACK]: New structure.
3841 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3842 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3843 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3844 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3845 (mark_stack) [GC_MARK_STACK]: New functions.
3846 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3847 (clear_marks): Removed.
3848 (gc_sweep): Set free conses' car, free floats' type, free
3849 symbols' function to Vdead. Use lisp_free to free buffers.
3850 (init_alloc_once): Initialize Vdead.
3851 (survives_gc_p): Return non-zero for pure objects.
3852
3853 * alloc.c: Add comments throughout the file.
3854
2503c8b1
GM
3855 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3856 that unblocks alarms.
3857
8389e1e2
GM
3858 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3859 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3860 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3861
10689a01 3862 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3863
bfc17d18
KH
38642000-02-17 Kenichi Handa <handa@etl.go.jp>
3865
4a09dee0
KH
3866 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3867 avoid infinite error signaling. Allocate sufficient memory for
3868 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3869
2b927d02
SM
38702000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3871
3872 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3873 depends on the previous behavior.
3874
b49cb764
GM
38752000-02-16 Gerd Moellmann <gerd@gnu.org>
3876
3877 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3878
99e95407
GM
38792000-02-15 Gerd Moellmann <gerd@gnu.org>
3880
3881 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3882
3883 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3884 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3885 write(2).
3886
6ffd3cf7
RS
38872000-02-15 Richard M. Stallman <rms@gnu.org>
3888
3889 * data.c (set_internal): Don't make variable buffer-local
3890 if within a let-binding for the same buffer.
3891 (let_shadows_buffer_binding_p): New function.
3892
3893 * eval.c (specbind): For buffer-local value,
3894 record the current buffer also.
3895 (unbind_to): Cope with that change.
3896
cad53475
GM
38972000-02-15 Gerd Moellmann <gerd@gnu.org>
3898
3899 * window.c (Fsave_window_excursion): Doc fix.
3900
1aa963c8
SM
39012000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3902
3903 * syntax.c (back_comment): Make sure we only consider comment-starters
3904 of the relevant style and return -1 in case of a failure to find the
3905 beginning of the comment.
3906 (Fforward_comment): If back_comment fails, go back to the position just
3907 after the comment-end.
3908 (scan_lists): Add comment describing a very minor bug.
3909
b9b84fd3
SM
39102000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3911
3912 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3913 `completion-regexp-list' in the docstring.
3914
3a28db80
DL
39152000-02-14 Dave Love <fx@gnu.org>
3916
3917 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3918
fb4a568d
SM
39192000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3920
3921 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3922 to Emacs' syntax. Also fix the comment about set/not-set meanings
3923 since Emacs syntax is not the value 0 any more.
3924 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3925 since it's now part of RE_SYNTAX_EMACS.
3926
1063ebb5
DL
39272000-02-12 Dave Love <fx@gnu.org>
3928
3929 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3930 Alpha.
3931
fb07a302
GM
39322000-02-12 Gerd Moellmann <gerd@gnu.org>
3933
3934 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3935
aaf2320c
DL
39362000-02-12 Dave Love <fx@gnu.org>
3937
3938 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3939
3940 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3941 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3942 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3943
3944 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3945
3946 * s/nextstep.h: Don't define HAVE_ALLOCA.
3947
3948 * config.in: Add vfork bits.
3949
eedf8bde
GM
39502000-02-12 Gerd Moellmann <gerd@gnu.org>
3951
3952 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3953 unwind function to undo the effect of stopping atimers.
3954
3955 * keyboard.c (bind_polling_period): Stop all timers except
3956 poll_timer.
3957
3958 * atimer.c (stopped_atimers): New variable.
3959 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3960 New functions.
3961
3962 * atimer.h (stop_other_atimers, run_all_atimers)
3963 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3964
eedf8bde
GM
3965 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3966
8476c2f8
KR
39672000-02-11 Ken Raeburn <raeburn@gnu.org>
3968
3969 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3970 library may depend on jpeg.
3971 (atimer.o): Depends on atimer.c.
3972
0e85e4a3
KH
39732000-02-11 Kenichi Handa <handa@etl.go.jp>
3974
3975 * insdel.c (del_range_1): Call update_compositions.
3976 (del_range_both): Call update_compositions just once..
3977
97fa0cc8
DL
39782000-02-10 Dave Love <fx@gnu.org>
3979
3980 * xfns.c (create_frame_xic): Fix initialization of automatic
3981 aggregates for pcc.
3982
25566a3c
KH
39832000-02-09 Kenichi Handa <handa@etl.go.jp>
3984
3985 * ccl.c (CCL_MAKE_CHAR): New macro.
3986 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3987 registers by CCL_MAKE_CHAR before calling translate_char.
3988 <CCL_TranslateCharacterConstTbl> Likewise.
3989
69da54ba
DL
39902000-02-08 Dave Love <fx@gnu.org>
3991
3992 * lread.c (__EXTENSIONS__): Define.
3993
f7136ee8
GM
39942000-02-08 Gerd Moellmann <gerd@gnu.org>
3995
3996 * puresize.h (BASE_PURESIZE): Increase to 650000.
3997
7768790b
EZ
39982000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3999
4000 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4001 the help message.
4002
38fd211b
EZ
40032000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4004
4005 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4006 md, mh, mb, mr, and me to the fake termcap entry.
4007
66e4690f
KR
40082000-02-06 Ken Raeburn <raeburn@gnu.org>
4009
4010 * sound.c (sound_cleanup): Don't call device close routine if the
4011 function pointer is null.
4012
a75dfea0
AI
40132000-02-06 Andrew Innes <andrewi@gnu.org>
4014
4015 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4016 around image definitions and prototypes.
4017 (gamma_correct) [WINDOWSNT]: New prototype.
4018
4019 * w32term.c (x_make_frame_visible): Replace call to
4020 input_poll_signal with poll_for_input.
4021
4022 * window.c [WINDOWSNT]: Include w32term.h.
4023
4024 * xdisp.c [WINDOWSNT]: Include w32term.h.
4025
4026 * makefile.nt: Add dependencies on w32gui.h.
4027 (OBJ1): Include atimer.obj.
4028 ($(BLD)\atimer.obj): New dependency rule.
4029
4030 * w32.c (sigmask): New function (does nothing).
4031 (sigunblock): Ditto.
4032
4033 * frame.c [WINDOWSNT]: Include w32term.h.
4034
4035 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4036
4037 * lread.c (syms_of_lread): Fix literal newlines.
4038
4039 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4040 the string constant limit (2048 bytes) in MSVC.
4041 (main): Ditto.
4042
59ddecde
GM
40432000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4044
4045 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4046 area.
4047 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4048 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4049 dispatch the event.
4050
07590973
DL
40512000-02-04 Dave Love <fx@gnu.org>
4052
4053 * fileio.c: Remove some unused vars.
4054 (_GNU_SOURCE): Define (for euidaccess).
4055
4056 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4057
4058 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4059 gcpro1, gcpro2.
4060 (read_minibuf): Deal with allow_props correctly.
4061
649351f9
EZ
40622000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4063
4064 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4065
66e4690f 40662000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
4067
4068 * search.c (compile_pattern): If a cache entry has a nil regexp,
4069 fill in that entry instead of clobbering a previously cached
4070 string regexp.
4071
66e4690f 40722000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
4073
4074 * puresize.h (BASE_PURESIZE): Increase to 610000.
4075
d240a249
GM
40762000-02-02 Gerd Moellmann <gerd@gnu.org>
4077
4078 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4079 can GC.
4080
ca91fb26
KH
40812000-02-02 Kenichi Handa <handa@etl.go.jp>
4082
25660570
KH
4083 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4084 instead of incrementing ic directly.
4085 <CCL_WriteExprConst> Likewise.
4086 <ccl_set_expr>: Set ic to jump_address.
4087
ca91fb26
KH
4088 * fileio.c (e_write): Fix the handling of
4089 CODING_FINISH_INSUFFICIENT_SRC.
4090
2ede9689
DL
40912000-02-01 Dave Love <fx@gnu.org>
4092
4093 * editfns.c (Fpropertize): Doc fix.
4094
4095 * process.c (Fstart_process): Doc fix.
4096
4097 * eval.c: Fix various doc strings not to duplicate information
4098 from help-manyarg-func-alist.
4099
4100 * window.c (Fset_window_margins): Don't make interactive. Doc
4101 fix.
4102
4103 * doc.c (Vhelp_manyarg_func_alist): New variable.
4104 (Fdocumentation): Use it.
4105 (syms_of_doc): Define it.
4106
b6680a0e
GM
41072000-01-31 Gerd Moellmann <gerd@gnu.org>
4108
2cb750ba
GM
4109 * xterm.c (xim_open_dpy): Remove unused local variable.
4110
74e9213b
GM
4111 * emacs.c (USAGE): Use term `display options' instead of `X
4112 options'.
4113
4114 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4115 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4116
b6680a0e
GM
4117 * fns.c (sweep_weak_table): New function.
4118 (sweep_weak_hash_tables): Use it. Keep on marking until there
4119 is no more change.
4120
994c5afe
GM
41212000-01-30 Gerd Moellmann <gerd@gnu.org>
4122
4123 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4124 that XTread_socket does not crash by trying to call XNoOp on a
4125 closed display.
427ec082 4126
f00276e3
JR
41272000-01-30 Jason Rumney <jasonr@gnu.org>
4128
4129 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4130 Change selected_frame to SELECTED_FRAME ().
4131 (w32_console_mouse_position): Remove #ifndef MULE from around
4132 `insist' parameter.
4133
4134 * makefile.nt: Remove dosfns.obj.
4135
4136 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4137
4138 * w32fns.c (w32_defined_color): Check for valid frame before
4139 applying gamma correction. Eliminate dependency on frame elsewhere.
4140 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4141 (w32_to_x_font): Use resx and resy not height_in and width_in.
4142 (x_to_w32_font): Doc fix.
4143 (xlfd_strip_height): New function to strip and return font height.
4144 (w32_font_match): Compare height separately from rest of xlfd
4145 spec, using xlfd_strip_height.
4146
4147 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4148 width_in. Use w32_defined_color in place of defined_color.
4149
4150 * w32faces.c: Merge more of DOS and X specifics in preparation for
4151 merge with xfaces.c.
4152 (defined_color): Remove FIXME comment.
4153 (tty_color_name): Provide w32-specific function.
4154 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4155
4156 * w32console.c (turn_on_face, turn_off_face): Removed.
4157 (w32_face_attributes): New function.
4158 (Global_variables): Reduce scope where possible.
4159 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4160 fill attribute.
4161 (hl_mode): Don't modify text attributes.
4162 (write_glyphs): Don't do anything if len <= 0. Use
4163 w32_face_attributes to get attributes for drawing. Write
4164 terminating codes using char_attr_normal.
4165 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4166 (update_begin, update_end): Likewise.
4167 (vga_stdcolor_name): New function.
4168 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4169 (Fset_screen_color): Remove char_attr_reverse.
4170
b08e8bb2
GM
41712000-01-29 Gerd Moellmann <gerd@gnu.org>
4172
4173 * xfns.c (xic_set_preeditarea): Take window parameter and
4174 window-relative pixel-positions.
4175
4176 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4177 is its frame's selected window.
4178 (xim_instantiate_callback): Likewise.
4179
4180 * xfns.c (x_create_im): Removed.
4181 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4182 (supported_xim_styles): Renamed from supported_styles.
4183 (best_xim_style): Renamed from best_style.
4184 (create_frame_xic): Renamed from xic_create_frame.
4185 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4186
b08e8bb2
GM
41872000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4188
4189 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4190 our frames, call XFilterEvent with 2nd parameter `None'.
4191 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4192 returning XBufferOverflow.
4193 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4194 area.
4195 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4196 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4197 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4198 (xim_initialize, xim_close)
4199 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4200 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4201 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4202 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4203
4204 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4205 and `xim_styles'.
4206 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4207 `xic_style' and `xic_xfs'.
4208 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4209 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4210 (FRAME_XIM): Removed.
4211
4212 * xfns.c (supported_styles): New variable.
4213 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4214 (xic_create_xfontset, best_style, xic_create_frame)
4215 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4216 (xic_set_xfontset): New functions.
4217
142e109c
DL
42182000-01-28 Dave Love <fx@gnu.org>
4219
4220 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4221
4222 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4223
b02786f9
GM
42242000-01-28 Gerd Moellmann <gerd@gnu.org>
4225
d060bc9f
GM
4226 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4227 for *scratch* if it already existed.
4228
b02786f9
GM
4229 * emacs.c (USAGE): New macro.
4230 (main): Use it to display usage information.
4231
2c52d7e4
EZ
42322000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4233
4234 Support for the menu-help feature:
4235
4236 * msdos.h: Change prototypes of XMenuAddSelection and
4237 XMenuActivate.
4238
4239 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4240 part of the line to the termscript file.
4241 (IT_clear_to_end): Clear the entire line, not just its beginning.
4242 (menu_help_message, prev_menu_help_message): New variables.
4243 (IT_menu_make_room): Make room for the help_text member.
4244 (IT_menu_display): New argument disp_help; all callers changed.
4245 If disp_help is non-zero, store the help text of the active menu
4246 item in menu_help_message.
4247 (XMenuAddPane): Initialize the help_text member to NULL.
4248 (XMenuAddSelection): New argument help_text. Store it in the
4249 XMenu structure.
4250 (XMenuActivate): New argument help_callback. If the value of
4251 menu_help_message has changed since the last time, display the
4252 menu help message text while waiting for the mouse to move. Clear
4253 the echo area before exiting.
4254 (XMenuDestroy): Free the help_text member.
4255
ffe0bcd1
GM
42562000-01-27 Gerd Moellmann <gerd@gnu.org>
4257
4258 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4259 XMenuAddSelection. Pass help callback to XMenuActivate.
4260 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4261
50dbd23f
EZ
42622000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4263
4264 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4265 and EMACS_SET_USECS.
4266
f5941bf8
GM
42672000-01-26 Dave Love <fx@gnu.org>
4268
6c67ddee
DL
4269 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4270
f5941bf8
GM
4271 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4272 an error may be signalled.
4273
9e49c990
GM
42742000-01-26 Gerd Moellmann <gerd@gnu.org>
4275
fc3cb460
GM
4276 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4277 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4278
9e49c990
GM
4279 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4280
d0c037d8
GM
42812000-01-25 Gerd Moellmann <gerd@gnu.org>
4282
4283 * charset.c (Fstring): If there is a multibyte char among
4284 the args, always return a multibyte string.
4285
e12489f9
GM
42862000-01-25 Gerd Moellmann <gerd@gnu.org>
4287
4288 * sysdep.c (sys_select): Turn atimers off and on instead of
4289 recording and restoring old alarm handler
4290
4291 * process.c (toplevel): Include atimer.h.
4292 (create_process_1): Rewritten.
4293 (create_process): Use atimers instead of alarm.
4294 (wait_reading_process_input) [hpux]: Turn atimers off instead
4295 of turning off SIGALRM.
4296 (wait_reading_process_input): Turn off atimers instead off
4297 calling stop_polling.
4298
4299 * emacs.c (main): Call init_atimer.
4300
4301 * keyboard.c (toplevel): Include systime.h and atimer.h.
4302 (polling_for_input): Removed because unused.
4303 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4304 (poll_timer): New variable.
4305 (poll_for_input, poll_for_input_1): New functions.
4306 (start_polling, stop_polling): Rewritten.
4307
4308 * keyboard.h (polling_for_input): Removed.
427ec082 4309
e12489f9
GM
4310 * atimer.h, atimer.c: New files.
4311
4312 * Makefile.in (obj): Add atimer.o.
4313 (atimer.o): New target.
4314
4315 * blockinput.h (pending_atimers): Add extern declaration.
4316 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4317
4318 * lisp.h (popup_activated_flag): Add extern declaration.
4319
4320 * xmenu.c (popup_activated_flag): Make externally visible.
4321 (popup_activate_callback) [USE_MOTIF]: Increment
4322 popup_activated_flag.
4323 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4324
4325 * xterm.c (toplevel): Include atimer.h.
4326 (toolkit_scroll_bar_interaction): New variable.
4327 (Fxt_process_timeouts): Removed.
4328 (x_process_timeouts): New function.
4329 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4330 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4331 (x_make_frame_visible): Call poll_for_input_1 instead of
4332 input_poll_signal. Don't call alarm.
4333 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4334
1e5279b9
DL
43352000-01-24 Dave Love <fx@gnu.org>
4336
6c67ddee 4337 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4338 Don't use -cckr -- apparently not now necessary.
4339
edf6aeb8
EZ
43402000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4341
4342 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4343 screen boundary.
4344
9badad41
JR
43452000-01-23 Jason Rumney <jasonr@gnu.org>
4346
4347 * w32fns.c (w32_defined_color): Apply gamma correction before
4348 trying to map to the palette.
4349 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4350 to w32_clear_rect.
4351
4352 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4353 here. Callers changed to always pass real device context.
4354 (w32_draw_bitmap): Likewise.
4355 (w32_get_glyph_overhangs): Likewise.
4356 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4357 one.
4358 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4359 pfnSetScrollInfo and SetScrollRange.
4360 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4361 back into MULE characters after decoding them.
4362 (x_get_glyph_face_and_encoding): Likewise.
4363 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4364 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4365 (x_produce_glyphs): Calculate per char metrics for a character
4366 that we know exists in default font when font_not_found_p is true.
4367
63bd786b
JR
43682000-01-22 Jason Rumney <jasonr@gnu.org>
4369
4370 * makefile.nt (intervals.obj, composite.obj): New modules.
4371 (composite.h): Added as dependency where appropriate.
4372
4373 * w32gui.h (XGCValue): New struct for emulating X GCs.
4374
4375 * w32term.h (XCharStruct): New struct for emulating X.
4376
4377 * w32console.c (turn_on_face, turn_off_face): New functions.
4378 (change_line_highlight): New prototype for new redisplay.
4379 (write_glyphs): Support multibyte text. Support faces.
4380
4381 * w32faces.c: Complete rewrite for new redisplay based on new
4382 xfaces.c.
4383
4384 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4385 throughout. struct frame * in place of FRAME_PTR.
4386 Skeleton support for images, toolbars, tooltips from xfns.c.
4387 (Fx_create_frame): Use system default for default scroll bar
4388 width.
4389 (w32_get_arg): Renamed from x_get_arg.
4390 (Fx_file_dialog): New function.
4391 (w32_list_fonts): Check cache before asking system.
4392 (Vw32_enable_synthesized_fonts): New variable.
4393 (Vw32_enable_italics): Obsolete, removed.
4394
4395 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4396 Use SELECTED_FRAME macro.
4397
4398 * w32menu.c: Add skeleton support for help strings on menus.
4399 (add_menu_item): Native checkbox and radio support added, but not
4400 yet enabled due to bugs.
4401 (push_menu_item): Add parameters type, selection and help.
4402 Callers updated.
4403 Formatting changes to reduce unnecessary diffs with xmenu.c.
4404
4405 * w32select.c (Fw32_set_clipboard_data): Update call to
4406 find_charset_in_str.
4407
4408 * w32term.c: Complete rewrite for new redisplay based on new
4409 xterm.c with necessary sections merged back in from old w32term.c.
4410
6ffd3cf7 44112000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4412
4413 * data.c (set_internal): Further fix in same criterion.
4414
6ffd3cf7 44152000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4416
4417 * data.c (set_internal): Fix the criteria for whether
4418 to swap out the old cached binding.
4419
60af03f1
DL
44202000-01-19 Dave Love <fx@gnu.org>
4421
4422 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4423
f9be074f
KH
44242000-01-18 Kenichi Handa <handa@etl.go.jp>
4425
4426 * regex.c (re_compile_fastmap): While checking a range table for
4427 `charset', skip flag bits for a character class correctly.
4428
52b8dbf9
GM
44292000-01-17 Gerd Moellmann <gerd@gnu.org>
4430
d36100c9
GM
4431 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4432
52b8dbf9
GM
4433 * xfns.c (x_window): Call lw_create_widget with new parameter
4434 list.
4435
4436 * widget.c (EmacsFrameSetCharSize): Change size of children first
4437 because of problems with main window geometry management under
4438 Lesstif.
4439
4440 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4441 MENU_ITEMS_ITEM_.*.
4442 (MENU_ITEMS_ITEM_HELP): New enumerator.
4443 (push_menu_item): Add parameter HELP. Record help in menu_items.
4444 (single_menu_item, single_submenu, list_of_items): Call
4445 push_menu_item with new parameter.
4446 (single_submenu): Set help string in widget value.
4447 (menu_highlight_callback): New function.
4448 (set_frame_menubar): Call lw_create_widget with new
4449 parameter list.
4450 (xmenu_show, xdialog_show): Ditto.
4451
3139018f
GM
44522000-01-13 Gerd Moellmann <gerd@gnu.org>
4453
4454 * sound.c (Fplay_sound): Improve doc string.
4455
83c8f461
RS
44562000-01-11 Richard M. Stallman <rms@gnu.org>
4457
4458 * lisp.h (set_internal): Enter the new arg.
4459
4460 * eval.c (specbind): Record buffer-local variables specially,
4461 indicating which buffer's binding was saved.
4462 (unbind_to): Restore buffer-local variables specially
4463 in the proper buffer.
4464
4465 * data.c (set_internal): New arg BUF.
427ec082 4466
83c8f461
RS
4467 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4468 * data.c (Fset): Pass new arg to set_internal.
4469 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4470
1fab1775
GM
44712000-01-11 Gerd Moellmann <gerd@gnu.org>
4472
4473 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4474 xprintsym.
4475
83c8f461 44762000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4477
4478 * minibuf.c (Ftry_completion): Doc fix.
4479
7a85e4df
GM
44802000-01-11 Gerd Moellmann <gerd@gnu.org>
4481
4482 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4483 vector, too.
4484
a970dae4
AS
44852000-01-11 Andreas Schwab <schwab@suse.de>
4486
4487 * coding.c (code_convert_region): Initialize total_skip.
4488
c65d14ee
DL
44892000-01-08 Dave Love <fx@gnu.org>
4490
4491 * eval.c (Fuser_variable_p): Check customizability too.
4492
834938d2
GM
44932000-01-07 Gerd Moellmann <gerd@gnu.org>
4494
4495 * minibuf.c (Fcompleting_read): Doc fix.
4496
e0303cd6
GM
44972000-01-05 Gerd Moellmann <gerd@gnu.org>
4498
8a26744b
GM
4499 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4500 -L /usr/local/lib.
4501
e0303cd6
GM
4502 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4503 Check that input style is supported before trying to create an
4504 IC for it.
4505 (x_window): Call x_create_im.
427ec082 4506
2e471eb5
GM
45072000-01-04 Gerd Moellmann <gerd@gnu.org>
4508
560a7bd2
GM
4509 * xfns.c (current_gif_memory_src): New variable.
4510 (gif_load): Record the address of the current memory source
4511 in current_gif_memory_src.
4512 (gif_read_from_memory): Use current_gif_memory_src.
4513
f9ee84a3
GM
4514 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4515 macros statement form.
4516
d1299cde
GM
4517 * sound.c (struct sound): Renamed from struct sound_file.
4518 (struct sound): Add members `data' and `header_size'.
4519 (enum sound_attr): Add SOUND_DATA.
4520 (current_sound, current_sound_device): Variables renamed from
4521 sound_file and sound_device.
4522 (parse_sound): Parse :data.
4523 (parse_sound): Handle sound data in strings.
4524 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4525 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4526 needed header size.
4527 (wav_play, au_play): Play sounds from string data.
4528
2e471eb5
GM
4529 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4530
4531 * lisp.h: Add prototype for allocate_string_data.
4532
4533 * alloc.c (Fgarbage_collect): Return number of live and free
4534 strings.
4535
4536 * alloc.c (mark_buffer): Remove code in #if 0.
4537 (gc_sweep): Ditto.
4538 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4539 (strings_consed): New variable.
4540 (allocate_string): Set it.
4541 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4542 (Fmemory_use_counts): Return strings_consed. Use Flist.
4543
4544 * alloc.c: General cleanup in comments etc. Remove conditional
4545 compilation for `standalone'.
4546
4547 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4548
4549 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4550 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4551 (DONT_COPY_FLAG): Removed.
4552 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4553 (struct sdata, struct sblock): New
4554 (struct string_block): Rewritten.
4555 (STRINGS_IN_STRING_BLOCK): New macro.
4556 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4557 (large_sblocks, string_blocks, string_free_list): New variables.
4558 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4559 (init_strings): Rewritten.
4560 (allocate_string, allocate_string_data, compact_small_strings)
4561 (free_large_strings, sweep_strings): New functions.
4562 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4563 (struct string_block_head, current_string_block)
4564 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4565 (STRING_PAD): Removed.
4566 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4567 (Fgarbage_collect): Don't set mark bit in large strings.
4568 (mark_object): Mark strings differently. Mark symbol names
4569 differently.
4570 (survives_gc_p): Test marked strings differently.
427ec082 4571 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4572 symbol names.
4573 (compact_strings): Removed.
4574
42608ba8
EZ
45752000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4576
4577 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4578 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4579
e0a09e1a
KH
45802000-01-04 Kenichi Handa <handa@etl.go.jp>
4581
dd9f0750 4582 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4583 in a non-empty buffer.
dd9f0750 4584
3c0f3b15 4585 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4586
44cd3ae5
GM
45872000-01-03 Gerd Moellmann <gerd@gnu.org>
4588
4589 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4590 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4591
4592 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4593
c182a70f
EZ
45942000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4595
4596 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4597 need to test for MSDOS frames.
4598
24480d5b
EZ
45992000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4600
4601 * dosfns.c (unspecified_colors): Remove.
4602 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4603 unspecified_bg.
4604 (msdos_stdcolor_name): Return strings for unspecified fore- and
4605 back-ground colors.
4606
4607 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4608 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4609 (tty_color_name): Return Lisp strings for unspecified fore- and
4610 back-ground colors.
4611 (Finternal_set_lisp_face_attribute): Remove the special treatment
4612 for Qunspecified_{f,b}g.
4613 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4614 string.
4615
047f434a
GM
46162000-01-03 Gerd Moellmann <gerd@gnu.org>
4617
4618 * xdisp.c (reseat_at_next_visible_line_start): Position before
4619 newline only if ending up on a newline.
4620 (next_element_from_ellipsis): Return success. Handle case of
4621 displaying no ellipsis. Fix case of ellipsis defined in display
4622 table.
4623 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4624 returns 0.
4625
d684c676
EZ
46262000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4627
4628 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4629 (Fcolor_supported_p): Renamed from face-color-supported-p.
4630
5fe1d139
EZ
46312000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4632
4633 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4634 list of colors renamed to tty-defined-color-alist.
4635 (tty_color_name): Pass the frame to tty-color-by-index.
4636 (realize_tty_face): tty-color-alist is now a function which
4637 accepts the frame as argument.
4638
4639 * term.c (Ftty_display_color_p): Accept an optional argument
4640 FRAME.
4641
816be8b8
EZ
46422000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4643
4644 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4645 encode_terminal_code.
4646
b635321e
EZ
46472000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4648
4649 * dispnew.c (mode_line_string): Support termcap frames as well.
4650
9b784e96
GM
46512000-01-01 Gerd Moellmann <gerd@gnu.org>
4652
27189709
GM
4653 * syntax.c (Fforward_word): Undo previous change.
4654
4655 * editfns.c (Fconstrain_to_field): Don't constrain if
4656 inhibit-field-text-motion is non-nil.
4657 (Fline_beginning_position): Undo previous change.
4658 (Fline_end_position): Ditto.
4659
4660 * syntax.c (Fforward_word): Notice field boundaries only if
4661 inhibit-field-text-motion is nil.
4662
4663 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4664
4665 * editfns.c (Vinhibit_field_text_motion): New variable.
4666 (inhibit-field-text-motion): New DEFVAR_LISP.
4667 (Fline_beginning_position, Fline_end_position): Notice field
4668 boundaries only if inhibit-field-text-motion is nil.
4669
45158a91
GM
4670 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4671 All calls adjusted.
4672 (x_build_heuristic_mask): Likewise.
4673 (xbm_load_image_from_file): Change error output.
4674 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4675 (gif_load, gs_load, x_kill_gs_process): Ditto.
4676
9b784e96
GM
4677 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4678 color indices when accessing raster pixels.
63cec32f
GM
4679 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4680 one of :file or :data.
4681 (enum pbm_keyword_index): Add PBM_DATA.
4682 (pbm_format): Add :data.
4683 (pbm_image_p): Allow either :file or :data.
4684 (pbm_read_file): New function.
4685 (pbm_scan_number): Rewritten to read from string.
4686 (pbm_load): Support :data.
9b784e96 4687
5ad6a5fb
GM
46881999-12-31 Gerd Moellmann <gerd@gnu.org>
4689
4690 * xfns.c: New image functions adapted to Emacs conventions.
4691 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4692 variable `file'.
4693
63448a4d
WP
46941999-12-31 William M. Perry <wmperry@aventail.com>
4695
4696 * xfns.c (jpeg_format): Added the :data keyword
4697 (jpeg_image_p): JPEG is valid with :file _or_ :data
4698 (jpeg_memory_src): Defined new JPEG image source to read from a
4699 memory buffer.
4700 (jpeg_load): Pay attention to the :data keyword if specified.
4701 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4702 found.
4703 (png_format): Added the :data keyword
4704 (png_image_p): PNG is valid with :file _or_ :data
4705 (png_read_from_memory): New PNG read function to read from a
4706 memory buffer.
4707 (png_load): Pay attention to the :data keyword if specified. Uses
4708 png_set_read_fn() instead of png_init_io() if specified.
4709 (tiff_format): Added the :data keyword for TIFF images.
4710 (tiff_image_p): TIFF is valid with :file _or_ :data
4711 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4712 from a memory buffer.
4713 (tiff_load): Pay attention to the :data keyword if specified.
4714 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4715 (gif_format): Added the :data keyword
4716 (gif_image_p): GIF is valid with :file _or_ :data
4717 (gif_read_from_memory): New GIF input function to read from a
4718 memory buffer.
c65d14ee 4719 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4720 instead of DGifOpenFileName() if specified.
4721
c880678e
GM
47221999-12-31 Gerd Moellmann <gerd@gnu.org>
4723
4724 * xdisp.c (next_element_from_buffer): Change assertion at the end
4725 because it doesn't hold when there's an overlay string at the end
4726 from which we deliver an image.
4727
8ccb9a54
EZ
47281999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4729
4730 * msdos.c (IT_update_begin): Don't dereference members of struct
4731 window for deleted windows.
4732
12ce2351
GM
47331999-12-30 Gerd Moellmann <gerd@gnu.org>
4734
a915c648
GM
4735 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4736 a hook, and the hook has a non-nil `no-self-insert' property, let
4737 the return value of the hook specify whether an expansion took
4738 place. If it returns nil, no expansion has been performed.
4739
12ce2351
GM
4740 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4741 differently.
4742
04ee4f45
EZ
47431999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4744
4745 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4746
7f4bc0c3
EZ
47471999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4748
4749 * dispnew.c (mode_line_string): Support MS-DOS frames.
4750
dac204bc
GM
47511999-12-29 Gerd Moellmann <gerd@gnu.org>
4752
4753 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4754
7b712ad8
KH
47551999-12-29 Kenichi Handa <handa@etl.go.jp>
4756
4757 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4758 to signal_after_change.
4759
adb9900f
EZ
47601999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4761
41ad069b
EZ
4762 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4763 dimensions changed, invalidate the mouse highlight info.
4764 (disable_mouse_highlight, help_echo, previous_help_echo): New
4765 variables.
4766 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4767 (fast_find_position, IT_note_mode_line_highlight)
4768 (IT_note_mouse_highlight): New functions.
4769 (IT_update_begin): If the redisplay affects the window where the
4770 mouse highlight is, clear the highlight. If the frame where the
4771 highlight was displayed was killed, invalidate the highlight
4772 info.
4773 (IT_update_end): Reset the highlight flag. Reset the mouse
4774 highlight-defer flag.
4775 (IT_frame_up_to_date): New function, if mouse highlight was
4776 deferred due to GC, do it now.
4777 (internal_terminal_init): Initialize mouse-highlight related
4778 members of the_only_x_display. Assign IT_frame_up_to_date to
4779 frame_up_to_date_hook.
4780 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4781 help_echo changed value, generate a HELP_EVENT event.
4782 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4783
adb9900f
EZ
4784 * msdos.h (struct display_info): New.
4785 (struct x_output): Add the display_info member.
4786 (FRAME_X_DISPLAY_INFO): New macro.
4787
481b5054
GM
47881999-12-28 Gerd Moellmann <gerd@gnu.org>
4789
4790 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4791 if MODIFF > 1.
6448a6b3 4792 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4793
4794 * buffer.c (modify_overlay): Always compute unchanged info.
4795
a2882b0d
KH
47961999-12-27 Kenichi Handa <handa@etl.go.jp>
4797
4798 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4799
89ba5b5f
KH
48001999-12-27 Kenichi Handa <handa@etl.go.jp>
4801
4802 The following changes are to use more bits for face IDs.
4803
4804 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4805 lowest 8 bits are single byte character code, the bits above are
4806 face ID.
481b5054 4807 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4808 above.
481b5054
GM
4809 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4810 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4811
4812 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4813 of GLYPH_MASK_CHAR.
4814
4815 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4816 of GLYPH_MASK_CHAR.
4817
4818 * dispextern.h (struct glyph): Make face_id and padding_p the top
4819 level members. Change members in union `u'.
4820 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4821 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4822 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4823 (CHAR_GLYPH_PADDING_P): Likewise.
4824 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4825 characters.
4826
481b5054 4827 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4828 for the change of struct glyph.
4829 (line_draw_cost): Adjusted for the change of
4830 GLYPH_FROM_CHAR_GLYPH.
4831 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4832
4833 * term.c (encode_terminal_code): Adjusted for the change of struct
4834 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4835 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4836 change of struct glyph.
4837
4838 * xdisp.c: All codes adjusted for the change of struct glyph.
4839
4840 * xterm.c: All codes adjusted for the change of struct glyph.
4841
5bcd116c
KH
48421999-12-27 Kenichi Handa <handa@etl.go.jp>
4843
4844 * composite.h (struct composition): Change the order of declaring
4845 members to reduce the byte size of the structure.
4846
f21b06b7
GM
48471999-12-25 Gerd Moellmann <gerd@gnu.org>
4848
4849 * search.c (looking_at_1): Reset immediate_quit before modifying
4850 global data.
4851
e36557c9
KH
48521999-12-24 Kenichi Handa <handa@etl.go.jp>
4853
4854 * process.c (read_process_output): Fix the arg FROM to
4855 update_compositions.
4856
83c8f461 48571999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4858
4859 * search.c (Freplace_match): For nonliteral replacement in buffer,
4860 construct all the new text first, then insert all at once.
4861
0b863bd9
DL
48621999-12-22 Dave Love <fx@gnu.org>
4863
4864 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4865
6d8e8ef3
GM
48661999-12-22 Gerd Moellmann <gerd@gnu.org>
4867
28d7281d
GM
4868 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4869 lead to size changes to after the X window has been created.
4870
e22ef6eb 4871 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4872 variable in xassert.
4873
8affcced
KH
48741999-12-22 Kenichi Handa <handa@etl.go.jp>
4875
4876 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4877 only when the frame is not for a window system.
8affcced 4878
f2be1146
GM
48791999-12-22 Gerd Moellmann <gerd@gnu.org>
4880
deca1348
GM
4881 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4882 redisplay after changing the multibyteness of a buffer.
4883
f2be1146
GM
4884 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4885 frame's X window to XFilterEvent instead of None because that's
4886 the X window for which the IC was created. This makes dead
4887 accents work when the pointer is not in Emacs' frame.
4888 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4889
a744a2ec
DL
48901999-12-20 Dave Love <fx@gnu.org>
4891
4892 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4893
9e6985ed
GM
48941999-12-19 Gerd Moellmann <gerd@gnu.org>
4895
4896 * eval.c (debugger_may_continue): New variable.
4897 (syms_of_eval): Add a DEFVAR_BOOL for it.
4898 (call_debugger): Bind it.
4899
3b620731
EZ
49001999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4901
4902 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4903 fp->tty_reverse_p is set, unless the computed colors are identical
4904 to frame colors. Print both original and computed colors to
4905 termscript file.
4906 (IT_write_glyphs): Track the changes in handling of composite
4907 characters.
4908 (IT_set_frame_parameters): Don't set frame colors from
4909 unspecified-fg and unspecified-bg pseudo-colors.
4910
0f9a51c4
DL
49111999-12-17 Dave Love <fx@gnu.org>
4912
4913 * data.c (Fkeywordp): New function.
4914 (syms_of_data): Install it.
4915
363e4e42
EZ
49161999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4917
4918 * xfaces.c (tty_defined_color): Fix last change.
4919
cfad01b4
GM
49201999-12-15 Gerd Moellmann <gerd@gnu.org>
4921
4922 * xdisp.c (redisplay_window) <optional new window start>: Check
4923 that window start is in [BEGV..ZV].
4924
f9d2fdc4
EZ
49251999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4926
4927 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4928 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4929
4930 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4931 (syms_of_xfaces): Initialize and staticpro them.
4932 (tty_defined_color): If the color name is unspecified-fg or
4933 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4934 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4935 (tty_color_name): If the color pixel value is either
4936 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4937 Qunspecified_fg or Qunspecified_bg, respectively.
4938 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4939 and Qunspecified_bg for foreground and background colors.
4940 (realize_default_face): If the foreground and background colors
4941 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4942 (realize_tty_face): By default, set the face colors to
4943 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4944 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4945 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4946 Reverse the colors if the default colors were reversed.
4947
4948 * dispnew.c (init_display): Initialize the frame pixels of the
4949 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4950 FACE_TTY_DEFAULT_BG_COLOR.
4951
4952 * term.c (turn_on_face): If the default fore- and background
4953 colors are reversed, enter inverse video mode. Don't send color
4954 escape sequences for unspecified foreground and background colors.
4955 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4956
4957 * dosfns.c (unspecified_colors): New variable.
4958 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4959 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4960 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4961 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4962 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4963 Qunspecified_bg, respectively.
4964
4965 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4966 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4967
e19539f1
KH
49681999-12-15 Kenichi Handa <handa@etl.go.jp>
4969
4970 * coding.c (code_convert_region): Fix the secoding arg to
4971 update_compositions.
4972
5ec14d3c
KH
49731999-12-15 Kenichi Handa <handa@etl.go.jp>
4974
4975 The following changes are for the new composition mechanism. We
4976 have deleted `composition' charset and composite characters,
4977 instead introduced a special text property `composition'.
4978
4979 * Makefile.in (INTERVAL_SRC): Include composite.h.
4980 (INTERVAL_OBJ): Include composite.o.
4981 (SOME_MACHINE_OBJECTS): Include composite.o.
4982 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4983 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4984 Depend on composite.h.
4985 (doc.o): Depend on charset.h.
4986 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4987 (composite.o): New target.
427ec082 4988
5ec14d3c
KH
4989 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4990
4991 * callproc.c (Fcall_process): Call code_convert_string to encode
4992 arguments. Use CODING_REQUIRE_DECODING to check if the process
4993 output should be decoded.
4994
4995 * casefiddle.c: Include composite.h.
4996 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4997 multibyte character. Adjusted for the change of CHAR_STRING.
4998 (casify_region): Likewise. Call update_compositions.
4999
5000 * category.h (CATEGORY_SET): Delete codes for a composite
5001 character.
5002
5003 * category.c (word_boundary_p): Delete codes for a composite
5004 character.
5005 (Fmake_category_table): New function.
5006 (syms_of_category): Defsubr it.
5007
5008 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
5009 (ccl_driver): Delete codes for a composite character.
5010
5011 * charset.h: In this entry, just `Modified' means that codes for a
5012 composite character is deleted.
5013 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
5014 (charset_composition) (MIN_CHAR_COMPOSITION)
5015 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
5016 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
5017 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
5018 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
5019 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
5020 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
5021 Modified.
5022 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
5023 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
5024 non_ascii_char_to_string.
5025 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
5026 (STRING_CHAR_AND_LENGTH): Likewise.
5027 (FETCH_CHAR_ADVANCE): New macro.
5028 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
5029 (MAX_MULTIBYTE_LENGTH): New macro.
5030 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
5031 (find_charset_in_str): Argument adjusted.
5032 (CHAR_LEN): Modified.
427ec082 5033
5ec14d3c
KH
5034 * charset.c: In this entry, just `Modified' means that codes for a
5035 composite character is deleted.
5036 (Qcomposition) (leading_code_composition)
5037 (charset_composition) (min_composite_char) (cmpchar_table)
5038 (cmpchar_table_size) (n_cmpchars): Deleted.
5039 (SPLIT_COMPOSITE_SEQ): Deleted.
5040 (SPLIT_MULTIBYTE_SEQ): Modified.
5041 (char_to_string): Renamed from non_ascii_char_to_string.
5042 Modified.
5043 (string_to_char): Renamed from string_to_non_ascii_char.
5044 (split_string): Renamed from split_non_ascii_string.
5045 (char_printable_p) (Fsplit_char)
5046 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
5047 (char_bytes) (Fchar_width) (strwidth): Modified.
5048 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
5049 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
5050 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
5051 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
5052 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
5053 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
5054 (Fcmpchar_cmp_count): Deleted.
5055 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
5056 (init_charset_once): Modified.
5057 (syms_of_charset): Modified.
5058
5059 * cmds.c (internal_self_insert): Adjusted for the change of
5060 CHAR_STRING.
5061
5062 * coding.h (emacs_code_class_type): Delete the member
5063 EMACS_leading_code_composition.
5064 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
5065 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
5066 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
5067 (COMPOSING_WITH_RULE_P): Macros deleted.
5068 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
5069 macros.
5070 (struct composition_data): New structure.
5071 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
5072 (struct coding_system): New members composition_rule_follows,
5073 cmp_data, cmp_data_start, cmp_data_index.
5074 (coding_save_composition) (coding_free_composition_data)
5075 (coding_adjust_composition_offset): Extern them.
5076
5077 * coding.c: Include composite.h.
5078 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5079 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5080 of multibyte code here.
5081 (DECODE_CHARACTER_DIMENSION2): Likewise.
5082 (detect_coding_emacs_mule): Change the case label from
5083 EMACS_leading_code_composition to 0x80.
5084 (detect_coding_iso2022): Handle new composition sequence.
5085 (DECODE_ISO_CHARACTER): Likewise.
5086 (check_composing_code): Deleted.
5087 (coding_allocate_composition_data): New function.
5088 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5089 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5090 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5091 (decode_coding_iso2022): Handle new composition sequence.
5092 (ENCODE_ISO_CHARACTER): Don't check composition here.
5093 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5094 (ENCODE_COMPOSITION_NO_RULE_START)
5095 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5096 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5097 (ENCODE_COMPOSITION_FAKE_START): New macro.
5098 (encode_coding_iso2022): Handle new composition sequence.
5099 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5100 (encode_coding_sjis_big5): Ignore composition.
5101 (setup_coding_system): Initialize new members of struct
5102 coding_system. Enable composition only when the coding system has
5103 `composition' property t.
5104 (coding_free_composition_data) (coding_adjust_composition_offset)
5105 (coding_save_composition) (coding_restore_composition): New
5106 functions.
5107 (code_convert_region): Call coding_save_composition for encoding
5108 and coding_allocate_composition_data for decoding. Don't skip
5109 ASCII characters if we handle composition on encoding. Call
5110 signal_after_change with Check_BORDER.
5111 (code_convert_string): Call coding_save_composition for encoding
5112 and coding_allocate_composition_data for decoding. Don't skip
5113 ASCII characters if we handle composition on encoding.
5114 (code_convert_string1): Set Vlast_coding_system_used after calling
5115 code_convert_string.
5116 (code_convert_string_norecord): Disable composition.
5117 (Fset_terminal_coding_system_internal): Likewise.
5118 (Fset_safe_terminal_coding_system_internal): Likewise.
5119 (Fset_keyboard_coding_system_internal): Likewise.
5120 (init_coding_once): Set emacs_code_class[0x80] to
5121 EMACS_invalid_code.
5122
5123 * composite.h: New file.
5124
5125 * composite.c: New file.
5126
5127 * data.c (Faref): Delete codes for a composite character..
5128 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5129
5130 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5131 (struct glyph): Add new sub-structure cmp to the union `u'.
5132 (enum display_element_type): New member IT_COMPOSITION.
5133 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5134 (struct it): New members cmp_id, cmp_len.
5135
5136 * dispnew.c (direct_output_forward_char): Check point moving into
5137 or out of a composition. If so, give up direct method.
5138
5139 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5140
5141 * editfns.c (Fchar_to_string): Adjusted for the change of
5142 CHAR_STRING.
5143 (general_insert_function): Likewise.
5144 (Finsert_char): Likewise.
5145 (Fsubst_char_in_region): Likewise. Call update_compositions.
5146 (Ftranslate_region): Call update_compositions.
5147 (Ftranspose_regions): Call update_compositions.
5148
5149 * emacs.c (main): Call syms_of_composite.
5150
5151 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5152 CHAR_STRING.
5153 (Finsert_file_contents): Set Vlast_coding_system_used before
5154 calling signal_after_change. Call update_compositions if some
5155 texts are inserted..
5156 (Fwrite_region): Adjusted for the change of a_write and e_write.
5157 (a_write): Argument changed. Work based on character position,
5158 not byte position.
5159 (e_write): Argument changed. Handle new way of composition.
5160
5161 * fns.c (Flength): The length of char-table is MAX_CHAR.
5162 (concat): Adjusted for the change of CHAR_STRING.
5163 (Ffillarray): Adjusted for the change of CHAR_STRING.
5164 (Fset_char_table_default): Delete codes for a composite character.
5165 (hash_put): Return hash index.
5166
5167 * fontset.h (struct font_info): New member vertical_centering.
5168 (Vvertical_centering_font_regexp): Extern it.
5169
5170 * fontset.c (Vvertical_centering_font_regexp): New variable.
5171 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5172 Set Vignore_relative_composition to nil.
5173 (fs_load_font): Initialize `vertical_centering' of struct
5174 font_info.
5175
5176 * indent.c (check_composition): New function.
5177 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5178 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5179 (current_column_1): Handle new way of composition.
5180 (Fmove_to_column): Likewise.
5181 (compute_motion): Likewise.
5182
5183 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5184 (insert_char): Likewise.
5185 (insert): Call update_compositions.
5186 (insert_and_inherit): Likewise.
5187 (insert_before_markers): Likewise.
5188 (insert_before_markers_and_inherit): Likewise.
5189 (insert_from_string): Likewise.
5190 (insert_from_string_before_markers): Likewise.
5191 (insert_from_buffer): Likewise.
5192 (replace_range): Likewise.
5193 (count_combining_composition): Deleted.
5194 (count_combining_before): Delete codes for a composite character.
5195 (count_combining_after): Likewise.
5196 (del_range_1): Call update_compositions.
5197 (del_range_byte): Likewise.
5198 (del_range_both): Likewise.
5199 (Fcombine_after_change_execute): Likewise.
5200
5201 * intervals.h: Include composite.h.
5202 (get_property_and_range): Extern it.
5203 (Vtext_property_default_nonsticky): Extern it.
427ec082 5204
5ec14d3c
KH
5205 * intervals.c (adjust_intervals_for_insertion): To check stickines
5206 of properties, pay attention to text-property-default-nonsticky.
5207 (merge_properties_sticky): Likewise.
5208 (get_property_and_range): New function.
5209
5210 * keyboard.c (Vdisable_point_adjustment): New variable.
5211 (Vglobal_disable_point_adjustment): New variable.
5212 (syms_of_keyboard): Declare them as Lisp variables.
5213 (command_loop_1): Check them and call adjust_point_for_property if
5214 necessary.
5215 (adjust_point_for_property): New function.
5216
5217 * keymap.c (push_key_description): Adjusted for the change of
5218 CHAR_STRING.
5219 (Ftext_char_description): Likewise.
5220
5221 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5222 (hash_put): Adjusted for the change of the definition.
5223 (signal_after_change): Likewise.
5224 (check_point_in_composition): Extern it.
5225
5226 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5227 Delete a code that handles an invalid too-long multibyte sequence
5228 because we are now sure that we never encounter with such a
5229 sequence.
5230 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5231 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5232 (init_obarray): Likewise.
5233 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5234
5235 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5236
5237 * process.c: Include composite.h.
5238 (read_process_output): Call update_compositions.
5239
5240 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5241
5242 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5243
5244 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5245 character.
5246
5247 * term.c (encode_terminal_code): Delete codes for a composite
5248 character. Adjusted for the change of CHAR_STRING.
5249 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5250 Delete codes for a composite character.
5251
5252 * textprop.c (Vtext_property_default_nonsticky): New variable
5253 (syms_of_textprop): Declare it as a Lisp variable.
5254
5255 * window.c (Frecenter): Clear all caches of compositions.
5256
5257 * xdisp.c (it_props): Add an entry for composition.
5258 (face_before_or_after_it_pos): For composition, check face of a
5259 character after the composition.
5260 (handle_composition_prop): New function.
5261 (get_next_display_element): Adjusted for the change of
5262 CHAR_STRING.
5263 (set_iterator_to_next): Handle the case that it->method ==
5264 next_element_from_composition.
5265 (next_element_from_composition): New function.
5266 (message_dolog): Adjusted for the change of CHAR_STRING.
5267 (set_message_1): Likewise.
5268 (check_point_in_composition): New function.
5269 (reconsider_clip_changes): If point moved into or out of
5270 composition, set b->clip_changed to 1 to force updating of the
5271 screen.
5272 (disp_char_vector): Delete codes for a composite character.
5273 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5274
5275 * xfaces.c (choose_face_fontset_font): Delete codes for a
5276 composite character.
5277 (realize_x_face): Likewise. Change a place to set local variable
5278 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5279
5280 * xfns.c: Include intervals.h.
5281 (syms_of_xfns): Make `display' property nonsticky by default.
5282
5283 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5284 for find_charset_in_str.
5285
5286 * xterm.h (struct x_output): Change member font_baseline to
5287 baseline_offset.
5288
5289 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5290 for composition.
5291 (x_append_composite_glyph): New function.
5292 (VCENTER_BASELINE_OFFSET): New macro.
5293 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5294 of struct it for the composition. Cache pixel offsets in the
5295 struct composition. Delete codes for a composite character.
5296 Handle Vignore_relative_composition in composition code.
5297 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5298 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5299 (x_compute_glyph_string_overhangs): Likewise.
5300 (x_get_glyph_overhangs): Delete codes for a composite character.
5301 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5302 (x_draw_glyph_string_background): Likewise. Delete codes for
5303 checking s->gidx for a composition.
5304 (x_draw_glyph_string_foreground): Delete code for a composite
5305 character.
5306 (x_draw_composite_glyph_string_foreground): New function.
5307 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5308 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5309 (struct work): Deleted.
5310 (x_fill_composite_glyph_string): Argument changed. Mostly
5311 rewritten for that.
5312 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5313 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5314 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5315 (BUILD_GLYPH_STRINGS): For composition, call
5316 BUILD_COMPOSITE_GLYPH_STRING.
5317 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5318 f->output_data.x->font_baseline.
5319
c3c60f13
GM
53201999-12-14 Gerd Moellmann <gerd@gnu.org>
5321
5322 * xterm.c (show_mouse_face): Don't use updated_area, use
5323 TEXT_AREA.
5324
83c8f461 53251999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5326
5327 * minibuf.c (Fall_completions): Doc fix.
5328
83c8f461 53291999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5330
5331 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5332 has been changed by the Lisp code.
5333
d8eccf12
GM
53341999-12-12 Gerd Moellmann <gerd@gnu.org>
5335
5336 * xfns.c: Indentation fixes.
5337
ae56feae
SM
53381999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5339
5340 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5341
dfa1c6ae
GM
53421999-12-10 Gerd Moellmann <gerd@gnu.org>
5343
5344 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5345 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5346
5347 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5348 to frame.h.
5349
ec18280f
SM
53501999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5351
5352 * keyboard.c (Qratio): New symbol.
5353 (scroll_bar_parts): Add `Qratio' to it.
5354 (syms_of_keyboard): Init `Qratio'.
5355 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5356 * xterm.c (#includes): Allow compilation with only Xaw.
5357 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5358 (xt_action_hook): Replace XAW3D by XAW.
5359 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5360 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5361 Determine epsilon dynamically and don't try to be too clever.
5362 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5363 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5364 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5365 scrollbar (using `ratio').
5366 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5367 scrollbar we have so as to set it up more optimally and to fix
5368 xaw3d_arrow_scroll and xaw3d_pick_top.
5369 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5370 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5371 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5372 is not ignored, using a major gross hack.
5373 (x_initialize): Init default values for xaw3d_arrow_scroll and
5374 xaw3d_pick_top.
5375
83b6d970
DL
53761999-12-09 Dave Love <fx@gnu.org>
5377
5378 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5379
3648c842
GM
53801999-12-08 Gerd Moellmann <gerd@gnu.org>
5381
5382 * eval.c: Remove conditional compilation on `standalone'.
5383 (call_debugger): When entering the debugger while redisplaying,
5384 reset redisplaying_p, and go back to the top-level if the debugger
5385 returns.
5386
05e71564
GM
53871999-12-07 Gerd Moellmann <gerd@gnu.org>
5388
5389 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5390 basic faces are realized before trying to use face `menu'.
5391
5392 * window.c (delete_window): Block input for the time window
5393 matrices are being changed.
5394
b46cd536
DL
53951999-12-07 Dave Love <fx@gnu.org>
5396
5397 * lread.c (Fintern_soft): Fix newlines in doc string.
5398
96acb1f7
GM
53991999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5400
5401 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5402 duplicate definition of ElfW.
5403 (find_section): Copied from unexsgi.c.
5404 (unexec): Use find_section. Adjust whitespace. Initialize
5405 new_data2_offset based on old_data, not sbss (this fixes a bug on
5406 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5407 Adjust test for presence of .mdebug section to the new return
5408 value of find_section.
427ec082 5409
96acb1f7
GM
54101999-12-07 Gerd Moellmann <gerd@gnu.org>
5411
5412 * unexelf.c: Merge changes from 20.5.
5413 (unexec): Handle .lit4 and .lit8 unconditionally.
5414
5415 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5416 unexsgi.o again.
427ec082 5417
96acb1f7
GM
5418 * m/iris5d.h (UNEXEC): Likewise.
5419
7dae4502
SM
54201999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5421
5422 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5423 (syms_of_editfns): Register it.
5424 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5425 (del_range_1, del_range_2): Add a ret_string argument to
5426 request that the deleted text be returned.
5427 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5428 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5429 * casefiddle.c (casify_region): Update del_range_1 call.
5430 * coding.c (code_convert_region): Update del_range_2 call.
5431 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5432
397e4fae
GM
54331999-12-06 Gerd Moellmann <gerd@gnu.org>
5434
5435 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5436
3d973f71
GM
54371999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5438
5439 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5440
740e985f
EZ
54411999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5442
5443 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5444
5445 * insdel.c (adjust_markers_for_delete): Fix last change.
5446
2d764c78
EZ
54471999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5448
5449 Changes for automatic remapping of X colors on terminal frames:
5450
5451 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5452 frames.
5453 (Vface_tty_color_alist): Remove.
5454 (tty_defined_color): New function.
5455 (defined_color): Rewrite to support any type of frame.
5456 (tty_color_name): New function.
5457 (face_color_supported_p, Fface_color_gray_p,
5458 Fface_color_supported_p): Support non-X frames.
5459 (load_color): Enclose the color name in quotes, in the log
5460 messages. Remove DOS-specific version of load_color.
5461 (realize_tty_face): Take the supported colors from
5462 tty-color-alist. Support translation of X colors to the closest
5463 tty color, for both MSDOS and tty frames.
5464 [MSDOS]: Don't invert face colors if they were taken from the
5465 frame colors.
5466 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5467
5468 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5469 Define a mostly empty surrogate.
5470 (tty_display): Declare.
5471
5472 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5473 tty_display.
5474 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5475 frames when the frame's param_alist includes 'reverse.
5476 (tty_display): Define.
5477 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5478 output_data.x member.
5479 (Fframe_parameters): Return foreground and background color names
5480 on tty frames as well, in addition to MSDOS frames.
5481
5482 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5483 selected_frame.
5484 (struct x_output): Remove unused members; document who uses each
5485 member.
5486 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5487 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5488 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5489 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5490 unused macro definintions.
5491
5492 * msdos.c (IT_set_frame_parameters): Don't call
5493 recompute_basic_faces, the next redisplay will, anyway.
5494 (x_current_display): Remove unused variable.
5495 Many functions: changes for Lisp_object selected_frame.
5496 (IT_set_face): If the tty_reverse_p flag is set for the face,
5497 reverse the foreground and background colors.
5498 (Fmsdos_remember_default_colors): New function.
5499 (syms_of_msdos): Defsubr it.
5500 (IT_set_frame_parameters): Use initial_screen_colors[] when
5501 creating a new frame. If the frame parameters include 'reverse,
5502 swap the foreground and background colors.
5503 (internal_terminal_init): Initialize initial_screen_colors to -1.
5504 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5505 cus-start.el.
5506
5507 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5508
5509 * xfns.c (x_defined_color): Rename from defined_color. All
5510 callers changed.
5511 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5512 all callers changed.
5513 (Fxw_color_values): Renamed from Fx_color_values; all callers
5514 changed.
5515 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5516 callers changed.
5517 (x_window_to_frame, x_any_window_to_frame,
5518 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5519 x_top_window_to_frame): Use !FRAME_X_P instead of
5520 f->output_data.nothing.
5521 * xterm.h (x_defined_color): Rename from defined_color.
5522
5523 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5524 f->output_data.nothing.
5525 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5526 all callers changed.
5527 (Fxw_color_values): Renamed from Fx_color_values; all callers
5528 changed.
5529 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5530 callers changed.
5531
5532 * dispextern.h (tty_color_name): Add prototype.
5533
5534 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5535 f->output_data.nothing.
5536 * w32menu.c (menubar_id_to_frame): Likewise.
5537 * w32term.h (w32_output): Declare.
5538
5539 * dosfns.c (Qmsdos_color_translate): Remove.
5540 (msdos_stdcolor_name): Now returns a Lisp_Object.
5541 * dosfns.h (Qmsdos_color_translate): Remove.
5542
5543 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5544
b3e5232e
KH
55451999-12-06 Kenichi Handa <handa@etl.go.jp>
5546
5547 * fileio.c (decide_coding_unwind): Renamed from
5548 set_auto_coding_unwind.
5549 (Finsert_file_contents): Make single unwind protect to call both
5550 Vset_auto_coding_function and Ffind_operation_coding_system.
5551
5552 * insdel.c (adjust_markers_for_delete): Make it non-static.
5553
db0e466c
SM
55541999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5555
5556 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5557 operators and handle them properly.
5558 * regex.h (RE_ALL_GREEDY): New option.
5559 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5560 sorting would put it.
5561 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5562 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5563
22afa6e8
DL
55641999-12-04 Dave Love <d.love@dl.ac.uk>
5565
5566 * m/arm.h: New file.
5567
40afb967
DL
55681999-12-03 Dave Love <fx@gnu.org>
5569
5570 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5571
ddf8eff5
GM
55721999-12-02 Gerd Moellmann <gerd@gnu.org>
5573
5574 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5575 for building with Motif.
5576
5577 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5578 unexelf.o.
427ec082 5579
ddf8eff5
GM
5580 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5581
fa09a82d
DL
55821999-12-01 Dave Love <fx@gnu.org>
5583
5584 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5585
ddf8eff5
GM
55861999-11-28 Gerd Moellmann <gerd@gnu.org>
5587
5588 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5589 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5590 macros.
5591
5592 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5593
fa09a82d
DL
55941999-11-28 eliz <eliz@dlpx1>
5595
5596 * emacs.c (synchronize_locale): Avoid compiler warnings about
5597 pointer type mismatch.
5598
f9632fc8
GM
55991999-11-28 Gerd Moellmann <gerd@gnu.org>
5600
717d0121
GM
5601 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5602 out of range position.
5603
427ec082 5604 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5605 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5606
59c65f1e
EZ
56071999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5608
613a8346
EZ
5609 * charset.c (Fmake_char_internal): Print the charset ID when
5610 signalling an error.
5611
59c65f1e
EZ
5612 * emacs.c (synchronize_locale): Avoid compiler warnings about
5613 pointer type mismatch.
5614
83c8f461 56151999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5616
5617 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5618
18df9369
GM
56191999-11-26 Gerd Moellmann <gerd@gnu.org>
5620
65a3ccf7
GM
5621 * puresize.h (BASE_PURESIZE): Increase to 550000.
5622
b3b98592
GM
5623 * textprop.c (set_text_properties): New function. Like
5624 Fset_text_properties, but with additional parameter
5625 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5626 changes.
5627 (Fset_text_properties): Use it.
5628
5629 * insdel.c (insert_1_both): Call set_text_properties with last
5630 parameter nil so that no after changes will be signaled.
5631
5632 * lisp.h: Add prototype for set_text_properties.
5633
18df9369
GM
5634 * xfaces.c (set_lface_from_font_name): Fix previous change.
5635 (recompute_basic_faces): Change assert to abort.
5636
71a8e74b
DL
56371999-11-25 Dave Love <fx@gnu.org>
5638
5639 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5640 (Fmember, Fdelq, Fdelete): Inline car.
5641 (Fy_or_n_p): Doc fix.
5642
bc6a5782
GM
56431999-11-25 Gerd Moellmann <gerd@gnu.org>
5644
3221576b 5645 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5646 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5647 is not set, try to use a reasonable default.
5648
bc6a5782
GM
5649 * dispnew.c (direct_output_for_insert): Set glyph row's
5650 displays_text_p flag. Correct window's window_end_vpos if
5651 necessary.
5652
0c8559bb
PE
56531999-11-25 Paul Eggert <eggert@twinsun.com>
5654
5655 * emacs.c (fixup_locale): Don't bother to record initial locale.
5656 (synchronize_locale): If the desired locale is nil,
5657 treat it as if it were the empty string,
5658 so that we set the locale from the environment.
5659
35737351
KH
56601999-11-25 Kenichi Handa <handa@etl.go.jp>
5661
5662 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5663 of the current buffer via Fset.
5664
5562b47f
DL
56651999-11-24 Dave Love <fx@gnu.org>
5666
5562b47f
DL
5667 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5668
5669 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5670
00da0e4a
GM
56711999-11-24 Gerd Moellmann <gerd@gnu.org>
5672
5673 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5674
5675 * emacs.c (PVEC_FLAG): New variable.
5676
b1775dc1
GM
56771999-11-23 Gerd Moellmann <gerd@gnu.org>
5678
5679 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5680 that fails on IBM PowerPC, AIX 4.2.
427ec082 5681
08de6200
EZ
56821999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5683
5684 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5685 string of mode-line-format. Remove the obsolete %t.
5686
02fda8ff
GM
56871999-11-22 Gerd Moellmann <gerd@gnu.org>
5688
f2fa858f
GM
5689 * dispnew.c (direct_output_for_insert): Increment glyph positions
5690 for glyphs from buffer text only.
5691
02fda8ff
GM
5692 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5693 (gdb_data_seg_bits): New variables.
427ec082 5694
02fda8ff
GM
5695 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5696 work on systems not allowing enumerators > INT_MAX, and it
5697 won't work if EMACS_INT is long long.
5698
1b0d24e7
PE
56991999-11-22 Paul Eggert <eggert@twinsun.com>
5700
5701 Port to SunOS 4.1.x again. Help out with Alpha port.
5702 Rename messages-locale to system-messages-locale,
5703 and likewise for time-locale.
427ec082 5704
1b0d24e7
PE
5705 * callproc.c (strerror): Remove decl.
5706 * fileio.c (strerror): Likewise.
5707 * process.c (strerror): Likewise.
5708 * emacs.c (strerror): Likewise.
5709 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5710 All uses changed.
5711 (Vprevious_system_messages_locale): Likewise, from
5712 Vprevious_messages_locale.
5713 (Vsystem_time_locale): Likewise, from Vtime_locale.
5714 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5715 (ABORT_RETURN_TYPE): New macro.
5716 (abort): Return type is now ABORT_RETURN_TYPE.
5717 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5718 defined.
5719 (syms_of_emacs): messages-locale -> system-messages-locale,
5720 previous-messages-locale -> previous-system-messages-locale,
5721 time-locale -> system-time-locale,
5722 previous-time-locale -> previous-system-time-locale.
5723
5724 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5725 (const): Do not define; that's config.h's job.
5726 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5727 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5728 (<stddef.h>): Include if STDC_HEADERS is defined.
5729 (FREE_RETURN_TYPE): New macro.
5730 (free): Return type is now FREE_RETURN_TYPE.
5731
5732 * lisp.h (synchronize_system_time_locale): Renamed from
5733 synchronize_time_locale. All uses changed.
5734 (synchronize_system_messages_locale): Likewise, from
5735 synchronize_messages_locale.
5736
5737 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5738 stdlib.h now does this.
5739
5740 * process.c (sys_siglist): Remove.
5741
5742 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5743 New macros.
5744
5745 * syntax.c (scan_sexps_forward): Use abort, not assert.
5746
5747 * sysdep.c (my_sys_siglist): New var.
5748 (sys_siglist): New macro. Remove old initialized vars of same name.
5749 (init_signals): Initialize sys_siglist.
5750
5751 * xfns.c (abort): Remove decl; stdlib.h now does this.
5752
0dcd5b54
DL
57531999-11-18 Dave Love <fx@gnu.org>
5754
946173ad
DL
5755 * filelock.c: Add forward declaration for get_boot_time_1.
5756
0dcd5b54
DL
5757 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5758
71447e8f
GM
57591999-11-18 Gerd Moellmann <gerd@gnu.org>
5760
5761 * buffer.h (struct buffer_text): Add comment about moving
5762 buffer text if REL_ALLOC is defined.
5763
eeedff63
KH
57641999-11-18 Kenichi Handa <handa@etl.go.jp>
5765
5766 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5767
5768 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5769 memory for push_key_description.
5770
5771 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5772 allocate memory for push_key_description.
5773 (describe_buffer_bindings): Likewise.
5774
5d7e4a2c
GM
57751999-11-17 Gerd Moellmann <gerd@gnu.org>
5776
5777 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5778 (Fx_hide_busy_cursor): Ditto.
5779
57801999-11-17 Marco Walther <walther@siemens-pyramid.com>
5781
5782 * unexsni.c (unexec): Handle .rel.dyn section.
5783
b5b41e02
DL
57841999-11-16 Dave Love <fx@gnu.org>
5785
5786 * doc.c (Fdocumentation): Remove gcpro here too.
5787
e35b6123
GM
57881999-11-16 Gerd Moellmann <gerd@gnu.org>
5789
5790 * keyboard.c (command_loop_1): Remove no_redisplay.
5791
83c8f461 57921999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5793
5794 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5795 in noninteractive.
5796
b05d3bee
GM
57971999-11-14 Gerd Moellmann <gerd@gnu.org>
5798
5bcfeb49
GM
5799 * xdisp.c (ensure_echo_area_buffers): New.
5800 (with_echo_area_buffer): Use it.
5801 (setup_echo_area_for_printing): Ditto.
5802
b05d3bee
GM
5803 * buffer.c (indicate-empty-lines): Doc-fix.
5804
9b2e6e4c
GM
58051999-11-12 Gerd Moellmann <gerd@gnu.org>
5806
e7f90eab
GM
5807 * term.c (term_init): If "op" isn't available, don't support color
5808 because we can't switch back to the default foreground and
5809 background.
5810
9b2e6e4c
GM
5811 * doc.c (Fdocumentation_property): Remove GCPRO because
5812 Fsubstitute_command_keys gcpro's the string.
5813
1bf21027
KH
58141999-11-12 Kenichi Handa <handa@etl.go.jp>
5815
5816 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5817
3bc6df53
GM
58181999-11-11 Gerd Moellmann <gerd@gnu.org>
5819
5820 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5821 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5822 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5823
35a5514b
GM
58241999-11-10 Gerd Moellmann <gerd@gnu.org>
5825
5826 * xfns.c (QCuser_data): Removed.
5827 (syms_of_xfns): Initialization of QCuser_data removed.
5828 (parse_image_spec): Don't handle :user-data specially. Allow
5829 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5830 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5831 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5832 parse_image_spec accordingly.
5833
83c8f461 58341999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5835
5836 * cmds.c (Fbeginning_of_line): Doc fix.
5837 (Fend_of_line): Doc fix.
5838
5839 * editfns.c (Fline_beginning_position): If N is not 1,
5840 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5841
5842 * syntax.c (Fforward_word): Handle fields even if would have hit
5843 an edge of the buffer. Return nil if affected by fields.
5844
83c8f461 58451999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5846
5847 * editfns.c (preceding_pos): Function deleted.
5848 (text_property_stickiness): Decrement POS directly.
5849 Fix a confusion that used PT instead of POS.
5850
5851 * editfns.c (find_field): Properly handle the case
5852 of a field boundary where `field' inherits from neither side.
5853
5854 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5855 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5856
fa9aabf6
GM
58571999-11-08 Gerd Moellmann <gerd@gnu.org>
5858
5859 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5860 BEFORE_POTENTIAL_GC before DISCARD.
5861
4015b3c0
GM
58621999-11-07 Gerd Moellmann <gerd@gnu.org>
5863
033a5fa3
GM
5864 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5865
5866 * lisp.h: Add prototype for unmark_byte_stack.
5867
5868 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5869 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5870 XUNMARK.
5871
55b064bd
GM
5872 * xdisp.c (resize_mini_window): Fix computation of needed
5873 mini-window height.
5874
5875 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5876 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5877
4015b3c0 5878 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5879 locally there. Rearrange case statements so that those most
4015b3c0
GM
5880 frequently executed come first. Avoid goto's in frequently
5881 executed cases.
5882
fe512f27
GM
58831999-11-05 Gerd Moellmann <gerd@gnu.org>
5884
dd59e217
GM
5885 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5886 AFTER_POTENTIAL_GC around internal_catch.
5887
bcf28080
GM
5888 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5889 relocate_byte_pcs.
5890 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5891
5892 * eval.c (struct catchtag): Add member byte_stack.
5893 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5894 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5895 catchtag.
5896 (unwind_to_catch): Restore byte_stack_list from catchtag.
5897
5898 * lisp.h: Add prototypes for new functions in bytecode.c.
5899 Add extern declaration for byte_stack_list.
5900
5901 * bytecode.c (struct byte_stack): New.
5902 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5903 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5904 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5905 (HANDLE_RELOCATION): Removed.
5906 (Fbyte_code): Use byte_stack structures.
5907
4d59c34c
GM
5908 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5909
fe512f27
GM
5910 * buffer.c (syms_of_buffer): Extend documentation of
5911 mode-line-format.
5912
60b64cd6
GM
59131999-11-04 Gerd Moellmann <gerd@gnu.org>
5914
5915 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5916
5917 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5918 Ferase_field instead of Fdelete_field.
5919
b51b619b
GM
59201999-11-03 Gerd Moellmann <gerd@gnu.org>
5921
5922 * dispnew.c (Finternal_show_cursor): Change it to set the
5923 cursor on/off, not toggle its state.
5924 (Finternal_show_cursor_p): New.
5925 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5926
5865af0d
DL
59271999-11-03 Dave Love <fx@gnu.org>
5928
5929 * charset.c (split_non_ascii_string): Define return value.
5930
82a700f3
GM
59311999-11-03 Gerd Moellmann <gerd@gnu.org>
5932
edfef199
GM
5933 * minibuf.c (string_to_object): New.
5934 (read_minibuf_noninteractive): New.
5935 (read_minibuf): Call read_minibuf_noninteractive if
5936 noninteractive. Use string_to_object.
5937
82a700f3
GM
5938 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5939
b5540f0d
DL
59401999-11-02 Dave Love <fx@gnu.org>
5941
e69dcd60
DL
5942 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5943
827a1788
DL
5944 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5945 declared with glibc2.
b5540f0d 5946
a69a6e61
GM
59471999-11-02 Gerd Moellmann <gerd@gnu.org>
5948
5949 * lisp.h (QUIT): Give it statement form.
5950
87e21fbd
DL
59511999-11-02 Dave Love <fx@gnu.org>
5952
5953 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5954
1b335865
GM
59551999-11-02 Gerd Moellmann <gerd@gnu.org>
5956
9fb5e03d
GM
5957 * xfns.c (QCuser_data): New.
5958 (syms_of_xfns): Initialize QCuser_data.
5959 (parse_image_spec): Ignore :user-data DATA properties.
5960
1b335865
GM
5961 * xdisp.c (display_line): Set charpos of first glyph in blank
5962 lines not corresponding to any text to -1, even if no glyphs are
5963 filled in in that line.
5964
e76f1c44
GM
59651999-11-01 Gerd Moellmann <gerd@gnu.org>
5966
427ec082 5967 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5968 png_get_sRGB in #ifdef.
5969
111259b4
GM
5970 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5971 (syms_of_display): Use the new name.
5972
dd5c96e8
GM
5973 * textprop.c (verify_interval_modification): Signal text-read-only
5974 instead of calling error.
5975
db8878fb
GM
5976 * data.c (Qtext_read_only): New built-in error.
5977 (syms_of_data): Initialize it.
5978
5979 * lisp.h: Add extern declaration for Qtext_read_only.
5980
e76f1c44
GM
5981 * syntax.c: Remove whitespace after open or in front of closing
5982 parentheses.
5983
83c8f461 59841999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5985
5986 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5987
7843e09c
GM
59881999-10-31 Gerd Moellmann <gerd@gnu.org>
5989
575ed805
GM
5990 * xdisp.c (resize_mini_window): Compute needed height differently.
5991
7843e09c
GM
5992 * fns.c (Flength): Unroll loop over lists.
5993
5994 * xdisp.c (append_space): Return non-zero if space was appended.
5995 (display_line): Set charpos of first glyph to -1 only if that
5996 glyph is the space added by append_glyph.
5997
83c8f461 59981999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5999
6000 * print.c (strout): Consider `noninteractive' and use stdout
6001 only when PRINTCHARFUN is t.
6002
6003 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
6004 (gcpro_level): Declare it extern.
6005 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
6006 Alternate definitions that set `level' and increment `gcpro_level'.
6007 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
6008
6009 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
6010 (init_eval) [DEBUG_GCPRO]: Initialize it.
6011 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
6012 from remaining gcprolist.
6013
3636f7a3
KH
60141999-10-29 Kenichi Handa <handa@etl.go.jp>
6015
6016 * coding.c (code_convert_region): Update `dst' correctly.
6017
a2ad7096
GM
60181999-10-28 Gerd Moellmann <gerd@gnu.org>
6019
6020 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
6021 (Frassoc): Rewritten.
6022
1e3196e8
GM
60231999-10-27 Noah Friedman <friedman@splode.com>
6024
6025 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
6026 Define PTY_NAME_SPRINTF.
6027 Redefine PTY_TTY_NAME_SPRINTF.
6028 * config.in: Add undef for HAVE_DEV_PTMX.
6029
83c8f461 60301999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
6031
6032 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
6033 as arg to DEBUG_POP and DEBUG_PRINT.
6034
83c8f461 60351999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
6036
6037 * data.c (Qad_activate_internal): Renamed from Qad_activate.
6038 (Ffset): Call Qad_activate_internal.
6039 (syms_of_data): Initialize Qad_activate_internal.
6040
26922151
GM
60411999-10-27 Gerd Moellmann <gerd@gnu.org>
6042
6043 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
6044 Vterminal_frame is selected and Vwindow_system is non-nil.
6045
67a5596f
GM
60461999-10-26 Gerd Moellmann <gerd@gnu.org>
6047
2bea706b
GM
6048 * xdisp.c (echo_area_display): Put previous change in #if 0.
6049
67a5596f
GM
6050 * emacs.c (standard_args): Add `file' as synonym for `visit',
6051 `execute' as synonym for `eval'.
6052 (main): Add new options to usage message.
6053
81dc5de5
GM
60541999-10-25 Gerd Moellmann <gerd@gnu.org>
6055
6056 * data.c (Qhash_table): New.
6057 (Ftype_of): Return it for hash tables.
6058 (syms_of_data): Initialize Qhash_table.
6059
83c8f461 60601999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
6061
6062 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
6063
66e4690f 60641999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 6065
7539e11f
KR
6066 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
6067 lisp.h.
6068
6069 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
6070 Fbuffer_local_variables, Fother_buffer, record_buffer,
6071 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
6072 swap_out_buffer_local_variables, overlays_at, overlays_in,
6073 overlay_touches_p, overlay_strings, recenter_overlay_lists,
6074 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
6075 Foverlay_put, report_overlay_modification, evaporate_overlays):
6076 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6077 references.
6078 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6079 swap_in_symval_forwarding, set_internal, default_value,
6080 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6081 Fmake_variable_frame_local, Flocal_variable_p,
6082 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6083 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6084 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6085 * emacs.c (main): Likewise.
6086 * fontset.c (fs_load_font, fs_register_fontset,
6087 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6088 Fnew_fontset, Fset_fontset_font): Likewise.
6089 * frame.c (do_switch_frame, next_frame, prev_frame,
6090 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6091 Likewise.
6092 * keyboard.c (read_char, help_char_p, event_to_kboard,
6093 kbd_buffer_get_event, timer_start_idle, timer_check,
6094 make_lispy_event, apply_modifiers, reorder_modifiers,
6095 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6096 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6097 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6098 Fcommand_execute, Fexecute_extended_command): Likewise.
6099 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6100 Fall_completions): Likewise.
6101 * window.c (Fset_window_margins): Likewise.
6102
6103 * callint.c (quotify_args): Don't explicitly use struct
6104 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6105
3a7093d8
KR
6106 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6107 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6108 if __ELF__ is defined.
6109
2a3d7146
GM
61101999-10-24 Gerd Moellmann <gerd@gnu.org>
6111
6112 * window.c (Fnext_window): Add a QUIT in the loop.
6113
8ac52782
GM
61141999-10-23 Gerd Moellmann <gerd@gnu.org>
6115
427ec082 6116 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6117 New targets.
6118
05f0d15a
DL
61191999-10-22 Dave Love <fx@gnu.org>
6120
6121 * emacs.c (main): Enable profiling conditional on __linux also.
6122
882fb0e6
GM
61231999-10-20 Gerd Moellmann <gerd@gnu.org>
6124
6125 * xrdb.c (x_load_resources): Set default resources for resource
6126 classes instead of for the specific Emacs.
6127
b5f5bc31
GM
61281999-10-19 Gerd Moellmann <gerd@gnu.org>
6129
66f4dd69
GM
6130 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6131 defines it that way.
427ec082 6132
b5f5bc31
GM
6133 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6134 if selected_frame is equal to Vterminal_frame.
6135
68c45bf0 61361999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6137
68c45bf0 6138 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6139
68c45bf0
PE
6140 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6141 when dumping, so that the dumped Emacs doesn't have stray locale info.
6142 (dired.o): Depend on systime.h.
6143 (editfns.o): Depend on coding.h.
6144
6145 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6146 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6147 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6148 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6149 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6150 Include <config.h> before any system include files.
6151
6152 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6153 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6154 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6155 xmenu.c, xterm.c:
6156 Do not include <stdlib.h>, as <config.h> does this now.
6157
6158 * callproc.c (Fcall_process):
6159 Synchronize messages locale before invoking strerror.
6160 Decode resulting string with locale-coding-system.
6161
6162 * coding.c (Vlocale_coding_system): New var.
6163 (syms_of_coding): Adjust to above change.
6164 (emacs_strerror): New function.
6165
6166 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6167
68c45bf0
PE
6168 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6169 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6170 HAVE_STRSIGNAL): New macros.
6171 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6172 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6173
6174 * dired.c: Include "systime.h".
6175 (Ffile_attributes): Do not cast s.st_size to int; this loses
6176 information if int is 32 bits but st_size and EMACS_INT are larger.
6177 Treat large device numbers like large inode numbers.
6178
6179 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6180
6181 * editfns.c: Include coding.h.
6182 (emacs_strftime): Remove decl.
6183 (emacs_strftimeu): New decl.
6184 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6185 Use emacs_strftimeu instead of emacs_strftime.
6186 (Fformat_time_string): Convert format string using
6187 Vlocale_coding_system, and convert result back. Synchronize time
6188 locale before invoking lower level function. Invoke
6189 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6190
68c45bf0
PE
6191 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6192 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6193 Vprevious_time_locale): New variables.
6194 (main): Invoke setlocale early, so that initial error messages are
6195 localized properly. But skip locale-setting if LC_ALL is "C".
6196 Fix up locale when it's safe to do so.
6197 (fixup_locale): Moved here from xterm.c.
6198 (synchronize_locale, synchronize_time_locale,
6199 synchronize_messages_locale): New functions.
6200 (syms_of_emacs): Accommodate above changes.
6201
6202 * fileio.c (report_file_error): Convert strerror output according
6203 to Vlocale_coding_system.
6204 (Finsert_file_contents): Check for arithmetic overflow in
6205 computations that depend on file size. Report IO errors
6206 with emacs_strerror, not strerror.
6207
6208 * fns.c (Fgethash): Declare dflt parameter.
6209
6210 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6211 is defined; that's config.h's job.
6212
6213 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6214 default these values to long, BITS_PER_LONG, and unsigned long.
6215 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6216 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6217 (code_convert_string_norecord, fixup_locale,
6218 synchronize_messages_locale, synchronize_time_locale,
6219 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6220 All Emacs callers of open, close, read, write changed to use
6221 emacs_open, emacs_close, emacs_read, emacs_write.
6222
6223 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6224 changed to file_tell.
6225 (saved_doc_string_position, prev_saved_doc_string_position): Now
6226 of type file_offset.
6227 (init_lread): Do not fix locale here; fixup_locale now does this.
6228
6229 * m/amdahl.h, s/usg5-4.h:
6230 (NSIG): Remove.
6231 (NSIG_MINIMUM): New macro.
6232
6233 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6234 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6235 s/umips.h, s/usg5-4.h:
6236 (SIGIO): Do not undef.
6237 (BROKEN_SIGIO): New macro.
6238
6239 * m/ustation.h:
6240 (SIGTSTP): Do not undef.
6241 (BROKEN_SIGTSTP): New macro.
6242
6243 * s/gnu-linux.h:
6244 (SIGPOLL, SIGURG): Do not undef.
6245 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6246
6247 * s/ptx4.h:
6248 (SIGINFO): Do not undef.
6249 (BROKEN_SIGINFO): New macros.
427ec082 6250
68c45bf0
PE
6251 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6252
6253 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6254 some Emacs-related changes merged.
6255
6256 * print.c (float_to_string): Prepend "-" to representation of a
6257 NaN if the NaN is negative.
6258
6259 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6260 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6261
68c45bf0
PE
6262 * process.c (status_message, sigchld_handler): Synchronize locale,
6263 then use strsignal istead of sys_siglist.
6264 * w32proc.c (sys_wait): Likewise.
427ec082 6265
68c45bf0
PE
6266 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6267 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6268 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6269 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6270 (open, close, read, write, INTERRUPTIBLE_OPEN,
6271 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6272
6273 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6274
6275 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6276 sys_open, open): Remove.
6277 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6278 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6279 macros are no longer used.
6280 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6281 (emacs_close): Renamed from sys_close.
6282 (emacs_read): Renamed from sys_read.
6283 (emacs_write): Renamed from sys_write.
6284 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6285 (dup2): Do not print error on failure; the real dup2 doesn't.
6286 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6287
6288 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6289 is defined.
6290 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6291 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6292 (strsignal): Declare if !HAVE_STRSIGNAL.
6293
6294 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6295 (ElfW): Define in terms of ElfExpandBitsW.
6296
6297 * w32proc.c (sys_siglist): Remove decl.
6298
6299 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6300 with ANSI C.
6301 (display_string): Declare face_string_pos arg.
6302
6303 * xfns.c (Fx_show_tip): Declare timeout param.
6304
6305 * xterm.c: No need to include locale.h.
6306 (x_alloc_lighter_color, x_setup_relief_color):
6307 Pass arg as double, not float, for compatibility with ANSI C.
6308 (fixup_locale): Move to emacs.c.
6309 (x_term_init): Do not setlocale or fixup locale; the main program
6310 does this now.
6311
2f0b74ea
DL
63121999-10-18 Dave Love <fx@gnu.org>
6313
6314 * doc.c (Fdocumentation_property): Gcpro `tem'.
6315
471aa4a0
KH
63161999-10-18 Kenichi Handa <handa@etl.go.jp>
6317
6318 * lread.c (Fload): Calculate bytes of filename correctly.
6319 (openp): Likewise.
6320
aca2020b
KH
63211999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6322
6323 * print.c (print_preprocess): In case print-circle is nil,
6324 add OBJ to Vprint_number_table only when OBJ is a symbol.
6325
1f5fe392 63261999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6327
6328 * coding.c (code_convert_string): Add record_unwind_protect to
6329 assure setting inhibit_pre_post_conversion back to zero. Take
6330 care of the multibyteness of the working buffer.
6331
6332 * coding.c (inhibit_pre_post_conversion): New variable.
6333 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6334 ignore post-read-conversion and pre-write-conversion property of
6335 the coding system.
6336 (code_convert_region_unwind): New function.
6337 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6338 running pre-write-conversion and post-read-conversion.
6339 (code_convert_string): Likewise.
6340
cd876a91
GM
63411999-10-17 Miles Bader <miles@gnu.org>
6342
6343 * editfns.c: Doc fix.
6344
63451999-10-17 Miles Bader <miles@gnu.org>
6346
6347 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6348 argument preconditions of find_before_next_newline in the case
6349 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6350 was indeed at the edge.
6351
63521999-10-17 Miles Bader <miles@gnu.org>
6353
6354 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6355 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6356
6357 * editfns.c (text_property_eq, text_property_stickiness): Don't
6358 use initializers for auto variables of type Lisp_Object.
6359 (find_field): Likewise. Use braces around nested ifs.
6360 (Fline_end_position): Store the raw eol in a variable, so that the
6361 final expression doesn't look so ugly.
6362 (Fconstrain_to_field): Doc fix.
6363 (preceding_pos): Renamed from `preceeding_pos'.
6364 (text_property_stickiness, find_field): Call preceding_pos,
6365 not preceeding_pos.
6366
63671999-10-17 Miles Bader <miles@gnu.org>
6368
6369 * editfns.c (Ffield_string_no_properties): New function.
6370 (text_property_stickiness, preceeding_pos): New functions.
6371 (Ffield_string): Remove PROPS parameter.
6372 (find_field): Add MERGE_AT_BOUNDARY parameter.
6373 Rewrite to use stickiness of `field' property to resolve
6374 ambiguous cases.
6375 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6376 (Fconstrain_to_field): Likewise.
6377 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6378 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6379 Supply new MERGE_AT_BOUNDARY argument to find_field.
6380 (Fline_beginning_position, Fline_end_position): Supply new
6381 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6382 Pass a value of Qt for the ONLY_IN_LINE argument to
6383 Fconstrain_to_field (only matters if N != 1).
6384 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6385 to Fconstrain_to_field.
6386
6387 * minibuf.c (Fminibuffer_complete_word): Use
6388 Ffield_beginning to find the prompt end.
6389
63901999-10-17 Miles Bader <miles@gnu.org>
6391
6392 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6393 behavior when NEW_POS is nil.
6394 (find_field): Use XSETFASTINT instead of make_number.
6395 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6396 input string by seeing where the field begins, instead of
6397 looking at text-properties.
6398
63991999-10-17 Miles Bader <miles@gnu.org>
6400
6401 * editfns.c (Qfield): New variable.
6402 (find_field, Ferase_field, Ffield_string,
6403 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6404 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6405 (make_buffer_string_both): Remove minibuffer-prompt hack.
6406 (syms_of_editfns): Initialize Qfield, and subr entries for
6407 field functions above.
6408 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6409 minibuf_save_list.
6410 Don't initialize minibuffer prompt length.
6411 Wrap prompt text-properties around the entire prompt.
6412 Add 'prompt text-property to prompt.
6413 Get final value with Ffield_string instead of make_buffer_string.
6414 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6415 minibuf_save_list.
6416 (do_completion): Get minibuffer input with Ffield_string
6417 instead of Fbuffer_string.
6418 Erase minibuffer input with Ferase_field instead of erase_buffer.
6419 (Fminibuffer_complete_and_exit): Likewise.
6420 Test whether buffer is empty by looking for the 'prompt text
6421 property at the end.
6422 Set prompt length by looking for the end of the prompt text property,
6423 and save prompt length for later use (since there is no longer a
6424 buffer variable to get it from).
6425 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6426 (syms_of_minibuf): Remove initializations of
6427 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6428 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6429 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6430 Don't initialize prompt_end_charpos field.
6431 * syntax.c (Fforward_word): Likewise.
6432 Constrain to any field.
6433
3f6f7508
GM
64341999-10-16 Gerd Moellmann <gerd@gnu.org>
6435
6436 * window.c (enum save_restore_action): New.
6437 (save_restore_orig_size): Change parameter list. Add
6438 functionality to check for valid orig_top and orig_height members
6439 in a window tree.
6440 (grow_mini_window): Call save_restore_orig_size with new parameter
6441 list.
6442 (shrink_mini_window): Restore old window sizes only if old
6443 size information is valid in all windows in a window tree.
427ec082 6444
06482119
GM
64451999-10-15 Gerd Moellmann <gerd@gnu.org>
6446
2710454d
GM
6447 * xmenu.c (set_frame_menubar): Don't call
6448 x_set_menu_resources_from_menu_face here.
6449 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6450
06482119
GM
6451 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6452
17fa2837
DL
64531999-10-14 Dave Love <fx@gnu.org>
6454
6455 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6456
45f93416
GM
64571999-10-14 Gerd Moellmann <gerd@gnu.org>
6458
6459 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6460 fails and h_errno is TRY_AGAIN.
6461
c765b723
DL
64621999-10-13 Dave Love <fx@gnu.org>
6463
6464 * filelock.c (lock_file): Move gcpro of `fn'.
6465
dace7f4e
GM
64661999-10-10 Gerd Moellmann <gerd@gnu.org>
6467
6468 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6469
83c8f461 64701999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6471
6472 * print.c (print): When removing objects from Vprint_number_table,
6473 only scan the newly added objects.
6474 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6475 unconditionally force it to stay in the table.
6476
85177c86
GM
64771999-10-09 Gerd Moellmann <gerd@gnu.org>
6478
6479 * xfns.c (prepare_image_for_display): Don't try to load image if
6480 loading it failed before.
6481 (lookup_image, prepare_image_for_display): Remember if loading the
6482 image failed.
6483 (xpm_load): Add missing UNBLOCK_INPUT.
6484
6485 * dispextern.h (struct image): New member load_failed_p.
6486
11e4de5d
SM
64871999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6488
f28eba7b 6489 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6490 in the docstring.
6491
f1da8f06
GM
64921999-10-08 Gerd Moellmann <gerd@gnu.org>
6493
6494 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6495 Don't call XSetInputFocus because that can generate additional
6496 FocusIn events.
427ec082 6497
c37bbd4f
GM
64981999-10-07 Jeffrey C Honig <jch@bsdi.com>
6499
6500 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6501
83c8f461 65021999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6503
6504 * process.c (wait_reading_process_input): When trying to suck
6505 input from one process, for accept-process-output,
6506 exit that loop if we get EAGAIN or EWOULDBLOCK.
6507
577d9e2f
GM
65081999-10-07 Gerd Moellmann <gerd@gnu.org>
6509
6510 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6511 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6512 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6513 Fpixmap_spec_p and Qpixmap_spec_p.
6514 (load_face_colors, check_lface_attrs,
6515 merge_face_vector_with_property,
6516 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6517 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6518 Fbitmap_spec_p.
6519
f5737ad2
GM
65201999-10-07 Gerd Moellmann <gerd@gnu.org>
6521
6522 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6523 MODE_LINE_FACE_ID.
6524
6525 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6526 (struct x_resources) [USE_X_TOOLKIT]: New.
6527 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6528 [USE_MOTIF]: New.
6529 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6530 [USE_LUCID]: New.
6531 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6532 (Qmenu): New.
6533 (syms_of_xfaces): Initialize Qmenu.
6534 (realize_basic_faces): Realize face `menu'.
6535 (resolve_face_name): New.
6536 (lface_from_face_name): Use it.
6537 (Finternal_set_lisp_face_attribute): Ditto.
6538 (Fpixmap_spec_p): Rewritten. Extend doc string.
6539
6540 * xmenu.c (set_frame_menubar, xmenu_show): Call
6541 x_set_menu_resources_from_menu_face.
6542
6543 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6544 (toplevel): Include X11/Intrinsic.h.
6545
6a1aa823
DL
65461999-10-03 Ken'ichi Handa <handa@gnu.org>
6547
6548 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6549 correctly.
6550
26901792
DL
65511999-09-30 Kenichi Handa <handa@etl.go.jp>
6552
6553 * category.c (modify_lower_category_set): Set default value of
6554 TABLE correctly.
6555
6556 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6557 size correctly.
6558
65591999-09-29 Gerd Moellmann <gerd@gnu.org>
6560
6561 * editfns.c (Fpropertize): Renamed from Fproperties.
6562
65631999-09-29 Gerd Moellmann <gerd@gnu.org>
6564
6565 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6566 frame that hasn't been initialized yet.
6567
83c8f461 65681999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6569
6570 * keymap.c (Fsingle_key_description): Make tem big enough.
6571 (describe_buffer_bindings): Make buf big enough.
6572
83c8f461 65731999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6574
6575 * intervals.c (get_local_map): Use indirect_function,
6576 not Findirect_function.
6577
26901792
DL
65781999-09-27 Dave Love <fx@gnu.org>
6579
6580 * cm.h: Remove unneeded declaration of ospeed.
6581
65821999-09-26 Gerd Moellmann <gerd@gnu.org>
6583
6584 * lisp.h (toplevel): Add prototype for
6585 next_single_char_property_change.
6586
6587 * textprop.c (next_single_char_property_change): New.
6588
6589 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6590 next_single_char_property_change.
6591
65921999-09-25 Gerd Moellmann <gerd@gnu.org>
6593
6594 * editfns.c (Fproperties): New.
6595 (syms_of_editfns): Defsubr it.
6596
6597 * xfns.c (lookup_image): Set image's timestamp because it's
6598 used when we look it up.
6599
66001999-09-23 Gerd Moellmann <gerd@gnu.org>
6601
6602 * window.c (enlarge_window): Add window parameter instead of using
6603 selected_window.
6604 (Fdisplay_buffer): Call it with window parameter instead of
6605 setting selected_window.
6606 (Fenlarge_window, Fshrink_window): Ditto.
6607 (shrink_mini_window): If there is no recorded height and position
6608 info, resize mini-window to height 1.
6609
6610 * xfns.c (image_error): Use add_to_log.
6611
6612 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6613 (load_face_font_or_fontset, load_color,
6614 merge_face_vector_with_property): Ditto.
6615
6616 * dispextern.h: Add prototype for add_to_log.
6617
6618 * xfaces.c (add_to_log): Move to xdisp.c.
6619
6620 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6621 parameter.
6622
66231999-09-23 Gerd Moellmann <gerd@gnu.org>
6624
6625 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6626 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6627
6628 * xdisp.c (resize_mini_window): Use grow_mini_window and
6629 shrink_mini_window.
6630
6631 * window.c (window_min_size): Add parameter ignore_fixed_p.
6632 (change_window_height): Call window_min_size with new parameter.
6633 (shrink_window_lowest_first, save_restore_orig_size,
6634 grow_mini_window, shrink_mini_window): New.
6635 (make_window, replace_window): Initialize orig_top and
6636 orig_height.
6637 (enlarge_window): Renamed from change_window_height. Make it
6638 static.
6639 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6640 enlarge_window instead of change_window_height.
6641
6642 * window.h (struct window): New members orig_top, orig_height.
6643 (toplevel): Add prototypes for grow_mini_window and
6644 shrink_mini_window. Remove prototype for change_window_height.
6645
66461999-09-21 Eli Zaretskii <eliz@gnu.org>
6647
6648 * frame.c (frame_name_fnn_p): Fix previous change.
6649
66501999-09-20 Gerd Moellmann <gerd@gnu.org>
6651
6652 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6653
6654 * dispnew.c (direct_output_for_insert): Cast arguments to
6655 safe_bcopy to char *.
6656
6657 * lread.c (readchar): Remove unused variables.
6658 (read_filtered_event, read1, Fmapatoms): Ditto.
6659 (toplevel): Include intervals.h.
6660
6661 * eval.c (Fsignal): Remove unused variables.
6662 (Fcommandp, do_autoload): Ditto.
6663
6664 * lisp.h: Add prototype for safe_bcopy, fatal.
6665
6666 * editfns.c (init_editfns): Remove unused variables.
6667 (Fgoto_char, Fchar_after, Fformat): Ditto.
6668 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6669
6670 * data.c (find_symbol_value): Remove unused variables.
6671 (Faref, Fstring_to_number): Ditto.
6672 (toplevel): Include stdio.h.
6673 (Fnumber_to_string): Cast XINT to long for %ld.
6674
6675 * casefiddle.c (casify_object): Remove unused variables.
6676 (casify_region): Ditto.
6677
427ec082 6678 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6679 conditinally compiled section in #ifdef.
6680 (toplevel): Include stdio.h.
6681
6682 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6683 keys_of_keymap, syms_of_keymap): Remove unused variables.
6684
66851999-09-20 Gerd Moellmann <gerd@gnu.org>
6686
6687 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6688 whose corresponding window rows have been disabled in
6689 try_window_id.
6690
66911999-09-20 Gerd Moellmann <gerd@gnu.org>
6692
6693 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6694 that window start is out of range.
6695 (handle_display_prop, handle_single_display_prop): Replace
6696 marginal area specifications like `left-margin' with `(margin
6697 left-margin)'.
6698 (Qmargin): New.
6699 (syms_of_xdisp): Initialize Qmargin.
6700
67011999-09-19 Gerd Moellmann <gerd@gnu.org>
6702
6703 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6704 describe_syntax, skip_chars): Remove unused variables.
6705 (back_comment, forw_comment): Add braces to if-statement with
6706 if-else as dependent statement.
6707
6708 * process.c (list_processes_1): Remove unused variables.
6709 (Fopen_network_stream, create_process): Add parentheses to
6710 conditional expressions.
6711 (create_process): Put declaration of sigchld in #if 0.
6712 (Fopen_network_stream): Removed unused variables.
6713 (Fopen_network_stream, wait_reading_process_input,
6714 wait_reading_process_input, send_process, send_process): Ditto.
6715 (toplevel): Add prototypes for set_waiting_for_input and
6716 keyboard_bit_set.
6717
6718 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6719
6720 * textprop.c (Fset_text_properties): Remove unused variables.
6721 (text_property_list, verify_interval_modification,
6722 interval_has_all_properties): Ditto.
6723
6724 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6725 (Fcall_process): Remove unused variable.
6726
6727 * keyboard.c (Frecursive_edit): Remove unused variable.
6728 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6729 timer_check, make_lispy_event, menu_bar_items,
6730 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6731 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6732 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6733 read_key_sequence): Ditto. Fread_key_sequence,
6734 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6735 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6736 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6737 (Fexecute_extended_command): Cast XINT to long for %ld.
6738 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6739 (toplevel): Include sys/types.h.
6740
6741 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6742 (toplevel): Add prototypes for stuff_char, and
6743 code_convert_string_norecord.
6744
67451999-09-19 Gerd Moellmann <gerd@gnu.org>
6746
6747 * buffer.h: Add prototype for r_re_alloc.
6748
6749 * insdel.c (copy_text): Removed unused variables.
6750 (count_combining_after, count_combining_after, insert_1_both,
6751 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6752 (adjust_after_replace, replace_range): Add parentheses to logical
6753 expressions. Remove unused variables.
6754 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6755 expression.
6756
6757 * alloc.c (Fgarbage_collect): Remove unused variable.
6758 (compact_strings): Add parentheses around assignments in
6759 conditional context.
6760 (toplevel): Put declaration of unused function clear_marks
6761 in #if 0 like its definition.
6762
6763 * lisp.h: Add prototype for shrink_regexp_cache,
6764 sweep_weak_hash_tables.
6765
67661999-09-19 Dave Love <fx@gnu.org>
6767
6768 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6769
6770 * doc.c (read_bytecode_char): Declare arg.
6771
6772 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6773 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6774
67751999-09-18 Richard Stallman <rms@gnu.org>
6776
6777 * xdisp.c (echo_area_display): Turn off code that returned
6778 without doing anything when using a terminal frame.
6779
83c8f461 67801999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6781
6782 * unexelf.c (unexec): Don't get confused by a short section
6783 just before the bss section.
6784
26901792
DL
67851999-09-16 Gerd Moellmann <gerd@gnu.org>
6786
6787 * emacs.c (main): Remove unused variables.
6788 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6789
6790 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6791 init_fileio_once, syms_of_sound, init_xfns, init_fns
6792 init_sound, check_message_stack.
6793
6794 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6795
6796 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6797 ambiguous else warning.
6798 (split_interval_left): Remove unused variables.
6799 (previous_interval, adjust_intervals_for_deletion,
6800 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6801 (icount, idepth, zero_length): Move into #if 0 section below
6802 original position where these are used.
6803
6804 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6805
6806 * buffer.c (Fkill_buffer): Remove unused variables.
6807 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6808 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6809 init_buffer_once, (syms_of_buffer): Ditto.
6810
6811 * xrdb.c (get_fallback): Remove unused variable.
6812 (x_load_resources): Ditto. Put local variable used for Motif only
6813 in #ifdef USE_MOTIF.
6814
68151999-09-16 Gerd Moellmann <gerd@gnu.org>
6816
6817 * minibuf.c (read_minibuf): Remove unused variables.
6818 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6819 (do_completion): Move assignment out of conditional context.
6820 (Fdisplay_completion_list): Add parentheses to conditional expression.
6821
6822 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6823
6824 * lisp.h: Add prototype for no_switch_window.
6825
6826 * window.c (Fset_window_buffer): Remove unused variables.
6827 (Fset_window_margins): Ditto.
6828
6829 * xdisp.c (resize_mini_window): Temporarily set the selected
6830 window's or Vminibuf_scroll_window's height to "fixed" around
6831 the call the change_window_height.
6832
6833 * window.c (window_fixed_size_p): Check window's height_fixed_p
6834 flag.
6835
6836 * window.h (struct window): New member height_fixed_p.
6837
6838 * dispnew.c (direct_output_forward_char): Don't use this method
6839 if showing a message or a message was just cleared because we
6840 might need to resize the mini-window.
6841
68421999-09-16 Gerd Moellmann <gerd@gnu.org>
6843
6844 * frame.c (Fdelete_frame): Correct local variable pointing to
6845 selected frame after selecting new frame.
6846
68471999-09-15 Richard Stallman <rms@gnu.org>
6848
6849 * puresize.h (BASE_PURESIZE): Increase to 525000.
6850
6851 * filelock.c (Vtemporary_file_directory): New variable.
6852 (syms_of_filelock): Set up Lisp variable.
6853
68541999-09-15 Gerd Moellmann <gerd@gnu.org>
6855
6856 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6857 (encode_terminal_code): Remove unused variables.
6858 (turn_off_face): Ditto.
6859 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6860
6861 * dispnew.c (update_frame_line): If writing whole desired line,
6862 don't clear to end of line if already at the end.
6863
68641999-09-15 Gerd Moellmann <gerd@gnu.org>
6865
6866 * xdisp.c (resize_mini_window): Don't report changed window
6867 height if it actually hasn't changed.
6868
427ec082 6869 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6870 unused variables.
6871 (mark_shell_size_user_specified): Put in #if 0 because not used.
6872 (create_frame_gcs): Put in #if 0 because currently unused.
6873 (first_frame_p): Ditto.
6874
6875 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6876 single_submenu, update_frame_menubar, set_frame_menubar,
6877 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6878 variables.
6879
6880 * print.c (PRINTFULLP): Removed because it is no longer used and
6881 is misleading.
6882 (Ferror_message_string): Remove unused variables.
6883 (print_object): Cast argument of sprintf to long for `%ld'
6884 specifier. Remove unused variable.
6885
68861999-09-14 Gerd Moellmann <gerd@gnu.org>
6887
6888 * sound.c (Fplay_sound): Remove usused variables.
6889 (be2hs): Put in #if 0 because it's currently not used.
6890
68911999-09-14 Ken Raeburn <raeburn@gnu.org>
6892
6893 * print.c (Ferror_message_string, print_error_message,
6894 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6895 member access.
6896
68971999-09-14 Gerd Moellmann <gerd@gnu.org>
6898
6899 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6900
6901 * frame.c (Fnext_frame): Remove unused variable(s).
6902 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6903 (store_frame_param): Add parentheses to conditional expression.
6904 (Fmodify_frame_parameters): Remove unused variables.
6905 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6906 Ditto.
6907
6908 * xfns.c (x_set_background_color): Remove unused variable(s).
6909 (x_set_border_pixel): Ditto.
6910 (x_set_menu_bar_lines): Put local variable used only for
6911 non-toolkit case in #ifdef/#endif.
6912 (x_figure_window_size): Remove unused variable(s).
427ec082 6913 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6914 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6915 png_load, jpeg_load, gif_load, x_create_tip_frame,
6916 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6917
6918 * xterm.c (x_scroll_bar_handle_click): Compile only if
6919 not USE_TOOLKIT_SCROLL_BARS.
6920 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6921
6922 * dispextern.h: Add prototypes for gamma_correct and
6923 x_kill_gs_process.
6924
6925 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6926 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6927 x_set_toolkit_scroll_bar_thumb): Ditto.
6928 (x_scroll_bar_create): Move local variable to the
6929 conditionally compiled section of code where it is used.
6930 (x_scroll_bar_create): Remove unused variable(s).
6931 (x_scroll_bar_remove, XTread_socket): Ditto.
6932 (XTread_socket) <ConfigureNotify>: Move variables used for
6933 non-toolkit case into conditionally compiled section of code.
6934
6935 * window.h (freeze_window_starts): Fix typo in prototype.
6936
6937 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6938 variable(s).
6939
6940 * lisp.h: Add prototype for debug_print.
6941
6942 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6943 to use do-while.
6944
6945 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6946 (Fchar_table_range, Fset_char_table_default, mapcar1,
6947 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6948
6949 * lisp.h: Add prototype for getloadavg.
6950
69511999-09-14 Andreas Schwab <schwab@gnu.org>
6952
6953 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6954
6955 * lisp.h: Declare close_file_unwind.
6956
69571999-09-14 Richard Stallman <rms@gnu.org>
6958
6959 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6960
69611999-09-13 Gerd Moellmann <gerd@gnu.org>
6962
6963 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6964 is always set correctly.
6965
69661999-09-13 Dave Love <fx@gnu.org>
6967
6968 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6969 declaration.
6970
69711999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6972
6973 * xdisp.c (QCfile): Move here from xfns.c.
6974 (syms_of_xdisp): Initialize it.
6975 (message2_nolog): Change for Lisp_Object selected_frame.
6976 (message3_nolog, message_with_string, message,
6977 setup_echo_area_for_printing, truncate_echo_area,
6978 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6979
69801999-09-13 Dave Love <fx@gnu.org>
6981
6982 * xterm.c: Don't continue #define args for benefit of old cc.
6983 (xt_action_hook): Indent #error for benefit of K&R cc.
6984
69851999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6986
6987 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6988 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6989 (XRINGBELL): Removed.
6990
69911999-09-13 Dave Love <fx@gnu.org>
6992
6993 * xfns.c (x_put_x_image): Make type consistent with declaration.
6994
6995 * fns.c (Fmake_hash_table): Fix string continuation.
6996
69971999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6998
6999 * xfns.c (QCfile): Moved to xdisp.c.
7000 (syms_of_xfns): Don't initialize QCfile.
7001 (check_x_frame): Change for Lisp_Object selected_frame.
7002 (check_x_display_info, x_get_resource_string): Ditto.
7003
70041999-09-13 Gerd Moellmann <gerd@gnu.org>
7005
7006 * minibuf.c (choose_minibuf_frame): Don't try to set the
7007 mini-buffer window's buffer, if the buffer is invalid.
7008
7009 * xfns.c (QCfile): Moved to xdisp.c.
7010 (syms_of_xfns): Don't initialize QCfile.
7011
7012 * xdisp.c (QCfile): Move here from xfns.c.
7013 (syms_of_xdisp): Initialize it.
7014
7015 * lisp.h (selected_frame): Add external declaration.
7016
7017 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
7018 (Fx_store_cut_buffer_internal): Ditto.
7019 (Fx_rotate_cut_buffers_internal): Ditto.
7020
7021 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
7022 selected_frame.
7023 (Finternal_set_lisp_face_attribute): Ditto.
7024 (Finternal_get_lisp_face_attribute): Ditto.
7025 (Finternal_lisp_face_empty_p): Ditto.
7026 (Fdump_face): Ditto.
7027
7028 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
7029 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
7030 set_terminal_window, set_scroll_region, reassert_line_highlight,
7031 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
7032 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
7033 encode_terminal_code, write_glyphs, term_init): Ditto.
7034
7035 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
7036 (kbd_input_ast, read_input_waiting): Ditto.
7037
7038 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
7039 selected_frame.
7040 (read_minibuf): Ditto.
7041
7042 * keyboard.c (command_loop_1): Change for Lisp_Object
7043 selected_frame.
7044 (cmd_error_internal, command_loop_1, read_char,
7045 kbd_buffer_get_event, read_avail_input,
7046 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
7047 interrupt_signal, quit_throw_to_read_char): Ditto.
7048
7049 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
7050 (Ffontset_info): DItto.
7051
7052 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
7053
7054 * dispnew.c (selected_frame): Make it a Lisp_Object.
7055 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
7056 (direct_output_for_insert, direct_output_forward_char,
7057 init_display): Ditto.
7058
7059 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
7060 selected_frame.
7061 (set_internal): Ditto.
7062
7063 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
7064 (record_buffer): Ditto.
7065
7066 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
7067 (do_switch_frame): Change for Lisp_Object selected_frame.
7068 (Fselected_frame): Ditto.
7069 (Fframe_first_window): Use SELECTED_FRAME.
7070 (Fframe_root_window): Change for Lisp_Object selected_frame.
7071 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
7072 Fprevious_frame, other_visible_frames, Fdelete_frame,
7073 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
7074 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
7075 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
7076 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7077 Fset_frame_height, Fset_frame_width): Ditto.
7078
70791999-09-13 Gerd Moellmann <gerd@gnu.org>
7080
7081 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7082 (message3_nolog, message_with_string, message,
7083 setup_echo_area_for_printing, truncate_echo_area,
7084 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7085
7086 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7087 (Fx_popup_dialog): Ditto.
7088
7089 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7090 (check_x_display_info, x_get_resource_string): Ditto.
7091
7092 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7093 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7094 (XRINGBELL): Removed.
7095
7096 * window.c (Fminibuffer_window): Change for Lisp_Object
7097 selected_frame.
7098 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7099 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7100 Fcurrent_window_configuration, init_window_once): Ditto.
7101
7102 * frame.h (SELECTED_FRAME): New.
7103
71041999-09-12 Ken Raeburn <raeburn@gnu.org>
7105
7106 * category.c (word_boundary_p): Use XCAR and XCDR.
7107 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7108 Fregister_code_conversion_map): Likewise.
7109 * coding.c (setup_coding_system, detect_coding_system,
7110 Ffind_operation_coding_system, Fset_coding_priority_internal):
7111 Likewise.
7112 * doc.c (get_doc_string, Fdocumentation,
7113 store_function_docstring): Likewise.
7114 * editfns.c (save_restriction_restore): Likewise.
7115 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7116 skip_debugger, find_handler_clause, Fautoload, Fapply,
7117 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7118 Likewise.
7119 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7120 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7121 Fread_file_name): Likewise.
7122 * filelock.c (unlock_all_files): Likewise.
7123 * insdel.c (Fcombine_after_change_execute): Likewise.
7124 * intervals.c (adjust_intervals_for_insertion): Likewise.
7125 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7126 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7127 store_in_keymap, Fcopy_keymap, define_as_prefix,
7128 current_minor_maps, Faccessible_keymaps,
7129 accessible_keymaps_char_table, Fkey_description,
7130 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7131 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7132 describe_map): Likewise.
7133 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7134 read_list, init_lread): Likewise.
7135 * search.c (Fmatch_data): Likewise.
7136 * sunfns.c (Fsun_menu_internal): Likewise.
7137 * syntax.c (describe_syntax): Likewise.
7138 * undo.c (record_insert, record_delete, Fundo_boundary,
7139 truncate_undo_list): Likewise.
7140 * vmsproc.c (child_sig): Likewise.
7141
7142 * editfns.c (Fformat): Use XFLOAT_DATA.
7143
71441999-09-12 Gerd Moellmann <gerd@gnu.org>
7145
7146 * keyboard.c (command_loop_1): Resize mini-window to the
7147 exact size of a message displayed, if any.
7148
7149 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7150 to exact size if exact_p is non-zero.
7151 (display_echo_area_1): Call resize_mini_window with
7152 new parameter.
7153 (redisplay_internal): Ditto.
7154 (resize_echo_area_axactly): New.
7155
7156 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7157 new parameter.
7158
7159 * dispextern.h: Change prototype of resize_mini_window.
7160 Add prototype for resize_echo_area_axactly.
7161
7162 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7163 (syms_of_xfaces): Defsubr accordingly.
7164
7165 * xdisp.c (hscroll_window_tree): Choose cursor row from
7166 desired or current matrix.
7167 (redisplay_internal): Hscroll before updating.
7168
71691999-09-12 Gerd Moellmann <gerd@gnu.org>
7170
7171 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7172 of minibuffer_prompt_length.
7173
7174 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7175 of minibuffer_prompt_length.
7176 (read_minibuf_unwind): Ditto.
7177 (Fminibuffer_complete_and_exit): Ditto.
7178 (Fminibuffer_complete_word): Ditto.
7179 (Fminibuffer_prompt_end): Ditto.
7180
7181 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7182 of minibuffer_prompt_length.
7183 (Fline_beginning_position): Ditto.
7184
7185 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7186 of minibuffer_prompt_length.
7187 (Fmake_indirect_buffer): Ditto.
7188 (Fkill_buffer): Ditto.
7189 (Ferase_buffer): Ditto.
7190
7191 * buffer.h (prompt_end_charpos): Replaces
7192 minibuffer_prompt_length.
7193
427ec082 7194 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7195 without the prompt.
7196
7197 * editfns.c (make_buffer_string_both): Take out the code
7198 to handle mini-buffer prompts.
7199 (Fbuffer_string): Handle the prompt here, instead.
7200
7201 * xfaces.c (lface_from_face_name): Resolve face aliases.
7202 (Qmode_line): Replaces Qmodeline.
7203 (realize_basic_faces): Use Qmode_line.
7204 (syms_of_xfaces): Initialize Qmode_line.
7205
72061999-09-12 Gerd Moellmann <gerd@gnu.org>
7207
7208 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7209 current column after inserting prompt.
7210 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7211
7212 * xfaces.c (Qframe_update_face_colors): New.
7213 (syms_of_xfaces): Initialize call.
7214 (update_face_from_frame_parameter): Call that function when
7215 the frame's background changes.
7216
72171999-09-12 Richard Stallman <rms@gnu.org>
7218
7219 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7220
72211999-09-12 Ken Raeburn <raeburn@gnu.org>
7222
7223 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7224 mark_object, mark_buffer): Use XCAR and XCDR.
7225 * bytecode.c (Fbyte_code): Likewise.
7226 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7227 Likewise.
7228 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7229 getenv_internal): Likewise.
7230 * dired.c (file_name_completion): Likewise.
7231 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7232 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7233 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7234 * indent.c (Fcompute_motion): Likewise.
7235 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7236 list_processes_1, Fstart_process, Fopen_network_stream,
7237 wait_reading_process_input, read_process_output_call,
7238 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7239 status_notify, wait_reading_process_input): Likewise.
7240 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7241 extend_property_ranges): Likewise.
7242 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7243 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7244 x_report_frame_params, x_set_cursor_type, x_icon_type,
7245 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7246 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7247 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7248 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7249 x_display_info_for_name, Fx_display_list): Likewise.
7250 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7251 Fx_popup_menu, Fx_popup_dialog): Likewise.
7252 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7253 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7254 w32_term_init, x_delete_display): Likewise.
7255 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7256 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7257 x_top_window_to_frame, x_set_frame_parameters,
7258 x_report_frame_params, x_set_cursor_type, x_icon_type,
7259 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7260 Fx_display_list, x_create_tip_frame): Likewise.
7261 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7262 Fx_popup_menu, Fx_popup_dialog): Likewise.
7263 * xselect.c (x_own_selection, x_get_local_selection,
7264 x_handle_selection_request, x_handle_selection_clear,
7265 x_clear_frame_selections, wait_for_property_change_unwind,
7266 wait_for_property_change, x_handle_property_notify,
7267 copy_multiple_data, x_get_foreign_selection,
7268 lisp_data_to_selection_data, clean_local_selection_data,
7269 x_handle_selection_notify, Fx_get_selection_internal,
7270 x_disown_buffer_selections): Likewise.
7271 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7272 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7273 Likewise.
7274
7275 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7276 XFLOAT_DATA.
7277 * bytecode.c (Fbyte_code): Likewise.
7278 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7279 fmod_float): Likewise.
7280
72811999-09-11 Richard Stallman <rms@gnu.org>
7282
7283 * xdisp.c (run_window_scroll_functions): If hook functions switch
7284 buffers, switch back after.
7285
72861999-09-11 Ken Raeburn <raeburn@gnu.org>
7287
7288 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7289 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7290 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7291 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7292 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7293 XCDR.
7294 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7295 XCDR.
7296
72971999-09-10 Richard Stallman <rms@gnu.org>
7298
7299 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7300 not RevertToPointerRoot.
7301 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7302 Fix the code to clear around the scroll bar.
7303
73041999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7305
7306 * print.c: Support print-circle and related features.
7307 (Vprint_gensym_alist): Removed.
7308 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7309 Vprint_number_table): New variables.
7310 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7311 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7312 (print, print_preprocess, print_preprocess_string, print_object):
7313 New/modified functions with print-circle feature. Use
7314 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7315 (syms_of_print): Defined new Lisp variables `print-circle',
7316 `print-continuous-numbering', `print-number-table'.
7317
73181999-09-10 Gerd Moellmann <gerd@gnu.org>
7319
7320 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7321 as background color specification instead of an integer.
7322 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7323 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7324 (clear_image_cache, syms_of_xfns): Use it.
7325 (Qpostscript): Replaces Qghostscript.
7326 (gs_type): Use it.
7327 (gs_image_p): Ditto.
7328 (syms_of_xfns): Initialize Qpostscript.
7329
73301999-09-10 Richard Stallman <rms@gnu.org>
7331
7332 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7333
73341999-09-09 Richard Stallman <rms@gnu.org>
7335
7336 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7337
7338 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7339
73401999-09-09 Gerd Moellmann <gerd@gnu.org>
7341
7342 * fns.c (Fmakehash): Accept just one optional argument TEST.
7343
7344 * xfns.c (QCindex): New.
7345 (syms_of_xfns): Initialize QCindex.
7346 (gif_load): Use it instead of `:image'.
7347
73481999-09-09 Richard Stallman <rms@gnu.org>
7349
7350 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7351 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7352
73531999-09-08 Gerd Moellmann <gerd@gnu.org>
7354
7355 * xdisp.c (Qwhen): Replaces QCwhen.
7356 (syms_of_xdisp): Initialized it instead of QCwhen.
7357 (handle_single_display_prop): Use it instead of QCwhen.
7358
73591999-09-08 Ken'ichi Handa <handa@gnu.org>
7360
7361 * charset.c (translate_char): Reset MSBs of arguments of
7362 MAKE_CHAR.
7363 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7364
73651999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7366
7367 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7368
7369 * fns.c (Fbase64_decode_region): Don't place point outside of the
7370 current accessible portion.
7371
73721999-09-07 Richard Stallman <rms@gnu.org>
7373
7374 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7375 parent is an ancestor of SUBMAP; otherwise, add it as the
7376 ultimate ancestor.
7377
73781999-09-07 Gerd Moellmann <gerd@gnu.org>
7379
7380 * xdisp.c (handle_single_display_prop): Change conditional
7381 display property to `:when FORM . VALUE'.
7382
73831999-09-07 Richard Stallman <rms@gnu.org>
7384
7385 * fileio.c (Fwrite_region): Doc fix.
7386
73871999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7388
7389 * fileio.c (Qexcl): New variable.
7390 (report_file_error): Handle EEXIST specially.
7391 (Fwrite_region): Special handling for CONFIRM = `excl'.
7392 (syms_of_fileio): Initialize Qexcl.
7393
73941999-09-07 Gerd Moellmann <gerd@gnu.org>
7395
7396 * xfns.c (x_set_foreground_color): Call
7397 update_face_from_frame_parameter.
7398 (x_set_background_color): Ditto.
7399 (x_set_mouse_color): Ditto.
7400 (x_set_cursor_color): Ditto.
7401 (x_set_border_color): Ditto.
7402 (x_set_scroll_bar_foreground): Ditto.
7403 (x_set_scroll_bar_background): Ditto.
7404
7405 * xfaces.c (recompute_basic_faces): Clear face cache.
7406 (Finternal_set_lisp_face_attribute): Modify frame parameters
7407 if attributes of certain faces are changed.
7408 (update_face_from_frame_parameter): New.
7409
7410 * xfaces.c (realize_basic_faces): Realize new basic faces.
7411
7412 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7413 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7414
7415 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7416 (syms_of_xfaces): Intialize new symbols.
7417
7418 * fns.c (Fmakehash): Take one argument, test, make all the
7419 rest keyword arguments.
7420
7421 * window.c (Fset_window_margins): Make window the first argument.
7422 (set_window_buffer): Call Fset_window_margins with window as first
7423 argument.
7424
74251999-09-07 Gerd Moellmann <gerd@gnu.org>
7426
7427 * xfaces.c (Qfringe): Replaces Qmargin.
7428
74291999-09-07 Kenichi Handa <handa@etl.go.jp>
7430
7431 * charset.h: Lots of comments fixed.
7432 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7433 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7434
7435 * charset.c : Lots of comments fixed.
7436 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7437 (CHAR_COMPONENTS_VALID_P): Name changed from
7438 CHAR_COMPONENT_VALID_P. Caller changed.
7439
74401999-09-06 Richard Stallman <rms@gnu.org>
7441
7442 * insdel.c (syms_of_insdel): Define Lisp variable
7443 inhibit-modification-hooks.
7444
74451999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7446
7447 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7448 unexaix.c.
7449
7450 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7451
74521999-09-06 Dave Love <fx@gnu.org>
7453
7454 * unexaix.c: New version incorporating Michael Sperber's changes
7455 from XEmacs. Should solve problems on AIX 4.3.
7456
7457 * lread.c (Vbyte_boolean_vars): New variable.
7458 (defvar_bool, syms_of_lread): Use it.
7459
74601999-09-05 Richard Stallman <rms@gnu.org>
7461
7462 * minibuf.c (read_minibuf): Put all three properties on the
7463 same range, the whole prompt.
7464
74651999-09-05 Gerd Moellmann <gerd@gnu.org>
7466
7467 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7468 (Fplay_sound, syms_of_sound): Use it.
7469 (parse_sound): Allow float volume values in the range [0, 1].
7470 (Fplay_sound): Ditto.
7471
7472 * window.c (Fset_window_vscroll): Make window the first argument,
7473 amount to scroll the second. Take non-negative vscroll as
7474 argument.
7475 (Fwindow_vscroll): Return non-negative vscroll.
7476
7477 * xfns.c (Fx_show_tip): Improve documentation.
7478
74791999-09-05 Gerd Moellmann <gerd@gnu.org>
7480
7481 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7482 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7483 `top-line' and `top_line' to `header-line' and `header_line'.
7484 Likewise for similar spellings.
7485
74861999-09-05 Gerd Moellmann <gerd@gnu.org>
7487
7488 * xdisp.c (row_containing_pos): New.
7489 (try_window_id): Use it.
7490
7491 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7492 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7493 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7494 Likewise for upper-case etc.
7495
74961999-09-05 Gerd Moellmann <gerd@gnu.org>
7497
7498 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7499 Fix reference to renamed variable.
7500
75011999-09-04 Gerd Moellmann <gerd@gnu.org>
7502
7503 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7504 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7505 Qfixed_window_size.
7506 (syms_of_window): Ditto.
7507
7508 * fns.c (Fmakehash): Exchange optional test and size arguments.
7509
75101999-09-03 Gerd Moellmann <gerd@gnu.org>
7511
7512 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7513 under newly created scroll bar.
7514 (expose_window): If window is not yet fully initialized, do
7515 nothing. This can happen when toolkit scroll bars are used and a
7516 window is split. Reconfiguring the scroll bars will generate an
7517 expose for a newly created window.
7518
7519 * frame.h (struct frame): New member `gamma'.
7520
7521 * xfns.c: Include math.h. Add extern declaration for atof in case
7522 we don't see one.
7523 (Qscreen_gamma): New.
7524 (struct x_frame_parm_table): Add prototypes, add
7525 x_set_screen_gamma.
7526 (gamma_correct): New function.
7527 (defined_color): Call it.
7528 (x_set_screen_gamma): New.
7529 (x_set_title): Add parameter old_value.
7530 (RES_TYPE_FLOAT): New.
7531 (x_get_arg): Handle RES_TYPE_FLOAT.
7532 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7533 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7534 new prototype.
7535 (lookup_rgb_color): Ditto.
7536 (syms_of_xfns): Initialize Qscreen_gamma.
7537
7538 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7539 New. Allocate color for lwlib widgets.
7540 (x_alloc_nearest_color): Change parameter list include the
7541 frame on which to allocate colors. Gamma-correct colors.
7542 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7543 parameter list.
7544
7545 * xterm.h: Change protorype of x_alloc_nearest_color.
7546
75471999-09-03 Richard Stallman <rms@gnu.org>
7548
7549 * callproc.c: Delete the system-independent include of stdlib.h
7550 (leaving only the one in the WINDOWSNT conditional).
7551
75521999-09-03 Andrew Choi <choi@cs.hku.hk>
7553
7554 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7555 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7556
26901792
DL
7557 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7558 Window types and macros.
7559
7560 * frame.h: Do nothing if included a second time.
7561 (enum output_method): Add mac_output frame type.
7562 (union output_data): Add new alternative `mac'.
7563 (FRAME_MAC_P): New macro.
427ec082 7564
26901792
DL
7565 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7566 (syms_of_frame_1): Initialize Qmac.
7567 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7568 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7569 (Fmodify_frame_parameters) [macintosh]: Call
7570 mac_set_frame_parameter in macterm.c.
427ec082 7571
26901792
DL
7572 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7573 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7574
26901792
DL
7575 * make-docfiles.c: Correctly handle input files with Mac-style
7576 eol's.
427ec082 7577
26901792 7578 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7579
26901792
DL
7580 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7581 file of an X Window environment.
427ec082 7582
26901792
DL
7583 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7584 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7585
26901792
DL
7586 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7587 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7588 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7589 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7590 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7591 New functions, replacing POSIX features.
427ec082 7592
26901792
DL
7593 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7594 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7595 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7596
7597 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7598 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7599 (myPasswdDir, TempDirName, sys_siglist): New variables.
7600
7601 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7602 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7603 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7604 Define empty stubs so Emacs will link.
7605
76061999-09-03 Gerd Moellmann <gerd@gnu.org>
7607
7608 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7609
7610 * window.h: New member frozen_window_start_p.
7611
7612 * window.c (foreach_window, foreach_window_1): New.
7613 (freeze_window_start, freeze_window_starts): New.
7614 (make_window): Initialize frozen_window_start_p.
7615 (replace_window): Ditto.
7616 (Fset_window_point): Remove references to deleted variables.
7617 (Fset_window_start): Ditto.
7618
7619 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7620 resize_mini_initial_height): Removed.
7621 (syms_of_xdisp): Remove references to these variables.
7622 (resize_mini_window): Don't save window configuration, freeze
7623 window starts instead. Enlarge window until displaying an empty
7624 buffer, then shrink it. Make the function externally visible.
7625 (redisplay_window): Treat frozen window start like forced start,
7626 but accept point outside of the window.
7627
7628 * dispextern.h: Add function prototype for resize_mini_window.
7629
7630 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7631 reaching minibuf_level 0.
7632
7633 * lisp.h: Remove extern declarations for variables deleted from
7634 xdisp.c.
7635
7636 * dispnew.c (adjust_frame_glyphs): Remove reference to
7637 Vresize_mini_config.
7638
76391999-09-03 Gerd Moellmann <gerd@gnu.org>
7640
7641 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7642 to USE_TOOLKIT_SCROLL_BARS.
7643
7644 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7645 here.
7646 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7647 under newly created scroll bar. Put toolkit scroll bars in the
7648 middle of the area reserved for the scroll bar.
7649
76501999-09-03 Kenichi Handa <handa@etl.go.jp>
7651
7652 The following changes are for the new handling of mulitbyte
7653 sequence. Now, except for a composite character, no multibyte
7654 character in string/buffer has trailing garbage bytes. For
7655 instance, the length of string "\201\300\300" is now 2, the first
7656 character is Latin-1 A-grave, the second is raw \300.
7657
7658 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7659 are negative.
7660 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7661 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7662 (PARSE_COMPOSITE_SEQ): New macro.
7663 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7664 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7665 (CHAR_PRINTABLE_P): New macro.
7666 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7667 (STRING_CHAR_AND_LENGTH): Likewise.
7668 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7669 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7670 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7671
7672 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7673 (SPLIT_CHARACTER_SEQ): New macro.
7674 (SPLIT_MULTIBYTE_SEQ): New macro.
7675 (CHAR_COMPONENT_VALID_P): New macro.
7676 (non_ascii_char_to_string): Generate a multibyte sequence as far
7677 as possible.
7678 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7679 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7680 (split_non_ascii_string): Likewise.
7681 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7682 (char_printable_p): New function.
7683 (translate_char): Check character by NATNUMP instead of INTEGERP.
7684 (unibyte_char_to_multibyte): Call char_valid_p instead of
7685 VALID_MULTIBYTE_CHAR_P.
7686 (Fmake_char_internal): Check the arguments more rigidly.
7687 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7688 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7689 (Fmultibyte_char_to_unibyte): Check the validity of character by
7690 CHAR_VALID_P.
7691 (chars_in_text): Call multibyte_chars_in_text.
7692 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7693 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7694 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7695
7696 * data.c (Faset): Adjust the way to check byte-combining
7697 possibility for the new handling of multibyte sequence.
7698
7699 * editfns.c (Fsubst_char_in_region): Likewise.
7700
7701 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7702 (string_char_to_byte): Likewise.
7703 (string_byte_to_char): Likewise.
7704
7705 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7706 macro STRING_CHAR_AND_LENGTH. Caller changed.
7707
7708 * insdel.c (count_combining_composition): New function.
7709 (count_combining_before): Adjust the way to check byte-combining
7710 possibility for the new handling of multibyte sequence. Call
7711 count_combining_composition for a composite character.
7712 (count_combining_after): Likewise.
7713
7714 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7715 (print): Likewise.
7716
7717 * dispextern.h (struct it): Change the size of the member
7718 `ctl_chars'.
7719
7720 * xdisp.c (get_next_display_element): Display incomplete multibyte
7721 sequence (e.g. \222\300) by octal form.
7722
77231999-09-02 Gerd Moellmann <gerd@gnu.org>
7724
7725 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7726
7727 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7728 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7729
77301999-09-02 Gerd Moellmann <gerd@gnu.org>
7731
7732 * buffer.c (set_buffer_internal): Never set
7733 windows_or_buffers_changed.
7734
7735 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7736 if we have displayed to the bottom of the window.
7737
7738 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7739 in both directions. Extend documentation.
7740
77411999-09-01 Gerd Moellmann <gerd@gnu.org>
7742
7743 * minibuf.c (read_minibuf): Flush display after setting cursor to
7744 column 0.
7745
77461999-08-31 Gerd Moellmann <gerd@gnu.org>
7747
7748 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7749 already defined. This avoids a warning from buffer.c.
7750
77511999-08-30 Gerd Moellmann <gerd@gnu.org>
7752
7753 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7754 of both margins.
7755 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7756 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7757 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7758
7759 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7760 once instead of twice.
7761 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7762
7763 * xterm.c: Remove unused bitmaps.
7764 (continued_bits, continuation_bits, overlay_bits): Change images.
7765 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7766 instead of FRAME_X_FLAGS_AREA_WIDTH.
7767 (x_after_update_window_line): Ditto.
7768 (x_draw_bitmap): Likewise.
7769 (x_draw_row_bitmaps): Likewise.
7770 (x_draw_glyph_string_box): Likewise.
7771 (x_draw_glyphs): Likewise.
7772 (x_scroll_run): Likewise.
7773 (expose_window_tree): Likewise.
7774 (note_mode_line_highlight): Likewise.
7775 (XTset_vertical_scroll_bar): Likewise.
7776 (x_clip_to_row): Likewise.
7777 (x_set_window_size): Likewise.
7778
7779 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7780 of 2 * that value.
7781
7782 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7783 2 * that value.
7784 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7785 FRAME_FLAGS_AREA_WIDTH.
7786
7787 * window.c (coordinates_in_window): Use
7788 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7789 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7790 instead of twice.
7791
427ec082 7792 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7793 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7794 (EmacsFrameSetCharSize): Ditto.
7795
7796 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7797 instead of FRAME_FLAGS_AREA_WIDTH.
7798
7799 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7800 FRAME_FLAGS_AREA_COLS once.
7801 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7802 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7803
78041999-08-30 Gerd Moellmann <gerd@gnu.org>
7805
7806 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7807 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7808
78091999-08-30 Gerd Moellmann <gerd@gnu.org>
7810
7811 * fns.c (QCweakness): Replaces QCweak.
7812 (Fmake_hash_table): Ditto.
7813 (Fmakehash): Ditto.
7814 (syms_of_fns): Ditto.
7815
78161999-08-29 Richard Stallman <rms@gnu.org>
7817
7818 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7819
7820 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7821
7822 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7823 Add support for nested comments.
7824
d7d0dac0
SM
7825 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7826 Consolidate the forward comment code into the new `forw_comment'.
7827 (forw_comment): New subroutine. Added support for nested comments.
7828 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7829 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7830
78311999-08-28 Ken Raeburn <raeburn@gnu.org>
7832
7833 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7834 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7835 defined, to help detect code that uses knowledge of the Lisp
7836 internals that it shouldn't have.
7837 (XFLOAT_DATA): New macro.
7838
78391999-08-25 Gerd Moellmann <gerd@gnu.org>
7840
7841 * syntax.c (Fforward_word): If in a mini-buffer and moving
7842 backwards, stop in front of the prompt to prevent accidentially
7843 moving into the read-only prompt.
7844
7845 * window.c (Frecenter): Clear frame if called with nil or no arg.
7846
7847 * xdisp.c (resize_mini_window): Don't resize if
7848 Vmax_mini_window_height is nil. Otherwise, use a default if
7849 Vmax_mini_window_height is not ot a number.
7850 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7851
78521999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7853
7854 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7855 * m/iris4d.h: Use unexelf for IRIX 5.*.
7856 * m/iris5d.h: Use unexelf for IRIX 6.*.
7857 * unexsgi.c: Deleted.
7858
7859 * unexelf.c: Auto-detect .sbss section.
7860 (round_up): Make it static.
7861 (unexec): Declare alignment as Elf Word. Skip ``Program
7862 segment above .bss'' test on MIPS without .sbss.
7863 Copy sections .got and .sdata1 sections. Adjust offsets in
7864 sections .sdata, .lit4, .lit8, .got and .sdata1.
7865
78661999-08-25 Gerd Moellmann <gerd@gnu.org>
7867
7868 * xdisp.c (try_window_id): Remove typo.
7869
78701999-08-24 Gerd Moellmann <gerd@gnu.org>
7871
7872 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7873 unchanged text at the bottom when computing the cursor position.
7874 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7875 set.
7876
7877 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7878
78791999-08-24 Gerd Moellmann <gerd@gnu.org>
7880
7881 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7882 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7883 (syms_of_xfaces): Ditto.
7884
7885 * window.c (Fset_window_point): Reset Vresize_mini_config.
7886 (Fset_window_start): Ditto.
7887 (set_window_buffer): Ditto.
7888
7889 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7890
7891 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7892 before calling try_window.
7893 (echo_area_display): If height has changed, update other windows.
7894 (resize_mini_frame, resize_mini_initial_height): New.
7895 (resize_mini_window): Save/restore window configuration
7896 differently.
7897
427ec082 7898 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7899 resize_mini_initial_height): Add extern declarations.
7900
7901 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7902 CANON_X_UNIT.
7903
7904 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7905 being redefined in jconfig.h.
7906
79071999-08-23 Ken'ichi Handa <handa@gnu.org>
7908
7909 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7910
79111999-08-22 Gerd Moellmann <gerd@gnu.org>
7912
7913 * alloc.c (mark_glyph_matrix): Mark strings only.
7914
7915 * xdisp.c (redisplay_internal): Clear garbaged frames after
7916 resizing mini-window.
7917
79181999-08-22 Gerd Moellmann <gerd@gnu.org>
7919
7920 * xdisp.c (unwind_with_echo_area_buffer): Use
7921 set_buffer_internal_1 instead of set_buffer_internal.
7922 (with_echo_area_buffer): Ditto.
7923
7924 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7925 only if buffer is displayed somewhere.
7926
7927 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7928
7929 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7930 (gap_right): Ditto.
7931 (modify_region): Ditto.
7932
7933 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7934
7935 * xdisp.c (Vresize_mini_config): New.
7936 (resize_mini_window): Use it to save restore original window
7937 configuration
7938 (syms_of_xdisp): Initialize it.
7939
7940 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7941
7942 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7943
7944 * xdisp.c (reconsider_clip_changes): New.
7945 (redisplay_internal, redisplay_window): Call it.
7946 (mark_window_display_accurate, redisplay_internal): Set current
7947 matrix' buffer, begv, zv.
7948
7949 * window.c (Fset_window_hscroll): Set
7950 prevent_redisplay_optimizations_p instead of clip_changed.
7951 (Fset_window_hscroll): Ditto.
7952 (temp_output_buffer_show): Ditto.
7953 (Fset_window_vscroll): Ditto.
7954
7955 * buffer.c (reset_buffer): Set clip_changed to 0 and
7956 prevent_redisplay_optimizations_p to 1.
7957 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7958
7959 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7960 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7961 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7962 END_UNCHANGED): New.
7963 (struct buffer_text): Add beg_unchanged, end_unchanged,
7964 unchanged_modified, overlay_unchanged_modified.
7965
7966 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7967 overlay_unchanged_modified): Removed.
7968 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7969 (unwind_with_echo_area_buffer): Don't restore them.
7970 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7971 (text_outside_line_unchanged_p, redisplay_internal,
7972 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7973 (redisplay_window): Let try_window_id be called if more than one
7974 window is displayed. Use/set buffer-specific beg/end_unchanged.
7975 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7976 try_window_id):
7977 Use buffer-specific beg/end_unchanged.
7978
7979 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7980 overlay_unchanged_modified): Remove extern declarations.
7981
7982 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7983 buffer.
7984
7985 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7986 (gap_right): Ditto.
7987 (adjust_after_replace): Likewise.
7988 (replace_range, del_range_2, modify_region): Likewise.
7989
7990 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7991 and unchanged_modified per buffer.
7992
7993 * coding.c (code_convert_region): Compute beg/end_unchanged per
7994 buffer.
7995
7996 * buffer.c (modify_overlay): Compute beg/end_unchanged
7997 per buffer.
427ec082 7998 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7999 structure.
8000
80011999-08-22 Gerd Moellmann <gerd@gnu.org>
8002
8003 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
8004
8005 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
8006 (Qkey_value_weak): Removed.
8007 (make_hash_table): Use nil, `key', `value', t for weakness.
8008 (Fmake_hash_table): Ditto.
8009 (copy_hash_table): New.
8010 (Fcopy_hash_table): New.
8011
80121999-08-22 Gerd Moellmann <gerd@gnu.org>
8013
8014 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 8015 new parameter.
26901792
DL
8016
80171999-08-21 Gerd Moellmann <gerd@gnu.org>
8018
8019 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
8020 well.
427ec082 8021 (redisplay_internal): Resize mini-window only if text might
26901792
DL
8022 have changed.
8023 (display_echo_area): Reset displayed echo_area_buffer to nil
8024 at the end if we're displaying a nil message.
8025
80261999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 8027
26901792
DL
8028 * fns.c (hash_lookup): Test with EQ before calling key comparion
8029 function.
8030 (hash_remove): Ditto.
8031 (cmpfn_eq): Removed.
8032 (cmpfn_eql): Don't test with EQ.
8033 (cmpfn_equal): Ditto.
8034 (make_hash_table): Set comparison function for `eq' to null.
8035
8036 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
8037 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
8038
8039 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
8040
8041 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
8042 xterm.c: Call change_frame_size and do_pending_window_change with
8043 new parameter.
8044
8045 * dispnew.c (do_pending_window_change): Add parameter `safe'.
8046 (change_frame_size): Ditto.
8047 (change_frame_size_1): Ditto. Deley size changes if redisplaying
8048 and not called from a safe place.
8049 (window_change_signal): Call change_frame_size with new parameter.
8050
8051 * dispextern.h: Change prototypes for do_pending_window_change
8052 and change_frame_size.
8053
8054 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 8055 window's buffers equals current_buffer; this is not the
26901792
DL
8056 case during echo area display.
8057
80581999-08-21 Gerd Moellmann <gerd@gnu.org>
8059
8060 * xdisp.c, minibuf.c: Remove conditional compilation on
8061 NO_PROMPT_IN_BUFFER.
8062
8063 * minibuf.c (Fminibuffer_prompt_end): New.
8064 (syms_of_minibuf): Defsubr it. Remove
8065 minibuffer-prompt-in-buffer.
8066 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
8067 Extend documentation.
8068
8069 * xdisp.c (get_next_display_element): Display \r as ^M.
8070
8071 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
8072 under scroll bar widget.
8073
80741999-08-21 Gerd Moellmann <gerd@gnu.org>
8075
8076 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8077 anywhere.
8078 (unwind_redisplay): Return nil.
8079 (clear_garbaged_frames): New.
8080 (redisplay_internal): Use it.
8081 (echo_area_display): Ditto.
8082 (resize_mini_window): Mew.
8083 (display_echo_area_1): Use it to resize echo area window.
8084 (redisplay_internal): Use it to resize active mini-window.
8085
8086 * dispextern.h, lisp.h: Add function prototypes.
8087
427ec082 8088 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8089 cursor_in_echo_area case only for a mini-window showing
8090 a message. Don't let cursor end up after the end of a row.
8091
8092 * xdisp.c (echo_area_glyphs, echo_area_message,
8093 echo_area_glyphs_length, previous_echo_glyphs,
8094 previous_echo_area_message, previous_echo_area_glyphs_length):
8095 Removed.
8096 (Vmessage_stack, echo_area_buffer, echo_buffer,
8097 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8098 (message2_nolog): Use set_message and clear_message.
8099 (message3): Rename parameter len to nbytes to make clear what
8100 it is.
8101 (message3_nolog): Ditto. Use set_message and clear_message.
8102 (update_echo_area): Rewritten.
8103 (with_echo_area_buffer): New.
8104 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8105 (setup_echo_area_for_printing): New.
8106 (display_echo_area, display_echo_area_1): New.
8107
8108 (current_message, current_message_1): New.
427ec082 8109 (push_message, restore_message, pop_message,
26901792
DL
8110 check_message_stack): New.
8111 (truncate_echo_area): Rewritten.
8112 (truncate_message_1): New.
8113 (set_message, set_message_1, clear_message): New.
8114 (echo_area_display): Rewritten.
8115 (redisplay_internal): Check for needed echo area update
8116 differently.
8117 (redisplay_preserve_echo_area): Rewritten.
427ec082 8118 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8119 message differently.
8120 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8121 Remove initialzation of removed variables.
8122 (init_xdisp): Remove references to removed variables.
8123
8124 * dispnew.c (adjust_frame_message_buffer): Removed references
8125 to echo_area_glyphs and previous_echo_glyphs.
8126 (direct_output_for_insert): Check for mini-window displaying
8127 echo area message differently.
8128 (update_frame): Likewise.
8129 (set_window_cursor_after_update): Likewise. In echo area,
8130 don't try to set cursor on rows that aren't enabled.
8131
8132 * print.c: Remove conditional compilation on `standalone'.
8133 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8134 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8135 longer used in that way.
8136 (PRINTDECLARE): Add multibyte.
8137 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8138 (printbufidx): Removed.
8139 (printchar, strout): Rewritten.
8140
8141 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8142 a struct kboard.
8143 (echo_kboard): New.
8144 (echo_now): Set echo_kboard to the current kboard.
8145 (cancel_echoing): Set echo_kboard to null.
8146 (cmd_error_internal): Use clear_message, remove references
8147 to echo_area_glyphs and echo_area_message.
8148 (command_loop_1): Check for echo area messages differently.
8149 (read_char): Likewise.
8150 (record_menu_key): Use clear_message.
8151 (Fexecute_extended_command): Check for echo area messages
8152 differently. Use push_message, restore_message, pop_message.
8153
8154 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8155 pop_message.
8156
8157 * emacs.c (shut_down_emacs): Call check_message_stack.
8158
8159 * lisp.h: Add function prototypes and extern declarations for
8160 new functions and variables.
8161
8162 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8163 pop_message.
8164
427ec082 8165 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8166 setting echo_area_glyphs.
8167 (Fminibuffer_completion_help): Ditto.
8168
8169 * editfns.c (Fcurrent_message): Rewritten.
8170
8171 * frame.c, window.h: Remove references to echo_area_glyphs
8172 and previous_echo_glyphs.
8173
81741999-08-21 Dave Love <fx@gnu.org>
8175
8176 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8177 * aix4-1.h: Likewise.
8178
8179 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8180
81811999-08-20 Gerd Moellmann <gerd@gnu.org>
8182
8183 * xfns.c: Remove tiff34 prefix from include.
8184
81851999-08-20 Dave Love <fx@gnu.org>
8186
8187 * cm.c: Revert previous change.
8188
81891999-08-19 Gerd Moellmann <gerd@gnu.org>
8190
8191 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8192 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8193
81941999-08-18 Dave Love <fx@gnu.org>
8195
8196 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8197 stdlib.h.
8198
8199 * doprnt.c: Use stdlib.h, unistd.h.
8200
8201 * config.in: Add HAVE_TERMCAP_H.
8202
8203 * cm.c: Use termcap.h.
8204
82051999-08-18 Gerd Moellmann <gerd@gnu.org>
8206
8207 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8208 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8209 cannot be created we will already have crashed earlier. Call
8210 lw_set_main_areas with a null menu-bar widget, so that we have
8211 a reasonable default.
8212 (Fx_create_frame): Rearranged so that Lisp errors during frame
8213 initialization cause less damage. Initialize menu bar widget
8214 here.
8215
82161999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8217
26901792
DL
8218 * dispnew.c (update_frame_line): Fix previous change. If writing
8219 whole line clear to end of frame.
8220
82211999-08-17 Gerd Moellmann <gerd@gnu.org>
8222
8223 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8224 and `right-bitmap-area' if position is in the bitmap areas. This
8225 avoids an error when clicking on the bitmap areas. Instead, they
8226 are currently treated like clicks inside the window.
8227 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8228 (Qleft_bitmap_area, Qright_bitmap_area): New.
8229 (syms_of_window): Initialize new symbols.
8230
8231 * dispnew.c (update_frame_line): If writing whole line,
8232 don't write trailing spaces unless we must.
8233
8234 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8235 (redisplay_internal): Register unwind_redisplay with
8236 register_unwind_protect.
8237 (try_window_reusing_current_matrix): If new start > old start,
8238 give up if start pos of first reusable row is not equal to new
8239 start.
8240
8241 * eval.c (Fsignal): Don't reset redisplaying_p here.
8242
8243 * xterm.c (expose_area): If row extends face to end of line,
8244 write the whole line.
8245
82461999-08-16 Gerd Moellmann <gerd@gnu.org>
8247
8248 * dispextern.h (struct it): Remove member
8249 show_trailing_whitespace_p.
8250
8251 * dispnew.c (direct_output_for_insert): Use
8252 Vshow_trailing_whitespace instead of former iterator member
8253 show_trailing_whitespace_p.
8254 (direct_output_forward_char): Don't do it if hightlighting
8255 trailing whitespace.
8256
8257 * xdisp.c (Qshow_trailing_whitespace): Removed.
8258 (Vshow_trailing_whitespace): Added.
8259 (init_iterator): Remove initialization code for
8260 show_trailing_whitespace_p.
8261 (redisplay_internal): Don't try cursor movement in this_line
8262 if showing trailing whitespace.
8263 (redisplay_window): Likewise for cursor movement in current
8264 matrix and try_window_id.
8265 (try_window_reusing_current_matrix): Likewise.
8266 (trailing_whitespace_p): Return 0 if trailing whitespace is
8267 in front of point.
8268 (display_line): Use Vshow_trailing_whitespace instead of
8269 former iterator member show_trailing_whitespace_p.
8270 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8271
82721999-08-16 Gerd Moellmann <gerd@gnu.org>
8273
8274 * window.c (Fpos_visible_in_window_p): Rewritten.
8275
8276 * xfaces.c (add_to_log): Renamed from display_message.
8277 Don't display messages in echo area.
8278
8279 * xterm.c (x_draw_glyph_string_box): Use the background width
8280 of the glyph string for the width of the box.
8281
82821999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8283
8284 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8285
82861999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8287
8288 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8289 background first, and then set other parameters that might
8290 depend upon their new values.
8291
82921999-08-15 Gerd Moellmann <gerd@gnu.org>
8293
8294 * xfaces.c (Vfont_list_limit): New.
8295 (syms_of_xfaces): Make it a user-variable.
8296 (DEFAULT_FONT_LIST_LIMIT): New.
8297 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8298 maximally that number of fonts, otherwise use
8299 DEFAULT_FONT_LIST_LIMIT.
427ec082 8300 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8301 until we have all fonts.
8302 (Fxfont_list): Additionally return the full names of fonts and
8303 their registry and encoding.
8304
427ec082 8305 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8306 Simplify clearing "under" scroll bar.
8307
8308 * window.c (Qfixed_window_size): New.
8309 (syms_of_window): Initialiaze it.
8310 (check_all_windows): Add return type void.
8311 (window_fixed_size_p): New. Return non-zero if window
8312 is fixed-size.
8313 (window_min_size_1): New.
8314 (window_min_size): Handle fixed-size windows.
8315 (size_window): New. Rewritten combination of set_window_height and
8316 set_window_width that handles fixed-size windows.
8317 (set_window_height): Call it.
8318 (set_window_width): Call it.
8319 (Fsplit_window): Give an error on attempt to split a fixed-size
8320 window.
8321 (change_window_height): Partly rewritten to handle fixed-size
8322 windows.
8323
83241999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8325
8326 * process.c (Fopen_network_stream): Fix previous change.
8327
83281999-08-13 Karl Heuer <kwzh@gnu.org>
8329
8330 * xdisp.c (line_number_display_limit_width): New var.
8331 (decode_mode_spec): Use it instead of hardcoded value.
8332 (syms_of_xdisp): Defvar it.
8333
83341999-08-13 Richard M. Stallman <rms@gnu.org>
8335
8336 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8337 (run_hook_with_args): Likewise.
8338
8339 * window.h (struct window): New field too_small_ok.
8340
427ec082 8341 * window.c (set_window_height, set_window_width):
26901792
DL
8342 If window starts out "too small", set its too_small_ok flag.
8343 If window's too_small_ok flag is set, don't delete it
8344 unless it is so small it would cause a crash.
8345
83461999-08-13 Gerd Moellmann <gerd@gnu.org>
8347
8348 * window.c (MINSIZE): Removed.
8349 (window_min_size): New.
8350 (set_window_height): Use window_min_size.
8351 (change_window_height): Ditto.
8352
83531999-08-12 Gerd Moellmann <gerd@gnu.org>
8354
8355 * indent.c (vmotion): Don't add in mini-buffer prompt width
8356 if prompts are inserted into mini-buffer.
8357
83581999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8359
8360 * config.in: Add HAVE_GETADDRINFO.
8361 * process.c (Fopen_network_stream): Use getaddrinfo.
8362
83631999-08-11 Gerd Moellmann <gerd@gnu.org>
8364
8365 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8366 glyphs to -1.
8367
8368 * xdisp.c (face_before_or_after_it_pos): If position after
8369 or before iterator's current position in the buffer is out
8370 of bounds, return the iterator's original face id.
8371
8372 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8373 just swap glyphs pointers between current and desired row.
8374 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8375 desired matrix method string to current matrix.
8376
83771999-08-11 Kenichi Handa <handa@etl.go.jp>
8378
8379 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8380
8381 * lread.c (read_escape): For Control modifier, pay attention to
8382 multibyte character.
8383 (read1): Likewise. Singal error or a multibyte character which
8384 has a modifer bit. Check validity of Shift modifer.
8385
8386 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8387 the same as Lisp reader.
8388
83891999-08-10 Richard M. Stallman <rms@gnu.org>
8390
8391 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8392
83931999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8394
8395 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8396
83971999-08-10 Eli Zaretskii <eliz@gnu.org>
8398
8399 * msdos.c (IT_set_face): Abort if the default face is not realized
8400 and cached.
8401 (IT_write_glyphs): Reset the screen face to the default face
8402 before writing glyphs.
8403
8404 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8405 colors from the frame here.
8406 (realize_tty_face) [MSDOS]: Do it here. Update the face
8407 attributes with the actual name of the color taken from the
8408 frame.
8409
8410 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8411 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8412
8413 * frame.c (Fframe_parameters): Swap foreground and background
8414 colors returned in frame parameters if the frame has reverse in
8415 its parameter alist.
8416 (Fmake_terminal_frame): Make a unique copy of face_alist for
8417 each frame.
8418
84191999-08-07 Richard Stallman <rms@gnu.org>
8420
8421 * buffer.c (Fprevious_overlay_change): Just return
8422 the answer obtained from overlays_at.
8423
8424 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8425 Use XpmCloseness and attrs.closeness instead.
8426
84271999-08-06 Richard Stallman <rms@gnu.org>
8428
8429 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8430
84311999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8432
427ec082 8433 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8434 Ffile_attributes_lessp): New functions.
8435 (Fdirectory_files): Use directory_files_internal.
8436 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8437 Ffile_attributes_lessp.
8438
8439 * w32.c (stat): Check for directory ending in separator when
8440 doing readdir fast path.
8441
8442 * w32fns.c (x_set_icon_type): Support setting frame icons.
8443 * w32term.c (x_bitmap_icon): New function.
8444 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8445
26901792
DL
84461999-08-06 Gerd Moellmann <gerd@gnu.org>
8447
8448 * xdisp.c (set_iterator_to_next): After delivering a character
8449 from a display vector, restore face and charset to what they were
8450 before the display vector was processed.
8451
84521999-08-06 Gerd Moellmann <gerd@gnu.org>
8453
8454 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8455 on_newline_p.
8456 (set_iterator_to_next): After delivering last char
427ec082 8457 from display vector, reseat on next visible line start if
26901792
DL
8458 dpvec_char_len < 0.
8459 (next_element_from_buffer): Set dpvec_char_len to -1 for
8460 selective display.
8461
84621999-08-06 Gerd Moellmann <gerd@gnu.org>
8463
8464 * xdisp.c (compute_line_metrics): If first line's physical ascent
8465 is larger than its logical ascent, use the physical ascent, and
8466 make the row taller. Set row's overlapping_p flag.
8467
8468 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8469 (direct_output_for_insert): Ditto.
8470
8471 * dispextern.h (struct glyph_row): Add overlapping_p.
8472
8473 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8474
8475 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8476 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8477
8478 * dispnew.c (direct_output_for_insert): Don't use this method if
8479 row is overlapped by others.
8480 (update_text_area): Write full line if current line is overlapped.
8481 (redraw_overlapped_rows): New.
8482 (update_window): Call it.
8483 (redraw_overlapping_rows): New.
8484 (update_window): Call it.
8485 (scrolling_window): Make sure overlapped_p flag in current rows is
8486 unchanged.
8487 (row_equal_p): Take rows overlapped_p flag into account.
8488
8489 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8490
8491 * xterm.c (x_fix_overlapping_area): New.
8492 (x_redisplay_interface): Add x_fix_overlapping_area.
8493
8494 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8495
84961999-08-06 Gerd Moellmann <gerd@gnu.org>
8497
8498 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8499 (struct glyph_string): Add member for_overlaps_p.
8500 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8501 of overlapping rows, clip to window bottom.
8502 (x_fill_glyph_string): Add parameter overlaps_p.
8503 (x_fill_composite_glyph_string): Ditto.
8504 (BUILD_GLYPH_STRINGS): Ditto.
8505 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8506 (x_draw_glyph_string): Don't draw anything but the foreground
8507 if glyph string draws row overlaps.
8508
8509 * dispnew.c (direct_output_for_insert): Don't use this
8510 optimization for rows that overlap others.
8511 (update_window_line): Return non-zero if display has changed.
8512 (update_text_area): Ditto.
8513 (update_window): Record if display has been changed.
8514
8515 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8516
8517 * dispextern.h (struct redisplay_interface): Add
8518 fix_overlapping_area.
8519
8520 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8521
8522 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8523
8524 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8525 ascent and descent.
8526 (x_produce_stretch_glyph): Ditto.
8527 (x_produce_glyphs): Ditto.
8528
8529 * xdisp.c (init_iterator): Reset physical line height info
8530 after producing special glyphs.
8531 (display_toolbar_line): Set physical line height info.
8532 (compute_line_metrics): Ditto.
8533 (display_line): Ditto.
8534 (display_string): Ditto.
8535
8536 * term.c (produce_glyphs): Set iterator's physical height
8537 information.
8538
8539 * dispnew.c (blank_row): Compute glyph row's physical height.
8540 (row_equal_p): Take physical row heights into account.
8541 (direct_output_for_insert): Ditto.
8542 (update_text_area): Ditto.
8543
8544 * dispextern.h (struct glyph_row): Add phys_ascent and
8545 phys_height.
8546 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8547 max_phys_descent.
8548
85491999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8550
8551 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8552 Fswitch_to_buffer.
8553 (no_switch_buffer): New function.
8554 (Fswitch_to_buffer): Call them. Don't get confused
8555 by "same-window" buffers in a dedicated frame.
8556
8557 * window.c (display-buffer): Don't get confused
8558 by "same-window" buffers in a dedicated frame.
8559
85601999-08-04 Andreas Schwab <schwab@gnu.org>
8561
8562 * insdel.c (insert_from_string_1): Check gap size against number
8563 of outgoing bytes, not incoming bytes.
8564
85651999-08-03 Tom Breton <tob@world.std.com>
8566
8567 * lread.c (read1): Added circular reading code to #N=.
8568 (SUBSTITUTE): New macro.
8569 (seen_list): New variable.
8570 (substitute_object_in_subtree): New function.
8571 (substitute_object_recurse): New function.
8572 (substitute_in_interval): New function.
8573
85741999-08-02 Eli Zaretskii <eliz@gnu.org>
8575
8576 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8577
8578 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8579 noninteractive, for termcap frames as well.
8580
8581 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8582 frames.
8583
85841999-08-01 Richard Stallman <rms@gnu.org>
8585
8586 * fns.c (internal_equal): Correct overlay comparison.
8587
83c8f461 85881999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8589
427ec082 8590 * xfns.c (x_set_internal_border_width):
26901792
DL
8591 Call do_pending_window_change. Don't block input, don't call XFlush.
8592 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8593 (x_set_scroll_bar_width, x_set_font): Likewise.
8594
8595 * frame.c (Fset_frame_height): Call do_pending_window_change.
8596 (Fset_frame_width, Fset_frame_size): Likewise.
8597
8598 * xterm.c (x_set_window_size): When calling change_frame_size,
8599 specify 1 for DELAY.
8600
8601 * widget.c (EmacsFrameSetCharSize): Don't call
8602 do_pending_window_change here.
8603
86041999-07-30 Dave Love <fx@gnu.org>
8605
8606 * config.in: Add HAVE_STDLIB_H.
8607
86081999-07-30 Richard M. Stallman <rms@gnu.org>
8609
8610 * process.c (create_process): Detect failure of `pipe'.
8611
86121999-07-30 Keisuke Nishida <kei@psn.net>
8613
8614 * alloc.c (allocate_vectorlike): Add missing increment.
8615
8616 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8617
8618 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8619 before calling indirect_function.
8620
86211999-07-30 Eli Zaretskii <eliz@gnu.org>
8622
8623 * dispextern.h (load_color, lookup_derived_face): Declare
8624 prototypes.
8625
8626 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8627 it will be done later.
8628
8629 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8630 init_frame_faces if non-interactive.
8631 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8632 array with a call to msdos_stdcolor_name. The font name is now
8633 "ms-dos", consistent with realize_tty_face.
8634
8635 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8636 MSDOS frame.
8637
8638 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8639 x_set_toolbar_lines.
8640
8641 * xfaces.c (load_color): Remove static from definition and remove
8642 prototype.
8643 [MSDOS]: Add a DOS-specific version of load_color.
8644 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8645 (lookup_derived_face): New function.
8646 (realize_default_face): Support MSDOS frames.
8647 [MSDOS]: If fore/background colors are unspecified, inherit them
8648 from the frame.
8649 (realize_face): Support MSDOS frames.
8650 (realize_tty_face): Support MSDOS frames.
8651 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8652 load_color to try to find a suitable approximation. If the face
8653 is inverse-video, swap the foreground and background colors.
8654
8655 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8656 functions.
8657
8658 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8659
8660 * msdos.h: Remove redundant declarations (most of them are now in
8661 dispextern.h).
8662
8663 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8664 Use default frame colors if the face doesn't specify them; invert
8665 the colors if highlight is ON.
8666 (IT_write_glyphs): Rewritten for the new redisplay engine.
8667 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8668 how the hook is called by term.c.
8669 (IT_copy_glyphs): New function, copies an area of the display in
8670 video RAM.
8671 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8672 redisplay now calls it even if char_ins_del_ok is zero.
8673 (IT_set_frame_parameters): Prototype changed. Calls the new
8674 load_color. Puts the new fore/background colors into the default
8675 face on current frame.
8676 (IT_menu_display): Rewritten to handle the new struct glyph
8677 instead of a char array.
8678 (XMenuActivate): Call lookup_derived_face to create and use
8679 special faces for the pop-up and drop-down menus.
8680
86811999-07-29 Gerd Moellmann <gerd@gnu.org>
8682
8683 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8684 XawScrollbarSetThumb if thumb parameters haven't changed because
8685 that function apparently isn't optimized for this case.
8686
86871999-07-29 Eli Zaretskii <eliz@gnu.org>
8688
8689 * msdos.c (getdefdir): Don't return failure indication when
8690 _fixpath sets errno to ENOSYS.
8691
86921999-07-28 Gerd Moellmann <gerd@gnu.org>
8693
8694 * xdisp.c (string_char_and_length): New. Use it everywhere
8695 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8696
86971999-07-28 Kenichi Handa <handa@etl.go.jp>
8698
8699 * fns.c (count_combining): New function.
8700 (struct textprop_rec): New structure.
8701 (concat): Copy text properties correctly when byte combining
8702 occurs.
8703
87041999-07-28 Gerd Moellmann <gerd@gnu.org>
8705
8706 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8707 if display is mono.
8708 (x_draw_row_bitmaps): If face has stipple, don't switch
8709 to foreground color for clearing areas, and set the fill style.
8710
8711 * xfaces.c (load_face_colors): Load background color if setting
8712 stipple, too.
427ec082 8713 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8714 FillStippled.
8715
87161999-07-26 Ken'ichi Handa <handa@gnu.org>
8717
8718 * xterm.c (x_find_ccl_program): Add casting.
8719
8720 * w32fns.c (w32_find_ccl_program): Add casting.
8721
87221999-07-27 Gerd Moellmann <gerd@gnu.org>
8723
8724 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8725
8726 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8727 because this will try to access a nonexisting widget.
8728
87291999-07-26 Markus Rost <rost@gnu.org>
8730
427ec082 8731 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8732 (Fputhash): Ditto.
8733 (Fremhash): Ditto.
8734
87351999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8736
26901792
DL
8737 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8738 value to frame width and height.
8739
8740 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8741 into account for full-width windows. Don't add scroll bar width
8742 to width of clip rect.
8743 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8744 (x_set_glyph_string_background_width): Add 1 to background width.
8745 (x_draw_glyphs): Take internal border into account for full-width
8746 lines.
8747
87481999-07-26 Richard M. Stallman <rms@gnu.org>
8749
8750 * xfns.c (x_set_mouse_color): Always unload the old color.
8751 Don't allow nil as color value.
427ec082 8752 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8753 Always unload the old color.
8754
8755 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8756
87571999-07-26 Karl Heuer <kwzh@gnu.org>
8758
8759 * fns.c (Fy_or_n_p): Doc fix.
8760
87611999-07-26 Kenichi Handa <handa@etl.go.jp>
8762
8763 * ccl.h (setup_ccl_program): The type is changed to `int'.
8764
8765 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8766 stored in the following CCL code. Adjusted for the change of
8767 Vccl_program_table.
8768 (resolve_symbol_ccl_program): Adjusted for the new style of
8769 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8770 is resolving failed.
8771 (ccl_get_compiled_code): New function.
8772 (setup_ccl_program): Function type changed from `void' to `int'.
8773 Resolve symbols in CCL_PROG.
8774 (Fccl_program_p): New function.
8775 (Fccl_execute): Get compiled CCL code by just calling
8776 setup_ccl_program.
8777 (Fccl_execute_on_string): Likewise.
8778 (Fregister_ccl_program): Adjusted for the change of
8779 Vccl_program_table.
8780
8781 * coding.c (setup_coding_system): Get compiled CCL code by just
8782 calling setup_ccl_program.
8783
8784 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8785 calling setup_ccl_program.
8786
8787 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8788 calling setup_ccl_program.
8789
87901999-07-23 Gerd Moellmann <gerd@gnu.org>
8791
8792 * xfaces.c (frame_update_line_height): Just use the height of the
8793 frame's fontset or font, instead of taking face fonts into
8794 account.
8795
8796 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8797
87981999-07-23 Richard M. Stallman <rms@gnu.org>
8799
8800 * window.c (Fsplit_window): For default size, round up for left window.
8801
88021999-07-21 Joe Ramey <ramey@ti.com>
8803
d7d0dac0 8804 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
8805 has returned -1 (lockfile exists but is not a symlink?).
8806
88071999-07-20 Gerd Moellmann <gerd@gnu.org>
8808
8809 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8810 because of a change in cursor_gc made in 20.4.
8811
88121999-07-19 Gerd Moellmann <gerd@gnu.org>
8813
8814 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8815 for YNegative, if using X toolkit.
8816
427ec082 8817 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8818 from positions returned.
8819
88201999-07-17 Gerd Moellmann <gerd@gnu.org>
8821
8822 * xrdb.c (x_load_resources): Set double-click time defaults
8823 for Motif list boxes from double-click-time.
8824
8825 * fns.c (Vhash_table_tests): Remvoed.
8826 (Qhash_table_test): New.
8827 (syms_of_fns): Initialize Qhash_table_test.
8828 (Fmake_hash_table): Look up user-defined tests in symbol prop
8829 `hash-table-test'.
8830 (Fdefine_hash_table_test): Store test and hash function as
8831 symbol prop `hash-table-test'.
8832 (make_hash_table): Add parameters user_test and user_hash.
8833
8834 * window.c (set_window_buffer): Set window margins for tty
8835 frames, too.
8836 (Fset_window_margins): Ditto.
8837
8838 * term.c (append_glyph): Use glyph area of iterator instead of
8839 always TEXT_AREA.
8840
8841 * dispnew.c (update_frame_1): Add left margin width to cursor
8842 hpos.
8843 (direct_output_for_insert): Ditto.
8844 (direct_output_forward_char): Ditto.
8845
8846 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8847
8848 * dispextern.h (struct glyph_matrix): Add top_line_p.
8849
88501999-07-16 Gerd Moellmann <gerd@gnu.org>
8851
8852 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8853 instead.
8854
8855 * fns.c (cmpfn_eq): Add hash code parameters.
8856 (cmpfn_eql): Ditto.
8857 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8858 (cmpfn_user_defined): Likewise.
8859
88601999-07-15 Gerd Moellmann <gerd@gnu.org>
8861
8862 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8863
8864 * fns.c (maybe_resize_hash_table): Correct computation of
8865 index vector size.
8866 (make_hash_table): Ditto.
8867 (Fmakehash): New.
8868
8869 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8870
8871 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8872 (survives_gc_p): Make it externally visible.
8873 (mark_object): Ditto.
8874
8875 * fns.c (remove_hash_entry): Removed.
8876 (sweep_weak_hash_tables): New.
8877
8878 * print.c (print): Print more information about hash tables.
8879
8880 * xfns.c (image_spec_hash): Removed.
8881 (lookup_image): Use sxhash instead of image_spec_hash.
8882 (image_spec_equal_p): Removed.
8883 (lookup_image): Use Fequal instead of image_spec_equal_p.
8884
88851999-07-14 Gerd Moellmann <gerd@gnu.org>
8886
8887 * lisp.h (P_): Moved to top of file.
8888
8889 * fns.c (make_hash_table): Set new members.
8890
8891 * alloc.c (mark_object): Mark hash table's user_hash_function.
8892 Mark index vector for weak hash tables.
8893
8894 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8895 user_hash_function, cmpfn, and hashfn.
8896
8897 * fns.c (build_hash): Removed.
8898 (hash_test): Removed.
8899 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8900 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8901
89021999-07-13 Gerd Moellmann <gerd@gnu.org>
8903
8904 * alloc.c (survives_gc_p): New.
8905
8906 * print.c (print): Add hash table handling.
8907
8908 * alloc.c (mark_object): Add code to mark hash tables.
8909
8910 * lisp.h (GC_HASH_TABLE_P): New.
8911
8912 * emacs.c (main): Call init_fns.
8913
8914 * fns.c (init_fns): New.
8915
8916 * fns.c: Add hash table implementation.
8917
8918 * lisp.h (PVEC_HASH_TABLE): New.
8919 (struct Lisp_Hash_Table): New.
8920 (XHASH_TABLE): New.
8921 (XSET_HASH_TABLE): New.
8922 (HASH_TABLE_P): New.
8923 (CHECK_HASH_TABLE): New.
8924 (DEFAULT_HASH_SIZE): New.
8925 (DEFAULT_REHASH_THRESHOLD): New.
8926 (DEFAULT_REHASH_SIZE): New.
8927
8928 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8929 (x_write_glyphs): Compute overwritten cursor using real start
8930 and end positions of display.
8931 (x_insert_glyphs): Ditto.
8932
89331999-07-10 Gerd Moellmann <gerd@gnu.org>
8934
8935 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8936
8937 * dispnew.c (blank_row): Add y-position as parameter. Compute
8938 visible height.
8939
8940 * xdisp.c (next_element_from_string): Give padding spaces
8941 a position of -1.
8942
427ec082 8943 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8944 marginals areas on tty frames in a future version.
8945 (allocate_matrices_for_frame_redisplay): Ditto.
8946
8947 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8948 to zero if number of glyphs in the row is <= 1.
8949
89501999-07-09 Gerd Moellmann <gerd@gnu.org>
8951
8952 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8953 into account.
8954
8955 * xdisp.c (handle_display_prop): Don't reset area if handing
8956 a property from a string that came from a `display' property.
8957 (handle_single_display_prop): Don't handle recursive `display'
8958 properties.
8959 (handle_single_display_prop): Handle some display property
8960 forms for terminal frames.
8961 (Qimage): Moved here from xfns.c.
8962
8963 * dispextern.h (struct it): New field string_from_display_prop_p.
8964
8965 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8966 line.
8967
89681999-07-08 Gerd Moellmann <gerd@gnu.org>
8969
8970 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8971
8972 * window.c (set_window_buffer): Set window's vscroll to zero.
8973
8974 * xdisp.c (QCwhen): New.
8975 (display_prop_end): New.
8976 (handle_single_display_prop): Use it.
8977 (debug_method_add): Print buffer name if tracing.
8978 (try_window_reusing_current_matrix): Compute visible height
8979 of reused rows. Fix cursor position calculation in case of
8980 top-line.
8981
8982 * dispextern.h (struct redisplay_interface): Add parameter
8983 cursor_on_p to update_window_end_hook.
8984
8985 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8986
89871999-07-07 Gerd Moellmann <gerd@gnu.org>
8988
427ec082 8989 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8990 doesn't become negative when decrementing it.
8991
8992 * eval.c (Fsignal): Reset redisplaying_p to zero.
8993
8994 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8995 for window update.
8996 (try_window_id): Ditto.
8997
8998 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8999 (x_scroll_run): Ditto.
9000 (any_help_event_p): New.
9001 (x_initialize): Set it to zero.
9002 (XTread_socket): Clear help echo only if any_help_event_p.
9003
9004 * xdisp.c (init_iterator): Set top_line_p.
9005 (start_display): Use correct initial y if top-line is present.
9006 (make_cursor_line_fully_visible): Bug fixes for top-line.
9007 (try_scrolling): Ditto.
9008 (try_window_reusing_current_matrix): Ditto.
9009
9010 * dispextern.h (struct it): Add top_line_p.
9011
9012 * dispnew.c (shift_glyph_matrix): Move some computations out
9013 of the loop.
9014
427ec082 9015 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
9016 XFLOATINT.
9017
90181999-07-06 Gerd Moellmann <gerd@gnu.org>
9019
9020 * dispnew.c (update_frame_1): When setting cursor in echo area,
9021 skip only over padding spaces at the end.
9022
9023 * xfaces.c (realize_tty_face): Set face's font_name field to
9024 "tty".
9025
9026 * term.c (update_end): Turn cursor on only if selected window's
9027 cursor_off_p flag is not set.
9028
90291999-07-05 Gerd Moellmann <gerd@gnu.org>
9030
9031 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
9032 (TS_cursor_normal): Renamed from TS_end_visual_mode.
9033 (TS_cursor_invisible): New.
9034 (term_init): Initialize TS_cursor_invisible.
9035 (tty_hide_cursor): New.
9036 (tty_show_cursor): New.
9037 (update_end): Show tty cursor.
9038 (update_begin): Hide tty cursor to prevent cursor flickering
9039 during redisplays triggered by timers (stealth fontification).
9040
9041 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
9042
9043 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
9044 in scroll bars.
9045 (x_handle_toolbar_click): Set modifier bits.
9046
90471999-07-04 Gerd Moellmann <gerd@gnu.org>
9048
9049 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
9050 instead of a pointer to a volatile input_event.
427ec082 9051 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
9052 declaration of local variable `sp'.
9053 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
9054 to kbd_fetch_ptr.
9055
90561999-07-03 Gerd Moellmann <gerd@gnu.org>
9057
9058 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
9059 only if buffer is modified. Return quickly if changes are
9060 above window start.
9061
90621999-07-02 Gerd Moellmann <gerd@gnu.org>
9063
9064 * dispextern.h (HSCROLL_WINDOWS): Removed.
9065
9066 * xdisp.c (mark_window_display_accurate): Don't set
9067 w->region_showing.
9068 (redisplay_internal): Don't call redraw_garbaged_frames.
9069
90701999-07-01 Gerd Moellmann <gerd@gnu.org>
9071
9072 * xdisp.c (echo_area_display): Don't display truncation marks
9073 for messages because 20.4 doesn't do it either.
9074 (redisplay_window): Case same window start. Instead of giving
9075 up when cursor is partially visible, make it fully visible.
9076 (mark_window_display_accurate): Some cleanup. Record window's
9077 last cursor information.
9078 (debug_method_add): Improved.
9079 (redisplay_internal): Record last cursor info only if not
9080 consider_all_windows_p.
9081
9082 * dispnew.c (update_window): Update top line after scrolling.
9083 (blank_row): Renamed from make_empty_enabled_row.
9084 (increment_glyph_row_buffer_positions): Increment positions
9085 in buffers, only.
9086
9087 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9088 string.
9089
90901999-06-30 Gerd Moellmann <gerd@gnu.org>
9091
9092 * dispnew.c (update_window): Check that updated row is visible.
9093
9094 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9095 top of window differently.
9096
9097 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9098 if region is showing.
9099
9100 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9101 avoiding matrix reallocation. Set window_vscroll in matrix.
9102
9103 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9104
26901792
DL
9105 * xdisp.c (debug_method_add): New.
9106 (debug_redisplay_method): Removed.
9107 (try_window_reusing_current_matrix): Handle case where old
9108 window start is the same as new window start.
9109
9110 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9111 an array instead of a pointer.
9112
26901792
DL
9113 * xfns.c (Fx_show_tip): Undo previous change.
9114
9115 * xterm.c (x_append_glyph): Clear glyph->u.val.
9116
9117 * dispextern.h (struct glyph): Increase size of face_id bit-field
9118 for CHAR_GLYPH to 12.
9119
91201999-06-29 Gerd Moellmann <gerd@gnu.org>
9121
9122 * xfaces.c (x_charset_registry): Make it externally visible.
9123
91241999-06-28 Gerd Moellmann <gerd@gnu.org>
9125
427ec082 9126 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9127 instead of WINDOW_WANTS_MODELINE_P.
9128
9129 * xterm.c (clear_mouse_face): Make externally visible.
9130
9131 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9132
9133 * xterm.c (expose_line): Handle exposure of top-lines.
9134
9135 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9136 if mouse_face_mouse_frame is null.
9137
9138 * xdisp.c (redisplay_window): If window is echo_area_window,
9139 and update_mode_line is set, update menubar and toolbar.
9140
9141 * dispnew.c (space_glyph): Set its charpos to -1.
9142 (update_frame_1): Ignore trailing padding spaces.
9143
9144 * xdisp.c (next_element_from_c_string): Set position of padding
9145 glyphs to -1.
9146
91471999-06-27 Gerd Moellmann <gerd@gnu.org>
9148
9149 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9150 XQueryColor.
9151
9152 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9153 (set_cursor_from_row): Skip over glyphs having a null object at
9154 the start of rows.
9155 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9156 glyphs.
9157 (handle_invisible_prop): Compute next change only when needed.
9158 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9159 line.
9160
91611999-06-26 Gerd Moellmann <gerd@gnu.org>
9162
9163 * xrdb.c (x_load_resources): Don't set resource for double-click
9164 time.
9165
9166 * xdisp.c (try_window_id): Return quickly if all changes are
9167 below the window's current matrix end.
9168
9169 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9170 parameter.
9171
9172 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9173 in desired not in current matrix.
9174 (try_window_reusing_current_matrix): Rotate matrices starting
9175 at start_vpos instead of 0.
9176
9177 * xterm.c (expose_window): Use window_text_bottom_y.
9178 (fast_find_position): Ditto.
9179
9180 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9181 (try_window_reusing_current_matrix): Ditto.
9182 (get_last_unchanged_at_beg_row): Ditto.
9183 (init_iterator): Ditto.
9184
9185 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9186 more row.
9187 (check_matrix_invariants): Use window_text_bottom_y.
9188 (update_window): Ditto.
9189 (scrolling_window): Ditto.
9190
9191 * xdisp.c (window_text_bottom_y): New.
9192
91931999-06-25 Gerd Moellmann <gerd@gnu.org>
9194
9195 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9196 clearing mouse face.
9197 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9198 event.xcrossing.focus is not set, and focus is in the menu bar,
9199 set focus frame as if event.xcrossing.focus were set.
9200
92011999-06-24 Gerd Moellmann <gerd@gnu.org>
9202
9203 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9204 * keyboard.c (make_lispy_movement): Ditto.
9205
9206 * window.c (coordinates_in_window): Return 4 if on top line.
9207 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9208
9209 * xdisp.c (window_box_height): Subtract top line height.
9210 (window_box): Add top line height to top y position if top line
9211 exists.
9212 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9213 the top line row of the window. Set initial y-position to
9214 window's top line height plus delta.
9215 (start_display): Choose start glyph row depending on whether
9216 window has a top line.
9217 (try_scrolling): Take top line height into account for aggressive
9218 scrolling.
9219 (compute_window_start_on_continuation_line): Take top line into
9220 account.
427ec082 9221 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9222 trigger a new redisplay.
9223 (try_window_reusing_current_matrix): Take top line into account.
9224 (find_last_row_displaying_text): Ditto.
9225 (get_last_unchanged_at_beg_row): DItto.
9226 (try_window_id): Ditto.
9227 (compute_line_metrics): Ditto.
9228
9229 * dispnew.c (shift_glyph_matrix): Compute visible row height
9230 taking top line of window into account.
9231 (update_window): Update top line. If scrolling_window detects
9232 that all rows are equal, only set cursor.
9233 (update_window_line): Call after_update_window_line_hook if
9234 mode_line_p flag of rows has changed.
9235 (scrolling_window): Add parameter top_line_p. Return -1 if
9236 all rows are equal.
9237 (mode_line_string): Add parameter mode_line_p. Handle strings
9238 in top lines.
9239
9240 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9241 (MATRIX_FIRST_TEXT_ROW): New.
9242 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9243 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9244 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9245 (MATRIX_TOP_LINE_HEIGHT): New.
9246 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9247 (CURRENT_TOP_LINE_HEIGHT): New.
9248 (DESIRED_TOP_LINE_HEIGHT): New.
9249 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9250 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9251 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9252 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9253
9254 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9255 lines.
9256 (x_draw_row_bitmaps): Take top line into account when clearing
9257 bitmap area.
9258 (x_estimate_mode_line_height): Replacement for
9259 x_frame_mode_line_height.
9260 (x_get_glyph_string_clip_rect): Take top line into account.
9261 (x_clear_end_of_line): Ditto.
9262 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9263 top lines.
9264 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9265 (x_erase_phys_cursor): Take top line into account.
9266
9267 * xdisp.c (window_box_height): Subtract top line height if
9268 window wants a top line.
9269 (display_mode_lines): New.
9270 (redisplay_window): Call it.
9271 (display_mode_line): Add parameters face_id and format.
9272
9273 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9274 (MATRIX_TOP_LINE_HEIGHT): New.
9275
9276 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9277
9278 * term.c (estimate_mode_line_height): Renamed from
9279 frame_mode_line_height. Add parameter face_id.
9280 (estimate_mode_line_height_hook): Renamed from
9281 frame_mode_line_height_hook.
9282 (produce_special_glyphs_hook): Removed.
9283 (produce_glyphs_hook): Removed.
9284
92851999-06-23 Gerd Moellmann <gerd@gnu.org>
9286
9287 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9288 (struct glyph_row): Add mode_line_p.
9289
9290 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9291 (Qtop_line): New.
9292 (syms_of_xfaces): Initialize Qtop_line.
9293
9294 * dispextern.h (TOP_LINE_FACE_ID): New.
9295
9296 * buffer.c (init_buffer_once): Set default for
9297 top_line_format to nil.
9298 (init_buffer_once): Init top_line_format.
9299 (default-top-line-format): New.
9300 (top-line-format): New buffer-local variable.
9301
9302 * buffer.h: Add top_line_format.
9303
9304 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9305
93061999-06-17 Dave Love <fx@gnu.org>
9307
9308 * xfns.c: Move the PNG section before the JPEG one to avoid
9309 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9310
26901792
DL
93111999-06-17 Gerd Moellmann <gerd@gnu.org>
9312
9313 * xfns.c (x_kill_gs_process): Don't free colors.
9314
93151999-06-17 Dave Love <fx@gnu.org>
9316
9317 * s/gnu-linux.h: Zap spurious ~.
9318
93191999-06-16 Gerd Moellmann <gerd@gnu.org>
9320
9321 * xfns.c (gif_load): Improve multi-image support.
9322
93231999-06-15 Gerd Moellmann <gerd@gnu.org>
9324
9325 * xfns.c (gif_load): Support multi-image files.
9326
9327 * Makefile.in (LIBGIF): Use libungif.
9328
9329 * configure.in (HAVE_GIF): Use libungif instead of libgif
9330 because the former doesn't contain patented compression code.
9331
9332 * xdisp.c (compute_window_start_on_continuation_line): Don't
9333 do it if line start is too far away from window start.
9334
93351999-06-14 Gerd Moellmann <gerd@gnu.org>
9336
9337 * buffer.c (init_buffer_once): Set buffer_local_flags for
9338 scroll_*_aggressively.
9339 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9340 (init_buffer_once): Set defaults for these variables.
9341 (syms_of_buffer): Add default-scroll-*-aggressively.
9342
9343 * buffer.h (scroll_up_aggressively): New.
9344 (scroll_down_aggressively): New.
9345
9346 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9347 a static PNG library.
9348
9349 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9350 in case it's a static library.
9351
9352 * Makefile.in (ctagsfiles): Split so that files starting
9353 with an `x' are found before files starting with `w32'.
9354 (ctagsfiles1): New.
9355 (ctagsfiles2): New.
9356 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9357
9358 * xdisp.c (compute_window_start_on_continuation_line): New.
9359 (redisplay_window): Use it.
9360 (INFINITY): New.
9361 (reseat_to_string): Use it.
9362 (hscroll_window_tree): Ditto.
9363 (compute_window_start_on_continuation_line): Ditto.
9364 (redisplay_window): Don't force display with a new window start.
9365
93661999-06-06 Gerd Moellmann <gerd@gnu.org>
9367
9368 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9369 if widget not present.
9370
9371 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9372
93731999-06-04 Gerd Moellmann <gerd@gnu.org>
9374
9375 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9376 value of realize_basic_faces.
9377 (load_face_font_or_fontset): Store full font name in face.
9378 (realize_default_face): Use full font name.
9379
26901792
DL
9380 * xterm.c (x_produce_glyphs): Set member char_to_display.
9381 (x_append_glyph): Store char_to_display in glyphs.
9382
9383 * dispextern.h (struct it): Add char_to_display.
9384
9385 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9386 if faces haven't been initialized.
9387 (Fx_create_frame): Call face-set-after-frame-default after
9388 faces have been initialized, and widget has been created.
9389
9390 * puresize.h (BASE_PURESIZE): Increased.
9391
93921999-06-01 Gerd Moellmann <gerd@gnu.org>
9393
9394 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9395 (Finternal_set_lisp_face_attribute): If frame is t when
9396 :font attribute is set, use the selected frame.
9397 (clear_face_cache): Add parameter clear_fonts_p.
9398 (Fclear_face_cache): Add optional parameter thorougly.
9399
9400 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9401 in table.
9402 (Fclear_face_cache): New.
9403 (choose_face_fontset_font): If fontset doesn't contain font
9404 pattern for the given charset, use CHARSET_ASCII.
9405 (Finternal_set_lisp_face_attribute): Fix handling of nil
9406 stipple attribute.
9407 (Finternal_set_lisp_face_attribute): Fix handling of changing
9408 font-related face attributes of the default face.
9409 (set_lface_from_font_name): Set only attributes that aren't
9410 specified.
9411
94121999-05-31 Gerd Moellmann <gerd@gnu.org>
9413
9414 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9415 font support.
9416 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9417 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9418 scalable fonts depending on the setting of SCALABLE_FONTS.
9419 (first_font_matching): List more than one font to find the
9420 first non-scalable matching font.
9421 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9422 depending on SCALABLE_FONTS.
9423 (better_font_p): New parameter compare_pt_p. If zero, don't
9424 compare point sizes of fonts.
9425 (exact_face_match_p) [SCALABLE_FONTS]: New.
9426 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9427 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9428 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9429 (syms_of_xfaces): Add scalable-fonts-allowed.
9430
94311999-05-26 Gerd Moellmann <gerd@gnu.org>
9432
9433 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9434 mask only if image contains simple transparency information.
9435 Otherwise, combine image with frame background color.
9436
9437 * configure.in (--with-png, HAVE_PNG): New.
9438
9439 * config.in (HAVE_PNG): New.
9440
9441 * Makefile.in: Add PNG library.
9442
9443 * xfns.c: Add PNG support.
9444
94451999-05-25 Gerd Moellmann <gerd@gnu.org>
9446
9447 * xdisp.c (init_xdisp): Initialize echo_area_message and
9448 previous_echo_area_message to nil.
9449
9450 * keyboard.c (read_char): Rename local variable echo_area_message
9451 because it shadows the global one.
9452
94531999-05-05 Gerd Moellmann <gerd@gnu.org>
9454
9455 * xterm.c (note_mode_line_highlight): Restructured.
9456
9457 * window.c (coordinates_in_window): Handle windows that don't have
9458 a mode line because their buffer's mode-line-format is nil.
9459 Recognize the mode line under x positions that correspond to
9460 flags areas and left scroll bar.
9461
94621999-05-02 Dave Love <fx@gnu.org>
9463
9464 * xterm.c (note_mouse_highlight): Separate help-echo processing
9465 from check on mouse-face so that it works generally.
9466
94671999-04-21 Gerd Moellmann <gerd@gnu.org>
9468
9469 * sound.c (Fplay_sound): Run hook play-sound-hook.
9470 (Qplay_sound_hook): New.
9471
94721999-04-20 Gerd Moellmann <gerd@gnu.org>
9473
9474 * xdisp.c (update_echo_area): Handle echo_area_message.
9475
94761999-04-19 Gerd Moellmann <gerd@gnu.org>
9477
9478 * editfns.c (Fmessage): Use message3.
9479
9480 * print.c (printchar): Set echo_area_message to nil.
9481 (strout): Ditto.
9482
9483 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9484 (Fminibuffer_completion_help): Ditto.
9485
9486 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9487 (command_loop_1): Test echo_areA_message.
9488 (read_char): Ditto.
9489 (record_menu_key): Set echo_area_message to nil.
9490 (Fexecute_extended_command): Test echo_area_message.
9491 (Fexecute_extended_command): Handle echo_area_message.
9492
9493 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9494 is set.
9495
9496 * editfns.c (Fcurrent_message): If echo_area_message is set,
9497 return a substring of that string.
9498
9499 * dispnew.c (direct_output_for_insert): Test echo_area_message
9500 in addition to echo_area_glyphs.
9501 (set_window_cursor_after_update): Ditto.
9502 (update_frame_1): Ditto.
9503
9504 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9505 old Lisp message string.
9506
9507 * xdisp.c (echo_area_message): New.
9508 (previous_echo_area_message): New.
9509 (syms_of_xdisp): Initialize and staticpro new variables.
9510 (echo_area_display): Display echo_area_message if set.
9511 (message2_nolog): Set echo_area_message and
9512 previous_echo_area_message.
9513 (echo_area_display): Set previous_echo_area_message.
9514 (redisplay_internal): Display echo area if echo_area_message
9515 or previous_echo_area_message are set.
9516 (redisplay_preserve_echo_area): Test/set echo_area_message and
9517 previous_echo_area_message.
9518 (redisplay_window): Test echo_area_message.
9519 (message3_nolog): New.
9520 (message3): New.
9521
9522 * editfns.c (Fformat): Add text properties to the result string
9523 from properties of the format string and properties of string
9524 arguments.
9525
9526 * textprop.c (text_property_list): New.
9527 (add_text_properties_from_list): New.
9528 (extend_property_ranges): New.
9529
95301999-03-29 Gerd Moellmann <gerd@gnu.org>
9531
9532 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9533 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9534 Use these symbols for the box face attribute instead of the
9535 removed ones.
9536
95371999-03-12 Gerd Moellmann <gerd@gnu.org>
9538
9539 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9540 Correct wrong test for slant.
9541
95421999-03-10 Gerd Moellmann <gerd@gnu.org>
9543
9544 * xfaces.c: Use `unspecified' for unspecified face attributes,
9545 use t and nil for on/off.
9546
95471999-03-06 Gerd Moellmann <gerd@gnu.org>
9548
9549 * buffer.c (syms_of_buffer): Extend doc string of
9550 mode-line-format.
9551
9552 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9553 (first_font_matching): New.
9554 (set_lface_from_font_name): Use it if font name is a pattern.
9555 (font_field_wildcard_p): Removed.
9556
9557 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9558 Recompute visible height of rows.
9559
9560 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9561 Don't accept non-strings for help-echo from overlays.
9562
95631999-03-04 Dave Love <fx@gnu.org>
9564
9565 * xterm.c (note_mouse_highlight): Check overlays for help-text
9566 property.
9567 (XTread_socket): Fix compiler warning.
427ec082 9568
26901792
DL
95691999-03-05 Gerd Moellmann <gerd@gnu.org>
9570
427ec082 9571 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9572 overlay to 10. Call overlays_at so that it doesn't try to
9573 extend the vector.
9574
9575 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9576 height.
9577
9578 * dispnew.c (row_equal_p): Compare visible row height, only.
9579 (update_text_area): Draw whole line if visible heights of
9580 rows differ.
9581 (update_window_line): Call after_update_window_line_hook
9582 if visible row height has changed.
9583
9584 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9585 (struct glyph_row): New member visible_height.
9586
9587 * xfaces.c (font_field_wildcard_p): New.
9588 (set_lface_from_font_name): Remove parameter force_p. Accept
9589 font names containing wildcards.
9590
95911999-03-04 Gerd Moellmann <gerd@gnu.org>
9592
9593 * xterm.c (x_after_update_window_line): Clear internal border
9594 when windows_or_buffers_changed.
9595
9596 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9597 buffer has a nil mode_line_format.
9598
95991999-03-03 Gerd Moellmann <gerd@gnu.org>
9600
9601 * xterm.c (x_setup_relief_colors): Use either background color
9602 or specified color.
9603
9604 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9605
9606 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9607
9608 * xterm.c (x_draw_box_rect): New.
9609 (x_draw_glyph_string_box): Renamed from
9610 x_draw_glyph_string_relief. Call x_draw_box_rect.
9611
9612 * xfns.c (QCrelief): New.
9613 (syms_of_xfns): Initialize it.
9614
9615 * dispextern.h (struct glyph): Rename left_shadow_p to
9616 left_box_line_p, right_shadow_p to right_box_line_p.
9617 (MAX_RELIEF_THICKNESS): Removed.
9618 (struct it): Rename members having `relief' in their names
9619 to contain `box' instead.
9620
9621 * xfaces.c (realize_x_face): Handle new box attribute values.
9622 (QCrelief, Qbox): Removed.
9623 (QCshadow, QCcolor, Qraised, Qsunken): New.
9624 (syms_of_xfaces): Initialize new symbols.
9625
96261999-03-02 Gerd Moellmann <gerd@gnu.org>
9627
9628 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9629
9630 * xfaces.c (LFACE_RELIEF): Removed.
9631 (merge_face_vector_with_property): Remove handling of `:relief'.
9632 (Finternal_set_lisp_face_attribute): Ditto.
9633 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9634 (Finternal_get_lisp_face_attribute): Ditto.
9635 (realize_default_face): Ditto.
9636 (lface_hash): Don't compute hash from relief.
9637
9638 * dispextern.h (struct face): Replace member `relief' by
9639 `box_line_width'. Add member `box'.
9640 (face_box_type): New.
9641
9642 * xterm.c (x_produce_glyphs): If face has overline, add overline
9643 thickness + 1 to ascent.
9644
96451999-03-01 Gerd Moellmann <gerd@gnu.org>
9646
9647 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9648 strike-through, and boxes.
9649 (x_draw_glyph_string_underline): Removed.
9650
9651 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9652 (Qoverline, Qstrike_through, Qbox): New.
9653 (syms_of_xfaces): Define these symbols.
9654 (check_lface_attrs): Add checks for overline, strike-through,
9655 and box.
9656 (Finternal_set_lisp_face_attribute): Set new attributes.
9657 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9658 (load_color): Handle new attributes.
9659 (realize_x_face): Ditto.
9660 (merge_face_vector_with_property): Ditto.
9661 (free_face_colors): Ditto.
9662 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9663 (Finternal_get_lisp_face_attribute): Ditto.
9664 (Finternal_lisp_face_attribute_values): Ditto.
9665
9666 * dispextern.h (lface_attribute_index): Add enumerators for
9667 overstrike, strike-through, and box.
9668 (struct face): Add members for overline, strike-through, and
9669 box.
9670
96711999-02-17 Dave Love <fx@gnu.org>
9672
9673 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9674 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9675 files.
9676
96771999-02-16 Gerd Moellmann <gerd@gnu.org>
9678
9679 * keyboard.c (toolbar_items): Call access_keymap with third
9680 parameter 1, so that we don't get inherited toolbar item
9681 definitions.
9682
9683 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9684 the window end vpos when in empty first line of window.
9685
96861999-02-15 Gerd Moellmann <gerd@gnu.org>
9687
9688 * xfaces.c (set_font_frame_param): New.
9689 (Finternal_set_lisp_face_attribute): Call it.
9690
9691Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9692
9693 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9694 Accept specifications of color for underline.
9695
96961999-02-13 Gerd Moellmann <gerd@gnu.org>
9697
9698 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9699 `frame' is t, operate on face defaults for new frames. If it
9700 is nil, operate on the selected frame.
9701
97021999-02-12 Gerd Moellmann <gerd@gnu.org>
9703
9704 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9705 (update_window): Put the call to check_matrix_invariants in #if 0.
9706
9707Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9708
9709 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9710 Remove definition of UNDERLINE_COLOR.
9711
9712Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9713
9714 * xfaces.c (free_face_colors): Free the color for underline.
9715
9716 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9717 to the GC.
9718
9719Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9720
9721 * dispextern.h (UNDERLINE_COLOR): Defined.
9722 (struct face): Added two new members.
9723 underline_color, underline_defaulted_p.
9724
427ec082 9725 * xfaces.c (merge_face_vector_with_property):
26901792 9726 (check_lface_attrs): Accept the string value for underline.
427ec082 9727 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9728
9729 * xfaces.c (load_color): Change the last argument type to enum
9730 lface_attribute_index from int. And addec code for underling coloring.
9731 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9732
26901792
DL
97331999-02-12 Gerd Moellmann <gerd@gnu.org>
9734
9735 * xfns.c (Fx_image_header): Removed.
9736
97371999-02-07 Gerd Moellmann <gerd@gnu.org>
9738
9739 * xterm.c: Don't include <bitmaps/gray>.
9740 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9741
9742 * xfns.c (Fx_image_header): Add missing `\n\'.
9743 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9744
97451999-02-01 Gerd Moellmann <gerd@gnu.org>
9746
9747 * xterm.c (x_scroll_bar_create): Set background pixel from
9748 specified scroll bar color.
9749 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9750
9751 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9752 (x_set_scroll_bar_background): Ditto.
9753
9754 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9755
9756 * xfns.c (x_default_scroll_bar_color_parameter): New.
9757 (Fx_create_frame): Call it.
9758
97591999-01-31 Gerd Moellmann <gerd@gnu.org>
9760
9761 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9762 values in x_output structure.
26901792
DL
9763 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9764 (syms_of_xfns): Initialize these symbols.
9765
9766 * xterm.h (struct x_output): Add scroll bar pixel colors.
9767
9768 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9769 (x_set_scroll_bar_foreground): New.
9770 (x_set_scroll_bar_background): New.
9771
26901792
DL
97721999-01-12 Gerd Moellmann <gerd@gnu.org>
9773
9774 * xdisp.c (handle_single_display_prop): New.
9775 (handle_display_prop): Call it.
9776 (handle_raise_prop): Removed.
9777 (handle_height_prop): Removed.
9778 (handle_space_width_prop): Removed.
9779 (handle_face_prop): Remove handling of raised text.
9780 (handle_display_prop): Do it here.
9781
9782 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9783 (RAISE_PROP_IDX): Removed.
9784 (HEIGHT_PROP_IDX): Removed.
9785 (SPACE_WIDTH_PROP_IDX): Removed.
9786
9787 * xdisp.c (Qdisplay): Replaces Qglyph.
9788 (handle_display_prop): Formerly handle_glyph_prop.
9789
97901999-01-11 Gerd Moellmann <gerd@gnu.org>
9791
9792 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9793 (handle_stop): Set position in display vector to -1. Don't
9794 check overlay strings when set up to deliver characters from a
9795 display vector.
9796 (set_iterator_to_next): At the end of a run of characters from a
9797 display vector, check whether the display vector display replaces
9798 the display of a character.
9799
98001999-01-05 Gerd Moellmann <gerd@gnu.org>
9801
9802 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9803 X window hasn't been created yet.
9804
98051998-12-06 Gerd Moellmann <gerd@gnu.org>
9806
9807 * sound.c: New.
9808
98091998-12-04 Gerd Moellmann <gerd@gnu.org>
9810
9811 * config.in (HAVE_SOUND): New.
9812
9813 * emacs.c (main): Call syms_of_sound and init_sound.
9814
9815 * Makefile.in (obj): Add sound.o.
9816
9817 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9818
9819 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9820 (HAVE_SYS_SOUNDCARD_H): New.
9821
98221998-12-03 Gerd Moellmann <gerd@gnu.org>
9823
9824 * buffer.h (struct buffer): indicate_empty_lines renamed from
9825 indicate_zv_lines.
9826
9827 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9828 (default-indicate-zv-lines): Likewise.
9829
9830 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9831 to indicate_empty_line_p.
9832
9833 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9834 to next_element_from_buffer.
9835
9836 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9837
9838 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9839 and `N-'.
9840
9841 * xfns.c (xbm_scan): New.
9842 (xbm_read_hexint): Removed.
9843 (xbm_read_bitmap_file_data): Use xbm_scan.
9844
9845 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9846
98471998-12-02 Gerd Moellmann <gerd@gnu.org>
9848
9849 * xfns.c (xbm_read_hexint): New.
9850 (xbm_read_bitmap_file_data): New.
9851 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9852 instead of XReadBitmapFileData.
9853
9854 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9855
9856 * xfaces.c (face_with_height): New.
9857
9858 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9859 (eval_form): Renamed from eval_mode_element.
9860 (handle_face_prop): Use it.
9861 (Qheight): Replaces Qsmaller.
9862 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9863 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9864 integer, evaluate it to get the font height to use.
9865
9866 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9867 (struct it): Use `font_height' instead of `smaller'.
9868
98691998-12-01 Gerd Moellmann <gerd@gnu.org>
9870
9871 * xdisp.c (reseat_1): New.
9872 (reseat): Call it.
9873 (move_it_vertically_backward): Ditto.
9874 (redisplay_window): Don't abort when cursor not found in recenter.
9875
98761998-11-30 Gerd Moellmann <gerd@gnu.org>
9877
9878 * xdisp.c (reseat_at_next_visible_line_start): When not
9879 currently delivering display elements from the current buffer,
9880 restore buffer position first.
9881 (init_from_display_pos): Don't set IT's position from the
9882 position passed to this function.
9883
98841998-11-28 Gerd Moellmann <gerd@gnu.org>
9885
9886 * config.in (PROTO): Removed.
9887
9888 * xterm.h: Change PROTO to P_.
9889
98901998-11-26 Gerd Moellmann <gerd@gnu.org>
9891
9892 * xterm.c (take_vertical_position_into_account): New.
9893 (x_produce_image_glyph): Call it.
9894 (x_produce_stretch_glyph): Ditto.
9895 (x_produce_glyphs): Ditto.
9896 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9897 (x_fill_composite_glyph_string): Ditto.
9898 (x_fill_image_glyph_string): Ditto.
9899 (x_fill_stretch_glyph_string): Ditto.
9900
9901 * xdisp.c (display_line): Always compute row height from
9902 max_ascent and max_descent.
9903
9904 * dispextern.h (struct glyph): Add voffset.
9905 (struct it): Replace height by descent, max_height by max_descent.
9906
9907 * xterm.c (x_append_glyph): Set voffset
9908 (x_append_stretch_glyph): Ditto.
9909 (x_produce_image_glyph): Ditto.
9910 (x_produce_glyphs): Take voffset into account.
9911 (x_produce_image_glyph): Ditto.
9912 (x_produce_stretch_glyph): Ditto.
9913
9914 * dispextern.h (struct it): Add voffset.
9915 * xdisp.c (push_it): Save voffset.
9916 (pop_it): Restore it.
9917
9918 * xdisp.c (it_props): Add entry for `raise'.
9919 (handle_raise_prop): New.
9920
9921 * dispextern.h (RAISE_PROP_IDX): New.
9922
9923 * xdisp.c (Qraise): New.
9924 (syms_of_xdisp): Define Qraised.
9925
9926 * xterm.c (x_scroll_bar_move): Clear to the left and right
9927 of toolkit scroll bars differently.
9928 (x_scroll_bar_move): Removed.
9929 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9930
9931 * dispextern.h: Make it compilable --with-x=no.
9932 * alloc.c: Ditto.
9933 * emacs.c: Ditto.
9934 * dispnew.c: Ditto.
9935 * keyboard.c: Ditto.
9936 * term.c: Ditto.
9937 * xdisp.c: Ditto.
9938 * xfaces.c: Ditto.
9939 * xfns.c: Ditto.
9940 * xmenu.c: Ditto.
9941
99421998-11-25 Gerd Moellmann <gerd@gnu.org>
9943
9944 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9945
99461998-11-24 Gerd Moellmann <gerd@gnu.org>
9947
9948 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9949 update slider size, only.
9950 (xm_scroll_callback): Set dragging member of the scroll bar.
9951 (xt_action_hook): Reset last_scroll_bar_part.
9952 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9953
26901792
DL
9954 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9955 window on newly created frames that don't have one.
9956
99571998-11-23 Gerd Moellmann <gerd@gnu.org>
9958
9959 * xdisp.c (restore_overlay_strings): Removed.
9960 (restore_dpvec): Removed.
9961 (init_from_display_pos): Inline both functions above.
9962
9963 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9964 (parse_image_spec): Handle it.
9965 (xbm_format): Use it.
9966 (xpm_format): Ditto.
9967 (pbm_format): Ditto.
9968 (jpeg_format): Ditto.
9969 (tiff_format): Ditto.
9970 (gif_format): Ditto.
9971 (gs_format): Ditto.
9972
9973 * xdisp.c (set_window_cursor): Removed.
9974 (redisplay_internal): Case cursor motion in cursor line of
9975 selected window; use set_cursor_from_row.
9976
99771998-11-22 Gerd Moellmann <gerd@gnu.org>
9978
9979 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9980 into account.
9981
99821998-11-21 Gerd Moellmann <gerd@gnu.org>
9983
9984 * xterm.c (expose_frame): Redraw menu bar window.
9985
9986 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9987 in menu item.
9988
9989 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9990 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9991
9992 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9993 to determine vertical_scroll_bar_extra.
9994 (EmacsFrameSetCharSize): Ditto.
9995 * xfns.c (x_figure_window_size): Ditto.
9996
9997 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9998 (x_draw_bitmap): Ditto.
9999
10000 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
10001 * xfaces.c (realize_basic_faces): Realize it.
10002
100031998-11-20 Gerd Moellmann <gerd@gnu.org>
10004
10005 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 10006 under LessTif Use the widget of the frame as parent for the
26901792
DL
10007 menu, again.
10008
100091998-11-19 Gerd Moellmann <gerd@gnu.org>
10010
10011 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
10012 When EnterNotify, don't generate a mouse movement event if
10013 notification is from a busy-cursor child window.
10014
10015 * xterm.h (struct x_output): Add busy_window, remove cursor.
10016
10017 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
10018 Use a transparent window to display the busy-cursor.
10019 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
10020
100211998-11-17 Gerd Moellmann <gerd@gnu.org>
10022
10023 * xdisp.c (check_window_end): New, for debugging.
10024 (CHECK_WINDOW_END): New.
10025 (try_window_id): Use it.
10026
10027 * xterm.c (process_expose_from_menu): Return int.
10028
10029 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
10030 TOOLBAR_EVENT events in last_nonmenu_event.
10031
100321998-11-16 Gerd Moellmann <gerd@gnu.org>
10033
10034 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
10035 window end isn't reliable, so set window_end_valid to nil.
10036 (redisplay_internal): If overlay arrow has changed, set
10037 windows_or_buffers_changed to redisplay thoroughly.
10038
10039 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
10040 necessary.
10041
10042 * xfns.c (file_dialog_cb): New.
10043 (Fx_file_dialog): New.
10044 * fileio.c (Fread_file_name): Call it.
10045
427ec082 10046 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
10047 selection dialog.
10048
100491998-11-14 Gerd Moellmann <gerd@gnu.org>
10050
10051 * xterm.c (note_mouse_highlight): Don't highlight when popup
10052 is active.
10053
26901792
DL
10054 * keyboard.c (timer_check): Inhibit busy cursor around calls to
10055 timer-event-handler. This busy cursor tends to be anoying if
10056 fontifying stealthily.
10057
10058 * dispnew.c (direct_output_for_insert): Give up if current row
10059 contains trailing whitespace.
10060
100611998-11-13 Gerd Moellmann <gerd@gnu.org>
10062
10063 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
10064
10065 * xdisp.c (handle_fontified_prop): New.
10066 (Vfontification_functions): New.
10067 (Qfontification_functions): New.
10068 (it_props): Add handle_fontified_prop.
10069
100701998-11-12 Gerd Moellmann <gerd@gnu.org>
10071
10072 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
10073 Otherwise, under LessTif, after the popup has gone, all button
10074 press events come in for the frame's widget, and release events
10075 come in for the edit_widget.
10076 * xterm.c (XTread_socket): Remove workaround for that problem.
10077 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10078 XmScrollBarSetValues.
10079 (SET_SAVED_MENU_EVENT): Give it statement form.
10080
26901792
DL
10081 * xfaces.c (display_message): If waiting_for_input, don't display
10082 the message.
10083
10084 * window.c (scroll_command): If not acting on current_buffer,
10085 make redisplay consider all windows.
10086
10087 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10088
10089 * xdisp.c (handle_glyph_prop): Set it->object for images to
10090 the object having the glyph property.
10091
10092 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10093 invisible.
10094
100951998-11-11 Gerd Moellmann <gerd@gnu.org>
10096
10097 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10098 (x_term_init): Create the gray pixmap.
10099 (x_setup_relief_color): Use it.
10100 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10101 internal border at the top of a frame.
10102 (x_init_glyph_string): Likewise.
427ec082 10103 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10104 full-width lines.
10105 (XTflash): Don't flash the toolbar window.
10106
10107 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10108 in case of ButtonPress events.
10109
101101998-11-10 Gerd Moellmann <gerd@gnu.org>
10111
10112 * xrdb.c (x_load_resources): Add grey background colors as
10113 defaults for menus, scroll bars, and dialogs.
10114
10115 * insdel.c (prepare_to_modify_buffer): Move setting
10116 windows_or_buffers_changed from modify_region here.
10117
10118 * xfns.c (Fx_show_tip): Inhibit redisplay.
10119 (Fx_hide_tip): Ditto.
10120 (Fx_image_header): New.
10121
101221998-11-09 Gerd Moellmann <gerd@gnu.org>
10123
10124 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10125 when clearing current window matrices.
10126
101271998-11-08 Gerd Moellmann <gerd@gnu.org>
10128
10129 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10130 position from a string position. Use the right end position
10131 if the property spans a whole overlay string.
10132
101331998-11-07 Gerd Moellmann <gerd@gnu.org>
10134
10135 * xmenu.c (menubar_selection_callback): Remove workaround for
10136 Lesstif not calling XmNpopdownCallback because it doesn't
10137 handle the case where users don't select any menu item.
10138
26901792
DL
10139 * insdel.c (modify_region): Set windows_or_buffers_changed.
10140
10141 * buffer.c (set_buffer_internal): Don't set
10142 windows_or_buffers_changed.
10143
26901792
DL
10144 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10145
26901792
DL
10146 * xmenu.c (menubar_selection_callback): Add workaround for
10147 Lesstif not calling XmNpopdownCallback.
10148
10149 * xdisp.c (eval_mode_element): New.
10150 (eval_mode_handler): New.
10151 (display_mode_element): Use eval_mode_element.
10152
10153 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10154 Remove code looking at text props of default value.
10155
10156 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10157
26901792
DL
101581998-11-06 Gerd Moellmann <gerd@gnu.org>
10159
427ec082 10160 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10161 BUTTON_TYPE_NONE.
10162 (single_submenu): Likewise for panes and menu items.
10163 (set_frame_menubar): Set button_type of menu bar to none.
10164 (xmenu_show): Likewise.
10165 (single_submenu): Set widget values selected slot.
10166 (xmenu_show): Likewise.
10167
26901792
DL
10168 * xmenu.c (push_menu_item): Add parameters `type' and
10169 `selected'. Store it in menu_items.
10170 (MENU_ITEMS_ITEM_TYPE): New.
10171 (MENU_ITEMS_ITEM_SELECTED): New.
10172 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10173
10174 * xfns.c (clear_image_cache): Get the current time, before
10175 doing anything.
10176 (cache_image): Set prev pointer of next image.
10177 (clear_image_cache): Clear current matrices if any image was
10178 freed.
10179
10180 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10181
10182 * xfns.c (x_set_cursor): New.
10183 (Fx_display_busy_cursor): New.
10184 (Fx_undisplay_busy_cursor): New.
10185
10186 * xterm.h (struct x_output): Add busy_cursor.
10187
10188 * xfns.c (Vx_busy_pointer_shape): New.
10189 (x_set_mouse_color): Create busy cursor.
10190
10191 * process.c (wait_reading_process_input): Show and hide busy
10192 cursor.
10193
10194 * keyboard.c (command_loop_1): Display busy cursor.
10195
10196 * eval.c (Fsignal): Hide busy cursor.
10197
10198 * buffer.c (set_buffer_internal): Don't set
10199 windows_or_buffers_changed.
10200
10201 * xterm.c (redo_mouse_highlight): New.
10202
102031998-11-04 Gerd Moellmann <gerd@gnu.org>
10204
26901792
DL
10205 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10206 (x_build_heuritic_mask): New.
10207 (lookup_image): Call it.
10208
10209 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10210 (previous_help_echo): New.
10211 (XTread_socket): Generate help event with nil message when
10212 leaving a region with help-echo.
10213 (note_mouse_highlight): Handle `help-echo' over text.
10214 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10215 CirculateRequest.
10216 (clear_mouse_face): Don't clear if tooltip is shown.
10217 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10218 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10219
10220 * keyboard.c (Vshow_help_function): New.
10221 (read_char): Use it.
10222
102231998-11-03 Gerd Moellmann <gerd@gnu.org>
10224
10225 * xfns.c (x_create_tip_frame): New.
10226 (Fx_show_tip): New.
10227 (Fx_hide_tip): New.
10228
427ec082 10229 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10230 a widget.
10231
10232 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10233 to full_width_p. Add internal_border_p.
10234
102351998-11-02 Gerd Moellmann <gerd@gnu.org>
10236
10237 * xterm.c (note_mode_line_highlight): Check the charpos of
10238 the glyph under the mouse pointer before accessing text
10239 properties at that position.
10240
102411998-11-01 Gerd Moellmann <gerd@gnu.org>
10242
10243 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10244
10245 * xdisp.c (auto-raise-toolbar-buttons): New.
10246 (build_desired_toolbar_string): Handle the flag.
10247 (toolbar-button-margin): New.
10248 (toolbar-button-relief): New.
10249 (build_desired_toolbar_string): Use margin and relief.
10250
10251 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10252 for FreeBSD.
10253 (note_mode_line_highlight): New.
10254 (note_mouse_highlight): Call it.
10255
102561998-10-31 Gerd Moellmann <gerd@gnu.org>
10257
10258 * s/freebsd.h (NARROWPROTO): New.
10259
10260 * xdisp.c (display_string): New parameter face_string.
10261 (display_mode_element): When displaying a symbol with a string
10262 value, use text properties from the symbol's default value, maybe.
10263
10264 * xrdb.c (x_load_resources): Add font defaults for menus and
10265 dialogs.
10266
102671998-10-30 Gerd Moellmann <gerd@gnu.org>
10268
10269 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10270
102711998-10-29 Gerd Moellmann <gerd@gnu.org>
10272
10273 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10274 produced for characters with codes < 32 under certain
10275 circumstances.
10276
10277 * xdisp.c (redisplay_window): Handle values of PT in front
10278 of invisible, intangible text.
427ec082 10279 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10280 displaying lines.
10281 (display_mode_element): Assign to glyphs written for a mode
10282 line spec `%x' as object the Lisp format string, as position
10283 the position of the `%' in that string.
10284 (display_string): If displaying a C string, optionally get
10285 the face to use from a Lisp string.
10286
10287 * xterm.c (expose_window_tree): Include mode line height.
10288
10289 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10290
102911998-10-27 Gerd Moellmann <gerd@gnu.org>
10292
10293 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10294 over mode line.
10295
102961998-10-26 Gerd Moellmann <gerd@gnu.org>
10297
10298 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10299
10300 * xdisp.c (redisplay_window): If mode line height has changed,
10301 arrange for a thorough immediate redisplay using the correct mode
10302 line height.
10303 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10304
10305 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10306 (CURRENT_MODE_LINE_HEIGHT): New.
10307 (DESIRED_MODE_LINE_HEIGHT): New.
10308
10309 * keyboard.c (make_lispy_event): Add string and string position
10310 info to mouse-click events.
10311 (read_key_sequence): Handle `local-map' property of mode line
10312 strings.
10313
10314 * keyboard.h (POSN_STRING): New.
10315
103161998-10-25 Gerd Moellmann <gerd@gnu.org>
10317
10318 * dispnew.c (mode_line_string): Mew.
10319
10320 * xterm.c (xt_action_hook): New.
10321 (x_create_toolkit_scroll_bar): Add action hook.
10322 (xm_scroll_callback): Implement dragging.
10323
10324 * keyboard.c (Qend_scroll): New.
10325 (scroll_bar_parts): Add it.
10326
10327 * termhooks.h (scroll_bar_end_scroll): New.
10328
10329 * xterm.c (XTread_socket): Bug fix.
10330
103311998-10-24 Gerd Moellmann <gerd@gnu.org>
10332
10333 * xdisp.c (redisplay_window): Finish scroll bars after
10334 redisplaying toolbar.
10335
10336 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10337 (syms_of_keyboard): Add Qbottom.
10338
10339 * termhooks.h (scroll_bar_to_top): New.
10340 (scroll_bar_to_bottom): New.
10341
10342 * xdisp.c (redisplay_window): Always resize toolbar window if
10343 auto_resize_toolbar_p is non-zero.
10344 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10345 (window_box): New.
10346 (window_box_height): New.
10347 (window_box_width): New.
10348 (window_box_left): New.
10349 (window_box_right): New.
10350 (window_box_edges): New.
10351
103521998-10-23 Gerd Moellmann <gerd@gnu.org>
10353
10354 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10355 XawScrollbarSetThumb in FreeBSD.
10356 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10357 to true.
10358
10359 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10360 is out of range.
10361
10362 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10363 (x_term_init): Initialize it.
10364
10365 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10366
10367 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10368 cursor.
10369
103701998-10-22 Gerd Moellmann <gerd@gnu.org>
10371
10372 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10373 differently when using toolkit scroll bars.
10374
10375 * xterm.c (x_send_scroll_bar_event): New.
10376 (x_scroll_bar_to_input_event): New.
10377 (xaw3d_scroll_callback): New.
10378 (xaw3d_jump_callback): New.
10379 (xm_scroll_callback): New.
10380 (x_toolkit_scroll_p): New.
10381 (XTread_socket): Handle scroll bar client message.
10382 (x_term_init): Initialize Xatom_Scrollbar.
10383 (x_scroll_bar_create): Set cursor.
10384 (xm_scroll_callback):
10385 (x_create_toolkit_scroll_bar): New.
10386 (x_set_toolkit_scroll_bar_thumb): New.
10387 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10388 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10389
10390 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10391
103921998-10-21 Gerd Moellmann <gerd@gnu.org>
10393
10394 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10395 (XTread_socket): Don't handle mouse button events for scroll bars
10396 if using toolkit scroll bars.
10397 (XTset_vertical_scroll_bar): Set thumb size and position for
10398 Athena scroll bar.
10399
10400 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10401
10402 * xterm.c (XTread_socket): Dispatch expose event to widget
10403 if using toolkit scroll bars.
10404 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10405 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10406 if using toolkit scroll bars.
10407 (x_scroll_bar_move): Handle tookit scroll bars.
10408
10409 * Makefile.in (LIBW): Use Xaw3d if present.
10410
10411 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10412 (HAVE_XAW3D): New.
427ec082 10413
26901792
DL
10414 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10415 (HAVE_XAW3D): New.
10416
427ec082 10417 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10418 right vertical scroll bar.
10419
104201998-10-20 Gerd Moellmann <gerd@gnu.org>
10421
10422 * xfns.c (xpm_load): Support reading XPM images from string
10423 buffers containing data in the same format as an XPM file.
10424 Support `:color-symbols'.
10425 (xpm_format): Add `:data'.
10426 (xpm_keyword_index): Add XPM_DATA.
10427 (syms_of_xfns): Add `:color-symbols'.
10428 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10429 (xpm_valid_color_symbols_p): New.
10430 (xpm_image_p): Call it.
10431
10432 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10433 attribute to the image if item is not enabled.
10434
10435 * xfns.c (x_laplace): New.
10436 (x_laplace_read_row): New.
10437 (x_laplace_write_row): New.
10438 (lookup_image): Handle common image attributes here. New
10439 attribute `:algorithm'.
10440
10441 * xfaces.c (clear_face_cache): Call clear_image_cache.
10442
10443 * xterm.c (x_inverted_image_mask): Removed.
10444 (x_draw_image_foreground_1): New.
10445 (x_draw_image_glyph_string): Draw images with mask to a temporary
10446 pixmap to reduce flickering.
10447
10448 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10449 (display_toolbar_line): Remove parameter `margin'.
10450
104511998-10-19 Gerd Moellmann <gerd@gnu.org>
10452
10453 * xdisp.c (toolbar_lines_needed): New.
10454 (auto-resize-toolbars): New.
10455
10456 * xfns.c (cache_image): Correct call to xrealloc.
10457
10458 * dispnew.c (Fset_toolbar_height): Removed.
10459
10460 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10461 FRAME_MENU_BAR_LINES.
10462
10463 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10464 instead of FRAME_MENU_BAR_LINES.
10465 (check_frame_size): Ditto.
10466
10467 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10468 instead of FRAME_MENU_BAR_LINES.
10469 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10470 (build_frame_matrix): Ditto.
10471 (change_frame_size_1): Ditto.
10472
10473 * frame.h (FRAME_TOOLBAR_LINES): New.
10474 (FRAME_TOP_MARGIN): New.
10475
10476 * window.c (struct save_window_data): Add frame_toolbar_lines.
10477 (Fset_window_configuration): Handle toolbar lines.
10478 (Fcurrent_window_configuration): Save toolbar lines.
10479
10480 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10481
10482 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10483
10484 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10485
10486 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10487 (x_set_toolbar_lines): New.
10488
10489 * keyboard.c (cmd_error_internal): Bug fix.
10490
10491 * xterm.c: Remove double include of syssignal.h.
10492
104931998-10-18 Gerd Moellmann <gerd@gnu.org>
10494
10495 * xterm.c (x_toolbar_item): New.
10496 (x_handle_toolbar_click): Use it.
10497 (note_toolbar_highlight): Use it.
10498
10499 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10500 and toolbar_items_vectors.
10501
10502 * xterm.c (help_echo): New.
10503 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10504 (x_set_glyph_string_gc): Handle them.
10505 (x_after_update_window_line): Don't do anything in pseudo-windows.
10506 (x_produce_image_glyph): Take image margin and face relief into
10507 account.
10508 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10509 (x_draw_glyph_string_background): Optimize case when face has
10510 relief.
10511 (x_setup_relief_color): Take frame instead of glyph string
10512 parameter.
10513 (x_draw_relief_rect): New.
10514 (x_draw_glyph_string_relief): Call it.
10515 (x_draw_image_glyph_string_foreground): Handle margin and image
10516 relief.
10517 (x_draw_image_glyph_string_background): Ditto.
10518 (expose_frame): Redraw toolbar window.
10519 (expose_window): Don't draw cursor for pseudo-windows.
10520 (x_y_to_hpos_vpos): Handle pseudo-windows.
10521 (frame_to_window_pixel_xy): New.
10522 (note_mouse_highlight): Call note_toolbar_highlight.
10523 (x_handle_toolbar_click): New.
10524 (note_toolbar_highlight): New.
10525 (show_mouse_face): Change int parameter `hl' to parameter of
10526 type enum draw_glyphs_face. Handle image highlighting.
10527 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10528 non-nil. Use x_handle_toolbar_click.
10529
10530 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10531
10532 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10533 IMAGE_BOOL_VALUE.
10534 (parse_image_spec): Handle them.
10535 (image_spec_value): Additional parameter found.
427ec082 10536 (free_image): Remove image from the vector `images' of the
26901792
DL
10537 image cache.
10538 (clear_image_cache): Additional parameter force_p.
10539 (Fclear_image_cache): New.
10540 (x_find_image_file): New.
10541 (xbm_load): Handle `:margin' and `:relief'. Use
10542 x_find_image_file.
10543 (xpm_load): Likewise.
10544 (pbm_load): Likewise.
10545 (jpeg_load): Likewise.
10546 (tiff_load): Likewise.
10547 (gif_load): Likewise.
10548
10549 * keyboard.c (Qhelp_echo): New symbol.
10550 (read_char): Handle `toolbar' and `help_echo' events.
10551 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10552 (make_lispy_event): Handle TOOLBAR_EVENT.
10553 (toolbar_items): New.
10554 (process_toolbar_item): New.
10555 (PROP): New.
10556 (init_toolbar_items): New.
10557 (append_toolbar_item): New.
10558 (read_char_x_menu_prompt): Handle `toolbar' event.
10559 (read_key_sequence): Ditto.
10560
10561 * xfaces.c (Qtoolbar): New.
10562 (realize_basic_faces): Realize `toolbar' face.
10563 (face_at_string_position): Remove parameter modeline_p, add
10564 base_face_id.
10565
10566 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10567 to read data.
10568
105691998-10-17 Gerd Moellmann <gerd@gnu.org>
10570
10571 * xdisp.c (init_iterator): Replace parameter modeline_p with
10572 base_face_id.
10573 (next_element_from_string): Call get_next_display_element
10574 recursively after handling text properties.
10575 (prepare_menu_bars): Call update_toolbar.
10576 (update_toolbar): New.
10577 (build_desired_toolbar_string): New.
10578 (display_toolbar_line): New.
10579 (redisplay_toolbar): New.
10580 (toolbar_item_info): New.
10581 (redisplay_window): Call redisplay_toolbar.
10582 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10583
10584 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10585 window.
10586 (clear_desired_matrices): Ditto.
10587 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10588 (free_glyphs): Free matrices of toolbar window.
10589 (update_frame): Update toolbar window.
10590 (change_frame_size_1): Take toolbar into account.
10591 (Fset_toolbar_height): New.
10592
10593 * dispextern.h (struct it): Remove member modeline_p, add
10594 base_face_id.
10595 (struct image): Add members relief and margin.
10596 (IMAGE_ASCENT): Include margin in height.
10597
105981998-10-14 Gerd Moellmann <gerd@gnu.org>
10599
10600 * xfns.c (Fclear_image_cache): New.
10601
10602 * xfaces.c (realize_basic_faces): Realize toolbar face.
10603 (face_at_string_position): Remove parameter modeline_p, add
10604 base_face_id.
10605
10606 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10607
106081998-10-13 Gerd Moellmann <gerd@gnu.org>
10609
10610 * keyboard.c (syms_of_keyboard): Intern `:help'.
10611
106121998-10-12 Gerd Moellmann <gerd@gnu.org>
10613
10614 * xterm.c (note_toolbar_highlight): New.
10615 (note_mouse_highlight): Call it.
10616
10617 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10618 (coordinates_in_window): Handle toolbar window.
10619
10620 * keyboard.c (toolbar_items): New.
10621 (process_toolbar_item): New.
10622 (parse_toolbar_item): New.
10623 (init_toolbar_items): New.
10624 (append_toolbar_item): New.
10625
10626 * dispextern.h (enum toolbar_item_idx): New.
10627 (enum toolbar_item_image): New.
10628
10629 * frame.h (struct frame): Add toolbar-related members.
10630
10631 * xfaces.c (face_at_string_position): Remove assertion that
10632 current_buffer == window's buffer. This is not the case when
10633 called for the toolbar window.
10634
10635 * frame.c (make_frame): Initialize toolbar members.
10636
10637 * alloc.c (mark_object): Mark toolbar data of frames.
10638
10639 * frame.h (struct frame): Add toolbar-related members
10640 toolbar_window, desired_toolbar_items, current_toolbar_items,
10641 desired_toolbar_string, current_toolbar_string,
10642 n_desired_toolbar_items, n_current_toolbar_items. Add
10643 window_height.
10644
10645 * xterm.c (x_after_update_window_line): Don't draw bitmap
10646 areas for pseudo-windows.
10647 (expose_frame): Handle toolbar window.
10648 (expose_window): Don't do cursor stuff for pseudo-windows.
10649
10650 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10651
106521998-10-11 Gerd Moellmann <gerd@gnu.org>
10653
10654 * frame.c (make_frame): Initialize toolbar_window.
10655
10656 * alloc.c (mark_object): Make the toolbar window.
10657
10658 * dispnew.c (update_frame): Update frame's toolbar_window.
10659 (clear_current_matrices): Likewise.
10660 (clear_desired_matrices): Likewise.
10661 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10662 (free_glyphs): Free the toolbar window and its matrices.
10663
10664 * frame.h (struct frame): Add toolbar_window.
10665
10666 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10667 with relief.
10668
106691998-10-10 Gerd Moellmann <gerd@gnu.org>
10670
427ec082 10671 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10672 window start is not in the range BEGV..ZV.
10673
106741998-10-09 Gerd Moellmann <gerd@gnu.org>
10675
10676 * xdisp.c (try_scrolling): Experimentally handle the case
10677 that scroll-preserve-screen-position is set to `always'.
10678
10679 * window.c (Vscroll_preserve_screen_position): Replacement for
10680 scroll_preserve_screen_position.
10681
106821998-10-08 Gerd Moellmann <gerd@gnu.org>
10683
10684 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10685 doesn't like it.
10686 * xdisp.c: Ditto.
10687
10688 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10689
106901998-10-06 Gerd Moellmann <gerd@gnu.org>
10691
427ec082 10692 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10693 i_byte when prompts are inserted into minibuffers.
10694
10695 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10696 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10697 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10698
106991998-10-04 Gerd Moellmann <gerd@gnu.org>
10700
10701 * xdisp.c (make_cursor_line_fully_visible): New.
10702 (try_scrolling): New.
10703 (redisplay_window): Move scrolling code to try_scrolling.
10704 (make_cursor_line_fully_visible): Handle case of window too small
10705 to show a single line.
10706 (redisplay_window): Case forced window start---use
10707 make_cursor_line_fully_visible.
10708 (redisplay_window): Case cursor movement via current matrix.
10709 If ending up on a partially visible line, make it fully visible
10710 instead of recentering.
10711 (try_scrolling): Additional parameter scroll_smoothly.
10712
10713 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10714
107151998-09-28 Gerd Moellmann <gerd@gnu.org>
10716
10717 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10718 instead of y-position for scroll-preserved-screen-position.
10719
107201998-09-07 Gerd Moellmann <gerd@gnu.org>
10721
10722 * dispnew.c (update_frame_line): If current row is not enabled,
10723 write the whole line.
10724
107251998-09-06 Gerd Moellmann <gerd@gnu.org>
10726
10727 * lisp.h (HAVE_FACES): Removed.
10728
10729 * dispextern.h (HAVE_FACES): Removed.
10730
10731 * config.in (HAVE_FACES): Removed.
10732
10733 * dispnew.c (HAVE_FACES): Removed.
10734
10735 * xdisp.c (HAVE_FACES): Removed.
10736
10737 * xfaces.c (HAVE_FACES): Removed.
10738
107391998-09-05 Gerd Moellmann <gerd@gnu.org>
10740
10741 * xdisp.c (init_iterator): If face_change_count is non-zero,
10742 free realized faces.
10743
10744 * xfaces.c (free_all_realized_faces): Make it externally visible.
10745 (Finternal_set_lisp_face_attribute): Increment
10746 windows_or_buffers_changed.
10747
10748 * dispnew.c (direct_output_for_insert): Give up if
10749 face_change_count is non-zero.
10750 (direct_output_forward_char): Ditto.
10751
10752 * xfaces.c (face_change_count): New.
10753
107541998-09-04 Gerd Moellmann <gerd@gnu.org>
10755
10756 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10757 of range.
10758
107591998-09-03 Gerd Moellmann <gerd@gnu.org>
10760
10761 * term.c (Ftty_display_color_p): New.
10762
107631998-09-02 Gerd Moellmann <gerd@gnu.org>
10764
10765 * xfaces.c (Ftty_defined_colors): New.
10766
10767 * xterm.c (x_produce_glyphs): Fix computation of
10768 contains_overlapping_glyphs_p for ASCII.
10769
10770 * dispnew.c (Fshow_cursor): Don't change cursor state while
10771 redisplaying.
10772 (direct_output_for_insert): If a glyph with lbearing or rbearing
10773 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10774
107751998-09-01 Gerd Moellmann <gerd@gnu.org>
10776
10777 * term.c (OUTPUT_IF): Make replacement text have statement form.
10778 (OUTPUT1_IF): Ditto.
10779 (TS_italic_mode, TS_end_italic_mode): Removed.
10780 (TS_bold_mode): Removed.
10781 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10782 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10783 (TS_enter_reverse_mode): New.
10784 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10785 (TN_magic_cookie_glitch_ul): New.
10786 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10787 (TS_exit_attribute_mode): New.
10788 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10789 (TS_set_foreground, TS_set_background): New.
10790 (reset_terminal_modes): Switch colors back to default.
10791 (write_glyphs): Turn face on before writing text, turn it off
10792 afterwards.
10793 (insert_glyphs): Ditto.
10794 (term_init): Initialize new terminal capability variables.
10795 (turn_on_face): Turn a face on.
10796 (turn_off_face): Turn a face off.
10797
10798 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10799 (GLYPH_CHAR): Ditto.
10800 (GLYPH_FACE): Ditto.
10801
10802 * xfaces.c (Vface_tty_color_alist): New.
10803 (face-register-tty-color): New.
10804 (face-clear-tty-colors): New.
10805
10806 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10807 (struct it): Remove member faces_p since we now always have faces.
10808
108091998-08-31 Gerd Moellmann <gerd@gnu.org>
10810
10811 * dispextern.h (struct face): Add tty appearance flags.
10812
10813 * xdisp.c (init_iterator): Always handle faces.
10814 (extend_face_to_end_of_line): Handle tty frames.
10815
10816 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10817 passed in.
10818
108191998-08-30 Gerd Moellmann <gerd@gnu.org>
10820
10821 * xfaces.c (realize_default_face): Use empty strings to indicate
10822 that the face should use the default foreground/background
427ec082 10823 color of the terminal. Fill font-related attributes with
26901792
DL
10824 appropriate values for tty frames.
10825
10826 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10827
10828 * xfaces.c (realize_default_face): If face `default' is not
10829 yet known, create it.
10830
10831 * frame.c (make_terminal_frame): Call init_frame_faces
10832 unconditionally.
10833
10834 * xfaces.c (init_frame_faces): Make it work for tty frames.
10835 (free_frame_faces): Ditto.
10836 (clear_face_cache): Ditto.
10837 (recompute_basic_faces): Ditto.
10838 (Fframe_face_alist): Ditto.
10839 (free_realized_face): Ditto.
10840 (prepare_face_for_display): Ditto.
10841 (clear_face_gcs): Ditto.
10842 (lookup_face): Ditto.
10843 (smaller_face): Ditto.
10844 (realize_default_face): Ditto.
10845 (realize_face): Ditto.
10846 (realize_face): Dispatch to functions depending on the frame type.
10847 (realize_x_face): X way of realizing faces.
10848 (realize_tty_face): TTY way of realizing faces.
10849
108501998-08-29 Gerd Moellmann <gerd@gnu.org>
10851
10852 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10853 compute it instead.
10854 (lookup_face): Remove local variable unibyte_registry.
10855
108561998-08-22 Gerd Moellmann <gerd@gnu.org>
10857
10858 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10859 1 pixel longer.
10860
427ec082 10861 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10862 of face in buffer.
10863
10864 * editfns.c (make_buffer_string_both): If prompt in buffer,
10865 prevent start > end.
10866
10867 * indent.c (Fvertical_motion): Set current_buffer to window's
10868 buffer if it isn't already.
10869
108701998-08-21 Gerd Moellmann <gerd@gnu.org>
10871
10872 * dispextern.h (GLYPH_DEBUG): Use default 0.
10873
10874 * xdisp.c (it_props): New member `smaller'.
10875 (init_iterator): Initialize it.
10876 (Qsmaller): New.
10877 (push_it): Save value of `smaller' value on the stack.
10878 (pop_it): Restore `smaller' from the stack.
10879 (handle_smaller_prop): New.
10880 (handle_face_prop): Use `smaller' text property to select a
10881 suitable face.
10882
10883 * dispextern.h (SMALLER_PROP_IDX): New.
10884 (struct it): Add member `smaller'.
10885
10886 * xfaces.c (smaller_face): New.
10887
10888 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10889
10890 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10891 total pixel width of window differently.
10892
10893 * xdisp.c (init_iterator): Compute width of mode line differently.
10894
10895 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10896 of bitmap areas.
10897
10898 * window.c (Fsplit_window): Include width of bitmap areas in
10899 window width.
10900 (window_internal_width): Subtract width of bitmap areas from
10901 total width.
10902
109031998-08-18 Gerd Moellmann <gerd@gnu.org>
10904
10905 * xdisp.c: Functions reordered for better readability.
10906
10907 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10908 lbearing.
10909 (update_window_tree): Parameter no_scrolling_p removed.
10910 (update_single_window): Ditto.
10911
10912 * xterm.c (x_get_char_font_and_encoding): Renamed to
10913 x_get_char_face_and_encoding.
10914
10915 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10916 if end of current row reached.
10917
10918 * xterm.c (x_get_glyph_face_and_encoding): New.
10919 (x_get_glyph_overhangs): Call it.
10920
10921 * xdisp.c (Qshow_trailing_whitespace): New.
10922 (Qtrailing_whitespace): New.
10923 (enum prop_handled): New.
10924 (struct props, it_props): New.
10925 (next_overlay_change): New. Works like Fnext_overlay_change
10926 but doesn't use xmalloc.
10927 (handle_stop): Restructured.
10928 (face_before_or_after_it_pos): Case iteration over a string: fix
10929 handling of face before current position.
10930
109311998-08-16 Gerd Moellmann <gerd@gnu.org>
10932
10933 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10934 reallocation matrix if fonts_changed_p.
10935 (update_text_area): Handle glyphs with lbearing.
10936
109371998-08-14 Gerd Moellmann <gerd@gnu.org>
10938
10939 * xdisp.c (struct props): New.
10940 (it_props): New.
10941 (compute_prop_info): New.
10942 (handle_stop): New.
10943
10944 * textprop.c (validate_interval_range): Make it externally
10945 visible.
10946
10947 * dispnew.c (direct_output_for_insert): Remove calls
10948 to compute_stop_pos.
10949
10950 * dispextern.h (struct it): Remove check_charpos,
10951 next_overlay_pos. Add what_changes.
10952
109531998-08-10 Gerd Moellmann <gerd@gnu.org>
10954
10955 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10956
10957 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10958 face_default_registry instead.
10959
10960 * syntax.c (scan_sexps_forward): Set up syntax table before
10961 jumping to initial state label.
10962
109631998-08-09 Gerd Moellmann <gerd@gnu.org>
10964
10965 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10966 >= ZV specially.
10967
109681998-08-08 Gerd Moellmann <gerd@gnu.org>
10969
10970 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10971 ends up in partially visible row, try to scroll. Case forced
10972 window start---handle windows not tall enough to show a single
10973 line.
10974
10975 * window.h (struct window): Member dy renamed vscroll.
10976
10977 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10978 fonts.
10979 (x_draw_stretch_glyph_string): Set clipping if using GC that
10980 hasn't set it yet.
10981
10982 * xdisp.c (redisplay_window): Case forced window start -
10983 don't let cursor end on partially visible row. Use desired
10984 matrix to find a suitable PT if it doesn't appear.
10985 (decode_mode_spec): Merged with 20.2.97.
10986 (try_window_reusing_current_matrix): Give up if old or
10987 new display is vscrolled.
10988 (redisplay_window): Reset vscrolling if forced window start,
10989 or if recentering.
10990
109911998-08-06 Gerd Moellmann <gerd@gnu.org>
10992
10993 * xfaces.c (realize_default_face): Use the fontset name instead of
10994 the alias for the family attribute of the default face because we
10995 can't easily determine a good alias from fontset-alias-alist.
10996 (face_fontset): Use Fquery_fontset to find the fontset.
10997 (font_list): Additional pattern parameter.
10998 (try_font_list): Ditto.
10999 (set_lface_from_font_name): Set face family from font foundry
11000 and family.
11001 (font_list): If family contains a hyphen, build pattern differently.
11002
110031998-08-05 Gerd Moellmann <gerd@gnu.org>
11004
11005 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
11006 changed instead of setting the frame garbaged.
11007
11008 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
11009 all attribute values. This is wrong if values are unspecified,
11010 i.e. nil.
11011
11012 * xdisp.c (try_window_id): Give up if window start changed.
11013
11014 * xfaces.c (make_realized_face): Store registry as Lisp object.
11015 (load_face_font_or_fontset): Compute registry of a face
11016 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
11017 possible.
11018
11019 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
11020 differently.
11021
11022 * alloc.c (mark_face_cache): Mark the registry member of faces.
11023
11024 * dispextern.h (struct face): Make registry a Lisp string.
11025
110261998-08-04 Gerd Moellmann <gerd@gnu.org>
11027
11028 * xterm.c (x_get_char_font_and_encoding): Additional parameter
11029 multibyte_p. Handle unibyte text.
11030 (x_append_glyph): Set the multibyte_p flag of glyphs.
11031 (x_produce_image_glyph): Ditto.
11032 (x_append_stretch_glyph): Ditto.
11033 (x_produce_glyphs): Handle unibyte text like ASCII.
11034
11035 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
11036 stack.
11037 (pop_it): Restore it.
11038 (face_before_or_after_it_pos): Handle the case that the string or
11039 buffer is unibyte.
11040 (get_overlay_strings): Set the multibyte flag of the iterator if
11041 the new overlay string is multibyte.
11042 (get_glyph_property): Likewise.
11043 (get_next_display_element): Don't check for charset changes in
11044 unibyte text.
11045 (append_space): Compute face differently for unibyte text.
11046 (extend_face_to_end_of_line): Don't return quickly if face has
11047 stipple.
11048
11049 * xfaces.c (load_face_font_or_fontset): Store registry and
11050 encoding of the font in the registry member of the face.
11051 (make_realized_face): Additional parameter `registry'.
11052 (free_realized_face): Free the registry of a realized face.
11053 (face_suitable_for_charset_p): Function form of the macro
11054 with the same name in uppercase.
11055 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
11056 (choose_face_font): New parameter unibyte_registry.
11057 (choose_face_fontset_font): Ditto.
11058 (realize_default_face): Remember the registry and encoding of
11059 the specified frame font in Vx_unibyte_registry_and_encoding.
11060 (face_at_buffer_position): Handle unibyte.
11061 (face_at_string_position): Likewise.
427ec082 11062 (realize_face): New parameter unibyte_registry.
26901792
DL
11063 (compute_char_face): Handle the unibyte case.
11064
11065 * dispextern.h (struct glyph): Add bit multibyte_p.
11066 (struct face): New member registry holding the registry and
11067 encoding of the X font of the face.
11068 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
11069 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
11070 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
11071 text.
11072 (struct iterator_stack_entry): Add multibyte_p.
11073
11074 * xdisp.c (string_pos): Use string_char_to_byte.
11075 (char_charset): Removed.
11076
110771998-08-03 Gerd Moellmann <gerd@gnu.org>
11078
11079 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11080 rectangle for a block cursor over an image without a mask.
11081 (x_stretch_block_cursor): Added. Non-zero means don't draw
11082 a block cursor over a stretch as wide as that stretch.
11083 (x_draw_stretch_glyph_string): Use it.
11084 (x_draw_hollow_cursor): Ditto.
11085
11086 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11087 (read_minibuf): Add front-sticky text property for prompt.
11088
11089 * xdisp.c (char_charset): Return charset of a character,
11090 depending on whether or not multi-byte characters are enabled.
11091
11092 * xfaces.c (Fset_face_charset_registry): Removed.
11093 (x_charset_registry): Determine registry from charset plist.
11094
110951998-08-02 Gerd Moellmann <gerd@gnu.org>
11096
11097 * xdisp.c (get_next_display_element): Don't check for charset
11098 changes if multi-byte characters are not enabled.
427ec082 11099
26901792 11100 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11101 redisplay interface.
26901792
DL
11102 * keyboard.c (detect_input_pending_run_timers): Likewise.
11103
11104 * dispextern.h (produce_*glyphs_hook): Removed.
11105 * term.c (produce_*glyphs): Ditto.
11106 (cursor_to): Remove pixel position parameters.
11107
11108 * dispnew.c: Remove hooks for window-based redisplay, introduce
11109 a redisplay interface structure.
11110
11111 * xterm.c (x_per_char_metric): Return default char metrics if per
11112 char metric exists but contains a zero width. Adobe Courier seems
11113 to contain such characters.
11114
11115 * xdisp.c (compute_line_metrics): Compute the width of rows
11116 without stopping at glyphs with zero width.
11117
111181998-08-01 Gerd Moellmann <gerd@gnu.org>
11119
11120 * xdisp.c (display_mode_line): If nothing was displayed at all,
11121 display a space.
11122 (hscroll_window_tree): Don't subtract 1 from target point if equal
11123 to ZV and window is not the selected window.
11124
11125 * dispnew.c (check_matrix_invariants): Remove check for window
11126 start at BEGV or after newline. This happens in rare cases
11127 intentionally.
11128
111291998-07-31 Gerd Moellmann <gerd@gnu.org>
11130
11131 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11132 (syms_of_xfaces): Add Vface_default_registry.
11133 (x_charset_registry): Use it.
11134
11135 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11136 (redisplay_window): Use it.
11137
11138 * dispnew.c (update_text_area): Handle lbearing of deleted text
11139 by backing up one character.
11140
111411998-07-30 Gerd Moellmann <gerd@gnu.org>
11142
427ec082 11143 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11144 decide to do nothing.
11145
11146 * xfaces.c (face_at_string_position): Additional parameter
11147 mode_line_p. If non-zero, merge with the mode line face
11148 instead of the default face.
11149 * dispextern.h (struct it): Add mode_line_p.
11150 * xdisp.c (init_iterator): Set it.
11151 (compute_face_in_string): Use it.
11152 (face_before_or_after_it_pos): Handle strings.
11153 (get_next_display_element): Don't look for relief end in C strings.
11154 (next_element_from_string): Deliver string position instead of
11155 buffer position.
11156
11157 * xterm.c (x_flush): Flush X output buffer.
11158 (XTflash): Use it.
11159
11160 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11161 Allow strings as face names.
11162
11163 * xfns.c (forall_images_in_image_cache): Check that frame is
11164 alive.
11165
11166 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11167 it's also called from x_destroy_window. Since this function is
11168 called from X, freeing stuff allocated with xmalloc is dangerous
11169 here, anyway.
11170
11171 * xfaces.c (free_realized_faces): Don't clear current matrices
11172 of a frame being destroyed.
11173
427ec082 11174 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11175 Fset_window_buffer.
11176
11177 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11178 with an additional argument specifying whether or not hooks may
11179 be called.
11180 (Fset_window_buffer): Call it.
11181
11182 * dispnew.c (clear_desired_matrices): Check that frame has
11183 a valid root window before clearing matrices in the window tree.
11184 (clear_current_matrices): Ditto.
11185 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11186 vchild are valid windows if not nil.
11187
11188 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11189 for :inverse-video.
11190 (Finternal_set_lisp_face_attribute): Ditto.
11191 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11192 (Finternal_get_lisp_face_attribute): Ditto.
11193 (Finternal_lisp_face_attribute_values): Ditto.
11194 (syms_of_xfaces): Define the symbol `:reverse-video'.
11195
11196 * xdisp.c (get_glyph_property): Renamed from
11197 fill_iterator_from_glyph_property.
11198 (next_element_from_buffer): Handle case that no `glyph' property
11199 was found correctly.
11200 (display_line): Extend face to end of line only if we have faces.
11201
112021998-07-29 Gerd Moellmann <gerd@gnu.org>
11203
11204 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11205 additional window argument.
11206
11207 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11208 set_iterator_to_previous_visible_line_start.
11209 (reseat_at_next_visible_line_start): Likewise.
11210 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11211 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11212 (compute_face_in_buffer): Renamed from
11213 compute_face_at_iterator_position.
11214 (compute_face_in_string): Renamed from
11215 compute_face_at_iterator_string_position.
11216 (get_space_width): Renamed from get_iterator_space_width.
11217 (next_overlay_string): Renamed from
11218 set_iterator_to_next_overlay_string.
11219 (get_overlay_strings): Renamed from
11220 get_overlay_strings_at_iterator_position.
11221 (restore_overlay_strings): Renamed from
11222 setup_overlay_strings_from_glyph_pos.
11223 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11224 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11225 (init_to_row_start): Renamed from init_iterator_to_row_start.
11226 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11227
11228 * xterm.c: Merge with 20.2.97.
11229 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11230
11231 * dispextern.h (struct glyph): Replace text_pos position with
11232 simple charpos.
11233
11234 * xdisp.c (this_line_start_pos): Use struct text_pos.
11235 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11236 (enum move_it_result): Renamed from move_iterator_result.
11237 (string_pos_nchars_ahead): Compute text_pos in a string from a
11238 known text_pos plus a character delta.
11239 (string_pos): Compute text_pos in string from charpos.
11240 (c_string_pos): Likewise for a C string.
11241 (number_of_chars): Return number of characters in a possibly
11242 multi-byte C string.
11243 (check_it): Renamed from check_iterator. Check that charpos and
11244 bytepos are in sync.
11245 (push_it): Renamed from save_iterator_settings.
11246 (pop_it): Renamed from restore_iterator_settings.
11247 (move_it_.*): Renamed from move_iterator_.*.
11248 (charset_at_position): Take charpos/bytepos into account.
11249 (back_to_previous_line_start): Set iterator to previous line start.
11250 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11251 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11252 move_iterator_previous_visible_line_start.
11253 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11254 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11255 Handle charpos/bytepos.
11256 (compute_face_at_iterator_position): Handle charpos/bytepos.
11257 (compute_face_at_iterator_string_position): Likewise.
11258 (get_iterator_space_width): Likewise.
11259 (load_overlay_strings): Likewise.
11260 (get_overlay_strings_at_iterator_position): Likewise.
11261 (reseat_iterator): Take a text_pos position argument.
11262 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11263 bytepos.
11264 (init_iterator): Take additional bytepos parameter.
11265 (reseat_iterator_to_string): Handle charpos/bytepos.
11266 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11267 (next_element_from_string): Handle charpos/bytepos.
11268 (next_element_from_c_string): Likewise.
11269 (fill_iterator_from_glyph_property): Likewise.
11270 (next_element_from_buffer): Likewise.
11271 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11272 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11273 (move_it_to): Likewise.
11274 (move_it_vertically_backward): Likewise.
11275 (move_it_vertically): Likewise.
11276 (move_it_by_lines): Likewise.
11277 (hscroll_window_tree): Likewise.
11278 (redisplay_internal): Likewise.
11279 (set_cursor_from_row): Likewise.
11280 (redisplay_window): Likewise.
11281 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11282 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11283 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11284 (try_window_id): Handle charpos/bytepos.
11285 (Ftrace_redisplay_toggle): Return Qnil.
11286 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11287 (insert_left_trunc_glyphs): Likewise.
11288
11289 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11290 do a real merge).
11291 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11292 (increment_glyph_row_buffer_positions): Ditto.
11293 (copy_glyph_row_contents): Ditto.
11294 (check_matrix_invariants): Add additional checks for charpos/
11295 bytepos consistency.
11296 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11297 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11298 `direction-reversed' in #if 0.
11299
11300 * xterm.h: Merge with 20.2.97.
427ec082 11301
26901792
DL
11302 * frame.h: Merge with 20.2.97.
11303
11304 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11305
11306 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11307 start.
11308 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11309 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11310 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11311 (struct it): Various members renamed from .*pos to .*charpos.
11312 (IT_CHARPOS): Access current buffer character position of an
11313 iterator.
11314 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11315 (IT_STRING_CHARPOS): Access current string character position of
11316 an iterator.
11317 (IT_STRING_BYTEPOS): Access current string byte position of
11318 an iterator.
11319 (globally): Add function prototypes from 20.2.97.
11320
11321 * everywhere: Use P_ instead of PROTO for function prototypes
11322 because everyone else seems to use P_.
11323
11324 * dispextern.h (struct text_pos): Structure describing a charpos/
11325 bytepos position in text.
11326 (BYTEPOS): Access the byte position part of a text_pos.
11327 (CHARPOS): Likewise for the character position.
11328 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11329 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11330 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11331 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11332 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11333 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11334 for buffer and string positions.
11335 (struct glyph): Use text_pos.
11336 (struct it): Renamed from display_iterator. Use text_pos.
11337
113381998-07-23 Gerd Moellmann <gerd@gnu.org>
11339
11340 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11341 pixmap.
11342
113431998-07-21 Gerd Moellmann <gerd@gnu.org>
11344
11345 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11346 * xterm.c (x_draw_row_bitmaps): Use it.
11347 * dispnew.c (row_equal_p): Ditto.
11348 (update_window_line): Ditto.
11349
11350 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11351 flag of images.
11352
11353 * dispextern.h (struct image): Removed member loading_failed_p.
11354 It's probably better to have the chance to try to load an image
11355 again.
11356
113571998-07-20 Gerd Moellmann <gerd@gnu.org>
11358
11359 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11360 at ZV if `indicate-zv-lines' is non-nil.
11361 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11362
11363 * dispnew.c (row_equal_p): Compare displays_text_p and
11364 ends_at_zv_p flags of rows.
11365 (update_window_line): Ditto.
11366
11367 * buffer.h (struct buffer): New member indicate_zv_lines.
11368
11369 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11370 (init_buffer_once): New variable `default-indicate-zv-lines'.
11371 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11372
11373 * xdisp.c (redisplay_window): Don't try moving the cursor
11374 if current glyph row w->last_cursor.vpos isn't enabled.
11375
11376 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11377
11378 * window.c (Fset_window_vscroll): Allow only negative scroll
11379 values. Others don't seem to make sense, and this way it's easy
11380 to restore a vscroll of zero.
11381
11382 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11383 allocated.
11384 (x_draw_image_glyph_string_background): Don't clip if pixmap
11385 could not be created.
11386
11387 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11388 be created.
11389 (xbm_load): Ditto.
11390 (gs_load): Ditto.
11391
11392 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11393 glyphs into account.
11394
11395 * xfaces.c (realize_default_face): Don't set font family of
11396 the default face from the fontset alias name for `fontset-startup'.
11397
11398 * xfns.c (gs_load): Pass frame's pixel foreground and background
11399 color to the Lisp loader.
11400
114011998-07-19 Gerd Moellmann <gerd@gnu.org>
11402
11403 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11404 libtiff34.
11405
11406 * configure.in (--with-tiff, HAVE_TIFF): Added.
11407
11408 * config.in (HAVE_TIFF): Added.
11409
11410 * Makefile.in (LIBTIFF): Added.
11411
11412 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11413
11414 * Makefile.in (LIBJPEG): Added.
11415
11416 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11417 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11418 jpeglib.h.
11419
427ec082 11420 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11421 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11422 configure must be run with `--x-includes=/usr/X11R6/include:
11423 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11424
114251998-07-18 Gerd Moellmann <gerd@gnu.org>
11426
11427 * config.in (HAVE_JPEG): Added.
11428
11429 * xfns.c (ct_init): Initialize color table used to map RGB colors
11430 from images to X pixel colors.
11431 (ct_free): Free color table.
11432 (ct_lookup): Look an RGB color up.
11433 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11434 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11435 image specification.
11436 (pbm_scan_number): Scan a decimal ASCII number from a file.
11437 (pbm_load): Load a PPM image.
11438
11439 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11440 necessary. Take canonical character units as parameter.
11441 (Fwindow_vscroll): Return canonical character units.
11442
11443 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11444 w->dy to display height for which glyph rows must be allocated.
11445
114461998-07-17 Gerd Moellmann <gerd@gnu.org>
11447
11448 * xfaces.c (face_at_string_position): Merge in region face
11449 so that it won't overwrite the font in the region.
11450 (face_at_buffer_position): Ditto.
11451 (realize_basic_faces): Don't realize region face.
11452
11453 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11454
11455 * xterm.c (x_set_glyph_string_background_width): Don't let
11456 cursor face extend to end of line.
11457
11458 * xdisp.c (append_space): If adding space of default face,
11459 make sure glyph ist produced with right face.
11460
11461 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11462 background color of a glyph string.
11463 (x_draw_glyph_string_background): Call it.
11464 (x_draw_glyph_string_bg_rect): Ditto.
11465 (x_draw_stretch_glyph_string): Ditto.
11466
114671998-07-15 Gerd Moellmann <gerd@gnu.org>
11468
11469 * xdisp.c (init_iterator): Initialize it->current_y to the
11470 window's vscroll w->dy.
11471
11472 * window.c (Fwindow_vscroll): Return number of pixels window
11473 is vscrolled smoothly.
11474 (Fset_window_vscroll): Set the number.
11475
11476 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11477 to_pos in truncated part of a line.
11478
114791998-07-14 Gerd Moellmann <gerd@gnu.org>
11480
11481 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11482 doesn't fit on the line, truncate it, despite truncate_lines nil.
11483 (display_line): Ditto.
11484
11485 * xfns.c: Experimental support for Ghostscript images.
11486
11487 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11488 (XTread_socket): React on events from Ghostscript.
11489 (expose_frame): If width or height are zero, redraw entire frame.
11490 (XTread_socket): Call expose_frame after receiving event from
11491 Ghostscript.
11492
11493 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11494 for Ghostscript support.
11495
11496 * xdisp.c (redisplay_internal): Return quickly if called
11497 recursively.
11498
11499 * alloc.c (NSTATICS): Increased to 1024.
11500
115011998-07-08 Gerd Moellmann <gerd@gnu.org>
11502
11503 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11504 iterator's glyph row.
11505 (x_produce_stretch_glyph): Call it.
11506 (x_produce_glyphs): Handle `space-width' property; call
11507 x_append_stretch_glyph.
11508
11509 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11510 property.
11511 (get_iterator_space_width): Determine value of `space-width'
11512 property at iterator's position.
11513 (reseat_iterator): Call it.
11514 (next_element_from_string): Ditto.
11515 (next_element_from_buffer): Ditto.
11516 (init_iterator): Initialize space_width of iterator.
11517 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11518 moved, but cursor blinks.
11519 (redisplay_internal): Set w->last_cursor_off_p after update.
11520
11521 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11522 (struct display_iterator): Add new member space_width.
11523
11524 * window.h (struct window): Add last_cursor_off_p.
11525
115261998-07-07 Gerd Moellmann <gerd@gnu.org>
11527
11528 * Saved.
11529
11530 * window.c (Fpos_visible_in_window_p): Case window not up to
11531 date---return nil if iterator hasn't reached position.
11532
115331998-07-06 Gerd Moellmann <gerd@gnu.org>
11534
11535 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11536 overlays have changed.
11537 (redisplay_window): Case cursor movement. Don't try it if
11538 last_cursor.vpos is out of range.
11539
11540 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11541 way, the display optimization for the line containing the cursor
11542 is used more frequently, esp. when we have a blinking cursor.
11543 (display_line): Don't set this_line_.* variables.
11544
11545 * xterm.c (x_redraw_cursor): Removed.
11546 (x_display_and_set_cursor): Set cursor type depending on
11547 cursor_off_p flag of window.
11548
11549 * dispnew.c (redraw_cursor_hook): Removed.
11550 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11551 member of the selected window.
11552
11553 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11554
11555 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11556 Return glyph area under x/y.
11557 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11558
11559 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11560 after redisplaying.
11561
115621998-07-05 Gerd Moellmann <gerd@gnu.org>
11563
11564 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11565 are all outside of a line of text.
11566 (redisplay_internal): Use it.
11567
115681998-06-30 Gerd Moellmann <gerd@gnu.org>
11569
11570 * xdisp.c (next_element_from_buffer): After skipping over
11571 invisible text, look for the `glyph' property.
11572 (set_iterator_stop_pos): Ignore check positions in front
11573 of an iterator's current position.
11574
11575 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11576 anymore or which are marked as not having valid contents.
11577
11578 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11579 realized faces if new attribute value is equal to old value.
11580
115811998-06-29 Gerd Moellmann <gerd@gnu.org>
11582
11583 * xfaces.c (Finternal_make_lisp_face): Increment
11584 lface_id_to_name_size when lface_id_to_name is reallocated.
11585
115861998-06-27 Gerd Moellmann <gerd@gnu.org>
11587
11588 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11589 as minimum of endpos and overlay_pos.
11590 (load_overlay_strings): Set next_overlay_pos of iterator to
11591 -1 if we don't have to check for more overlay strings.
11592
115931998-05-09 Gerd Moellmann <gerd@gnu.org>
11594
11595 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11596 do anything if iterator is at ZV because scan_buffer doesn't
11597 work otherwise.
11598
11599 * xterm.c (x_encode_char): Inline it.
11600 (x_get_char_font_and_encoding): Simplified.
11601 (x_per_char_metric): Inline it.
11602
11603 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11604
11605 * xdisp.c (get_next_display_element): Check for end of relief
11606 face moved here from next_element_from_buffer.
11607
11608 * xterm.c (x_produce_image_glyph): Add relief thickness.
11609 (x_produce_stretch_glyph): Ditto.
11610
116111998-05-08 Gerd Moellmann <gerd@gnu.org>
11612
11613 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11614 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11615
11616 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11617 from a glyph property.
11618 (x_produce_glyphs): Use it.
11619
11620 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11621
427ec082 11622 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11623 in text area.
11624 (x_produce_glyphs): Ditto.
11625
427ec082 11626 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11627 marginal areas.
11628
427ec082 11629 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11630 background of an image glyph string.
427ec082 11631 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11632 the background of a glyph string.
11633 (x_draw_image_glyph_string_foreground): Draw the foreground of
11634 an image glyph string.
11635 (x_inverted_image_mask): Return the inverted mask of an image.
11636
11637 * xfns.c (x_draw_image): Removed.
11638
11639 * dispextern.h (struct image_type): Remove drawing function.
11640
11641 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11642
11643 * xdisp.c (get_next_display_element): In marginal areas, translate
11644 newlines, tabs, etc. like normal control characters.
11645
11646 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11647 and color.
11648 (free_realized_faces): Set frame garbaged.
11649
11650 * xfaces.c (syms_of_xfaces): Add defsubr for
11651 internal-lisp-face-attribute-values.
11652
116531998-05-07 Gerd Moellmann <gerd@gnu.org>
11654
11655 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11656 full.
11657 (x_produce_image_glyph): Set IT->nglyphs to 1.
11658 (x_draw_image_glyph_string): Use inverted mask to draw background.
11659
11660 * dispextern.h (struct image_type): Additional clipping rect
11661 parameters for drawing functions.
11662
427ec082 11663 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11664 a glyph string.
11665 (x_draw_image_glyph_string): Use it and pass the rect to the
11666 image drawing function.
11667
11668 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11669 first character with `glyph' property as image position. Set
11670 iterator back to that position as long as the image hasn't been
11671 consumed with set_iterator_to_next.
11672 (set_cursor_from_row): Accept when glyph with given position is
11673 not found in the row. Set cursor x to end of line in that case,
11674 so that we can hscroll.
11675 (redisplay_internal): Correct computation of delta by which
11676 positions have changed in redisplay optimization for cursor
11677 row of selected window.
11678
11679 * xdisp.c (display_line): Remove start_pos.
427ec082 11680 (display_line): Fix bug preventing display optimization for
26901792
DL
11681 cursor line of selected window.
11682 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11683 instead.
11684
11685 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11686 (update_text_area): Take glyph pixel width into account
11687 when trying to find a resync point.
11688 (row_equal_p): Compare glyphs in all areas.
11689
116901998-05-06 Gerd Moellmann <gerd@gnu.org>
11691
11692 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11693
11694 * dispextern.h (struct glyph_row): Use unsigned hash value.
11695
11696 * xdisp.c (display_line): Simplified and made faster by setting
11697 the cursor with set_cursor_from_row.
11698 (set_cursor_from_row): Handle rows of desired matrix.
11699
117001998-05-05 Gerd Moellmann <gerd@gnu.org>
11701
11702 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11703 with type != CHAR_GLYPH.
11704 (fill_iterator_from_glyph_property): Return void. Set
11705 method to next_element_from_image.
11706 (next_element_from_image): Dummy function for delivering a
11707 single image id.
11708 (set_iterator_to_next): Add method next_element_from_image.
11709 (redisplay_window): When recentering, and cursor vpos is -1
11710 after display, assume middle of window is in first line displayed
11711 in window, and display again.
427ec082 11712 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11713 the position of the first character having the glyph property.
11714
11715 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11716 * xfns.c (x_draw_image): Use it.
11717 * xterm.c (x_produce_image_glyph): Use it.
11718
11719 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11720
11721 * Makefile.in: Extraneous #define of LIBXPM removed.
11722
11723 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11724 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11725 stretch glyph.
11726 (x_compute_glyph_string_overhangs): Compute overhangs only
11727 for text glyph strings.
11728 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11729 (x_draw_glyph_string): Call it.
11730
11731 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11732 (struct glyph): Add sub-structure for stretchable glyphs.
11733 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11734
11735 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11736 #ifdef HAVE_FACES.
11737
11738 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11739
11740 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11741 setup_iterator_from_glyph_property. Don't do it for terminal
11742 frames.
11743
11744 * xterm.c (x_produce_image_glyph): Produce glyph for image
11745 that can't be loaded.
11746
11747 * xfns.c (lookup_image): If image can't be loaded, set its
11748 width and height so that we can draw a rectangle.
11749 (x_draw_image): Draw a rectangle for images that don't have
11750 a pixmap.
11751 (make_image): Set hash value.
11752 (image_spec_equal_p): Use image_spec_value.
11753
11754 * xterm.c (expose_frame): Don't try to redraw if basic faces
11755 haven't benn realized yet.
427ec082 11756 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11757 is not as tall as row.
11758
117591998-05-04 Gerd Moellmann <gerd@gnu.org>
11760
11761 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11762 (LIBX)[HAVE_X11]: Add LIBXPM.
11763
11764 * xfns.c (xpm_image_p): Implementation of image type functions
11765 for XPM.
11766 (xpm_load): Ditto.
11767
11768 * dispextern.h (struct image): Add mask pixmap for XPM.
11769
11770 * xfns.c (x_draw_image): Handle images with masks.
11771
11772 * configure.in: --with-xpm added. Code detecting -lXpm added.
11773
11774 * config.in: Add HAVE_XPM.
11775
11776 * xfns.c (xbm_draw): Removed.
11777 (x_draw_image): Default implementation for drawing images.
11778 (xbm_keyword_index): Remove XBM_DEPTH.
11779 (xbm_format): Remove `:depth'.
11780 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11781 (xbm_load_image_from_file): Added for the same reason.
26901792 11782
427ec082 11783 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11784 glyph string.
11785 (x_draw_image_glyph_string): Pass ybase to image draw function.
11786
11787 * xfns.c (make_image): Set default baseline.
11788
11789 * xterm.c (x_produce_image_glyph): Compute ascent of image
11790 from its height and baseline percentage.
11791
11792 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11793 (xbm_format): Add description for `:baseline'.
11794 (xbm_image_spec_from_file): Add keywords from original spec to
11795 result.
11796 (xbm_load): Set baseline of image.
11797 (xbm_image_p): Check range for baseline.
11798
11799 * dispextern.h (struct image): Add member baseline.
11800
11801 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11802
11803 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11804
11805 * xdisp.c (get_next_display_element): Do character translations
11806 only if delivering characters.
11807
118081998-05-03 Gerd Moellmann <gerd@gnu.org>
11809
427ec082 11810 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11811 DISP_CHARACTER.
11812
11813 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11814 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11815
118161998-05-02 Gerd Moellmann <gerd@gnu.org>
11817
11818 * xfns.c (prepare_image_for_display): Set image timestamp.
11819 (clear_image_cache): Clear images if image's timestamp +
11820 Vimage_eviction_seconds is > now.
11821 (syms_of_xfns): New variables image-eviction-seconds, and
11822 image-types.
11823 (add_image_format): Add to image-types.
11824 (xbm_load): Support new image spec format.
11825 (x_alloc_image_color): Allocate a color for an image.
11826
11827 * dispextern.h (struct image): Add timestamp.
11828
11829 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11830 vectors of bool-vectors.
11831 (xbm_lisp_object_from_file): Build new format image spec.
11832
118331998-05-01 Gerd Moellmann <gerd@gnu.org>
11834
11835 * xfaces.c (init_frame_faces): Initialize image cache.
11836 (free_frame_faces): Free it.
11837
11838 * xterm.c (x_delete_display): Don't free image cache.
11839
11840 * emacs.c (main): Call init_xfns.
11841
118421998-04-30 Gerd Moellmann <gerd@gnu.org>
11843
11844 * alloc.c (mark_object): Mark objects in image cache.
11845
427ec082 11846 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11847 widget_store_internal_border_width.
11848
11849 * widget.c (widget_store_internal_border): Return void.
11850
11851 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11852 void.
11853 (init_x_parm_symbols): Return void.
11854 (x_report_frame_params): Ditto.
11855 (x_set_border_pixel): Ditto.
11856 (syms_of_xfns): Ditto.
11857 (x_destroy_all_bitmaps): Use xfree instead of free.
11858
11859 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11860
11861 * xterm.c (x_term_init): Initialize image_cache of display info.
11862 (x_delete_display): Free image cache.
11863
11864 * xterm.h (struct x_display_info): Add image_cache.
11865
11866 * xfns.c (make_image_cache): Allocate a new image cache.
11867 (free_image_cache): Free an image cache.
11868 (make_image): Allocate an image.
11869 (free_image): Free an image.
11870
11871 * dispextern.h (struct image): Structure describing an image.
11872 (struct image_cache): Structure describing an image cache.
11873
118741998-04-29 Gerd Moellmann <gerd@gnu.org>
11875
11876 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11877 non-zero if iterator is filled with something to return.
11878 (next_element_from_buffer): Immediately return if
11879 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11880 (next_element_from_string): Likewise.
11881
11882 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11883
11884 * dispextern.h (struct glyph): Add pixmap_id.
11885 (display_element_type): Add DISP_PIXMAP.
11886
11887 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11888 malloc/free.
11889
11890 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11891 (clear_face_cache): Call it.
11892
11893 * xterm.c (x_query_font): Don't look at empty font table slots.
11894 (x_compute_min_glyph_bounds): Likewise.
11895 (x_term_init): Initialize font_table to null.
11896 (x_load_font): Change allocation of font_info structures so
11897 that it is possible to free fonts.
11898
427ec082 11899 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11900 Only free fonts from filled font table entries.
11901
11902 * xfaces.c (best_matching_font): Support use of scalable fonts.
11903 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11904
11905 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11906 and resy.
11907 * xterm.c (x_term_init): Compute resx and resy.
11908
11909 * xfaces.c (split_font_name): Don't reject scalable fonts.
11910
427ec082 11911 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11912 in #if 0.
11913
11914 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11915 point size cannot be determined.
11916
11917 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11918 width over all fonts on a frame.
11919 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11920 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11921 macros.
11922
11923 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11924 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11925 (x_load_font): Use x_compute_min_char_bounds.
11926
11927 * xterm.h (struct x_display_info): New members smallest_char_width
11928 and smallest_font_height.
11929
119301998-04-28 Gerd Moellmann <gerd@gnu.org>
11931
11932 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11933 the same name if GC of face is zero.
11934
11935 * dispextern.h (struct face): Member non_ascii_gc removed.
11936
11937 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11938 for characters < 0177 in default face. Prepare face for
26901792
DL
11939 display before returning it.
11940 (x_produce_glyphs): Use it->charset.
11941 (x_get_char_font_and_encoding): Simplified.
11942 (x_encode_char): Remove parameter `font'.
11943
11944 * xfaces.c (choose_face_font): If registry from charset symbol
11945 doesn't contain a `-', make it a pattern by appending "*-*".
11946
11947 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11948 glyph_check_pos computation to character boundary.
11949
119501998-04-27 Gerd Moellmann <gerd@gnu.org>
11951
11952 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11953
11954 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11955 ASCII face for a given Lisp face id.
11956
11957 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11958 account.
427ec082 11959 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11960 new position is < original position.
11961 (check_iterator_glyph_property): Handle glyph property in strings.
11962 (next_element_from_string): Call above function.
11963 (next_element_from_display_vector): Handle faces in glyphs.
11964 (get_next_display_element): Set face_id of glyphs for
11965 control chars to zero.
11966
11967 * Makefile.in (term.o): Add dependency on dispextern.h.
11968
11969 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11970 (display_line): Handle marginal areas.
11971 (move_iterator_in_display_line_to): Likewise.
11972
11973 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11974
11975 * xfaces.c (face_at_buffer_position): Don't merge with nil
11976 text property.
11977 (face_at_string_position): Ditto.
11978
11979 * dispextern.h (struct display_iterator): Use a stack of saved
11980 values instead of saving check positions etc. individually.
11981
11982 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11983 maybe pop the iterator's stack.
11984 (save_iterator_settings): Push a value on iterator's stack.
11985 (get_overlay_strings_at_iterator_position): Use it.
11986 (restore_iterator_settings): Pop the stack.
11987 (set_iterator_to_next_overlay_string): Use it.
11988
11989 * xfaces.c (try_font_list): Use alternative font families.
11990
119911998-04-26 Gerd Moellmann <gerd@gnu.org>
11992
11993 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11994 font selection matches fonts.
11995 (Fface_font_sort_order): Return the font sort order.
11996 (best_matching_font): Find best matching font based on sort order.
11997 (cmp_font_names): Sort by given sort order.
11998
11999 * dispextern.h (struct display_iterator): New member faces_p.
12000 * xdisp.c (init_iterator): Initialize it->faces_p.
12001 (compute_face_at_iterator_string_position): Use it.
12002 (compute_face_at_iterator_position): Use it.
12003 (init_iterator): Use it.
12004 (display_mode_line): Ditto.
12005
12006 * xdisp.c (get_next_display_element): Put code choosing a face
12007 when the charset changes in #ifdef HAVE_FACES.
12008
427ec082 12009 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
12010 lookup_face_for_charset.
12011
12012 * xfaces.c (free_font_names): Renamed from free_split_font_names.
12013 (free_all_realized_faces): Renamed from remove_all_realized_faces.
12014
120151998-04-25 Gerd Moellmann <gerd@gnu.org>
12016
12017 * xfaces.c (best_matching_font): Return the name of the best
12018 matching font in an array of font_name structures.
12019 (choose_face_font): Use it.
12020 (choose_face_fontset_font): Use it.
12021 (find_best_weight_font): If final font found has same weight as
12022 the font we started with, return the original font because it is a
12023 better match for the resolution of the display.
12024 (find_best_slant_font): Likewise.
12025 (merge_face_vector_with_property): Check more invalid attribute
12026 values.
12027 (lface_suitable_for_charset_p): Replaced by a macro with the same
12028 name in upper-case.
12029
120301998-04-24 Gerd Moellmann <gerd@gnu.org>
12031
12032 * dispextern.h (struct face): Member
12033 fontset_chosen_for_realization_p removed.
12034
12035 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
12036 end of the collision list, so that we find more specific faces
12037 first.
12038 (lookup_face_for_charset): Look up a new face if face->fontset >=
12039 0, and charset != CHARSET_COMPOSITION.
12040
12041 * xfaces.c (split_font_name): Return zero if point size of font
12042 couldn't be computed.
12043 (realize_default_face): Use ASCII font of a fontset to determine
12044 font-related attributes of the default face.
12045 (face_fontset): Return fontset id for face family.
12046 (font_list): Additional parameter font_pattern. If non-nil,
12047 return fonts matching that pattern.
12048
120491998-04-23 Gerd Moellmann <gerd@gnu.org>
12050
12051 * xfaces.c (choose_face_fontset): If new fontset cannot be
12052 constructed, or fontset name cannot be split, return the id of the
12053 standard fontset.
12054
12055 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
12056 When Emacs starts, it may be called for the initial frame which
12057 isn't an X frame.
12058
12059 * dispextern.h (struct face): New members foreground_defaulted_p,
12060 background_defaulted_p.
12061 (struct face): Members `mask' and `cache' removed.
12062
12063 * xfaces.c (load_color): Set them.
12064 (free_face_colors): Check them.
427ec082 12065 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
12066 font unknown.
12067
12068 * xfaces.c (free_font): Removed.
12069 (load_face_font_or_fontset): Renamed from load_font.
12070 (load_face_font_or_fontset): Use message2 instead of signalling.
12071 (load_color): Likewise.
12072 (load_pixmap): Likewise.
12073
12074 * xterm.h (struct x_display_info): Add screen_dpi.
12075 * xterm.c (x_term_init): Initialize it.
12076 * xfaces.c (xlfd_point_size): Use it.
12077 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12078 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12079 similar to that of the frame appear first in the result.
12080
12081 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12082 is set for the face to cache, add it to the end of the collision
12083 list.
12084 (try_font_list): If fonts for given family and registry cannot
12085 be found, first try to keep the registry, and choose a different
12086 family.
12087 (choose_face_font): Allow nfonts == 0.
12088 (try_font_list): Give up if no font matches given registry.
12089
120901998-04-22 Gerd Moellmann <gerd@gnu.org>
12091
12092 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12093 font info id of the face.
12094
12095 * xfaces.c (load_font): Set font_info_id.
12096 (realize_face): Ditto.
12097
12098 * dispextern.h (struct face): Change member font_info to
12099 font_info_id.
12100
12101 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12102 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12103
12104 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12105 isn't ASCII, get the ASCII face before adding a space.
12106 (append_space): Likewise.
12107 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12108 to -1 so that it will compute the right face for the truncation
12109 glyphs.
12110
12111 * xfaces.c (realize_face): Set
12112 face->fontset_chosen_for_realization_p.
12113 (lookup_face_for_charset): If fontset wasn't specified originally
12114 and new charset != CHARSET_COMPOSITION, get a new face for that
12115 charset.
12116
12117 * dispextern.h (struct face): New member
12118 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12119 realize_face has chosen a fontset to display composite characters
12120 for a Lisp face not specifying a fontset.
12121
12122 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12123 face and line already filled here. Don't do anything if current
12124 face hasn't a relief or has a background equal to the frame
12125 background.
12126
12127 * xfaces.c (split_font_name): Additional parameter numeric_p.
12128 Don't compute numeric values if it is non-zero.
12129 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12130 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12131 font whose name cannot be split into fields.
12132
121331998-04-21 Gerd Moellmann <gerd@gnu.org>
12134
427ec082 12135 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12136 possibly using less restrictive patterns.
12137 (choose_face_font): Use it.
12138
12139 * xterm.c (x_get_char_font_and_encoding): For charset !=
12140 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12141
12142 * dispextern.h (struct face): New member font_info.
12143
12144 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12145 specifying a fontset as well as those not having a fontset.
12146 (free_font): Make it empty.
12147 (realize_face): Use changed load_font.
12148
12149 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12150 fit for charset, get the right one.
12151
12152 * xfaces.c (load_font): Take frame and name parameter, return
12153 font.
12154 (free_font): Likewise.
12155 (split_font_name): Compute numeric values for height, swidth etc.
12156 (cmp_font_names): Use them.
12157 (find_best_width_font): Ditto.
12158 (find_best_height_font): Ditto.
12159 (find_best_weight_font): Ditto.
12160 (find_best_slant_font): Ditto.
12161 (lface_hash): Add weight, slant, swidth and relief to hash value.
12162 (lface_equal_p): Make it faster.
12163 (lface_from_symbol): Use assq_no_quit.
12164 (Fnote_default_face_changed): Removed.
12165 (cmp_font_names): Use strcmp instead of xstricmp.
12166 (face_charset_registries): Removed.
12167
121681998-04-20 Gerd Moellmann <gerd@gnu.org>
12169
12170 * frame.h (CHECK_FRAME): Give this macro a statement form.
12171 (CHECK_LIVE_FRAME): Ditto.
12172
12173 * xfaces.c (find_best_width_font): Find the best matching font
12174 for a given width.
12175 (find_best_height_font): Likewise for height.
12176 (find_best_weight_font): Likewise for weight.
12177 (find_best_slant_font): Likewise for slant.
12178 (choose_face_font): Use them.
12179 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12180 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12181 global face attributes.
12182
12183 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12184 Lisp face attributes.
12185
121861998-04-19 Gerd Moellmann <gerd@gnu.org>
12187
12188 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12189 and :italic for compatibility.
12190 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12191 :bold and :italic. Handle boolean resource values for
26901792
DL
12192 :underline and :italic.
12193
12194 * xfns.c (display_x_get_resource): Make it externally visible.
12195
12196 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12197 If that frame is non-null, return the frame-local face.
12198 (Finternal_make_lisp_face): Additional frame argument.
12199 (lface_attributes): Get face attributes from global and frame-local
12200 definitions.
12201 (Finternal_lisp_face_equal_p): Additional frame argument.
12202 (merge_lisp_face_vector_with_property): Ditto.
12203 (Frealize_basic_faces): Removed.
12204 (Finternal_get_lisp_face_attribute): Additional frame argument.
12205 (Finternal_lisp_face_p): Ditto.
12206 (load_color) [MSDOS]: Removed because it isn't clear how
12207 to do this for MS-DOS.
12208
12209 * xfaces.c (lface_from_symbol): Get global face definition
12210 from face-global-alist.
12211
12212 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12213 as values for :underline and :inverse-video.
12214 (Finternal_set_lisp_face_attribute): Allow nil values.
12215
122161998-04-17 Gerd Moellmann <gerd@gnu.org>
12217
12218 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12219
12220 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12221 (Finternal_make_lisp_face): Add new face to Vall_faces.
12222
12223 * xdisp.c (echo_area_display): Remove code recomputing faces.
12224 (redisplay_internal): Ditto.
12225 (init_iterator): Do it here.
12226
12227 * xfaces.c (choose_face_font): Check that swidth doesn't change
12228 for subusequent attributes.
12229 (xlfd_point_size): Return int.
12230
12231 * xdisp.c (redisplay_internal, echo_area-display): If realized
12232 faces have been cleared, call recompute_basic_faces.
12233
12234 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12235 face_attributes_changed_p.
427ec082 12236 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12237 all frames.
12238 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12239
12240 * xdisp.c (redisplay_internal): If face attributes have been
12241 changed since the last redisplay, recompute basic faces.
12242 (echo_area_display): Ditto.
12243
12244 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12245
12246 * xfaces.c (min_char_bounds): If face cache not yet present,
12247 don't try to get font dimensions from faces.
12248
12249 * xterm.c (x_frame_mode_line_height): If face cache not present
12250 set, return default height.
12251
12252 * alloc.c (mark_face_cache): Check for null faces. Correct
12253 index bug.
12254
12255 * dispextern.h (struct face): Renamed from struct rface. Member
12256 underline renamed underline_p. Make it a bit-field.
12257
12258 * xfaces.c (init_frame_faces): Allocate face cache.
12259 (free_frame_faces): Free face cache.
12260 (recompute_basic_faces): Realize basic faces only if face cache is
12261 allocated, i.e. after init_frame_faces has been called.
12262
12263 * frame.c (make_frame): Initialze face cache with null.
12264
12265 * xfaces.c (same_size_fonts): Removed.
12266
427ec082 12267 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12268 s->gc != 0.
12269 (x_set_mouse_face_gc): Ditto.
12270 (x_set_mode_line_face_gc): Ditto.
12271
427ec082
SS
12272 * xfaces.c (realize_default_face): Return int. Value is
12273 zero if frame params don't contain enough information to
26901792
DL
12274 realize the default face.
12275 (realize_basic_faces): Ditto.
12276 (init_frame_faces): Realize basic faces.
12277
12278 * xfns.c (x_set_font): First store real font name in frame
12279 parameters, then call recompute_basic_faces.
12280
12281 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12282
122831998-04-16 Gerd Moellmann <gerd@gnu.org>
12284
12285 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12286
12287 * xfns.c (Fx_face_fixed_p): Removed.
12288 (Fx_list_fonts): Moved to xfaces.c.
12289
12290 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12291 face_at_buffer_position. Parameter charset removed; always
12292 compute face for CHARSET_ASCII.
12293 (face_at_string_position): Renamed from
12294 compute_face_at_string_pos. Parameter charset removed; always
12295 compute for CHARSET_ASCII.
427ec082 12296 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12297 face_cache.
12298 (lookup_face): Ditto.
12299 (compute_char_face): Renamed from compute_glyph_face.
12300
12301 * xdisp.c (init_iterator): Initialize charset member.
12302 (reseat_iterator_to_string): Ditto.
12303 (get_charset_at_buffer_position): Determine charset at
12304 buffer position in current_buffer.
12305 (reseat_iterator): Call above function.
12306 (compute_face_at_iterator_position): Call
12307 compute_face_at_buffer_pos.
12308 (compute_face_at_iterator_string_position): Call
12309 compute_face_at_string_pos.
12310 (get_face_from_id): Removed.
12311 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12312 Call get_charset_at_buffer_position.
12313 (reseat_iterator): Determine face if charset at pos differs
12314 from iterator's charset.
12315 (reseat_iterator_to_glyph_pos): Removed.
12316
12317 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12318 Determine charset from buffer position.
12319 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12320 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12321
12322 * dispextern.h (struct display_iterator): Add member charset.
12323
123241998-04-15 Gerd Moellmann <gerd@gnu.org>
12325
12326 * xfaces.c (compute_char_face): Removed.
12327
12328 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12329 with new parameter list.
12330
12331 * xfaces.c (region_face): Removed.
12332 (allocate_face): Removed.
12333 (copy_face): Ditto.
12334 (face_eql): Removed.
12335 (intern_face): Removed.
12336 (clear_face_cache): Removed.
12337 (load_font): Ditto.
12338 (unload_font): Ditto.
12339 (load_color): Ditto.
12340 (unload_color): Ditto.
12341 (new_computed_face): Ditto.
12342 (intern_computed_face): Ditto.
12343 (ensure_face_ready): Ditto.
12344 (merge_faces): Ditto.
12345 (compute_base_face): Ditto.
12346 (merge_face_list): Ditto.
12347 (Fmake_face_internal): Removed.
12348 (Fset_face_attribute_internal): Ditto.
12349 (face_name_id_number): Removed.
12350 (Fframe_face_alist): Ditto.
12351 (Fset_frame_face_alist): Ditto.
12352 (Finternal_next_face_id): Ditto.
12353
12354 * xterm.h (struct x_output): Remove computed_faces, and
12355 param_faces. Remove macros accessing them.
12356
12357 * xfaces.c: Entirely new face implementation added.
12358
123591998-04-11 Gerd Moellmann <gerd@gnu.org>
12360
12361 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12362 `charpos'.
12363
123641998-04-10 Gerd Moellmann <gerd@gnu.org>
12365
12366 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12367 scroll bar window to reduce flickering. Clear entire height.
12368
12369 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12370 current_x and hpos to zero after moving to previous line
12371 start.
12372
123731998-04-03 Gerd Moellmann <gerd@gnu.org>
12374
12375 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12376
12377 * xfaces.c (xlfd_point_size): Compute relative point size of
12378 fonts from font and frame resolution.
12379 (sort_fonts): New function to sort fonts, temporarily setting
12380 font_frame to the frame in effect.
12381 (xlfd_point_size): Take additional frame parameter to be able
12382 to get at the display's resolution.
12383
12384 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12385 BLACK_PIX_DEFAULT.
12386 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12387 screen of display.
12388
123891998-03-31 Gerd Moellmann <gerd@gnu.org>
12390
12391 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12392
12393 * fontset.h: Add external declarations for Vfontset_alias_alist
12394 and Vglobal_fontset_alist.
12395
12396 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12397 (realize_default_face): If frame parameters contain an artificial
12398 font name naming a fontset, set the family of the default face to
12399 the fontset name given by the registry.
12400
12401 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12402
124031998-03-22 Gerd Moellmann <gerd@gnu.org>
12404
12405 * alloc.c (mark_object): Add function prototype. Add cast to
12406 Lisp_Object pointer in call to mark_object for symbol names
12407 because this otherwise gives a warning from gcc 2.8.1.
12408 (mark_face_cache): Mark Lisp objects in realized faces.
12409
124101998-03-19 Gerd Moellmann <gerd@gnu.org>
12411
12412 * frame.h (struct frame): Add member face_cache.
12413
12414 * alloc.c (mark_object): Mark face cache.
12415 (mark_face_cache): Mark Lisp faces in face cache of frame.
12416
12417 * frame.c (make_frame): Initialize face_cache.
12418 (Fdelete_frame): Free it.
12419
124201998-03-18 Gerd Moellmann <gerd@gnu.org>
12421
12422 * xfaces.c: Very first skeleton of functions for face realization,
12423 face merging, face cache etc.
12424
12425 * dispextern.h (struct rface): Realized faces. Will replace
12426 struct face when tested.
12427 (struct face_cache): Realized face caches.
12428
12429 * xdisp.c (init_iterator): Initialize area member of display
12430 iterator.
12431
124321998-03-17 Gerd Moellmann <gerd@gnu.org>
12433
12434 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12435
12436 * dispextern.h (struct display_iterator): New member area.
12437
12438 * xterm.c (note_overwritten_text_cursor): Note when the text
12439 cursor of a window is overwritten.
12440
12441 * xdisp.c (set_cursor_from_row): If PT is not found in the
12442 row, display the cursor at the start of the row.
12443
12444 * dispnew.c (direct_output_forward_char): Call
12445 set_cursor_from_row.
12446
12447 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12448 position is not in an overlay string, set iterator's position and
12449 method explicitly so.
427ec082 12450 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12451 Make it externally visible.
12452 (redisplay_window): Call set_cursor_from_row so that there is only
12453 one place where the cursor position is calculated from a current
12454 row.
12455
12456 * dispextern.h (struct display_iterator): New member
12457 overlay_strings_at_end_processed_p.
12458
12459 * xdisp.c (check_iterator): Perform sanity checks on
12460 display_iterators.
12461 (next_element_from_buffer): Check for overlay strings at ZV.
12462
124631998-03-16 Gerd Moellmann <gerd@gnu.org>
12464
12465 * buffer.c (init_buffer_once): Add left_margin_width and
12466 right_margin_width to buffer_local_flags.
12467
12468 * dispnew.c (margin_glyphs_to_reserve): Function computing
12469 number of glyphs to reserve for a marginal area.
12470 (adjust_glyph_matrix): Call it.
12471 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12472 is not alive.
12473
12474 * window.c (Fset_window_margins): Allow floats.
12475
12476 * buffer.c (syms_of_buffer): Add buffer-local variables
12477 left-margin-width and right-margin-width. Add defaults
12478 default-left-margin-width and default-right-margin-width.
12479
12480 * buffer.h (struct buffer): New members left_margin_width
12481 and right_margin_width.
12482
12483 * window.c (Fset_window_margins): Make window the last and
12484 optional argument.
12485
12486 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12487 flag no_marginal_areas_p differently.
12488 (x_clear_end_of_line): Ditto.
12489 (x_draw_glyph_string_relief): Compute width of relief differently
12490 for rows with flag no_marginal_areas_p.
12491
12492 * dispnew.c (update_window_line): Update marginal areas only
12493 for rows that don't have no_marginal_areas_p set.
12494
12495 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12496 (display_menu_bar): Ditto.
12497
12498 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12499
12500 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12501 marginal areas in window-based redisplay.
12502
12503 * dispextern.h (struct glyph_matrix): New members
12504 left_margin_glyphs and right_margin_glyphs.
12505
125061998-03-15 Gerd Moellmann <gerd@gnu.org>
12507
12508 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12509
12510 * charset.c (non_ascii_char_to_string): Use char type parameters
12511 because the function is used that way from outside. Use unsigned
12512 char internally.
12513
12514 * window.c (change_window_height): Return void.
12515 (make_dummy_parent): Return void.
12516 (init_window_once): Return void.
12517 (syms_of_window): Ditto.
12518 (keys_of_window): Ditto.
12519 (delete_window): Correct return with and without value.
12520
12521 * buffer.c (record_buffer): Return void.
12522
12523 * marker.c (unchain_marker): Return void.
12524
12525 * window.c (unshow_buffer): Return void.
12526 (replace_window): Ditto.
12527 (delete_window): Ditto.
12528
12529 * term.c (delete_glyphs_hook): Void return type.
12530 (ring_bell_hook): Ditto.
12531 (set_terminal_window_hook): Ditto.
12532
12533 * sysdep.c (init_sigio): Return void.
12534
12535 * xterm.c (x_set_window_size): Return void.
12536 (x_calc_absolute_position): Ditto.
12537 (x_set_offset): Ditto.
12538 (x_focus_on_frame): Ditto.
12539 (x_unfocus_frame): Ditto.
12540 (x_make_frame_visible): Ditto.
12541 (x_make_frame_invisible): Ditto.
12542 (x_iconify_frame): Ditto.
12543 (x_destroy_window): Ditto.
12544 (x_wm_set_window_state): Ditto.
12545 (x_wm_set_icon_pixmap): Ditto.
12546 (x_wm_set_icon_position): Ditto.
12547 (x_initialize): Ditto.
12548 (x_error_quitter): Ditto.
12549 (x_destroy_window): Use xfree instead of free.
12550
12551 * keyboard.c (clear_waiting_for_input): Return void.
12552
12553 * xterm.c (x_wm_set_size_hint): Return void.
12554 (x_raise_frame): Ditto.
12555 (refreshicon): Ditto.
12556 (x_error_catcher): Ditto.
12557 (x_clear_errors): Ditto.
12558
12559 * keyboard.c (record_asynch_buffer_change): Return void.
12560
bb6677a8
GM
12561 The first line of the following paragraph was garbled for an
12562 unknown reason. It couldn't be fully reconstructed.
178c5d9c 12563
bb6677a8 12564 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12565 (x_lower_frame): Ditto.
12566 (x_scroll_bar_clear): Ditto.
12567 (XTflash): Add default case in switch for -Wall.
12568 (construct_mouse_click): Return Qnil.
12569 (cancel_mouse_face): Return void.
12570 (x_queue_event): Use xmalloc instead of malloc.
12571 (x_unqueue_events): Use xfree instead of free.
12572
12573 * ccl.c (ccl_driver): Return int.
12574
12575 * keyboard.c (stop_polling): Return void.
12576 (start_polling): Ditto.
12577
12578 * term.c (keys): Add braces in initializer list for -Wall.
12579
12580 * sysdep.c (tabs_safe_p): Return int.
12581 (init_baud_rate): Return void.
12582
12583 * xterm.c (x_draw_bitmap): Add default case.
12584 (x_setup_relief_colors): Use DefaultScreen instead of
12585 DefaultScreenOfDisplay.
12586 (x_delete_glyphs): Return void.
12587 (construct_menu_click): Put in #if 0 because it isn't called.
12588
12589 * xdisp.c (load_overlay_strings): Remove extraneous argument
12590 in call to qsort.
12591 (get_overlay_arrow_glyph_row): Add missing return value.
12592
12593 * window.c (set_window_height): Return void.
12594 (set_window_width): Ditto.
12595
12596 * sysdep.c (request_sigio): Return void.
12597 (unrequest_sigio): Ditto.
12598 (get_frame_size): Ditto.
12599
12600 * scroll.c (scroll_cost): Return int.
12601 (do_line_insertion_deletion_costs): Return void.
12602
12603 * frame.c (Fdelete_frame): Use xfree instead of free.
12604
12605 * fileio.c (report_file_error): Return void.
12606
12607 * dispnew.c: Make compilable with -Wall.
12608 * term.c: Ditto.
12609
12610 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12611
126121998-03-14 Gerd Moellmann <gerd@gnu.org>
12613
12614 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12615 increased.
12616 (x_setup_relief_color): Free color only for appropriate visual
12617 classes.
12618
12619 * xterm.c (expose_window): Fix calculation of intersection of mode
12620 line rectangle with exposed rectangle.
12621
12622 * xdisp.c (redisplay_window): Don't do cursor movement based
12623 on current matrix if w->last_point is not valid.
12624
126251998-03-09 Gerd Moellmann <gerd@gnu.org>
12626
12627 * xterm.c (expose_line): Redraw mode line and menu lines
12628 differently because they reach into the scroll bar area.
12629
12630 * xdisp.c (redisplay_window): If redisplaying with same window
12631 start, don't accept cursor on partially visible line.
12632
126331998-03-08 Gerd Moellmann <gerd@gnu.org>
12634
12635 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12636 for wider mode lines.
12637 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12638
12639 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12640 scroll bar width for mode lines.
12641
12642 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12643 vertical scroll bar width in width calculation so that we can
12644 display mode lines wider.
12645
12646 * xdisp.c (redisplay_window): Restore buffers before returning
12647 when fonts have changed.
12648
12649 * dispnew.c (update_window): Mark invisible rows in the current
12650 matrix invalid.
12651
12652 * xdisp.c (try_window_id): Force update of first row displayed
12653 at window end.
12654 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12655
126561998-03-05 Gerd Moellmann <gerd@gnu.org>
12657
12658 * dispextern.h (struct glyph_row): Member max_ascent renamed
12659 ascent. Member max_descent replaced by height.
12660 (struct display_iterator): Member max_descent replaced by height.
12661 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12662
12663 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12664 class makes it unnecessary or dangerous.
12665
12666 * xdisp.c (redisplay_window): Case only point has changed, and
12667 point has moved forward. Move forward over overlay strings.
12668 (display_line): Don't set cursor if first glyph from PT is part of
12669 a continuation line.
12670
126711998-02-21 Gerd Moellmann <gerd@gnu.org>
12672
12673 * xdisp.c (start_display): When computing continuation lines
12674 width, add current_x to the continuation lines width because
12675 move_iterator_to will stop in front of the buffer position moved
12676 to.
12677
126781998-02-20 Gerd Moellmann <gerd@gnu.org>
12679
12680 * xdisp.c (redisplay_window): Don't try try_window_id if
12681 windows_or_buffers_changed.
12682
12683 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12684 determine a color.
12685 (x_setup_relief_color): Allocate/ change one relief.
12686 (x_setup_relief_colors): Call above function.
12687
12688 * xterm.h (struct relief): New structure type holding relief info:
12689 GCs, colors, and whether colors are allocated.
12690
427ec082 12691 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12692 produces the same color, try adding a delta to RGB values.
12693 (x_setup_relief_colors): Free color cells.
12694
427ec082 12695 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12696 black_relief_pixel holding the foreground colors allocated for
12697 relief GCs. New members white_allocated_p, black_allocated_p.
12698
12699 * xterm.c (x_scroll_run): Don't set updated_window to null.
12700 This resets updated_window when called from scrolling_window.
12701
12702 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12703
26901792
DL
12704 * xterm.c (x_scroll_run): Additional window parameter. Set
12705 and reset updated_window.
12706
12707 * dispnew.c (line_dance_hook): Additional window parameter.
12708
12709 * xdisp.c (try_window_reusing_current_matrix): Don't call
12710 update_window_begin/end here. The end function would display the
12711 cursor on a wrong position and the additional functionality of
12712 update_window_begin is not needed anyway. Just set
12713 updated_window.
12714 (try_window_id): Ditto.
12715
12716 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12717 Don't redraw cursor during redisplay.
12718
12719 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12720
12721 * xdisp.c (redisplay_window): For window-based redisplay, alway
12722 try try_window_id.
12723
12724 * xterm.c (struct glyph_string): New member two_byte_p that is
12725 non-zero if 16-bit drawing functions must be used.
12726 (x_fill_composite_glyph_string): Set it.
12727 (x_fill_glyph_string): Set it.
12728 (x_draw_glyph_string_foreground): Use it.
12729 (x_draw_vertical_border): Make line 1 pixel less tall.
12730 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12731 side by 1 pixel if window is not right-most hasn't vertical scroll
12732 bars.
12733 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12734 out of bounds.
12735 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12736 hl == DRAW_CURSOR.
12737
12738 * xdisp.c (start_display): Check that window start is at line
12739 start if GLYPH_DEBUG != 0.
12740
12741 * window.c (window_scroll_pixel_based): Move assertion to
12742 start_display.
12743
127441998-02-19 Gerd Moellmann <gerd@gnu.org>
12745
427ec082 12746 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12747 frame hasn't the focus.
12748
12749 * window.c (make_window): Initialize dy.
12750 (replace_window): Ditto.
12751
12752 * window.h (window): New member dy specifying the amount by which
12753 a window is scrolled "smoothly".
12754
12755 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12756 y-position because it can be negative.
26901792
DL
12757 (x_draw_row_bitmaps): Don't clear with negative y-position like
12758 above.
12759 (x_clear_end_of_line): Same theme as above.
12760
12761 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12762 exact match exists, the nearest existing color. Patterned after
12763 defined_color.
12764 (x_alloc_lighter_color): Allocate a color that is lighter or
12765 darker than a given color by a specified factor.
427ec082 12766 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12767 the background color of a glyph string face.
12768 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12769
12770 * xfns.c (x_make_gc): Don't allocate relief GCs.
12771 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12772 (setup_frame_gcs): Don't change relief GCs.
12773
12774 * xterm.h (struct x_output): New member relief_background giving
12775 the background pixel color for which relief GCs can be used.
12776 Set by x_setup_relief_colors.
12777
12778 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12779 for mode and menu lines.
12780
12781 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12782
12783 * dispnew.c (direct_output_for_insert): Call
12784 set_next_iterator_stop_pos after having changed it2.endpos.
12785
127861998-02-17 Gerd Moellmann <gerd@gnu.org>
12787
12788 * dispnew.c (update_window): Work on selected_window, only.
12789
12790 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12791 hpos is >= number of glyphs in the cursor row.
12792
12793 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12794 called.
12795
127961998-02-16 Gerd Moellmann <gerd@gnu.org>
12797
12798 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12799 and menu lines.
12800
12801 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12802 enough glyphs to display a mode line or menu line which draws over
12803 flags areas.
12804
12805 * xterm.c (XTset_vertical_scroll_bar): Use
12806 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12807 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12808 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12809 or menu.
12810 (x_set_glyph_string_clipping): Set clipping differently if drawing
12811 a mode line or menu line.
12812
12813 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12814
12815 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12816 menu lines.
12817 (x_scroll_bar_create): Don't clear flags areas.
12818 (x_draw_row_bitmaps): Clear visible row height, only.
12819
12820 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12821
128221998-02-15 Gerd Moellmann <gerd@gnu.org>
12823
12824 * dispnew.c (direct_output_for_insert): When checking for tabs in
12825 the line, set it2.endpos to ZV.
427ec082 12826
26901792
DL
12827 * window.h (struct window): New member cursor_off_p.
12828 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12829 for X.
12830 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12831 be called to display or erase the cursor.
12832 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12833 or selected_window.
12834
12835 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12836
12837 * dispnew.c (update_window_line): Special handling of inverse
12838 lines in #if 0 removed.
12839
12840 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12841 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12842 (x_clear_frame): Renamed from XTclear_frame.
12843 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12844 (x_ins_del_lines): Renamed from XTins_del_lines.
12845 (x_change_line_height): Renamed from XTchange_line_height.
12846 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12847 (x_clear_cursor): Renamed from clear_cursor.
12848 (x_update_begin): Renamed from XTupdate_begin.
12849 (x_update_end): Renamed from XTupdate_end.
12850 (x_update_window_begin): Renamed from XTupdate_window_begin.
12851 (x_update_window_end): Renamed from XTupdate_window_end.
12852 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12853 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12854 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12855 (x_produce_special_glyphs): Implementation in #if 0 removed.
12856
12857 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12858 flag in the dump.
12859
12860 * dispnew.c (update_text_area): Handling of glyphs with pixel
12861 width zero removed. Decrement desired stop pos if desired row
12862 fills its line.
12863
12864 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12865 width zero removed.
12866 (BUILD_GLYPH_STRINGS): Set glyph string flag
12867 extends_to_end_of_line_p based on row's flag fill_line_p and face
12868 background and stipple. Make sure it works for composite characters.
12869
12870 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12871 fill_line_p. For window-based redisplay, add a space only if
12872 the row is empty so that we know the face to draw.
12873
12874 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12875 means draw the face of the last glyph in the text area to the
12876 right end of the text area.
12877
12878 * xdisp.c (init_iterator): Show region in window mini-buffer
12879 window refers to.
12880
427ec082 12881 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12882 region_showing_p removed. Test for region_beg > 0 instead.
12883
12884 * dispnew.c (update_text_area): Clear to end of line if cursor is
12885 beyond the end of the desired line. Necessary because we don't
12886 have a phys_cursor_glyph with which to erase the cursor. We don't
12887 have one because this method of drawing a cursor doesn't work with
12888 lbearing/rbearing.
12889
12890 * xterm.c (XTinsert_glyphs): Block input.
12891
128921998-02-14 Gerd Moellmann <gerd@gnu.org>
12893
12894 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12895 glyph strings.
12896 (x_draw_glyph_string_background): Fill background with background
12897 pixel for the first glyph of a composite character.
12898
12899 * xdisp.c (try_window): Change return type to int. Value is zero
12900 if fonts were loaded during redisplay.
12901 (redisplay_window): Return if fonts have been loaded during
12902 redisplay.
12903 (append_space): New parameter default_face_p.
12904
129051998-02-13 Gerd Moellmann <gerd@gnu.org>
12906
12907 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12908 don't let a partially visible line in a current matrix stay
12909 enabled.
12910
129111998-02-09 Gerd Moellmann <gerd@gnu.org>
12912
12913 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12914 in #if PROMPT_IN_BUFFER.
12915
12916 * xdisp.c (display_line): If row ends in ZV, make the space
12917 that is added to place the cursor on it appear in default face.
12918
427ec082 12919 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12920 glyph row area.
12921 (expose_line): Use it to redraw all areas of a row.
12922
12923 * dispextern.h (move_operation_enum): New enum
12924 move_operation_enum.
12925
12926 * window.c (window_scroll_pixel_based): Remove now unnecessary
12927 code that made sure that it->current_y doesn't become negative.
12928
12929 * xdisp.c (move_iterator_in_display_line_to): New parameter
12930 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12931 (move_iterator_to): Ditto.
12932
12933 * dispextern.h (struct glyph_matrix): New member window_width.
12934
12935 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12936 case of changing window height.
12937
12938 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12939 border to the left.
26901792
DL
12940
12941 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12942 says this aspect of Emacs is currently redesigned.
12943
12944 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12945 have to draw a vertical border.
12946
12947 * window.c (window_scroll_pixel_based): When scrolling down by
12948 screen-fulls, make sure it.current_y doesn't get negative because
12949 this would confuse move_iterator_vertically.
12950
12951 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12952 the case continuation lines are involved.
12953 (try_window_id): Don't set the cursor into scroll margins.
12954
129551998-02-08 Gerd Moellmann <gerd@gnu.org>
12956
12957 * xterm.c (x_append_glyph): Don't compute left_overhang and
12958 right_overhang.
12959 (XTproduce_glyphs): left_overhang and right_overhang removed.
12960 Set it->glyph_row->contains_overlapping_glyphs_p.
12961
12962 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12963 and right_overhang removed.
12964
12965 * dispextern.h (struct glyph_row): New member
12966 contains_overlapping_glyphs_p used to optimize glyph drawing.
12967 (struct display_iterator): left_overhang and right_overhang
12968 removed.
12969 (struct glyph): Ditto.
12970
12971 * xterm.c (x_draw_relief): Removed.
12972 (x_draw_bitmap): Renamed from draw_bitmap.
12973 (x_draw_glyphs): Completely new implementation of draw_glyphs
12974 capable of handling arbitrary lbearing and rbearing values.
12975 Several sub-functions not mentioned here.
12976
129771998-01-30 Gerd Moellmann <gerd@gnu.org>
12978
12979 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12980 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12981 other cases.
12982 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12983 overlap with previous or following characters.
26901792 12984 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12985 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12986 character under the cursor would be invisible.
12987 (x_draw_bar_cursor): Don't draw over previous character if it
12988 has right_overhang.
12989
12990 * window.c (get_phys_cursor_glyph): Return the glyph under a
12991 window's physical cursor.
427ec082 12992
26901792
DL
12993 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12994 (x_draw_bar_cursor): Ditto.
12995 (x_erase_phys_cursor): Ditto.
12996 (x_phys_cursor_in_rect_p): Ditto.
12997 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12998
12999 * window.c (make_window): Remove reference to phys_cursor_glyph.
13000 (replace_window): Ditto.
13001
13002 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 13003 now always a glyph present for placing the cursor on it in
26901792
DL
13004 each glyph row, even at the end of a line.
13005
13006 * xdisp.c (append_space): Function to add a space to an iterators
13007 glyph row.
13008 (display_line): Add spaces at the end of lines that are used to
13009 place the cursor on them.
13010 (compute_line_metrics): If row consists of a space only that was
427ec082 13011 added to place the cursor on it, use that space's height as the
26901792
DL
13012 line height.
13013
130141998-01-29 Gerd Moellmann <gerd@gnu.org>
13015
13016 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
13017 glyphs.
13018
130191998-01-28 Gerd Moellmann <gerd@gnu.org>
13020
13021 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
13022 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
13023
13024 * dispextern.h (struct glyph): Add left_overhang and
427ec082 13025 right_overhang.
26901792
DL
13026 (struct display_iterator): Ditto.
13027
13028 * dispnew.c (direct_output_for_insert): Give up if newly inserted
13029 glyphs have different ascent or descent than original row.
13030
13031 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
13032 row->max_descent only if unknown.
13033 (display_line): Compute row->max_ascent and row->max_descent.
13034 (display_string): Ditto.
13035
13036 * window.h (struct window): New members phys_cursor_ascent and
427ec082 13037 phys_cursor_descent.
26901792
DL
13038
13039 * xterm.c (x_phys_cursor_in_rect_p): Use them.
13040 (x_draw_hollow_cursor): Ditto.
13041 (x_erase_phys_cursor): Ditto.
13042 (x_display_and_set_cursor): Set them.
13043 (x_append_glyph): Don't set glyph members that were removed.
13044
13045 * dispextern.h (struct glyph): Members ascent, descent,
13046 contributes_to_line_height_p removed.
13047
130481998-01-25 Gerd Moellmann <gerd@gnu.org>
13049
13050 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
13051 names for face ids of frame default face and mode line face.
13052
13053 * xdisp.c (compute_face_at_iterator_string_position): If
13054 displaying a mode line use MODE_LINE_FACE_ID instead of
13055 DEFAULT_FACE_ID.
13056
13057 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
13058 (display_string): Ditto, additional parameter lisp_string.
13059 (display_line): Call display_string with Lisp mini-buffer prompt
13060 string.
13061 (display_menu_bar): Call display_string with Lisp string.
13062 (display_mode_element): Ditto.
13063 (next_element_from_string): Make it work for non-overlay Lisp
13064 strings with field width and precision.
13065
13066 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
13067 PROMPT_IN_BUFFER.
13068
13069 * xfaces.c (compute_string_char_face): Fix face computation
13070 for overlay strings.
13071
13072 * xdisp.c (struct overlay_entry): Add member after_string_p.
13073 (load_overlay_strings): Simplify.
13074
13075 * window.c (delete_window): Defer glyph matrix adjustment.
13076 (Fsplit_window): Ditto.
13077 (change_window_height): Ditto.
13078 (Fset_window_configuration): Ditto.
13079 (Fset_window_margins): Ditto.
13080 * frame.c (set_menu_bar_lines): Ditto.
13081 (Fmake_terminal_frame): Ditto.
13082 * dispnew.c (change_frame_size_1): Ditto.
13083
130841998-01-24 Gerd Moellmann <gerd@gnu.org>
13085
13086 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13087
427ec082 13088 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13089 position has overlay strings.
13090
13091 * xdisp.c (display_line): Don't set cursor if row ends in middle
13092 of overlay string.
13093 (Fdump_redisplay_state): Print complete row start and end
13094 position.
13095 (redisplay_window): Cursor movement when matrix hasn't changed---
13096 if PT < last_point, maybe move forward if row ends at PT and
13097 in middle of char.
13098
13099 * minibuf.c (read_minibuf): Save the value of
13100 minibuffer_prompt_length in minibuf_save_list.
13101 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13102
13103 * xdisp.c (redisplay_window): Add assertion for cursor movement
13104 case, PT < last_point.
13105 (move_iterator_in_display_line_to): If to_pos specified, move
13106 over before-strings.
13107
13108 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13109 start.string_index > 0.
13110
13111 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13112 is set. Retry redisplay if fonts_changed_p is set before update.
13113
13114 * xterm.c (x_load_font): Set fonts_changed_p.
13115
13116 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13117
13118 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13119
13120 * xdisp.c (try_window): Check fonts_changed_p.
13121 (try_window_reusing_current_matrix): Ditto.
13122 (try_window_id): Ditto.
13123
13124 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13125 (fonts_changed_p): Flag indicating a font change since the last
13126 glyph matrix adjustment.
13127
13128 * xterm.c (x_per_char_metric): Use font->max_bounds as
13129 char metric of the font's default char if the default char
13130 hasn't per char metric itself.
13131
13132 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13133 for font change.
13134 (min_char_bounds): Check face->font != NULL.
427ec082 13135 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13136 case of invalid min_bounds contents.
13137 (min_char_bounds): Call font_min_bounds.
13138
131391998-01-22 Gerd Moellmann <gerd@gnu.org>
13140
13141 * xdisp.c (start_display): Don't set it->prompt_width if
13142 PROMPT_IN_BUFFER.
13143 (move_iterator_in_display_line_to): Ditto.
13144 (display_line): Don't display prompt via display_string if
13145 PROMPT_IN_BUFFER.
13146
13147 * minibuf.c (Fminibuffer_prompt_width): Return value from
13148 current_buffer if PROMPT_IN_BUFFER.
427ec082 13149 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13150 mini-buffer and make it read-only.
13151 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13152 minibuffer_prompt_length instead of BEGV.
13153 (Fminibuffer_complete_word): Ditto.
13154 (Fminibuffer_complete_word): Ditto.
13155
13156 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13157 is less than mini-buffer prompt width, use prompt width as start.
13158
13159 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13160 position is less than mini-buffer prompt width, use the prompt
13161 width as start.
13162
13163 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13164 end of prompt if applied to a mini-buffer and BEG reached.
13165
131661998-01-21 Gerd Moellmann <gerd@gnu.org>
13167
13168 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13169 length to start position.
13170
13171 * buffer.c (Fget_buffer_create): Initialize
13172 minibuffer_prompt_length.
13173 (Fmake_indirect_buffer): Ditto.
13174 (Fkill_buffer): Ditto.
13175
13176 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13177 if PROMPT_IN_BUFFER.
13178
131791998-01-19 Gerd Moellmann <gerd@gnu.org>
13180
13181 * xdisp.c (next_element_from_string): Make it work for arbitrary
13182 Lisp strings.
13183 (set_iterator_to_next): Advance to next overlay string only
13184 if it->string is an overlay string.
13185
13186 * dispextern.h (struct display_iterator):
13187 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13188
427ec082 13189 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13190 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13191
13192 * xdisp.c (next_element_from_string): Renamed from
13193 next_element_from_overlay_string.
427ec082 13194 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13195 compute_face_at_iterator_overlay_string_position.
13196
13197 * dispextern.h (struct display_iterator): Member overlay_string
13198 renamed string.
13199
13200 * xdisp.c (next_element_from_c_string): Renamed from
13201 next_element_from_string.
13202
13203 * dispextern.h (struct glyph_pos): Reversed meaning of
13204 overlay_string_index and string_index.
13205
13206 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13207 this function always return the first character of an overlay
13208 string.
13209
132101998-01-18 Gerd Moellmann <gerd@gnu.org>
13211
13212 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13213 forced or new pos > next_invisible_check_pos.
13214 (redisplay_window): Don't try same window start if PT < window
13215 start.
13216 (move_iterator_vertically): Bug fix satisfying post-condition
13217 when ZV is reached and no newline in front.
13218 (move_iterator_vertically_backward): New implementation.
13219 (move_iterator_vertically_backward): Bug fixes.
13220
13221 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13222 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13223 (adjust_glyphs_for_font_change): Always adjust.
13224
13225 * dispnew.c (struct dim): Use int.
13226
13227 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13228 (allocate_face): Initialize it.
13229 (load_font): Use XLoadQueryFont again instead of x_load_font.
13230 (unload_font): Use XFreeFont again.
13231 (min_char_bounds): Iterate over fonts of faces. Use frame's
13232 font sizes as default. Remove parameter except_last_font_p.
13233
13234 * dispextern.h (struct face): Add font_name.
13235
132361998-01-17 Gerd Moellmann <gerd@gnu.org>
13237
13238 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13239 to start of line if ending at ZV and no newline in front.
13240 (move_iterator_to): If to_y specified, always first move to x = 0,
13241 so that move stops at line start instead of line end. This is
13242 probably what callers would expect to happen.
13243
13244 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13245 can handle different line heights.
13246 (window_scroll_line_based): Formerly window_scroll.
13247 (window_scroll): Call both.
13248
13249 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13250 (move_iterator_in_display_line_to): Ditto.
13251 (display_line): Ditto.
13252
13253 * minibuf.c (read_minibuf): Conditionally insert prompt into
13254 buffer instead of handling prompts specially. Change other
13255 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13256
13257 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13258 upper window. Optimize calls to xrealloc if same width.
13259
13260 * xdisp.c (redisplay_window): Don't use
13261 try_window_reusing_current_matrix if window scroll functions
13262 exist.
13263
13264 * dispextern.h (struct display_iterator): Member
13265 redisplay_end_trigger_p removed.
13266
13267 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13268 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13269
132701998-01-16 Gerd Moellmann <gerd@gnu.org>
13271
13272 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13273 nil. Optimize truncate-lines t and moving backward.
13274 (move_iterator_to_previous_visible_line_start): Contains the heart
13275 of the previous set_iterator_to_previous_visible_line_end. Don't
13276 reseat the iterator. Used by move_iterator_by_lines.
13277 (set_iterator_to_previous_visible_line_start): Call function
13278 above.
13279 (move_iterator_in_display_line_to): Check TO_POS before doing
13280 anything else. Otherwise to_pos == PT would move to x of PT+1.
13281
13282 * indent.c (Fvertical_motion): Use display_iterator.
13283
13284 * xdisp.c (move_iterator_by_lines): New function moving by screen
13285 lines.
13286 (redisplay_window): Use it.
13287 (move_iterator_to): Correct branch of to_vpos specified.
13288 (move_iterator_vertically_backward): Increment nlines after having
13289 backed up over some lines because the last line was not backed up
13290 over.
13291 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13292 calculate it->vpos and it->current_y relative to this row.
427ec082 13293 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13294 have a big effect and it is complex.
13295 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13296
132971998-01-15 Gerd Moellmann <gerd@gnu.org>
13298
13299 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13300 join nicely. Lines with widths > 2 don't join nicely under X.
13301 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13302 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13303 width 1; remove references to relief_gc_line_width.
13304 * xfns.c (x_make_gc): Ditto.
13305
13306 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13307 if relief changes.
13308 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13309 to get a relief because they can be negative.
13310
13311 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13312 positions are for the middle of lines under X.
13313
13314 * xdisp.c (try_window_id): Always search for the cursor by setting
13315 w->cursor.vpos = -1. Search in unchanged rows at the top and
13316 bottom if cursor not found in displayed lines.
427ec082 13317 (display_mode_line): First extend face, then set right shadow
26901792
DL
13318 flag. Otherwise the wrong glyph gets the right shadow.
13319
13320 * dispnew.c (direct_output_for_insert): Give up if line contains
13321 a tab. The number of spaces inserted for a tab changes if we
13322 insert glyphs in front of it.
13323
13324 * xterm.c (x_list_fonts): Changes undone because the Lisp
13325 implementation for make-face-smaller, make-face-larger, and
13326 make-face-fixed can do without them.
13327
13328 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13329 inserted.
13330
13331 * xdisp.c (try_window_id): First compute beg_unchanged, then
13332 compare with window start pos.
13333
13334 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13335 fixed-width font.
13336 (syms_of_xfns): defsubr for x-face-fixed-p.
13337
13338 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13339 enabled, don't do anything because this row will be newly drawn
13340 anyway and because we can additionally no longer determine the row
13341 height.
13342
13343 * xdisp.c (display_line): Bug fix cursor positioning.
13344
13345 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13346 removed. x-list-fonts.c is now obsolete.
13347 (Qfixed, Qvariable): Moved here from xfaces.c.
13348
133491998-01-14 Gerd Moellmann <gerd@gnu.org>
13350
13351 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13352 FETCH_BYTE for truncated lines.
13353 (display_line): Set cursor differently.
13354 (display_line): Fixed bug setting last_pos_on_this_line wrong
13355 for truncated lines.
13356
13357 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13358 redisplay.
13359
13360 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13361
13362 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13363 assertion that character dimensions are not zero.
13364
13365 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13366 input is blocked.
13367
13368 * xdisp.c (decode_mode_spec): Faster implementation of line number
13369 display.
13370
13371 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13372 bitmaps if bitmaps don't fill the entire area.
13373 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13374
427ec082 13375 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13376 pixel height of flags bitmaps.
13377
13378 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13379 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13380
13381 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13382 in pixels of a flags area of a frame.
13383 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13384 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13385 occupied by a flags area.
13386
133871998-01-13 Gerd Moellmann <gerd@gnu.org>
13388
13389 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13390 window_end_valid.
13391
13392 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13393 GLYPH_DEBUG != 0.
13394
13395 * xdisp.c (display_line): Correct wrong calculation of row->x for
13396 the case of nglyphs == 1.
13397 (hscroll_window_tree): Renamed from hscroll_windows.
13398 (hscroll_windows): New function calling hscroll_window_tree that
13399 clears desired matrices on a frame when hscroll has been changed.
13400 (redisplay_p): Global flag set during redisplay.
13401 (redisplay_internal): Set and clear redisplay_p.
13402
13403 * xfaces.c (min_char_bounds): Add assertion that width and height
13404 are not zero at the end. Initialize *height and *width to -1,
13405 instead of using BITS_PER_SHORT. If font has min_bounds.width
13406 zero, use its max_bounds.width.
13407
13408 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13409 width and height.
13410
134111998-01-12 Gerd Moellmann <gerd@acm.org>
13412
13413 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13414 changed. Don't clear desired matrices.
13415
13416 * xdisp.c (hscroll_windows): Compute pt after setting
13417 current_buffer.
13418 (redisplay_window): Don't do cursor movement based on current
13419 matrix if just_this_one_p is zero.
13420
13421 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13422 specifying that fixed-width, variable-width fonts or both
26901792
DL
13423 should be returned.
13424
13425 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13426 (syms_of_xfaces): Initialize them.
13427
13428 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13429 cached information.
13430
134311998-01-11 Gerd Moellmann <gerd@acm.org>
13432
13433 * xdisp.c (display_mode_line): Extend face to end of line.
13434
13435 * xdisp.c (echo_area_display): Don't call display_string with
13436 echo_area_glyphs_length == 0 which would mean infinite precision.
13437 (redisplay_internal): Adjust window_end_vpos if necessary.
13438
134391998-01-07 Gerd Moellmann <gerd@acm.org>
13440
13441 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13442
134431998-01-05 Gerd Moellmann <gerd@acm.org>
13444
13445 * xdisp.c (get_row_start_continuation_line_width): Removed.
13446 (init_iterator_to_row_start): Set it.current_x from row.
13447 (try_window_id): Set it.continuation_lines_width directly from
13448 row.
13449
13450 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13451 selected_window.
13452 (hscroll_windows): Center cursor in window.
13453 (hscroll_windows): Call move_iterator_in_display_line_to.
13454
134551998-01-04 Gerd Moellmann <gerd@acm.org>
13456
13457 * xdisp.c (hscroll_windows): Check hscroll < 0.
13458 (redisplay_window): Allow quick cursor movement if overlay arrow
13459 but frame uses window-based redisplay.
13460 (display_line): Take special case for nglyphs == 1 out of #if 0.
13461 (display_line): Set row->ends_at_zv_p after the loop displaying
13462 glyphs because ZV can be in truncated text.
13463 (hscroll_windows): Use init_iterator_to_row_start.
13464
13465 * dispnew.c (scrolling_window): Calculation of overlapping
13466 runs fixed.
13467 (row_equal_p): Compare continued_p and continuation_line_p.
13468
134691998-01-02 Gerd Moellmann <gerd@acm.org>
13470
13471 * xterm.c (x_get_mode_line_face_gc): Renamed from
13472 x_get_modeline_face_gc.
13473
13474 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13475 buffer position to look for text properties.
13476 (get_face_from_cursor_pos): Use it.
13477 (compute_face_at_iterator_position): Use it.
13478 (next_element_from_buffer): Use it.
13479
13480 * dispnew.c (scrolling_window): Decrement run's y-position
13481 when extending it backwards.
13482
13483 * xterm.c (do_line_dance): Don't ever copy more than window height.
13484
134851998-01-01 Gerd Moellmann <gerd@acm.org>
13486
13487 * xdisp.c (redisplay_window): Cursor motion in unchanged
13488 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13489 (init_iterator_to_next_row_start): Special handling of lines
13490 ending in middle of char removed.
13491 (hscroll_windows): Hscroll windows only if window_end_valid is not
13492 nil.
13493 (try_window_reusing_current_matrix): Call hscroll_windows.
13494 (init_iterator_to_row_start): Initialize iterator for display
13495 starting at a position given by a glyph_row->start.
13496 (redisplay_window): Don't use vmotion because it gives wrong
13497 results if lines are continued and variable width fonts are used.
13498
427ec082 13499 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13500 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13501 the middle of a character.
427ec082 13502 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13503 the middle of a character.
13504
13505 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13506 it.
13507 (next_element_from_display_vector): Use it->dpvec_index.
13508 (reseat_iterator): Reset it.
13509 (init_iterator): Reset it.
13510 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13511 it->pos.dpvec_index from a glyph_pos structure.
13512 (init_iterator_from_glyph_pos): Call the function above.
13513 (reseat_iterator_to_glyph_pos): Ditto.
13514
13515 * dispnew.c (direct_output_forward_char): Don't use this method at
13516 overlay boundaries or near invisible text.
13517 (direct_output_forward_char): Step through glyph row to find
13518 cursor position.
13519
427ec082 13520 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13521 frame font if line height differs from font height.
13522
13523 * xdisp.c (set_iterator_to_next): Renamed from
13524 move_iterator_forward to avoid confusion with other move_.*
13525 functions.
13526
13527 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13528
135291997-12-31 Gerd Moellmann <gerd@acm.org>
13530
13531 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13532 same naming convention as for other GC functions.
13533 (draw_glyphs): Don't fill background when drawing a cursor and
13534 font height is less than line height.
13535
135361997-12-30 Gerd Moellmann <gerd@acm.org>
13537
13538 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13539 init_iterator_.*.
13540
13541 * xdisp.c (move_iterator_forward): Restore it->len from
13542 it->dpvec_char_len if dpend reached.
13543 (get_next_display_element): Don't consume translated char
13544 prematurely.
13545 (display_line): Don't set this_.* variables if row is continued.
13546 (start_display): Move to start of continuation line if ending
13547 up at end of continued line.
13548
13549 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13550
13551 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13552 checking TO_X and continuation lines.
13553 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13554 of a continued line, don't consider this line as unchanged because
13555 it may no longer be continued.
13556
135571997-12-29 Gerd Moellmann <gerd@acm.org>
13558
13559 * xdisp.c (try_window_id): Catch the case that moving over
13560 continuation lines moves first_unchanged_at_end_row to a row not
13561 displaying text.
13562
13563 * dispextern.h (struct glyph_row): New member
13564 continuation_lines_width. Member continuation_line_p removed.
427ec082 13565 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13566 continuation line.
13567 * xdisp.c (display_line): Set row->continuation_lines_width.
13568 (get_row_start_continuation_line_width): Set continuation lines
13569 width of iterator from continuation lines width of glyph row.
13570 (get_row_start_continuation_line_width): Make it inline.
13571 (set_window_cursor): Make it inline.
13572 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13573 (Fdump_redisplay_state): Ditto.
427ec082 13574
26901792
DL
13575 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13576 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13577
13578 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13579 after determining the continuation lines width for
13580 last_unchanged_at_beg_row.
13581
13582 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13583
13584 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13585 which support faces.
13586 (init_display_iterator): Ditto.
13587 (move_iterator_via_matrix): Skip over truncation glyph at the row
13588 start on terminal frames.
13589 (hscroll_windows): Choose hscroll margin differently for window
13590 system and terminal frames.
13591
135921997-12-28 Gerd Moellmann <gerd@acm.org>
13593
13594 * xdisp.c (hscroll_windows): Change hscroll of windows.
13595 (redisplay_internal): Call it.
13596
427ec082 13597 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13598 doesn't fit completely on the line.
13599 (direct_output_forward_char): Give up for non-ASCII chars.
13600 (direct_output_forward_char): Set redisplay_performed_directly_p.
13601
13602 * dispextern.h (struct display_iterator): Make first_visible_x
13603 and last_visible_x ints; this is for very long truncated lines.
13604
13605 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13606 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13607 positioning problems with the mouse.
13608 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13609 >= it->last_visible_x instead of >.
13610 (display_line): Ditto.
13611
13612 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13613 loaded.
13614 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13615 non-ASCII chars differently. Always produce 1 glyph for composite
13616 chars. If font not found, use CHARSET_WIDTH to calculate width of
13617 non-ASCII chars.
13618 (x_get_char_font_and_encoding): Return null if font could not be
13619 loaded. Reset font to null if fontset could not be loaded.
13620 (draw_glyphs): Fill background if font not found.
13621 (draw_glyphs): Unused parameter just_foreground_p removed. New
13622 parameter composite_glyph.
13623 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13624 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13625 draw_glyphs when calling it recursively for composite chars.
13626
136271997-12-27 Gerd Moellmann <gerd@acm.org>
13628
13629 * xterm.c: Patches from handa.etl.go.jp integrated.
13630 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13631 find a font_info.
13632
13633 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13634 for nglyphs == 1.
13635
13636 * xterm.c (x_draw_relief): Draw relief lines.
13637 (draw_glyphs): Call x_draw_relief.
13638
136391997-12-26 Gerd Moellmann <gerd@acm.org>
13640
13641 * xfns.c (x_make_gc): Create relief GC's.
13642
13643 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13644 (setup_frame_gcs): Initialize them.
13645 (EmacsFrameDestroy): Free them.
13646
427ec082 13647 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13648 last_unchanged_at_beg_row is continued or a continuation line.
13649 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13650 (redisplay_window): Case point has changed, and it has not
26901792
DL
13651 moved off the frame. Don't increment row if PT equals the row
13652 end if the row ends in ZV.
13653
13654 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13655 (expose_line): Call it.
13656 (x_after_update_window_line): Call it.
13657
13658 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13659 reached.
13660
13661 * xterm.c (x_after_update_window_line): Draw continuation line
13662 bitmap.
13663
13664 * dispnew.c (update_window_line): Call
13665 after_update_window_line_hook when row's continuation_line_p
13666 changes.
13667
13668 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13669
13670 * xdisp.c (display_line): Handle continued lines on window system
13671 frames differently since continuation glyphs are not displayed.
13672 (move_iterator_in_display_line_to): Ditto.
13673 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13674 into account.
13675 (move_iterator_vertically_backward): Handle dy == 0 specially.
13676 (redisplay_window): Catch the case of small windows when
13677 recentering where moving back window_height/2 moves us beyond the
13678 top of the display area of the window.
13679
136801997-12-18 Gerd Moellmann <gerd@acm.org>
13681
13682 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13683 dvpos removed.
13684
136851997-12-17 Gerd Moellmann <gerd@acm.org>
13686
13687 * dispnew.c (direct_output_forward_char): Correct new cursor
13688 x-position.
13689
136901997-12-16 Gerd Moellmann <gerd@acm.org>
13691
13692 * xterm.c (x_after_update_window_line): Remove unused parameters.
13693 (XTclear_end_of_line): Clear to display_height instead of
13694 display_height - 1.
13695
13696 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13697 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13698 rows have different y-positions, or different height.
13699
137001997-12-14 Gerd Moellmann <gerd@acm.org>
13701
13702 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13703
13704 * window.c (coordinates_in_window): Call frame_mode_line_height.
13705
13706 * xterm.c (x_draw_3d_border): Removed.
13707 (x_draw_row_borders): Removed.
13708
13709 * dispnew.c (update_window): References to
13710 FRAME_MODE_LINE_BORDER_WIDTH removed.
13711
13712 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13713 (FRAME_MODE_LINE_HEIGHT): Removed.
13714
13715 * xterm.c (draw_3d_borders_p): Removed.
13716 (draw_glyphs): Ditto.
13717 (XTwrite_glyphs): Ditto.
13718 (expose_line): Ditto.
13719 (x_initialize): Ditto.
13720
13721 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13722 frame_mode_line_height.
13723
13724 * term.c (frame_mode_line_height): Get the pixel height of a
13725 frame's mode line.
13726 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13727 versions.
13728
26901792
DL
13729 * xterm.c (x_initialize): Set the hook.
13730 (XTframe_mode_line_height): X version of frame_mode_line_height.
13731
13732 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13733 output buffer.
13734 (display_string): Don't add right truncation mark if line ends in
13735 padding space.
13736 (init_display_iterator): If called with modeline_p non-zero, set
13737 face_id to 1, which is the id of the mode line face.
13738
13739 * keyboard.c (cmd_error_internal): Write to stderr if selected
13740 frame is Vterminal_frame under X. This is the case when a font
13741 cannot be loaded when Emacs starts. Replace test for
13742 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13743
13744 * xfaces.c (compute_overlay_string_char_face): Compute the
13745 face of a character in an overlay string.
13746 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13747 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13748 Use it.
13749
13750 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13751 set_iterator_to_next_overlay.
13752 (struct overlay_entry): Structure used to sort overlay strings.
13753 (compare_overlay_entries): Compare overlay strings.
13754 (load_iterator_with_overlay_strings): Load a chunk of overlay
13755 strings.
13756 (get_overlay_strings_at_iterator_position): Call it.
13757 (next_element_from_overlay_string): Set it->object to the overlay
13758 string. Prepare for setting it->position to a string position.
13759 (get_overlay_strings_at_iterator_position): Renamed from
13760 get_overlays_at_iterator_position.
13761 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13762 chunks of overlay strings.
13763 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13764
13765 * dispextern.h (struct display_iterator): New vector
13766 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13767 overlays and n_overlays.
13768 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13769 renamed to string_index.
13770
137711997-12-13 Gerd Moellmann <gerd@acm.org>
13772
13773 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13774 when allocating a vector.
13775 (release_iterator): Removed.
13776 (restore_iterator): Removed.
13777 (copy_iterator): Removed.
13778
137791997-12-08 Gerd Moellmann <gerd@acm.org>
13780
13781 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13782 clearing a mini-buffer window that is not active.
13783 (redisplay_window): Do not scroll one line too early when last
13784 window line is completely visible.
13785 (init_display_iterator): Leave some room to display the cursor
13786 after the last glyph on a continued line.
13787
13788 * xterm.h (struct x_output): trunc_area_extra renamed
13789 flags_areas_extra.
13790 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13791
13792 * dispnew.c (update_window_line): Call
13793 after_update_window_line_hook when current row is not enabled
13794 which is the case after a frame has been cleared.
13795
13796 * xdisp.c (display_mode_line): Reset row flags for truncation
13797 on right side for the mode line.
13798
13799 * xterm.c (bitmap_type): Type of bitmap to display in flags
13800 area of frame.
13801 (x_after_update_window_line): Use the enum.
13802 (draw_bitmap): Ditto.
13803
138041997-12-07 Gerd Moellmann <gerd@acm.org>
13805
13806 * xterm.c (x_clip_to_row): Include width of both flag areas.
13807 (do_line_dance): Ditto.
13808 (expose_window_tree): Ditto.
13809 * dispnew.c (update_window_line): Call
13810 after_update_window_line_hook for right truncation and continuation.
13811 * xdisp.c (init_display_iterator): Don't subtract width of
13812 continuation glyphs for window-based redisplay.
13813 * xterm.c (draw_bitmap): Draw continuation bitmap.
13814 * widget.c (set_frame_size): Double trunc_area_extra.
13815 (EmacsFrameSetCharSize): Ditto.
13816 * xfns.c (x_figure_window_size): Ditto.
13817 * xterm.c (x_set_window_size): Ditto.
13818 (x_after_update_window_line): Draw right truncation mark.
13819
13820 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13821
13822 * window.h: Include blocker around dispextern.h removed.
13823
13824 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13825
26901792
DL
13826 * dispextern.h (struct display_iterator): Former ovstr made a
13827 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13828 next_ovstr_invisble_check_pos; check at these positions for
13829 face changes and changes in invisible text property.
13830 (struct glyph_pos): Former ovlen now overlay_string_index.
13831
13832 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13833 overlay_string.
13834 (set_iterator_to_next_overlay_string): Set overlay_string and
13835 pos.overlay_string_index.
13836 (get_overlays_at_iterator_position): Use overlay_string and
13837 overlay_string_index.
13838 (next_element_from_overlay_string): Use overlay_string and
13839 overlay_string_index.
13840 (move_iterator_forward): Increment overlay_string_index.
13841 (try_window_id): Use overlay_string and overlay_string_index.
13842 (move_iterator_forward): At end of dpvec, maybe use method
13843 next_element_from_overlay_string for the case a character from an
13844 overlay string was translated via a display table.
13845 (reseat_iterator_to_string): Take a Lisp string.
13846 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13847 (compute_face_at_iterator_overlay_string_position): Compute face
13848 based on text properties for an overlay string.
13849 (next_element_from_overlay_string): Check invisible and face text
13850 properties.
178c5d9c 13851
26901792
DL
13852 (set_iterator_to_next_overlay_string): Restore face id before
13853 overlay strings when no more overlay strings are found to return.
13854 Initialize next_ovstr_.*check_pos for each new overlay string
178c5d9c 13855
bb6677a8
GM
13856 A line in the following paragraph was garbled for an unknown
13857 reason. It couldn't be fully reconstructed.
178c5d9c 13858
bb6677a8 13859 (compute_base_face): Made public.
26901792
DL
13860 (merge_face_list): Ditto.
13861 (intern_computed_face): Ditto.
13862
427ec082 13863 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13864 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13865 of row is > instead of >= last_y.
13866
13867 * buffer.h (overlays_at): Function prototype.
13868
13869 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13870 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13871
427ec082 13872 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13873 memory of a display_iterator.
13874 (copy_iterator): Copy an iterator.
13875 (restore_iterator): Restore an iterator from a backup copy.
13876 (global): Use the functions above.
13877 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13878 * dispnew.c (direct_output_for_insert): Call release_iterator.
13879
13880 * dispextern.h (struct display_iterator): Allocate overlays
13881 vector dynamically.
13882
138831997-12-06 Gerd Moellmann <gerd@acm.org>
13884
13885 * Makefile.in (window.o): Depends on dispextern.h.
13886
13887 * buffer.c (overlays_at): Make it work when extending vectors
13888 and an initial vector of zero size.
13889
13890 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13891 from set_cursor_to_previous_visible_line_end.
13892 (set_iterator_to_next_visible_line_start): Renamed from
13893 set_cursor_to_next_visible_line_end.
13894 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13895 (compute_face_at_iterator_position): Renamed from
13896 compute_cursor_face.
13897 (set_iterator_to_next_overlay_string): Renamed from
13898 cursor_to_next_overlay_string.
13899 (get_overlays_at_iterator_position): Renamed from
13900 get_overlays_for_cursor.
13901 (reseat_iterator): Renamed from reseat_cursor.
13902 (setup_iterator_overlays_from_glyph_pos): Renamed from
13903 setup_overlays_from_pos.
13904 (init_string_iterator): Renamed from init_string_cursor.
13905 (get_next_display_element): Renamed from next_display_element.
13906 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13907 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13908 dynamically.
13909
13910 * xdisp.c: display_cursor renamed display_iterator.
13911 * dispextern.h: Ditto.
13912 * dispnew.c: Ditto.
13913
139141997-12-01 Gerd Moellmann <gerd@acm.org>
13915
13916 * window.c (mark_window_cursors_off): Function comment added.
13917 (window_topmost_p, window_rightmost_p): Removed because not used.
13918
139191997-11-30 Gerd Moellmann <gerd@acm.org>
13920
13921 * emacs.c (main): Function prototypes removed in profiling code.
13922 Use safe_bcopy as start of text.
13923
13924 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13925 mirrored_make_current -> make_current.
13926
13927 * xdisp.c: (store_frame_title_char): New function to store a
13928 single character for the frame title with re-allocation of
13929 frame_title_buf.
13930 (init_xdisp): Intialize frame_title_.* variables to null.
13931
13932 * dispnew.c (quit_error_check): Removed.
13933
13934 * eval.c (Fsignal): Call to quit_error_check removed.
13935 * keyboard.c (quit_throw_to_read_char): Ditto.
13936
139371997-11-23 Gerd Moellmann <gerd@acm.org>
13938
13939 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13940 to mean a zero relief.
13941
26901792
DL
139421997-11-19 Gerd Moellmann <gerd@acm.org>
13943
13944 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13945 unconditionally.
13946 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13947 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13948 (check_glyph_memory): Define function body unconditionally.
13949
139501997-11-17 Gerd Moellmann <gerd@acm.org>
13951
13952 * dispnew.c (scrolling_window): Alternative version of this
13953 function removed.
13954
139551997-11-16 Gerd Moellmann <gerd@acm.org>
13956
13957 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13958 of height CANON_Y_UNIT.
13959 * dispextern.h: Prototype for that function.
427ec082 13960 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13961 produce empty rows. Use make_empty_enabled_row instead.
13962
13963 * dispnew.c (scrolling_window): New version using diff-like
13964 algorithm activated.
427ec082 13965
26901792
DL
139661997-11-15 Gerd Moellmann <gerd@acm.org>
13967
13968 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13969 (clear_desired_matrices): Ditto.
13970 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13971 for menu_bar_window.
13972
13973 * alloc.c (mark_object): Mark menu_bar_window of frames.
13974
13975 * xterm.c (XTupdate_window_end): Don't display cursor if
13976 pseudo_window_p.
13977
13978 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13979 set mini_p.
13980 (update_window): Don't set cursor if pseudo_window_p.
13981
13982 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13983
13984 * window.h (struct window): New flag pseudo_window_p set to
13985 1 for windows that aren't really part of the window tree, like
13986 menu_bar_window's of frames.
13987 * window.c (make_window): Initialize it.
13988 (replace_window): Ditto.
13989 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13990
13991 * frame.c (make_frame): Initialize menu_bar_window to nil.
13992
13993 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13994 FACE_RELIEF
13995
13996 * xfaces.c (copy_face): shadow_thickness -> relief.
13997 (face_eql): Ditto.
13998 (merge_faces): Ditto.
13999 (compute_base_face): Ditto.
14000 (Fset_face_attribute_internal): Ditto.
14001 * dispextern.h (struct face): Ditto.
14002
14003 * dispnew.c (update_frame): Update menu_bar_window of the frame if
14004 it is non-nil.
14005
14006 * xdisp.c (display_menu_bar): Display the menu bar in
14007 f->menu_bar_window if appropriate.
14008 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
14009
14010 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
14011 dummy window and window matrices for f->menu_bar_window.
14012 (free_glyphs): Free the dummy window and its glyph matrices.
14013
14014 * frame.h (struct frame): New member menu_bar_window.
14015
140161997-11-09 Gerd Moellmann <gerd@acm.org>
14017
14018 * dispnew.c (scrolling_window): New version with diff-like
14019 algorithm.
14020
14021 * xdisp.c (try_window_reusing_current_matrix): If new_start >
14022 old_start always start displaying at start of
14023 first_row_to_display. The previous scheme failed if the last row
14024 was fully visible.
14025
14026 * dispnew.c (update_window): Remove cost calculations. Remove
14027 redundant preempt_count calculations.
14028
14029 * xterm.c (x_clip_to_row): Set clipping for non-text rows
14030 differently.
14031
14032 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
14033
427ec082 14034 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
14035 WITH_MARGINAL_AREAS is defined.
14036
427ec082 14037 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
14038 removed.
14039
14040 * dispnew.c (scrolling): Call line_hash_code because hash values
14041 are not set in the frame matrix.
14042
14043 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
14044 (redisplay_window): Check line_ins_del_ok before calling
14045 try_window_id.
14046 (try_window_reusing_current_matrix): Give up for terminal frames
14047 if window is not full width or we cannot insert/delete lines.
14048 (try_window_reusing_current_matrix): Fixed scrolling for terminal
14049 frames.
14050
14051 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
14052 Lisp_Object to mark_object.
14053
14054 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
14055 window rows have the same glyph pointers.
14056 (try_window_id): Call it.
14057
14058 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
14059 a glyph matrix.
14060 (mark_object): Call it.
14061
14062 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
14063 truncations.
14064 (display_line): Ditto.
14065 (display_line): Ditto for DISP_CONTINUATION.
14066 (display_line): Truncation on right: test current_x >
14067 last_visible_x.
14068 (skip_in_display_line_to): Ditto.
14069 (skip_via_matrix): Stop skipping in glyph row at face extending
14070 glyphs or at padding spaces.
14071
14072 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
14073
14074 * xdisp.c (display_line): Use glyph->object == 0 for padding
14075 glyphs.
14076 (redisplay_window): Don't let cursor move over padding
14077 spaces.
14078
14079 * dispextern.h (struct glyph): Fix comment for object.
14080
140811997-11-08 Gerd Moellmann <gerd@acm.org>
14082
14083 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14084 has a mode line.
14085 * xdisp.c (redisplay_window): Use it.
14086 (display_mode_line): Check that window wants mode line.
14087
140881997-11-03 Gerd Moellmann <gerd@acm.org>
14089
14090 * xdisp.c (display_menu_bar): Enable menu bar rows.
14091
14092 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14093 (x_erase_phys_cursor): Ditto.
14094 (x_draw_bar_cursor): Ditto.
14095
140961997-11-02 Gerd Moellmann <gerd@acm.org>
14097
14098 * dispnew.c (update_marginal_area): Update a marginal area.
14099 (update_text_area): Update text area.
14100 (update_window_line): Call both.
14101
14102 * xterm.c (XTclear_end_of_line): Translate coordinates area
14103 dependent.
14104
14105 * dispnew.c (updated_area): Row area being updated in
14106 update_window_line.
14107 (update_window_line): Set it.
14108 (update_marginal_area): Clear to end of line if not in text area.
14109
14110 * window.c (Fset_window_margins): Increment
14111 windows_or_buffer_changed. Adjust glyphs.
14112
14113 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14114 area X coordinates to frame coordinates.
427ec082 14115 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14116 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14117 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14118
14119 * xterm.c (draw_glyphs): Use text area width as display width.
14120
14121 * xdisp.c (init_display_info): Subtract widths of marginal areas
14122 from last_visible_x.
14123
14124 * alloc.c (mark_object): Mark objects in glyphs only if they are
14125 overlays. Mark only if current_matrix != 0. Activate the code.
14126
14127 * window.c (Fset_window_margins): Set margins.
14128 (Fwindow_margins): Return margin area widths.
14129 (syms_of_window): Add defsubr's.
14130
14131 * window.h (struct window): left_margin_width, right_margin_width.
14132
14133 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14134 and cols.
14135
14136 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14137 truncation/overlay arrow area.
14138 (struct frame): trunc_area_pixel_width, and _cols.
14139
14140 * window.c (Fsplit_window): Use it.
14141
14142 * window.c (Fsplit_window): Set cursor vpos to -1 after
14143 splitting.
14144 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14145 split windows.
14146
14147 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14148 of bounds cursor positions.
26901792
DL
14149
14150 * xdisp.c (redisplay_internal): Check that after cursor motion
14151 within line, PT is on same line.
14152
14153 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14154 FRAME_TRUNC_WIDTH.
14155
14156 * xterm.h (struct x_output): trunc_area_extra.
14157 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14158 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14159 * widget.c (set_frame_size): Set it.
14160 (EmacsFrameSetCharSize): Ditto.
14161 * xfns.c (x_figure_window_size): Ditto.
14162 * xterm.c (x_set_window_size): Ditto.
14163
14164 * dispnew.c (check_matrix_invariants): First try to check window
14165 ends (in #if 0).
14166
14167 * xdisp.c (try_window_reusing_current_matrix): Try window
14168 redisplay with different window start.
14169
141701997-11-01 Gerd Moellmann <gerd@acm.org>
14171
14172 * window.c (make_window): Set window_end_pos/vpos.
14173 (Fsplit_window): Zero last_cursor, window_end_valid.
14174 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14175
14176 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14177
141781997-10-31 Gerd Moellmann <gerd@acm.org>
14179
14180 * window.c (make_window): Initialize last_cursor.
14181 (replace_window): Ditto.
14182
141831997-10-29 Gerd Moellmann <gerd@acm.org>
14184
14185 * window.h: New member last_cursor.
14186 * dispnew.c (direct_output_for_insert): Set it.
14187 (direct_output_forward_char): Ditto.
14188 * xdisp.c (redisplay_internal): Ditto.
14189
141901997-10-28 Gerd Moellmann <gerd@acm.org>
14191
14192 * xdisp.c (redisplay_internal): Optimization 1 change partially
14193 reverted. Check this again later.
14194 (skip_via_matrix): Remove redundent test for
427ec082 14195 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14196
141971997-10-27 Gerd Moellmann <gerd@acm.org>
14198
14199 * dispnew.c (update_window_line): Call
14200 after_update_window_line_hook only for interesting constellations.
14201 (free_glyph_matrix): Fix memory leak.
14202
14203 * window.h: Include blocker WINDOW_H_INCLUDED, include
14204 dispextern.h.
14205 (struct window): phys_cursor_glyph as struct glyph. * window.c
14206 (make_window): Initialize it.
427ec082 14207 (replace_window): Ditto.
26901792
DL
14208 * dispnew.c (free_window_matrices): Remove freeing of
14209 phys_cursor_glyph.
14210 (check_matrix_invariants): Renamed from check_current_matrix_...
14211 * xterm.c: All references to phys_cursor_glyph changed.
14212
14213 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14214
14215 * xfaces.c: Comment update.
14216
14217 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14218 pointer. Remove phys_cursor_ascent, descent, etc.
14219 * dispnew.c (free_window_matrices): Free it.
14220 * window.c (make_window): Allocate it.
14221 (replace_window): Ditto.
14222 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14223 (x_display_and_set_cursor): Fill it.
14224 (x_phys_cursor_in_rect_p): Use it.
14225 (x_draw_hollow_cursor): Ditto.
14226 (x_draw_bar_cursor): Ditto.
14227 (x_erase_phys_cursor): Ditto.
14228
14229 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14230
14231 * xterm.c (XTget_display_info): Handle 3D facess.
14232 (draw_glyphs): Ditto.
14233
14234 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14235
14236 * xfaces.c (Fset_face_attribute_internal): New face attribute
14237 shadow-thickness.
14238 (copy_face): Handle shadow_thickness.
14239 (face_eql): Ditto.
14240 (merge_faces): Ditto.
14241 (compute_base_face): Ditto.
14242
14243 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14244 (struct display_info): Ditto.
14245 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14246 * xdisp.c (compute_cursor_face): Set it.
14247 (advance_display_cursor): Clear it.
14248
14249 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14250 (init_string_cursor): Init face_id to zero.
14251
14252 * dispextern.h (struct face): New member shadow_thickness.
14253
427ec082 14254 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14255 search to 100.
14256
14257 * dispnew.c (update_window_line): Try to resynch with current line
14258 to prevent mode line flickering.
14259
142601997-10-26 Gerd Moellmann <gerd@acm.org>
14261
427ec082 14262 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14263 on cursor_in_echo_area >= 0.
14264
14265 * xdisp.c (echo_area_display): Clear desired matrix before
14266 displaying into it.
14267 (display_menu_bar): Clear glyph row instead of hoping it is not
14268 enabled. This is safer.
14269
14270 * dispnew.c (check_current_matrix_invariants): Check only
14271 visible rows.
14272
14273 * xdisp.c (try_window_id): Handle window end setting in case of
14274 display to end of window, but only non-text lines displayed.
14275
14276 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14277 (check_current_matrix_invariants): Check used counts.
14278
14279 * Revisiob v114.
14280
14281 * dispnew.c (scrolling): Use hash codes from rows.
14282
14283 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14284
14285 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14286
142871997-10-25 Gerd Moellmann <gerd@acm.org>
14288
14289 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14290 * dispnew.c (update_window): Use it.
14291 (clear_glyph_matrix): Clear it.
14292 * xdisp.c (try_window_id): Set it.
14293
14294 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14295
14296 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14297
14298 * dispextern.h: More comments etc.
14299
143001997-10-24 Gerd Moellmann <gerd@acm.org>
14301
14302 * dispnew.c (set_window_cursor_after_update): Set cursor
14303 for cursor_in_echo_area == 0 to (0, 0).
14304
14305 * dispextern.h (struct glyph_row): New flags continuation_line_p
14306 and displays_text_p.
14307 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14308 * xdisp.c (display_line): Set them.
14309 (try_window_id): Move to start of continuation line to find out
14310 continuation_line_width.
14311 (first_unchanged_current_row): Don't retract row if continued,
14312 truncated etc.
14313
14314 * xterm.c: Map X coordinates.
14315
143161997-10-23 Gerd Moellmann <gerd@acm.org>
14317
14318 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14319 left text.
14320
14321 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14322
14323 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14324
f28eba7b 14325 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14326
14327 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14328
14329 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14330 Set this to functions to be called before/after window updates.
14331 (direct_output_for_insert): Call them.
14332 (update_window): Ditto.
14333 (update_frame): Call update_begin/ update_end for windows.
14334
14335 * xterm.c (XTupdate_window_begin): Called before window updates.
14336 (XTupdate_end): Called after window updates.
14337 (x_initialize): Set hooks to above.
14338
14339 * xdisp.c (init_display_info): Initialize c and len of
14340 display_info.
14341
14342 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14343 fonts more than once.
14344
143451997-10-22 Gerd Moellmann <gerd@acm.org>
14346
14347 * xdisp.c (display_line): Handle most common case of current_x <
14348 last_visible_x separately.
14349
14350 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14351
14352 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14353 so that face extending space doesn't compare equal to normal space
14354 with same face.
14355
14356 * xdisp.c (display_line): Make sure we have a position for
14357 a line end in an otherwise blank line if face is extended.
14358
14359 * dispnew.c (direct_output_for_insert): Increment row end position.
14360
427ec082 14361 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14362 window_end_pos.
14363
14364 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14365
14366 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14367
14368 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14369 start and end positions in rows.
14370 (increment_glyph_row_buffer_positions): Stop adjusting at
14371 glyphs with positions <= 0.
14372
14373 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14374 position including position in overlay.
26901792
DL
14375 (struct glyph_row): Use it for start and end positions.
14376 (struct display_cursor): Use it.
14377 * xdisp.c: Use it.
14378 (display_line): Set row start and end positions.
14379
14380 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14381 assignment.
14382
143831997-10-21 Gerd Moellmann <gerd@acm.org>
14384
14385 * dispnew.c (update_window): Add scrolling_window again. It's
14386 necessary for scroll_step != 0.
14387
14388 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14389 scrolling.
14390
14391 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14392
14393 * xterm.c (XTupdate_end): Flush only for messages.
14394
14395 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14396 first_unchanged_row.
14397
14398 * xterm.c (XTupdate_end): Flush if miniwindow.
14399
14400 * dispnew.c (matrix_row_last_pos): New function.
14401 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14402 Large comment moved to xdisp.c.
26901792
DL
14403
14404 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14405 (skip_via_matrix): Check window_end_valid instead of
14406 display_completed.
14407
14408 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14409 (update_window): scrolling_window commented out. It has negative
14410 effect most of the time.
14411
14412 * xdisp.c (try_window_id): Correct parameters to
14413 scroll_glyph_matrix_range.
14414
427ec082 14415 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14416
14417 * window.h: Comments for window_end_pos/vpos.
14418
f28eba7b 14419 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14420 of the window in which we are skipping.
14421
14422 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14423
14424 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14425 reached.
14426
144271997-10-20 Gerd Moellmann <gerd@acm.org>
14428
14429 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14430 a face extending glyph.
14431
427ec082 14432 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14433 (set_cursor_from_row): Set cursor position from a glyph row.
14434
14435 * dispnew.c (update_window_line): Write entire line if hash
14436 codes of lines differ.
14437
14438 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14439 if glyph row has an infinite width glyph at its end.
14440
14441 * xdisp.c (last_unchanged_current_row): Respect partially visible
14442 lines when looking for the last row displaying text.
14443 (try_window_id): Handle partially visible lines better.
14444
144451997-10-19 Gerd Moellmann <gerd@acm.org>
14446
14447 * dispnew.c (update_window): Remove unused variable.
14448 (update_window_line): Simplified.
14449
14450 * xterm.c (x_get_char_font_and_encoding): Handle most common
14451 case at the beginning.
14452
14453 * xdisp.c (advance_display_cursor): Dispatch on method and
14454 order if statements by expected call frequency. Fixed unclosed
14455 comment.
14456
14457 * xdisp.c (try_window_id): New implementation.
14458
14459 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14460 rows displaying a line end, only.
14461
144621997-10-18 Gerd Moellmann <gerd@acm.org>
14463
14464 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14465
144661997-10-14 Gerd Moellmann <gerd@acm.org>
14467
14468 * xdisp.c (display_line): Mark empty lines not corresponding to
14469 text with position -1.
14470
14471 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14472 not within window matrix bounds.
14473
14474 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14475 (struct display_info): NGLYPHS_TO_IGNORE removed.
14476 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14477 * term.c: Ditto.
14478 * xterm.c: Ditto.
14479
14480 * xdisp.c (init_display_cursor): Set it.
14481 (display_line): Use it to set W->REGION_SHOWING.
14482
14483 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14484
14485 * region-cache.h: functino prototypes with PROTO.
14486
14487 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14488
14489 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14490 a position.
14491
427ec082 14492 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14493 rectangle based on minimum character bounds.
14494
f28eba7b 14495 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14496 glyph position calculations.
14497 (make_lispy_movement): Use buffer_posn_from_coords and window
14498 relative coordinates.
14499
14500 * xterm.c (construct_mouse_click): Remove #if 0 case.
14501
14502 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14503 given row.
14504
427ec082
SS
14505 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14506 date.
26901792
DL
14507 (skip_to): Use it.
14508 (redisplay_window): Remove code skipping using current matrix.
14509
145101997-10-13 Gerd Moellmann <gerd@acm.org>
14511
14512 * xdisp.c (redisplay_window): Use available current matrix to
14513 skip faster when only point is moved withing the window.
14514
427ec082 14515 * intervals.c: Include stdio.h.
26901792
DL
14516 (find_interval): Trace to stderr to catch some nasty error
14517 that did not yet occur again with tracing.
14518 (set_point): Ditto.
14519
14520 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14521 cursor positioning on partially visible lines.
14522 (set_window_cursor_after_update): Ditto.
14523
f28eba7b 14524 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14525
14526 * window.h (struct window): start_y removed.
14527
14528 * window.c (make_window): start_y removed.
14529 (replace_window): Ditto.
14530
427ec082 14531 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14532 descent values of the last line processed by skip_to.
14533 (redisplay_window): Use them.
14534 (skip_to): Set them.
14535
14536 * dispextern.h (struct display_cursor): New member METHOD.
14537
14538 * xdisp.c: Use function member METHOD.
14539
14540 * xdisp.c (set_next_stop_pos): Determine next position at which to
14541 check for face properties, invisible text properties, and overlays.
14542 (compute_cursor_face): Use it.
14543 (get_overlays_for_cursor): Ditto.
14544 (reseat_cursor): Ditto.
14545 (next_display_element): Ditto.
14546
14547Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14548
14549 * termhooks.h: Some hooks with prototypes.
14550
14551 * term.c: Some hooks with function prototypes.
427ec082 14552
26901792
DL
14553 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14554 computing face if possible.
14555
14556 * xdisp.c (next_display_element): Use face from glyph from display
14557 table only if != 0.
14558
14559 * emacs.c: FreeBSD headers for profiling removed.
14560
427ec082
SS
14561 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14562 display cursor, use DEC_POS instread.
26901792
DL
14563
14564 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14565 all fonts are in the font table.
26901792
DL
14566 (unload_font): Don't XFreeFont.
14567
14568 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14569 row height.
14570
14571 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14572 (x_erase_phys_cursor): Clear only visible part of row.
14573 (x_draw_bar_cursor): Set clipping.
14574 (x_draw_hollow_cursor): Ditto.
14575 (x_display_and_set_cursor): Remove clipping.
14576 (expose_window_tree): Take trunc border into account.
14577 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14578 (expose_window): Use it.
14579
14580 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14581 current_x already beyond max_x.
26901792
DL
14582 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14583 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14584 last_visible_x.
26901792
DL
14585
14586 * scroll.c (scrolling_window_1): Removed.
14587
14588 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14589 based on redisplay method used.
14590 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14591 based redisplay.
14592 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14593 window based redisplay.
14594
14595 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14596 on data structures.
14597
14598 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14599 Handle own storage for purely window based redisplay.
14600 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14601 allocate_matrices.
26901792
DL
14602 (allocate_matrices_for_window_redisplay): Ditto.
14603
14604 * dispextern.h (struct glyph_matrix): window_top_y,
14605 window_height.
14606
14607 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14608 and optimize some common cases of window changes.
14609
14610 * emacs.c (main): Remove own profiling code because 0.95 now
14611 has it in.
14612
14613Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14614
d7d0dac0 14615 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
14616 (expose_window): Draw vertical border.
14617 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14618 don't do anything.
14619
14620 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14621 for non full width windows only if not window redisplay.
14622
14623 * dispnew.c (update_window_tree): Or paused_p return of called
14624 functions.
14625
14626 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14627 of window.
14628
14629 * window.c (Fset_window_configuration): adjust_glyphs being
14630 called twice.
14631 (Fset_window_configuration): Set frame garbaged if not all
14632 leaf windows reused.
14633
146341997-08-21 Gerd Moellmann <gerd@acm.org>
14635
14636 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14637 that rows should really be cleared. Used for current matrices.
14638
d7d0dac0
SM
14639 * dispnew.c (scrolling_window): Bug fix.
14640 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
14641
14642 * dispextern.h (struct run): Remove current_vpos.
14643
14644 * xterm.c (do_line_dance): Only one parameter.
14645
f28eba7b 14646 * xdisp.c (display_line): Set continued_p.
26901792
DL
14647
14648 * dispextern.h (struct glyph_row): New flag continued_p.
14649 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14650 (struct glyph_row):
26901792
DL
14651
14652Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14653
14654 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14655 when calling skip_to for continued lines.
14656
14657 * dispnew.c (change_frame_size_1): Set frame garbaged.
14658
14659 * xterm.c (expose_window): Check enabled_p of rows.
14660
14661 * xdisp.c (redisplay_internal): Compare line heights before and
14662 now for redisplay optimization 2 (hit).
14663 (display_line): Set this_line_pixel_height.
14664
14665 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14666 value.
14667 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14668 (do_line_dance): Simplified and pixel corrected.
14669
14670 * dispnew.c (scrolling_window): Simplified.
14671
14672 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14673
14674 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14675 to mode line row->x.
14676
14677Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14678
14679 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14680 override font of face.
14681 (draw_glyphs): Correct return value.
14682 (XTclear_end_of_line): Compare differently with output cursor
14683 position.
14684 (x_draw_hollow_cursor): 2 parameters, window and row.
14685
14686 * dispnew.c (update_window_line): If rows have different height
14687 or y, write entire line.
14688
f28eba7b 14689 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14690 of info struct.
14691
427ec082 14692 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14693 frame_update_line_height.
14694 (merge_faces): Don't use default font if new font has different
14695 size.
14696
14697Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14698
14699 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 14700 unknown. Some fonts have min_width zero.
26901792 14701 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 14702 line if face is merely extended to that point.
26901792 14703 (draw_glyphs): Don't assume background is filled if
d7d0dac0 14704 just_foreground_p but extending to end of line.
26901792
DL
14705
14706 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14707 for partially visible last lines.
14708 (x_clip_to_row): Ditto.
14709 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14710 display_height since line_height is really a line distance.
14711 (x_display_and_set_cursor): If cursor on padding glyph, use
14712 min_bounds pixel width.
14713
14714Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14715
14716 * xterm.c (x_clip_to_row): Height value was 1 too large.
14717 (XTclear_end_of_line): Clip to display area.
14718
14719 * xfns.c (x_figure_window_sizes): Add trunc border width
14720 to frame pixel width.
14721
14722 * xdisp.c (next_display_element): Don't display overlay strings
14723 within invisible text.
427ec082 14724 (skip_vertically_backward): Skip display lines.
26901792
DL
14725
14726Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14727
14728 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14729
14730 * xdisp.c (next_display_element): Next invisible
14731 text check position computed differently.
14732
14733 * dispextern.h (struct display_cursor): last_invisible_text_pos
14734 and display_ellipsis_for_invisible_p removed.
14735
14736 * xdisp.c (next_display_element): Set last_invisible_text_pos
14737 to the last position at which invisible text was found. Don't
14738 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14739 dpvec for `...' due to invisible text directly.
26901792
DL
14740 (redisplay_internal): Don't assert that cursor is at PT after
14741 skip_to. It may be in invisible text.
14742
427ec082 14743 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14744 x_y_to_hpos_vpos.
14745
427ec082 14746 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14747 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14748 checking for invisible text.
14749
14750 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14751
14752 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14753
d7d0dac0 14754 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
14755 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14756
14757 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14758 Removed.
14759
14760 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14761
14762 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14763 pixel coordinates.
14764 (note_mouse_highlight): Use it.
14765
14766 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14767 under a window system.
14768
427ec082 14769 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14770 necessary.
427ec082 14771 (update_window_line): Add width of face padding glyph to
26901792
DL
14772 displayed widths of rows.
14773
14774 * xterm.c (x_display_and_set_cursor): Set clipping after
14775 erasing cursor.
427ec082
SS
14776
14777 * window.c (Fset_window_configuration): Free only those
26901792
DL
14778 window matrices not reused.
14779 (get_leaf_windows): Build vector of leaf windows.
14780 Corrupted archive restored from v77.
14781
f28eba7b 14782 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14783 like display_line does.
14784
14785 * xdisp.c (display_mode_line): Don't hscroll mode line.
14786
14787 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14788 windows.
14789 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14790 garbage between mode lines when splitting windows horiz.
14791
14792 * dispnew.c (direct_output_for_insert): Bug fix.
14793
14794 * dispextern.h (struct display_cursor): New member string_length.
14795
14796 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14797 (init_string_cursor): Take precision and field_width
26901792
DL
14798 (display_string): Use string cursor, skip over invisible text.
14799
14800Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14801
14802 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14803 (x_display_and_set_cursor): Call it.
14804 (draw_glyphs): Call it
14805 (draw_bitmap): Call it.
14806
427ec082 14807 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14808 (allocate_leaf_matrix): Return flags.
14809 (row_equal_p): Compare enabled_p.
14810
14811 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14812 for type == -1.
14813
14814 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14815 (draw_glyphs): Clip height one pixel taller.
26901792 14816
427ec082 14817 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14818 mini window.
14819
f28eba7b 14820 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14821
427ec082
SS
14822 * xdisp.c (echo_area_display): Call update_single_window if
14823 possible.
26901792
DL
14824
14825 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14826 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14827 (update_single_window): Update a single window like update_frame
14828 does for all windows.
427ec082 14829 (update_window, update_window_tree): Additional argument
26901792
DL
14830 no_scrolling_p.
14831 (update_frame): Pass no_scrolling_p to update_window_tree.
14832 (update_window): Don't call scrolling_window if no_scrolling_p.
14833
14834 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14835 Erase under hollow cursor.
14836 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14837 not enabled. Draw bar cursor 1 pixel smaller.
14838
f28eba7b 14839 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14840 since update will follow soon.
14841
14842 * xdisp.c (echo_area_display): Unitialized variable.
14843
f28eba7b 14844 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14845 overlay arrow bitmap.
14846
f28eba7b 14847 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14848 up to the final \n as part of the line for cursor positioning.
26901792 14849
f28eba7b
SM
14850 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14851 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14852
14853 * xterm.h (FRAME_X_TRUNC_WIDTH).
14854
f28eba7b 14855 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14856 of a window reserved for truncation mark.
14857
427ec082 14858 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14859
14860 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14861 hook.
26901792
DL
14862
14863 * xdisp.c (display_line): Set overlay_arrow_p in row.
14864
14865 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14866
14867 * xterm.c (x_after_update_window_line): Draw truncation marks.
14868
14869 * xdisp.c (display_line): Insert truncation for lines with
14870 current_x > 0.
14871
14872 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14873 Correct y by 1.
14874 (x_display_cursor): Use default font width if width not
427ec082 14875 known.
26901792 14876
f28eba7b 14877 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14878
14879 * dispnew.c (set_window_cursor_after_update): Don't assume
14880 all rows are enabled.
14881
14882 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14883 of cursor.pos.
14884 (skip_in_display_line_to): Check cursor.position after call to
14885 next_display_element.
14886
427ec082 14887 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14888 buffer position.
14889
14890 * xdisp.c (display_line): Set row->y here.
14891 (skip_in_display_line_to): Test for to_pos after all glyphs
14892 have been added to hpos so that hpos is at the end of all
14893 glyphs for to_pos.
14894 (start_display): Remove assertion.
14895
d7d0dac0 14896 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
14897 (update_window): Don't set row->y here.
14898
14899 * xdisp.c (next_display_element): Don't translate control chars
14900 from display table entries.
14901
427ec082 14902 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14903 update end to prevent cursor flickering. Revert changes to
14904 setting cursor.endpos.
14905
14906Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14907
14908 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14909 to PT because this prevents multi-byte characters from being
14910 recognized.
14911
427ec082
SS
14912 * xdisp.c (skip_to, display_line): Advance cursor at end of
14913 truncated line.
26901792
DL
14914
14915 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14916 replaced by XRectangle.
14917
d7d0dac0 14918 * dispnew.c (scrolling_window): New method.
26901792
DL
14919
14920 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14921
26901792
DL
14922 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14923 visible part of line.
14924
14925 * dispnew.c (update_window_line): Fill inverse video lines
14926 with infinite width space.
14927 (update_window): Handle completely empty matrices.
14928 (set_window_cursor_after_update): Bug fix.
14929
427ec082 14930 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14931
14932 * dispnew.c (update_window_line): Don't ignore spaces, don't
14933 fill with spaces.
14934
14935 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14936 the first glyph having width 0.
14937
14938 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14939 a glyph that extends to the end of the line.
26901792
DL
14940
14941 * xdisp.c (display_line): Insert one padding glyph
14942
14943 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14944 amount from info.current_x.
14945 (display_line): Ditto.
14946
14947 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14948 (change_frame_size_1): Correct cursor.x if frame gets too small.
14949 (update_window_line): Start at row->x.
14950
14951 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14952 in xdisp.c).
14953
14954 * xterm.c (set_output_cursor): Use window relative X/Y.
14955 (global): Use window relative output cursor x/y.
14956 (draw_glyphs): Remove y param. Pass window relative x/y.
14957
14958 * dispnew.c (update_window): Start rows at start_y.
14959 (update_window): Don't try scrolling because it wouldn't work
14960 with variable height lines, anyway.
14961
14962 * dispextern.h (struct glyph_row): Remove shift_left_by,
14963 add x.
14964
14965 * window.h: (struct window): New member start_y.
14966
14967 * window.c (replace_window): Initialize start_y.
14968 (make_window): Ditto.
14969
14970Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14971
14972 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14973 the mode line.
26901792 14974
427ec082
SS
14975 * dispnew.c (update_window): Take mode line border into
14976 account.
26901792
DL
14977
14978 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14979 of border around mode line.
26901792
DL
14980
14981 * xterm.c (x_draw_row_borders): Bug fix.
14982 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14983 drawing functions.
14984
14985 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14986 around modeline instead of inverting it.
26901792 14987
427ec082 14988 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14989
14990 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14991 window relative pixel coordinates as arguments.
14992
14993 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14994 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14995 COORDS mit new arguments.
14996
14997Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14998
14999 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 15000 DISPLAY_LINE.
26901792
DL
15001
15002 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
15003 pixel coords.
15004 (make_lispy_movement): Same.
15005
15006 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
15007 with new parameter meaning.
15008
15009 * window.c (Fcoordinates_in_window_p): Convert Lisp params
15010 from canon units to pixels.
15011 (coordinates_in_window): Pixel based.
15012 (Fcoordinates_in_window_p): Convert result pixel values back
15013 to canonical units.
15014
15015 * window.h: phys_cursor_ascent + descent instead of height.
15016
15017 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 15018 chars with charset width 1.
26901792
DL
15019
15020 * dispnew.c (direct_output_for_insert): Set updated_row.
15021
15022Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
15023
15024 * dispextern.h (struct glyph): Padding flag removed.
15025
15026Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
15027
15028 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
15029
15030 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
15031
15032 * dispnew.c (update_window_line): Use pixels.
15033
15034 * xdisp.c (compute_line_metrics): Correct pixel_width by
15035 shift_left_by.
15036
15037 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 15038 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
15039 glyph_row -> right_to_left_p. Change references to it.
15040
15041Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
15042
15043 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
15044
15045 * xterm.c (XTinsert_glyphs): Implement it.
15046
15047 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
15048 of a call from DIRECT_OUTPUT_FOR_INSERT.
15049
15050 * window.h (struct cursor_pos): Keeps both matrix positions
15051 and pixel positions.
15052 (struct window): Use it.
15053
15054 * dispnew.c (direct_output_for_insert): New version.
15055
15056 * xdisp.c (redisplay_internal): Don't do anything if it has
15057 already be done directly.
15058
15059 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
15060 for any character.
15061
15062Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
15063
15064 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
15065
15066Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
15067
15068 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
15069 (struct glyph): ASCENT, DESCENT.
15070 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
15071 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
15072
15073 * xterm.c (XTget_display_info): Correct tab computation.
15074
15075 * term.c (get_display_info): Correct tab computation.
15076
15077 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15078 Renamed from CHAR_CURSOR.
15079
15080Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15081
15082 * xdisp.c (display_text_line): Mostly pixel oriented.
15083
15084 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15085
15086 * term.c (append_intermediate_glyph): Generate padding glyphs.
15087
15088 * xdisp.c (display_text_line): More into final direction.
15089
15090 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15091 (XTget_char_info): Use tabs as multiples of spaces.
15092
15093 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15094 Use tabs as multiples of spaces.
15095
15096 * dispextern.h (struct char_info ): WHAT field.
15097
15098 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15099 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15100
15101Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15102
15103 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15104 value.
15105 (init_char_info): Initialize with glyph row.
15106
15107 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15108
15109 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15110
15111 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15112 glyphs.
15113
15114 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15115 moved to xdisp.c.
15116
15117 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15118
15119 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15120 generation.
15121 (XTget_char_info): Ditto.
15122
15123 * term.c (get_char_info): Intermediate glyph generation.
15124 (append_intermediate_glyph): Ditto.
15125
15126Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15127
427ec082 15128 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15129 CHAR_CURSOR.
15130 (init_char_cursor): Initialize a CHAR_CURSOR.
15131 (get_char_and_advance): Get next character to display.
15132
15133 * dispextern.h (struct char_cursor): Cursor for iterating over
15134 display text of CURRENT_BUFFER.
15135
15136Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15137
15138 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15139
15140 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15141 New member MAX_PIXEL_HEIGHT.
15142
15143 * xterm.c (x_per_char_metric): Get per character metrics.
15144 (XTget_char_info): More cases covered.
15145
15146 * term.c (get_char_and_info): Get next character and character
15147 display information.
15148 (get_char_info): Get character display information.
15149
15150 * dispextern.h: Character display information.
15151
427ec082 15152 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15153 encode character.
15154 (XTget_char_info): Get display information about a character.
15155
15156Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15157
15158 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15159 zero if window is mini-window.
15160
15161 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15162 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15163
427ec082 15164 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15165 (clear_glyph_row): Clear pixel height.
15166 (update_window): Use PIXEL_HEIGHT.
15167
15168 * xdisp.c (display_string): Set row pixel height temporarily.
15169 (display_text_line): Ditto.
15170
427ec082 15171 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15172 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15173
427ec082 15174 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15175 line in default font.
15176 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15177 in default font.
15178 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15179
15180 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15181 in pixels.
15182
15183 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15184
15185 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15186 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15187 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15188 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15189 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15190 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15191 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15192 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15193 pixel values related to windows.
15194
15195Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15196
15197 * xterm.c (XTflash): Flash last line of frame.
15198
15199 * dispextern.h (cursor_in_echo_area): Extern declaration.
15200
15201 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15202 freezes stem from 16-bit functions.
26901792
DL
15203
15204 * xterm.c (x_display_and_set_cursor): Don't display hollow
15205 cursor in mini windows.
15206
15207 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15208 (make_window): Ditto.
15209
15210 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15211 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15212 and X_DISPLAY_BAR_CURSOR.
15213 (x_display_cursor): Use it.
15214 (x_update_window_cursor): Use it.
15215
15216 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15217 selected.
26901792
DL
15218
15219 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15220 of X and Y to denote matrix positions.
15221 (x_display_cursor): Ditto.
15222
15223 * dispnew.c (scrolling_window): Scrolling for windows.
15224
15225Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15226
15227 * dispnew.c (build_frame_matrix): Work on windows with update
15228 flag set.
15229 (build_frame_matrix_from_window_tree): Ditto.
15230 (build_frame_matrix_from_leaf_window): Ditto.
15231
15232 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15233 building frame matrix.
427ec082 15234 (redisplay_internal): Set window update flags instead of
26901792
DL
15235 building frame matrix.
15236
15237 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15238 building frame matrix.
15239
15240 * window.c (make_window): Initialize new members.
15241 (replace_window): Ditto.
15242
15243 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15244 I don't believe this is really necessary.
15245
15246 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15247 border glyph once.
26901792
DL
15248
15249Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15250
427ec082 15251 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15252 window tree off.
15253
427ec082 15254 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15255 window matrix.
15256 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15257 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15258 (x_update_cursor): Work on windows.
15259 (x_display_bar_cursor): Ditto.
15260 (x_draw_single_glyph): Ditto.
15261
15262 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15263
15264 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15265 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15266 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15267 parameter.
26901792 15268
d7d0dac0 15269 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15270
15271 * window.c (window_rightmost_p, window_topmost_p): Based on
15272 window tree.
15273
15274 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15275 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15276
15277 * window.h: PHYS_CURSOR_.* added.
15278
15279 * frame.h (struct frame): Cursor information removed.
15280
15281 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15282 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15283
15284 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15285
15286 * window.c (window_internal_width): Scroll bars no longer
15287 part of window.
15288
d7d0dac0 15289 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15290
d7d0dac0 15291 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15292
15293 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15294 (redisplay_internal): Ditto.
15295 (redisplay_window): Ditto.
15296 (redisplay_window): Ditto.
15297 (display_text_line): Ditto.
15298 (display_mode_line): Ditto.
15299
15300 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15301
15302 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15303 (direct_output_for_insert): Ditto.
15304 (direct_output_forward_char): Ditto.
15305 (update_frame_1): Ditto.
15306
15307Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15308
15309 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15310 being updated.
26901792
DL
15311 (update_window): Set and clear it.
15312
15313 * dispnew.c (update_window_line, update_window, scrolling_window):
15314 First versions.
15315
15316 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15317 bar for window borders.
15318 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15319 with spaces.
15320 (fill_up_glyph_row_with_spaces): Call above function.
15321
15322 * xdisp.c (display_text_line): Don't add vertical bar for
15323 window borders.
15324 (display_string): Ditto.
15325
15326 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15327 (replace_window): Ditto.
15328
15329 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15330
15331 * xfns.c (Fx_contour_region): Use selected window cursor position.
15332 (Fx_uncontour_region): Ditto.
15333 (Fx_select_region): Ditto.
15334
15335 * frame.c (make_frame): Remove CURSOR_X/Y.
15336
15337 * xdisp.c (redisplay_internal): Use window cursor position.
15338
15339 * dispnew.c (update_frame_1): Use cursor position of selected
15340 window.
15341 (change_frame_size_1): Ditto.
15342
15343 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15344 (XTwrite_glyphs): Use cursor position of selected window.
15345
d7d0dac0 15346 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15347
15348 * dispnew.c (set_cursor_to): Set window cursor position.
15349 (direct_output_for_insert): Use window cursor position.
15350 (init_display): Don't use frame cursor position.
15351
15352 * window.h: CURSOR_VPOS/HPOS added.
15353
15354 * frame.h (struct frame): CURSOR_X/Y removed.
15355 (FRAME_CURSOR_X): Removed.
15356 (FRAME_CURSOR_Y): Ditto.
15357
15358 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15359 (direct_output_forward_char): Ditto.
15360
d7d0dac0 15361 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15362
15363 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15364
15365 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15366
15367Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15368
15369 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15370 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15371
15372 * dispextern.h: Changed function names.
15373
15374 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15375 < 2.
15376 (clear_window_matrices): Formerly two functions for desired
15377 and current matrix.
15378 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15379 (update_frame): Return return value from UPDATE_FRAME_1.
15380
15381Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15382
15383 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15384 LAST_TEXT_VPOS.
15385
15386 * frame.c (set_menu_bar_lines): Adjust matrices.
15387
15388 * dispnew.c (set_cursor_to): Set cursor position.
15389
15390 * minibuf.c (read_minibuf): Build frame matrix.
15391
15392 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15393 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15394 relative.
26901792
DL
15395 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15396 reason.
15397
427ec082 15398 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15399 menu bar.
15400 (clear_window_records): Clear window rows.
15401 (clear_frame_records): Clear window and frame rows.
15402 (clear_glyph_matrix): Set all rows of a matrix to empty.
15403
d7d0dac0
SM
15404 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15405 Update frame if set.
26901792
DL
15406 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15407 removed.
15408 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15409 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15410
15411 * dispnew.c (assign_row): Assign one glyph row to another.
15412 (mirrored_make_current): Use it.
15413 (mirror_make_current): Use it.
15414 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15415 used counters for the current glyph row.
427ec082 15416
26901792
DL
15417
15418Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15419
15420 * lisp.h: Prototype for SCAN_BUFFER.
15421
15422 * xdisp.c (redisplay_windows): Simplified.
15423
15424 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15425 with debug checks.
15426 (window_to_frame_hpos): Convert window to frame hpos with checks.
15427 (frame_to_window_vpos): Convert frame to window vpos with checks.
15428 (frame_to_window_hpos): Convert frame to window hpos with checks.
15429
15430 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15431
15432 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15433
15434 * xdisp.c (redisplay_internal): Another instance of
15435 DISPLAY_TEXT_LINE with window relative VPOS.
15436 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15437
15438 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15439 only.
15440
15441 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15442 (redisplay_internal): Ditto.
15443
15444 * dispnew.c (cancel_window_line): Use window matrix. Changed
15445 name to CANCEL_WINDOW_LINE.
15446
15447 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15448 relative VPOS.
15449
427ec082
SS
15450 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15451 to frame vpos.
26901792
DL
15452 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15453 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15454 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15455
15456 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15457 window relative VPOS.
15458 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15459 relative VPOS.
15460
15461 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15462 MATRIX_BUFFER_POSITIONS.
15463
15464 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15465
15466 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15467
427ec082 15468 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15469 matrix. Change name to scroll_full_width_window.
15470
15471 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15472 NONINTERACTIVE.
26901792
DL
15473
15474Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15475
15476 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15477 and window matrices.
26901792
DL
15478 (adjust_window_charstarts): Use window matrix.
15479 (cancel_my_columns): Use window matrix.
15480 (direct_output_for_insert): Use window matrix, only.
15481
15482 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15483 (display_string): Call display_glyphs.
15484 (display_menu_bar_string): Display a string in a menu bar line.
15485 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15486 (display_text_line): Use window matrix.
15487 (try_window): Use window relative positions.
15488
15489Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15490
15491 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15492 (0, 0).
26901792 15493 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15494 top-most windows.
26901792
DL
15495
15496 * window.h (WINDOW_TOPMOST_P): Added.
15497
15498 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15499 (redisplay_window): Ditto.
15500 (display_text_line): Ditto.
15501 (display_menu_bar): Ditto.
15502 (display_mode_line): Ditto.
15503 (display_mode_line): Use window matrix.
15504 (display_string): Use window matrix.
15505 (display_mode_element): Ditto.
15506 (echo_area_display): Don't display if frame has no pools yet.
15507 (echo_area_display): Work with window matrix for mini window.
15508 (redisplay_window): Use window marix for mini window.
15509 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15510 use that for DISPLAY_STRING.
26901792
DL
15511
15512 * dispextern.h: Prototype for prepare_desired_row.
15513
d7d0dac0 15514 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15515
15516 * dispnew.c (adjust_window_charstarts): Always allocate window
15517 matrices.
15518 (clear_glyph_row): Only reset used counters and flags.
15519
15520Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15521
15522 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15523 line is non-empty.
26901792
DL
15524 (realloc_glyph_pool): Don't add 1 to the pool size.
15525 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15526
15527 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15528 (line_draw_cost): Ditto.
15529 (update_line): Ditto.
15530 (update_line): Use SPACE_GLYPH.
15531 (count_blanks): Additional parameter LEN.
15532
15533 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15534 (display_text_line): Don't add null-glyph end marker.
15535 (display_string): Use SPACE_GLYPH.
15536 (display_string): Don't use null-glyph end marker.
15537
15538 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15539
15540 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15541 (fill_up_glyph_row_with_spaces): Ditto.
15542 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15543 rows, instead of null-glyphs.
15544 (direct_output_for_insert): Don't add null-glyph end marker.
15545
15546 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15547 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15548 (do_scrolling): Ditto.
15549
15550 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15551 frame matrix in window matrices.
26901792 15552 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15553 Maybe do corresponding assignments in window matrices.
26901792 15554 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15555 rows agree about glyph pointers.
26901792
DL
15556 (check_matrix_pointers): Ditto.
15557 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15558 maybe mirror the operation in window matrices.
26901792 15559 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15560 frame matrix row was made current.
26901792
DL
15561
15562Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15563
15564 * dispnew.c (check_matrix_pointer_lossage): Check against
15565 pointer lossage in matrices.
15566 (get_glyph_matrix_row): Removed.
15567
15568 * scroll.c (do_scrolling): Simplified.
15569 (do_direct_scrolling): Simplified.
15570 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15571 DO_.*SCROLLING.
427ec082 15572
26901792
DL
15573
15574 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15575 (rotate_vector): Removed.
15576 (rotate_pointers): Removed.
15577 (scroll_frame_lines): Simplified.
15578
15579Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15580
15581 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15582
15583 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15584 what the name says.
15585 (clear_glyph_row): Make a glyph row structure empty.
15586 (make_matrix_row_current): Make a glyph row current.
15587 (make_window_matrix_row_current): Perform analogous row swaps
15588 for window matrices.
15589 (update_line): Call make_matrix_row_current.
15590
15591Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15592
15593 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15594 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15595 INVERSE_P.
15596 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15597 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15598
15599 * all files: use above new names.
15600
15601 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15602 SCROLL_GLYPH_MATRIX.
26901792 15603 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15604 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15605 buffer positions in a glyph row.
15606 (increment_glyph_matrix_buffer_positions): Increment buffer
15607 positions in a range of rows.
15608 (scroll_glyph_matrix): Scroll a glyph matrix.
15609 (swap_glyphs_in_rows): Swap glyphs between rows.
15610 (swap_glyph_pointers): Swap pointers between rows.
15611 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15612 (init_display): Initialize SPACE_GLYPH.
15613 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15614 spaces.
26901792
DL
15615
15616Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15617
15618 * xterm.c (dumprectangle): Use vectors in glyph rows.
15619
15620 * xdisp.c (display_text_line): Use vectors in glyph rows.
15621 (display_string): Ditto.
15622
15623 * scroll.c (do_scrolling): Use vectors in glyph rows.
15624 (do_direct_scrolling): Ditto.
15625
15626 * alloc.c (mark_object): Use vectors in glyph rows.
15627 Mark for all frame types.
15628
15629 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15630 glyph rows.
15631 (get_glyph_matrix_row): Ditto.
15632 (matrix_row): Ditto.
15633 (rotate_pointers): Ditto.
15634 (scroll_frame_lines): Ditto.
15635 (preserve_other_columns): Ditto.
15636 (cancel_my_columns): Ditto.
15637 (update_line): Ditto.
15638 (direct_output_for_insert): Ditto.
15639
15640 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 15641 instead of individual members. Use a vector of used counters.
26901792
DL
15642 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15643 (MATRIX_ROW_GLYPH_START): Ditto.
15644 (MATRIX_ROW_GLYPH_END): Ditto.
15645 (MATRIX_ROW_USED): Ditto.
15646 (MATRIX_ROW_SET_USED): Ditto.
15647
15648 * dispnew.c (line_hash_code): Simplified.
15649
15650Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15651
15652 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15653 CHANGE_FRAME_SIZE_1
15654 (preserve_other_columns): Void return.
15655 (cancel_my_columns): Void return type.
15656 (scrolling): Int return type.
15657 (do_pending_window_change): Void return type.
15658 (change_frame_size): Ditto.
15659 (bitch_at_user): Ditto.
15660 (init_display): Ditto.
15661 (syms_of_display): Ditto.
15662
15663 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
15664 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15665 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15666 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15667 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15668 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15669 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 15670 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15671
26901792 15672 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 15673 void.
26901792
DL
15674 (cancel_line): Return void.
15675 (clear_frame_records): Return void.
427ec082 15676
26901792
DL
15677 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15678 (SET_CHAR_GLYPH): Fill a character glyph.
15679 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15680 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15681 glyph.
26901792
DL
15682 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15683 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15684 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15685 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15686 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15687 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15688 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15689 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15690 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15691
15692 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15693
15694 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 15695 come below CURRENT_MATRIX.
26901792
DL
15696
15697 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 15698 member CURRENT_MATRIX.
26901792
DL
15699
15700Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15701
15702 * scroll.c (do_scrolling): Change algorithm to use pointers.
15703 (do_direct_scrolling): Ditto.
15704
15705 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15706 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15707 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15708 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 15709 Returns 1 if pool changed.
26901792
DL
15710 (matrix_row): Additional check for lost pointers to glyph rows.
15711 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
15712 allocation should take place. Addtional parameter
15713 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 15714 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
15715 when window matrix changes. Additional parameter DIM_ONLY_P set
15716 to 1 to indicate that no allocation should take place.
26901792 15717 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 15718 matrices. Optimize frame redraws.
26901792
DL
15719 (free_glyphs): Free pools.
15720 (check_glyph_memory): Check pools not freed.
15721 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15722 (scroll_frame_lines): Change algorithm to use pointers.
15723 (update_line): Ditto.
15724
15725 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15726 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 15727 MATRIX.
26901792
DL
15728
15729Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15730
15731 * dispextern.h (struct glyph_pool): Replacement for former
15732 FRAME_GLYPH_MATRIX.
15733 (struct glyph_matrix): No longer contains sizes of allocated
15734 areas.
15735
15736 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15737 no glyph pools.
15738
15739 * frame.c (make_frame): Initialize pools.
15740
15741Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15742
427ec082 15743 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15744 line moving algorithm has no intermediate steps.
15745 (do_scrolling): Ditto.
15746
15747 * Makefile.in (alloc.o): Add dependency dispextern.h.
15748
15749 * alloc.c: Include dispextern.h for glyph definitions.
15750
15751 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15752 is legal, return 0 otherwise.
15753
15754 * window.h: Add comment that windows are marked specially.
15755
15756 * alloc.c (mark_object): Mark windows specially.
15757
15758
15759Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15760
15761 * dispextern.h (struct glyph): Add member OBJECT
15762 referencing a Lisp object from which a glyph was drawn.
15763 Member TEXT_POSITION renamed POSITION.
15764 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15765
15766 * alloc.c: Include dispextern.h
15767 (mark_object): Mark objects referenced from glyphs.
15768
f28eba7b 15769 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15770
15771 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15772 (do_scrolling): Ditto.
15773
427ec082 15774 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15775 DECODE_MODE_SPEC_BUFFER added.
15776
15777 * window.h: TEMP_MATRIX removed.
15778
15779 * scroll.c: OPHYS_LINES removed.
15780
15781 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15782 FRAME_PTR -> struct frame *.
15783
15784 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15785 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15786
15787 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15788 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15789
15790 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15791 (do_verify_charstarts): Removed.
15792
15793 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15794 (Fdelete_frame): Free glyphs.
15795 (make_frame): Initialize matrix fields in frame.
15796
f28eba7b 15797 * config.in (PROTO): Added.
26901792 15798
f28eba7b 15799 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15800
15801 * window.c (Fdelete_window): Free window matrices.
15802 (Fset_window_configuration): Ditto.
15803 (Fdelete_window): Adjust glyphs.
15804 (Fsplit_window): Ditto.
15805 (change_window_height): Ditto.
15806 (Fset_window_configuration): Ditto.
15807 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15808 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15809
15810 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15811
15812 * window.c: Include dispextern.h
15813
15814 * scroll.c (do_scrolling): Use new glyphs.
15815 (do_direct_scrolling): Ditto.
15816
15817 * xdisp.c: Some function prototypes.
15818 (redisplay_internal): Don't do anything if matrices not yet set.
15819 (redisplay_internal): Use new glyphs.
15820 (try_window_id): Ditto.
15821 (copy_part_of_rope): Ditto.
15822 (display_text_line): Ditto.
15823 (display_menu_bar): Ditto.
15824 (display_mode_line): Ditto.
15825 (display_string): Ditto.
15826
15827 * xterm.c: Prototypes for some local functions.
15828 (dumpglyphs): Use new glyphs.
15829 (XTwrite_glyphs): Ditto.
15830 (dumprectangle): Ditto.
15831 (note_mouse_highlight): Ditto.
15832 (fast_find_position): Ditto.
15833 (show_mouse_face): Ditto.
15834 (x_draw_single_glyph): Ditto.
15835 (x_display_bar_cursor): Ditto.
15836 (x_display_box_cursor): Ditto.
15837 (x_new_font): Adjust glyphs when font change.
15838
15839 * term.c (clear_end_of_line): Use new glyphs.
15840 (write_glyphs): Ditto.
15841 (insert_glyphs): Ditto.
15842
15843 * Makefile.in (term.o): term.c depends on dispextern.h
15844
15845 * term.c: Include dispextern.h
15846
15847 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15848 removed, new inserted.
26901792
DL
15849 (line_hash_code): Use new glyphs.
15850 (line_draw_cost): Ditto
15851 (cancel_line): Ditto
15852 (clear_frame_records): Ditto.
15853 (init_desired_glyphs): Ditto.
15854 (get_display_line): Ditto
15855 (scroll_frame_lines): Ditto.
15856 (preserve_other_columns): Ditto.
15857 (adjust_window_charstarts): Ditto.
15858 (cancel_my_columns): Ditto.
15859 (direct_output_for_insert): Ditto.
15860 (update_frame): Ditto.
15861 (quit_error_check): Made empty.
15862 (scrolling): Use new glyphs.
15863 (count_blanks): Ditto.
15864 (count_match): Ditto.
15865 (update_line): Ditto.
15866 (init_display): Adjust glyphs initially.
15867 (change_frame_size_1): Adjust glyphs.
15868
15869 * dispextern.h: Old glyphs removed, new added.
15870
15871 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15872
15873 * xterm.h: Prototype for min_char_bounds.
15874
15875 * window.h (struct window): Remove old glyphs, add new.
15876
15877 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15878
26901792
DL
158791999-07-20 Dave Love <fx@gnu.org>
15880
15881 * buffer.c (syms_of_buffer): Make
15882 default-enable-multibyte-characters a user variable.
15883
158841999-07-14 Richard Stallman <rms@gnu.org>
15885
15886 * Version 20.4 released.
15887
158881999-07-14 Richard Stallman <rms@gnu.org>
15889
15890 * filelock.c (lock_file): Do nothing if purifying.
15891
158921999-07-10 Richard Stallman <rms@gnu.org>
15893
15894 * xterm.c (x_display_bar_cursor): Use the cursor-color
15895 to display the bar, not the cursor foreground pixel.
15896
158971999-07-09 Andrew Innes <andrewi@gnu.org>
15898
15899 * w32console.c (w32_use_full_screen_buffer): New variable.
15900 (syms_of_ntterm): Register it.
15901 (initialize_w32_display): Set initial frame size accordingly,
15902 respecting the LINES and COLUMNS environment variables if set.
15903
15904 * w32inevt.c (w32_console_read_socket): Use it.
15905
159061999-07-07 Kenichi Handa <handa@etl.go.jp>
15907
15908 * callproc.c (Fcall_process): Decide coding system for decoding
15909 after we set to the target buffer. If the output goes to a
15910 unibyte buffer, suppress character code conversion.
15911
15912 * fileio.c (Finsert_file_contents): If reading into a unibyte
15913 buffer, suppress character code conversion.
15914
15915 * process.c (create_process): If the output goes to a unibyte
15916 buffer, suppress character code conversion.p
15917
159181999-07-07 Andreas Schwab <schwab@gnu.org>
15919
15920 * xdisp.c (line-number-display-limit): Doc fix.
15921
159221999-07-05 Richard Stallman <rms@gnu.org>
15923
15924 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15925 (Fcall_process_region): Likewise.
15926
159271999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15928
15929 * callproc.c (init_callproc): Set exec_directory if
15930 installation_directory is non-nil, without a test of exec_path.
15931
159321999-07-01 Andrew Innes <andrewi@gnu.org>
15933
15934 * w32xfns.c (drain_message_queue): New function.
15935
15936 * w32term.h (drain_message_queue): Add extern.
15937
15938 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15939 of WaitForMultipleObjects when user input is allowed, so we can
15940 handle incoming window messages. Call drain_message_queue when
15941 there are messages waiting; this ensures that windows created
15942 indirectly from the lisp thread get processed properly, and don't
15943 hang other applications by failing to respond to broadcasts.
15944
159451999-07-01 Andreas Schwab <schwab@gnu.org>
15946
15947 * callint.c (Fcall_interactively): Ignore first element of
15948 event-symbol-elements property.
15949
159501999-07-01 Richard Stallman <rms@gnu.org>
15951
15952 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15953
159541999-07-01 Kenichi Handa <handa@etl.go.jp>
15955
15956 * minibuf.c (read_minibuf): Set the multibyteness of the
15957 minibuffer before inserting `initial' string.
15958
159591999-06-30 Richard Stallman <rms@gnu.org>
15960
15961 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15962
159631999-06-29 Richard M. Stallman <rms@gnu.org>
15964
15965 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15966 Move the handling of MALLOC_CHECK_ envvar here.
15967 (main): Moved from here.
15968
159691999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15970
15971 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15972 function, assigned to the global __malloc_initialize_hook pointer.
15973 (main): Move malloc_set_state call into malloc_initialize_hook
15974 so that it happens as early as possible.
15975
159761999-06-27 Richard M. Stallman <rms@gnu.org>
15977
15978 * keyboard.c (read_key_sequence): Properly reinitialize
15979 fkey_map after translating thru Vkey_translation_map.
15980 After translating thru Vfunction_key_map, don't reset
15981 keytrans-start to 0.
15982
159831999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15984
15985 * w32.c (get_emacs_configuration): Use GetVersionEx to
15986 handle NT5.0 correctly. Include build number in configuration.
15987 w32heap.c (osinfo_cache): New variable.
15988 (cache_system_info): Initialize osinfo_cache.
15989 w32heap.h (osinfo_cache): Declare.
15990
159911999-06-24 Richard M. Stallman <rms@gnu.org>
15992
15993 * casefiddle.c (casify_object): Use make_multibyte_string
15994 if we casify a multibyte string.
15995
159961999-06-22 Ken'ichi Handa <handa@gnu.org>
15997
15998 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15999 del_range_byte instead of del_range_1, set `inserted' to the
16000 number of characters actually inserted.
16001
160021999-06-17 Dave Love <fx@gnu.org>
16003
16004 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
16005
160061999-06-18 Paul Eggert <eggert@twinsun.com>
16007
16008 * filelock.c (BOOT_TIME_FILE): New macro.
16009 (get_boot_time): Use it instead of hardwiring the file name.
16010 Check BOOT_TIME_FILE only after inspecting the kernel directly.
16011
160121999-06-17 Dave Love <fx@gnu.org>
16013
16014 * xdisp.c (invalid_eol_type): Make it unsigned.
16015
160161999-06-17 Karl Heuer <kwzh@gnu.org>
16017
16018 * process.c (send_process): Delete unsafe/redundant assignment.
16019
160201999-06-17 Jason Rumney <jasonr@gnu.org>
16021
16022 * w32term.c (dumprectangle): Handle wide characters properly.
16023
160241999-06-16 Andrew Innes <andrewi@gnu.org>
16025
16026 * s/ms-w32.h (strerror): Override the default implementation of
16027 strerror, so we can map winsock error codes.
16028
16029 * w32.c (sys_strerror): New function.
16030
16031 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
16032
160331999-06-15 Ken'ichi Handa <handa@gnu.org>
16034
16035 * buffer.c (syms_of_buffer): Don't make
16036 enable-multibyte-characters customizable.
16037
160381999-06-15 Richard M. Stallman <rms@gnu.org>
16039
16040 * editfns.c (Fuser_full_name): Doc fix.
16041
160421999-06-14 Tak Ota <ota@atc.sel.sony.com>
16043
16044 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
16045 (get_bitmap_with_cache): Check if CreateBitmap failed.
16046 Adjust cache size dynamically so cache is never larger than the
16047 system limit of GDI resources.
16048 Do cache clearing inline. Move global variables to local scope.
16049
16050
160511999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
16052
16053 * unexsgi.c (unexec): Dump the .rodata section from memory
16054 under IRIX6.5 in order to be able to unexec with gcc.
16055
160561999-06-11 Greg Hudson <ghudson@MIT.EDU>
16057
16058 * indent.c (compute_motion): Fix boundary case.
16059
160601999-06-11 Jason Rumney <jasonr@altavista.net>
16061
16062 * w32term.c (cancel_mouse_face): New function. See equiv
16063 changes to xterm.c on 1996-10-31.
16064 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
16065 (w32_read_socket): Use cancel_mouse_face.
16066 Update frame position when size is restored.
26901792
DL
16067
160681999-06-04 Richard M. Stallman <rms@gnu.org>
16069
16070 * lread.c (Vuser_init_file): New variable.
16071 (syms_of_lread): Set up Lisp variable.
16072 (Fload): Store the file name there, if var was t before.
16073
160741999-06-04 Paul Eggert <eggert@twinsun.com>
16075
16076 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16077 doesn't work if the system date is changed, or if the system
16078 is suspended. Look at the last-modified time of
16079 /var/run/random-seed instead.
16080
160811999-06-03 Ken'ichi Handa <handa@gnu.org>
16082
16083 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16084 japanese-jisx0208-1978 correctly.
16085
160861999-06-03 Andrew Innes <andrewi@gnu.org>
16087
16088 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16089 as possible to be dumped, for safety.
16090
160911999-06-02 Ken'ichi Handa <handa@gnu.org>
16092
16093 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16094 latin-jisx0201 correctly.
16095
160961999-05-26 Ken'ichi Handa <handa@gnu.org>
16097
16098 * charset.h (Vcharset_table): Comment fixed.
16099
161001999-05-24 Richard Stallman <rms@gnu.org>
16101
16102 * coding.c (syms_of_coding): Doc fix.
16103
16104 * buffer.c (syms_of_buffer): Doc fix.
16105
16106 * filelock.c (lock_if_free): After deleting a stale lock,
16107 try again to lock the file.
16108
161091999-05-22 Andrew Innes <andrewi@gnu.org>
16110
16111 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16112 console window size.
16113 (w32_console_read_socket): Call maybe_generate_resize_event
16114 whenever input events are received, since we don't get told when
16115 the window size changes (as opposed to the buffer size, which we
16116 don't care about).
16117
16118 * w32console.c (clear_frame): Remember that the window width might
16119 be smaller than the screen buffer width.
16120 (write_glyphs): Remove redundant variable attrs. Use
16121 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16122
161231999-05-20 Andrew Innes <andrewi@gnu.org>
16124
16125 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16126 loses focus.
16127
16128 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16129 frame loses focus, and that mouse button state is reset. Ditto
16130 when the menu bar is activated.
16131
161321999-05-18 Richard Stallman <rms@gnu.org>
16133
16134 * abbrev.c (Fdefine_abbrev): Doc fix.
16135
161361999-05-13 Paul Eggert <eggert@twinsun.com>
16137
16138 * filelock.c: Fix performance bug on hosts with large
16139 /var/adm/wtmp files with no boot records.
16140
16141 (boot_time_initialized): New var.
16142 (init_filelock): Initialize it.
16143 (get_boot_time): Use it, instead of nonzero boot_time,
16144 to test whether boot_time is initialized.
16145 Don't invoke utmp routines when dumping.
16146
16147 (get_boot_time): First, try to get the boot time from the
16148 current utmp file, as this can be much faster. Don't try to
16149 get the boot time from utmp and/or wtmp more than once.
16150
16151 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16152 New arg LATEST. All uses changed.
16153
161541999-05-15 Andrew Innes <andrewi@gnu.org>
16155
16156 * w32term.c (dumpglyphs): Use correct colours for drawing
16157 rectangles in place of missing fonts, and make them the right
16158 size.
16159
161601999-05-14 Dave Love <fx@gnu.org>
16161
16162 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16163 non-nil.
16164
161651999-05-11 Andrew Innes <andrewi@gnu.org>
16166
16167 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16168 definition.
16169 (w32_wnd_proc): Reinstall debugging output.
16170 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16171 (syms_of_w32fns): Reinstall new initializer for
16172 Vw32_phantom_key_code.
16173
16174 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16175 names for most non-European charsets, to cope with wildcards or
16176 missing spec dates.
16177 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16178 to avoid deadlock when activating the menu bar.
16179
161801999-05-10 Ken'ichi Handa <handa@gnu.org>
16181
16182 * search.c (boyer_moore): Get charset base value of `untranslated'
16183 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16184
161851999-05-10 Andreas Schwab <schwab@gnu.org>
16186
16187 * fileio.c (Fread_file_name): Correct handling of dollars in file
16188 names. Protect dollars in strings put on the file-name-history.
16189 Substitute homedir by `~' also in default_filename.
16190
16191 * xdisp.c (try_window_id): Fix computation of tab_offset when
16192 backing up over a character that is splitted across lines.
16193
161941999-05-08 Kenichi HANDA <handa@etl.go.jp>
16195
16196 * coding.c (code_convert_region): If eol format is inconsistent,
16197 change coding->symbol to the sibling coding system of Unix like
16198 eol format.
16199
162001999-05-09 Richard M. Stallman <rms@gnu.org>
16201
16202 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16203
16204 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16205
162061999-05-05 Andrew Innes <andrewi@gnu.org>
16207
16208 * w32fns.c (w32_strict_painting): New variable.
16209 (w32_wnd_proc): Use it to select repaint rules.
16210 (syms_of_w32fns): Defvar it.
16211
162121999-05-04 Andrew Innes <andrewi@gnu.org>
16213
16214 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16215 charsets to the standard Windows charset for Japanese.
16216
162171999-05-04 Ken'ichi Handa <handa@gnu.org>
16218
16219 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16220
16221 * ccl.h (struct ccl_program): New member stack_idx.
16222
16223 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16224 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16225 before returing.
16226 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16227
162281999-05-03 Jason Rumney <jasonr@altavista.net>
16229
16230 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16231
162321999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16233
16234 * dired.c (make_time): Make argument type be time_t.
16235
162361999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16237
16238 * msdos.c (unibyte_display_via_language_environment): Add extern.
16239
83c8f461 162401999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16241
16242 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16243 if unibyte_display_via_language_environment is set.
16244 (unibyte_display_via_language_environment):
16245 Variable moved from xfns.c and elsewhere.
16246 (syms_of_xfns): Set up Lisp var.
16247
16248 * xfns.c (unibyte_display_via_language_environment):
16249 Variable moved to xdisp.c.
16250 (syms_of_xfns): Don't set up Lisp var here.
16251
16252 * msdos.c (unibyte_display_via_language_environment):
16253 Variable moved to xdisp.c.
16254 (syms_of_msdos): Don't set up Lisp var here.
16255
16256 * w32fns.c (unibyte_display_via_language_environment):
16257 Variable moved to xdisp.c.
16258 (syms_of_w32fns): Don't set up Lisp var here.
16259
162601999-05-02 Andrew Innes <andrewi@gnu.org>
16261
16262 * s/ms-w32.h (HAVE_FSYNC): New macro.
16263 (fsync): Map to _commit.
16264 (ftruncate): Map to _chsize.
16265
16266 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16267 for ASCII, if enabled, to avoid memory allocation overhead for
16268 implicit Unicode conversion. Also, recognize that ASCII and
16269 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16270 already contains the Unicode characters in that case.
16271 (construct_drag_n_drop): Remove old code that was
16272 trashing the drop location.
16273
16274 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16275 nlines to encoding_buffer_size (real bug was in a ccl program in
16276 lisp/international/coding.el).
16277
16278 * w32reg.c (w32_get_string_resource): Check for name in current
16279 user area, and if not found look in the local machine area.
16280
16281 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16282 (Fw32_shell_execute): New function; used to support browse-url.
16283 (syms_of_w32fns): Register it.
16284 (w32_load_system_font): Force max width to be average
16285 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16286 slowdown.
16287 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16288 already defined.
16289 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16290
16291 * unexw32.c (get_section_info): Dump back the entire EMDATA
16292 section if we can put Emacs' initialized data in a separate
16293 section, otherwise use the my_begdata/my_edata method.
16294
16295 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16296
16297 * coding.c (decode_eol): Set produced/consumed values to zero if
16298 src_bytes is <= 0 on entry.
16299
163001999-05-02 Jason Rumney <jasonr@altavista.net>
16301
16302 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16303 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16304 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16305 field in frame.
16306 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16307 (dumprectangle): Take into account the width of a left-side
16308 scroll bar.
16309
16310 * w32proc.c (sys_kill): Attach to current foreground thread
16311 when grabbing focus; necessary on NT 5.0.
16312
16313 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16314 GetUpdateRect rather than BeginPaint.
16315 (w32_wnd_proc): Attach to current foreground thread
16316 when grabbing focus; necessary on NT 5.0.
16317 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16318 debugging display messages.
16319 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16320 false matching.
16321
163221999-05-02 Kenichi HANDA <handa@etl.go.jp>
16323
16324 * coding.c (setup_raw_text_coding_system): Call
16325 setup_coding_system to initialize the fields of struct
16326 coding_system correctly.
427ec082 16327
26901792
DL
163281999-04-26 Kenichi HANDA <handa@etl.go.jp>
16329
16330 * xterm.c (x_list_fonts): Fix previous change.
16331
163321999-04-26 Richard Stallman <rms@gnu.org>
16333
16334 * config.in (HAVE_LIBXP): Add #undef.
16335 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16336
163371999-04-12 Ken'ichi Handa <handa@gnu.org>
16338
16339 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16340 by them.
16341
163421999-04-12 Karl Heuer <kwzh@gnu.org>
16343
16344 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16345
163461999-04-11 Ken'ichi Handa <handa@gnu.org>
16347
16348 * fontset.c (Fset_fontset_font): Fix previous change.
16349
163501999-04-09 Ken'ichi Handa <handa@gnu.org>
16351
16352 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16353 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16354
163551999-04-08 Richard Stallman <rms@gnu.org>
16356
16357 * process.c (Faccept_process_output): Check validity of PROCESS.
16358
163591999-04-08 Eli Zaretskii <eliz@gnu.org>
16360
16361 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16362
163631999-04-07 Richard Stallman <rms@gnu.org>
16364
16365 * xfns.c (x_set_font): Fix error message.
16366
16367 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16368 (Fnew_fontset, Fset_fontset_font): Check for them here.
16369 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16370 Fix error message syntax.
16371
16372 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16373 from the base buffer.
16374 (Fset_buffer_multibyte): Copy new multibyte status
16375 into the buffer's indirect buffers.
16376
163771999-04-07 Ken'ichi Handa <handa@gnu.org>
16378
16379 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16380 tail.
16381
163821999-04-06 Richard Stallman <rms@gnu.org>
16383
16384 * dired.c (Ffile_attributes): Doc fix.
16385
16386 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16387 Convert 0200 to meta only in a unibyte string.
16388 (Fkey_description): Likewise.
16389
16390 * eval.c (do_autoload): Preserve match data.
16391
163921999-04-06 Kenichi HANDA <handa@etl.go.jp>
16393
16394 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16395 encode_coding to avoid carryover.
16396
16397 * coding.c: Add comments for decode_coding and encode_coding.
16398
16399 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16400 a composite character by skipping its leading code.
16401 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16402 correctly.
16403
16404 * coding.c: Add comments for decode_coding and encode_coding.
16405
16406 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16407 a composite character by skipping its leading code.
16408 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16409 correctly.
16410
164111999-04-06 Eli Zaretskii <eliz@gnu.org>
16412
16413 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16414 table was used.
16415 (jp_kbd_translate_table): Support C-\.
16416 (it_kbd_translate_table): Map `>' correctly.
16417 (it_keyboard): Add `>'.
16418
164191999-04-06 Richard Stallman <rms@gnu.org>
16420
16421 * intervals.c (graft_intervals_into_buffer): Turn off
16422 inhibit_modification_hooks around calling Fset_text_properties.
16423
164241999-04-05 Kenichi HANDA <handa@etl.go.jp>
16425
16426 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16427 glyphs.
16428
164291999-04-05 Eli Zaretskii <eliz@gnu.org>
16430
16431 * msdos.c (jp_kbd_translate_table): Fix last change.
16432
164331999-04-04 Eli Zaretskii <eliz@gnu.org>
16434
16435 * msdos.c (struct kbd_translate): New struct, for key translation
16436 tables private to certain national keyboard layouts.
16437 (struct dos_keyboard_map): Add a pointer to a private translation
16438 table.
16439 (jp_kbd_translate_table): Private table for the Japanese
16440 keyboard.
16441 (jp_keyboard): Japanese keyboard layout.
16442 (it_kbd_translate_table): Private table for the Italian keyboard.
16443 (it_keyboard): Use it_kbd_translate_table.
16444 (keyboard_layout_list): Add the Japanese keyboard.
16445 (dos_rawgetc): Use the keyboard-private translation table, if
16446 available.
16447 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16448
164491999-04-02 Kenichi HANDA <handa@etl.go.jp>
16450
16451 * xdisp.c (redisplay_window): When we call compute_motion with
16452 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16453 (display_text_line): Stop the loop for processing overlay strings
16454 when we reach the right edge of the window.
16455
83c8f461 164561999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16457
16458 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16459 let the data control whether string is unibyte.
16460
164611999-03-30 Richard M. Stallman <rms@gnu.org>
16462
16463 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16464 (pop_kbd_macro): Restore the saved real_this_command.
16465 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16466
164671999-03-26 Richard M. Stallman <rms@gnu.org>
16468
16469 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16470 if buffer-file-name is nil.
16471
164721999-03-25 Jason Rumney <jasonr@altavista.net>
16473
16474 * w32select.c (Fw32_set_clipboard_data): Take into account line
16475 ends when calculating clipboard storage needed for non-ASCII text.
16476
164771999-03-25 Andrew Innes <andrewi@gnu.org>
16478
16479 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16480 (epaths.h): Renamed from paths.h.
427ec082
SS
16481 (clean):
16482 ($(BLD)\filelock.obj):
16483 ($(BLD)\lread.obj):
26901792
DL
16484 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16485
164861999-03-23 Ken'ichi Handa <handa@gnu.org>
16487
16488 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16489 ENCODE_ISO_CHARACTER for the previous change on this macro.
16490
164911999-03-23 Kenichi Handa <handa@etl.go.jp>
16492
16493 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16494 eoltype correctly for backward compatibility.
16495
164961999-03-20 Kenichi HANDA <handa@etl.go.jp>
16497
16498 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16499 invalid, produce the buffer internal byte sequence without encoding.
16500
165011999-03-19 Karl Heuer <kwzh@gnu.org>
16502
16503 * editfns.c (Fformat): Accept %i format.
16504
165051999-03-17 Karl Heuer <kwzh@gnu.org>
16506
16507 * filelock.c (get_boot_time): Test tempname, not filename.
16508
165091999-03-17 Jason Rumney <jasonr@altavista.net>
16510
e5619f6b
JR
16511 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16512 speed display.
16513
16514 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16515 speed display.
16516 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16517 New functions.
16518 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16519 Use bitmap cache.
26901792
DL
16520
16521 * w32fns.c (enum_font_cb2): Set the font height to be the
16522 character height, not the cell height.
16523 (Fw32_select_font): Initialize font dialog with current default font.
16524 (Vw32_system_coding_system): New variable.
16525 (w32_strict_filenames): Add comment.
16526 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16527 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16528 (syms_of_w32fns): Add w32-system-coding-system.
16529
165301999-03-15 Richard M. Stallman <rms@gnu.org>
16531
16532 * xterm.c (XTread_socket) <ConfigureNotify>:
16533 If cursor pos is outside the new frame size, mark cursor as off.
16534
165351999-03-14 Ken'ichi Handa <handa@gnu.org>
16536
16537 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16538
16539 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16540 by them.
16541
165421999-03-14 Richard M. Stallman <rms@gnu.org>
16543
16544 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16545 at beginning.
16546
165471999-03-14 Jason Rumney <jasonr@altavista.net>
16548
16549 * w32fns.c (w32_strict_fontnames): New variable.
16550 (Fx_create_frame): Formatting fix.
16551 (w32_load_system_font): Keep trying to load non-existant font
16552 if w32_strict_fontnames is nil. Formatting fix.
16553 (syms_of_w32fns): Add w32-strict-fontnames.
16554
16555 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16556 (dumpglyphs): Formatting fixes.
16557
165581999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16559
16560 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16561
165621999-03-10 Karl Heuer <kwzh@gnu.org>
16563
16564 * puresize.h (BASE_PURESIZE): Increase to 505000.
16565
165661999-03-09 Richard M. Stallman <rms@gnu.org>
16567
16568 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16569
16570 * filelock.c (init_filelock): New function.
16571
165721999-03-09 Dave Love <fx@gnu.org>
16573
16574 * fileio.c (Ffile_directory_p): Doc fix.
16575
83c8f461 165761999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16577
16578 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16579
165801999-03-08 Richard M. Stallman <rms@gnu.org>
16581
16582 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16583 to only the part that uses get_boot_time_1.
16584
165851999-03-07 Dave Love <fx@gnu.org>
16586
16587 * fileio.c (Finsert_file_contents): Use xfree.
16588
165891999-03-06 Kenichi Handa <handa@etl.go.jp>
16590
16591 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16592 term.o, xselect.o): Depend on ccl.h.
16593
165941999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16595
16596 * makefile.nt: Remove common multiple file compilation commands.
16597
165981999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16599
16600 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16601 newlines added when the arg NO-LINE-BREAK is nil.
16602
166031999-03-04 Karl Heuer <kwzh@gnu.org>
16604
16605 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16606
16607 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16608
166091999-03-04 Dave Love <fx@gnu.org>
16610
16611 * term.c (term_init): Use xmalloc, not malloc.
16612
16613 * callproc.c (Fcall_process): Use xmalloc, xfree.
16614
166151999-03-03 Andreas Schwab <schwab@gnu.org>
16616
16617 * eval.c (Fdefconst): Doc fix.
16618
166191999-03-01 Kenichi Handa <handa@etl.go.jp>
16620
16621 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16622
166231999-03-01 Eli Zaretskii <eliz@gnu.org>
16624
16625 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16626
166271999-02-28 Richard M. Stallman <rms@gnu.org>
16628
16629 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16630
16631 * cmds.c (internal_self_insert): Calculate column properly
16632 in overwrite-of-tab case.
16633
166341999-02-27 Andreas Schwab <schwab@gnu.org>
16635
16636 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16637 malloc in glibc 2.1.
16638
166391999-02-26 Richard Stallman <rms@gnu.org>
16640
16641 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16642
16643 * epaths.in: Renamed from paths.in.
16644 This avoids a conflict with a system header file paths.h on GNU/Linux.
16645
16646 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16647 Use epaths.h istead of paths.h.
16648
166491999-02-26 Andreas Schwab <schwab@gnu.org>
16650
16651 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16652 malloc.
16653
166541999-02-25 Dave Love <fx@gnu.org>
16655
16656 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16657
166581999-02-25 Richard Stallman <rms@gnu.org>
16659
16660 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16661 (WTMP_FILE): Default definition in case not defined.
16662 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16663
26901792
DL
166641999-02-25 Ken'ichi Handa <handa@gnu.org>
16665
16666 * keymap.c (push_key_description): If enable-multibyte-characters
16667 is nil and C is single byte, push C as is.
16668
166691999-02-24 Kenichi Handa <handa@etl.go.jp>
16670
16671 * keymap.c (push_key_description): If enable-multibyte-characters
16672 is non-nil, try to convert unibyte character to multibyte. For
16673 invalid multibyte character, show all bits by octal form.
16674 (Fsingle_key_description): Check the validity of charset for a
16675 generic character.
16676
166771999-02-23 Richard M. Stallman <rms@gnu.org>
16678
16679 * fileio.c (Ffile_regular_p): Undo previous change.
16680
16681 * eval.c (Fdefconst): Doc fix.
16682
16683 * filelock.c (get_boot_time): Don't use BUFSIZ.
16684
166851999-02-22 Andrew Innes <andrewi@gnu.org>
16686
16687 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16688 (EXTRA_LINK): Do version test with strings.
16689
166901999-02-22 Andreas Schwab <schwab@gnu.org>
16691
16692 * fns.c (Fbase64_encode_string): Fix last change.
16693
16694 * termhooks.h (event_kind): Add user_signal.
16695
16696 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16697 (syms_of_keyboard): Initialize them.
16698 (lispy_user_signals): New variable.
16699 (make_lispy_event): Handle user_signal event type.
16700
16701 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16702 (syms_of_emacs): Don't initialize them.
16703 (handle_USR1_signal, handle_USR2_signal): Set event type to
16704 user_signal instead of non_ascii_keystroke, and use plain integers
16705 as code instead of Lisp symbols.
16706
167071999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16708
16709 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16710
167111999-02-21 Richard Stallman <rms@gnu.org>
16712
16713 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16714
16715 * print.c (print_error_message): Don't crash if (cdr data)
16716 is not a list.
16717
167181999-02-21 Eli Zaretskii <eliz@gnu.org>
16719
16720 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16721
167221999-02-20 Andrew Innes <andrewi@gnu.org>
16723
16724 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16725 run, since size can vary from run to run.
16726
16727 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16728 data is included, to enable profiling.
16729 ($(EMACS)): Map file not needed for emacs.exe.
16730
16731 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16732 as malloc before calling uninterrupt_malloc, for consistency.
16733 This also enables profiling to work on WINDOWSNT.
16734
167351999-02-18 Richard Stallman <rms@gnu.org>
16736
16737 * Makefile.in (emacs.o): Depend on termhooks.h.
16738 (filelock.o): Depend on systime.h.
16739
167401999-02-18 Ken'ichi Handa <handa@gnu.org>
16741
16742 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16743 (Fdecode_big5_char): Likewise.
16744
167451999-02-17 Richard Stallman <rms@gnu.org>
16746
16747 * insdel.c (adjust_markers_for_replace): When doing an insertion
16748 (replacing a region of zero length), handle markers at the
16749 insertion point properly.
16750
167511999-02-17 Andrew Innes <andrewi@gnu.org>
16752
16753 * w32fns.c (Vw32_quit_key): New variable.
16754 (post_character_message): Use it.
16755 (syms_of_w32fns): DEFVAR it.
16756
167571999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16758
16759 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16760
167611999-02-16 Richard Stallman <rms@gnu.org>
16762
16763 * filelock.c (within_one_second): New function.
16764 (current_lock_owner): Use that.
16765 (get_boot_time): Use /proc/uptime if available.
16766 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16767 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16768
26901792
DL
167691999-02-16 Richard Stallman <rms@gnu.org>
16770
16771 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16772 (syms_of_emacs): Init and staticpro them.
16773 (handle_USR1_signal): Don't run any code, just queue up an event.
16774 (handle_USR2_signal): Likewise.
16775
167761999-02-16 Eli Zaretskii <eliz@gnu.org>
16777
16778 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16779 an integer, return it as a float. Doc string fixed.
16780
167811999-02-16 Richard Stallman <rms@gnu.org>
16782
16783 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16784 (syms_of_emacs): Init and staticpro them.
16785 (handle_USR1_signal): Don't run any code, just queue up an event.
16786 (handle_USR2_signal): Likewise.
16787
167881999-02-15 Kenichi Handa <handa@etl.go.jp>
16789
16790 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16791 ASCII correctly. Signal error on invalid characters.
16792 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16793
167941999-02-15 Eli Zaretskii <eliz@gnu.org>
16795
16796 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16797 DOS box which doubles the reported size of text in the clipboard.
16798
167991999-02-15 Kenichi Handa <handa@etl.go.jp>
16800
16801 * coding.c (decode_coding_iso2022): Don't set
16802 coding->composed_chars to 0 here.
16803 (setup_coding_system): Set coding->composed_chars to 0 here.
16804
168051999-02-10 Richard Stallman <rms@gnu.org>
16806
16807 * fileio.c (Ffile_regular_p): Use lstat.
16808
168091999-02-09 Richard Stallman <rms@gnu.org>
16810
16811 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16812 (unexec): Test this instead of specific systems.
16813
16814 * m/macppc.h: New file.
16815
168161999-02-08 Dave Love <fx@gnu.org>
16817
16818 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16819
168201999-02-08 Ken'ichi Handa <handa@gnu.org>
16821
16822 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16823 should be set to coding->produced.
16824
168251999-02-07 Paul Fisher <rao@gnu.org>
16826
16827 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16828 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16829
168301999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16831
16832 * editfns.c (Fformat): Doc fix.
16833
168341999-02-06 Richard Stallman <rms@gnu.org>
16835
16836 * process.c (syms_of_process): defsubr it.
16837 (Fprocess_running_child_p): New function.
16838
168391999-02-05 Andrew Innes <andrewi@gnu.org>
16840
16841 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16842 recording drop position.
16843
168441999-02-05 Ken'ichi Handa <handa@gnu.org>
16845
16846 * coding.c (encode_coding_iso2022): Before writing out an invalid
16847 code, reset graphic planes and registers if necessary.
16848
16849 * term.c (encode_terminal_code): Fix previous change.
16850
168511999-02-04 Eli Zaretskii <eliz@gnu.org>
16852
16853 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16854 static variables.
16855 (set_clipboard_data): Save a copy of the text we put into
16856 clipboard in last_clipboard_text.
16857 (get_clipboard_data): If the clipboard text is identical to what
16858 last_clipboard_text holds, pretend there's no data in the clipboard.
16859
168601999-02-03 Richard Stallman <rms@gnu.org>
16861
16862 * s/gnu.h (NLIST_STRUCT): Add #undef.
16863
168641999-02-03 Eli Zaretskii <eliz@gnu.org>
16865
16866 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16867 encoded, set its pointer and size as returned by encode_coding.
16868
168691999-02-02 Ken'ichi Handa <handa@gnu.org>
16870
16871 * fns.c (Fset_char_table_default): To handle the case that CH is
16872 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16873
168741999-02-02 Andrew Innes <andrewi@gnu.org>
16875
16876 * w32fns.c (syms_of_w32fns): Change default value of
16877 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16878 some mice works properly.
16879
168801999-02-02 Eli Zaretskii <eliz@gnu.org>
16881
16882 * w16select.c (set_clipboard_data): Correctly null-terminate the
16883 string to be put into the Windows clipboard. Use xbuf_addr.
16884
168851999-02-01 Richard Stallman <rms@gnu.org>
16886
16887 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16888
168891999-01-31 Richard Stallman <rms@gnu.org>
16890
16891 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16892 then don't send the signal if the shell owns the terminal.
16893 (Finterrupt_process): Doc change.
427ec082 16894
26901792
DL
168951999-01-31 Andrew Innes <andrewi@gnu.org>
16896
16897 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16898 (copy_executable_and_dump_data): Use it to ensure alignment slop
16899 is zeroed.
16900
169011999-01-30 Andrew Innes <andrewi@gnu.org>
16902
16903 * w32.c (init_environment): Change argv[0] to contain the full
16904 path to Emacs.
16905
16906 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16907
169081999-01-29 Ken'ichi Handa <handa@gnu.org>
16909
16910 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16911 returned by x_new_font (the resolved one) but use the font name
16912 set in the fontset specification.
16913 (x_load_font): For the height of font, if normarl ascent and
16914 descent value are larger than those in max_bounds field, use the
16915 former.
16916
169171999-01-28 Eli Zaretskii <eliz@gnu.org>
16918
16919 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16920
169211999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16922
16923 * makefile.nt: Use full path to temacs.exe when dumping.
16924
169251999-01-27 Jason Rumney <jasonr@altavista.net>
16926
16927 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16928 list was reliable.
16929 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16930 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16931 (w32_list_synthesized_fonts): New function.
16932 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16933 available instead of EnumFontFamilies. List synthesized fonts if
16934 Vw32_enable_italics is non-nil.
427ec082 16935
26901792
DL
169361999-01-27 Richard Stallman <rms@gnu.org>
16937
16938 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16939 Don't complain if ttcompat does not exist.
16940
16941 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16942
169431999-01-27 Andrew Innes <andrewi@gnu.org>
16944
16945 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16946 the lwindow, rwindow and apps keys could not be used as function
16947 keys, because they were being passed to TranslateMessage which
16948 ignores them. Also, key was being changed to SPC.
16949
16950 * makefile.nt: Do make version comparison as strings.
16951
169521999-01-27 Eli Zaretskii <eliz@gnu.org>
16953
16954 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16955 strings, not characters.
16956
16957 * coding.h: Likewise.
16958
16959 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16960 string.
16961
169621999-01-26 Dave Love <fx@gnu.org>
16963
16964 * emacs.c (main): Up-date copyright.
16965
169661999-01-25 Dave Love <fx@gnu.org>
16967
16968 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16969
169701999-01-25 Andreas Schwab <schwab@gnu.org>
16971
16972 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16973
169741999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16975
16976 * xfns.c (x_set_frame_parameters): gcpro as needed.
16977
16978 * window.c (Fset_window_point): If WINDOW is selected but the
16979 current buffer is not its buffer, don't use Fgoto_char.
16980
169811999-01-22 Richard M. Stallman <rms@gnu.org>
16982
16983 * syntax.c (scan_sexps_forward): Delete duplicate code
16984 to set prev_from_syntax, above start of main loop.
16985 At startinstring, check syntax when checking for a match.
16986
169871999-01-22 Jason Rumney <jasonr@altavista.net>
16988
16989 * w32bdf.c: New file.
16990 * w32bdf.h: New file.
16991 * makefile.nt: Add w32bdf.c and w32bdf.h.
16992
16993 * w32gui.h: Include w32bdf.h.
16994 (W32FontStruct) Add bdf element.
16995
16996 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16997 Support BDF fonts.
16998
16999 * w32term.c (W32_TEXTOUT): New macro.
17000 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
17001 Simplify baseline calculation. Detect SJIS by font, not glyph.
17002 Call SetTextAlign.
17003 (syms_of_w32term): Remove "jisx0212-sjis" from
17004 w32-charset-to-codepage-alist.
17005 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
17006 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 17007
26901792
DL
17008 * w32fns.c (Vw32_bdf_filename_alist): New variable.
17009 (x_destroy_bitmap): Returns void not int.
17010 (x_set_border_pixel): Returns void.
17011 (w32_load_bdf_font): New function.
17012 (w32_load_system_font): New function, was w32_load_font. List
17013 fonts before loading. Explicitly set encoding for SJIS fonts.
17014 Set default_ascent to 0 as comment indicates.
17015 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
17016 (w32_unload_font): Support BDF fonts.
17017 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
17018 Autodetect whether to use koi8-r instead of iso8859-5.
17019 Associate "ksc5601.1987" with HANGUEL_CHARSET.
17020 Associate "ksc5601.1992" with JOHAB_CHARSET.
17021 (x_to_w32_charset): Make consistent with w32_to_x_charset.
17022 (w32_to_x_font): Add resolution.
17023 (x_to_w32_font): Use font resolution to calculate height if supplied.
17024 (w32_font_match): Handle wildcards anywhere within field.
17025 (enumfont_t): Remove unused head pointer.
17026 (enum_font_cb2): Dereference elfLogFont.
17027 (w32_list_bdf_fonts): New function.
17028 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
17029 valid frame. Remove MessageBox. Support BDF fonts.
17030 (Fw32_find_bdf_fonts): New function.
17031 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
17032 Sw32_find_bdf_fonts.
17033
170341999-01-21 Andrew Innes <andrewi@gnu.org>
17035
17036 * makefile.nt (temacs): Use del to delete file, not rm.
17037
170381999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17039
17040 * keyboard.c (read_key_sequence): Fix previous change.
17041
17042 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
17043 as the same. Treat "myname:0" as the same as those two.
17044
170451999-01-19 Jason Rumney <jasonr@altavista.net>
17046
17047 * w32fns.c (x_to_w32_charset): Add iso8859-9.
17048 (w32_to_x_charset): Fix charset mappings.
17049
17050 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
17051 (dumpglyphs): Move definitions out of block containing goto.
17052 Remove redundant code for BIG5.
17053 Use w32_codepage_for_font instead of
17054 w32_codepage_for_charset. Add cast to int where float
17055 operation is assigned to int.
17056 (Vw32_charset_to_codepage_alist): New variable.
17057 (w32_codepage_for_charset): Removed.
427ec082
SS
17058 (w32_codepage_for_font): New function, replacing
17059 w32_codepage_for_charset.
26901792
DL
17060 (syms_of_w32term): Add and initialize
17061 w32-charset-to-codepage-alist.
17062
170631999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
17064
17065 * xselect.c (x_handle_selection_clear): Don't clear the
17066 selection if Emacs still owns it through a different display.
17067
170681999-01-17 Andrew Innes <andrewi@gnu.org>
17069
17070 * w32proc.c: (w32_executable_type): Relax the check to identify
17071 cygwin-compiled applications, because the exact dll name varies
17072 with release. Now only require the name to start "cygwin".
17073
17074 * w32heap.h: (ROUND_UP):
17075 (ROUND_DOWN): New macros.
17076 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17077 (init_heap): New extern.
17078 (data_region_size):
17079 (recreate_heap):
17080 (read_in_bss):
17081 (map_in_heap):
17082 (round_to_next):
17083 (w32_fatal_reload_error):
17084 (get_section_size): Obsolete externs removed.
17085
17086 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17087 current process.
17088 (round_to_next): Obsolete function removed.
17089 (preload_heap_section): New variable.
17090 (data_region_size): Obsolete variable removed.
17091 (allocate_heap): Modified to determine end of static heap section
17092 used during preload, and use that as initial base address for
17093 dynamic heap instead of hard-coded value.
17094 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17095 calls to commit or decommit pages when allocating from static heap
17096 section during preload.
17097 (recreate_heap): Obsolete function removed.
17098 (init_heap): New function to initialize internal sbrk heap
17099 variables. Uses static heap section during preload, otherwise
17100 calls allocate_heap to reserve a heap region dynamically.
17101 (round_heap): Use ROUND_UP macro instead of round_to_next.
17102
17103 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17104 static "bss" section is used for heap space during preload, and
17105 bss data is now written to the proper section area when dumping.
17106 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17107 (heap_index_in_executable): Obsolete variable removed.
17108 (data_section): New variable.
17109 (data_start_va): Renamed to data_start.
17110 (data_start_file): Obsolete variable removed.
17111 (bss_section):
17112 (extra_bss_size):
17113 (bss_section_static):
17114 (bss_start_static):
17115 (bss_size_static):
17116 (extra_bss_size_static):
17117 (heap_section): New variables.
17118 (_start): Remove code based on old unexec method. Call init_heap
17119 to initialize sbrk heap.
17120 (close_file_data): Update size of file when closing, so that
17121 unexec doesn't have to work out exact size in advance.
17122 (get_bss_info_from_map_file):
17123 (get_section_size): Obsolete functions removed.
17124 (rva_to_section): Fix minor bug, and add a work-around for a bug
17125 in very old linkers.
17126 (offset_to_section):
17127 (relocate_offset): New functions.
17128 (OFFSET_TO_RVA):
17129 (RVA_TO_OFFSET):
17130 (RVA_TO_SECTION_OFFSET):
17131 (PTR_TO_RVA):
17132 (PTR_TO_OFFSET):
17133 (OFFSET_TO_PTR): New macros.
17134 (get_section_info): Modify to support new unexec method;
17135 determines address ranges in process that need dumping, and COFF
17136 sections where data will be dumped. Allows for static and global
17137 bss data to be in separate ranges. No longer relies on knowledge
17138 of section names.
17139 (copy_executable_and_dump_data_section): Renamed
17140 copy_executable_and_dump_data. Completely rewritten to copy
17141 executable section by section, so that raw data areas can be
17142 expanded to hold dumped data as necessary. Allows for bss data to
17143 be in same section as initialized data. Reduces size of static
17144 heap section to that used during preload.
17145 (dump_bss_and_heap):
17146 (w32_fatal_reload_error):
17147 (read_in_bss):
17148 (map_in_heap): Obsolete functions removed.
17149 (unexec): Rounds off preload heap to nearest page rather than
17150 virtual allocation unit. Modified to match other changes.
17151
17152 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17153 data_region_size.
17154
17155 * makefile.nt: (TEMACS_TMP): New macro.
17156 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17157 processor to add static heap section in support of new unexec.
17158
17159 * lastfile.c: Include config.h to pick up data layout pragmas.
17160 [WINDOWSNT]: Remove explicit pragma.
17161
171621999-01-12 Kenichi Handa <handa@etl.go.jp>
17163
17164 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17165 correctly.
17166 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17167
171681999-01-11 Dave Love <fx@gnu.org>
17169
17170 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17171
171721999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17173
17174 * keyboard.c (read_key_sequence): In key-translation-map and
17175 function-key-map, handle symbol with array as fn def.
17176 In function-key-map, handle symbol with keymap as fn def,
17177 and autoloaded definitions.
427ec082 17178
26901792
DL
17179 * puresize.h (BASE_PURESIZE): Increment to 500000.
17180
17181 * print.c (Qtemp_buffer_setup_hook): New variable.
17182 (syms_of_print): Init and staticpro that.
17183 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17184
171851999-01-11 Kenichi Handa <handa@etl.go.jp>
17186
17187 * insdel.c (del_range_1): Call signal_after_change.
17188 (del_range_byte): Likewise.
17189 (del_range_both): Likewise.
17190 (del_range_2): Don't call signal_after_change.
17191
17192 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17193 Lisp code here.
17194
171951999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17196
17197 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17198 never run the debugger, and don't bother checking the args
17199 to see whether the debugger should be run.
17200
172011999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17202
17203 * keyboard.c (read_key_sequence):
17204 Tell get_keyelt to look handle autoloads.
17205 Handle symbols defined as keymaps, and autoloaded keymaps.
17206
172071999-01-06 Kenichi Handa <handa@etl.go.jp>
17208
17209 * search.c (search_buffer): Fix previous change.
17210
172111999-01-06 Eli Zaretskii <eliz@gnu.org>
17212
17213 * w16select.c (set_clipboard_data): Terminate the text with a null
17214 character. Don't allow to put binary data into the clipboard.
17215 Return zero in case of success, 1 or 2 otherwise.
17216 (get_clipboard_data): Only bail out if the null character is in
17217 the last 32-byte chunk of clipboard data
17218 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17219 they save binary data, print a message in the echo area saying the
17220 text was not put into the clipboard.
17221
17222 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17223
172241999-01-06 Andreas Schwab <schwab@gnu.org>
17225
17226 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17227 _BSD_SOURCE, the latter is always defined.
17228
172291999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17230
17231 * fns.c (Frequire): Don't fail to unbind bindings.
17232
172331999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17234
17235 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17236
17237 * charset.c (Ffind_charset_region): Fix doc typo.
17238
172391998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17240
17241 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17242 multibyte in unibyte buffers only.
17243
17244 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17245 and pass it to Fmake_sparse_keymap.
17246
172471998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17248
17249 * alloc.c (MMAP_MAX_AREAS): New macro.
17250 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17251 (init_alloc_once): Use that.
17252
17253 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17254
17255 * alloc.c (lisp_malloc, lisp_free): New functions.
17256 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17257 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17258 (n_interval_blocks, n_float_blocks): New variable.
17259 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17260 (n_marker_blocks, n_string_blocks): New variable.
17261 (init_intervals, make_interval): Set a count variable.
17262 Use lisp_malloc instead of setting allocating_for_lisp.
17263 (init_float, make_float, init_cons, Fcons): Likewise.
17264 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17265 (init_marker, allocate_misc, init_strings): Likewise.
17266 (make_uninit_multibyte_string): Likewise.
17267 (gc_sweep, compact_strings): Decrement the count variables.
17268
17269 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17270 into the old_..._hook variables.
17271
172721998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17273
17274 * keyboard.c: In each active map, for each menu bar item, use only
17275 the first submap.
17276 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17277 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17278 (syms_of_keyboard): Staticpro and init it.
17279
427ec082 17280 * xmenu.c (single_keymap_panes):
26901792
DL
17281
172821998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17283
17284 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17285 by complete_deferred_msg.
17286 (post_character_message): Cancel all deferred messages when
17287 quit_char is typed, in order to break out of potential deadlocks.
17288 (cancel_all_deferred_msgs): New function.
17289 (complete_deferred_msg): Don't abort if msg not found; may have
17290 been cancelled.
17291 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17292 (Fw32_send_sys_command): Wait for system command to
17293 complete before returning.
427ec082 17294
26901792
DL
17295 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17296 not set async_iconified flag though.
17297
17298 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17299 (create_child): Use it.
17300 (syms_of_ntproc): Defvar it. Also fix docstrings for
17301 w32-start-process-share-console and w32-start-process-show-window.
17302
17303 * unexw32.c (_start): Force system calls accessing unmounted
17304 devices to fail without prompting.
17305
173061998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17307
17308 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17309 even when starting the dumped Emacs.
17310
17311 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17312 (Fkey_description): Handle lists like vectors.
17313
173141998-12-21 Kenichi Handa <handa@etl.go.jp>
17315
17316 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17317 because of the change of the second argument of Fread_char.
17318
17319 * charset.c (Fcharset_after): Check range. If POS is out of
17320 range, return nil.
17321
17322 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17323
17324 * lread.c (Fread_char): Change the meaning of the second argument.
17325 (Fread_event): Likewise.
17326 (Fread_char_exclusive): Likewise.
17327
17328 * print.c (printchar): Fix previous change.
17329
17330 * process.c (read_process_output): Decide the multibyteness of
17331 string given to a process filter by a coding system used for
17332 decoding the process output.
17333
173341998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17335
17336 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17337 nonascii-translation-table.
17338 * msdos.c (IT_write_glyphs): Likewise.
17339 * fns.c (concat): Likewise.
17340 * charset.c (unibyte_char_to_multibyte): Likewise.
17341 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17342
173431998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17344
17345 * doc.c (Fdocumentation): Change the doc string for prefix
17346 commands to make it a complete sentence in one line.
17347
173481998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17349
17350 * s/irix6-5.h: New file.
17351 * s/irix6-0.h (IRIX6): Define this symbol.
17352 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17353 (bcopy, bcmp, bzero): Likewise.
17354 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17355 (C_SWITCH_MACHINE): New value for irix6.5.
17356
173571998-12-15 Richard Stallman <rms@gnu.org>
17358
17359 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17360 Do free malloc'd memory even in case of failure. Use xfree, not free.
17361 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17362 (base64_decode_1): Don't fail for short lines.
17363
17364 * print.c (printchar): Outputting multibyte characters
17365 to echo area always makes it multibyte.
17366
17367 * search.c (search_buffer): Don't use Boyer-Moore
17368 to search for an invalid multibyte code.
17369 In unibyte case, no need to check whether there are translations
17370 in more than one charset; just set charset_base to 0.
17371
173721998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17373
17374 * print.c (printchar): Cancel previous change.
17375
173761998-12-15 Kenichi Handa <handa@etl.go.jp>
17377
17378 * callproc.c: Include "ccl.h".
17379 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17380 bit in argument_coding.mode to tell encoding procedure to flush
17381 data. While encoding arguments, if argument_coding uses CCL
17382 program, initialize it again after encoding.
17383 (Fcall_process_region): Doc-string modified. Handle the case that
17384 NARGS is 3.
17385
17386 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17387 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17388 Set `ic' to the head of this command.
17389 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17390 code for an invalid code.
17391 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17392 based on VEC.
17393
17394 * charset.c (Qunknown): New variable.
17395 (init_charset_once): Intern and staticpro Qunknown. Initialize
17396 all elements of Vcharset_symbol_table to Qunknown.
17397 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17398 unibyte characters only. For an invalid composition sequence, set
17399 CHARSETS[1] to 1.
17400 (Ffind_charset_region): Call find_charset_in_str with an
17401 appropriate MULTIBYTE arg. If undefined charsets are found,
17402 include `unknown' is the return value.
17403 (Ffind_charset_string): Likewise.
17404 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17405 (str_cmpchar_id): Max composite character code should be less than
17406 GENERIC_COMPOSITION_CHAR.
17407
17408 * charset.h (find_charset_in_str): Update declaration.
17409
17410 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17411 final_char is invalid.
17412 (decode_coding): If coding->type is coding_type_ccl, call
17413 ccl_coding_driver even if SRC_BYTES is zero.
17414 (code_convert_region): Update `inserted' correctly after calling
17415 coding->post_read_conversion. Even after the code converter
17416 consumed all source text, call it once more if it is
17417 coding_type_ccl to flush out data.
17418
17419 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17420 CODING is handled by CCL program, call code_convert_region.
17421
17422 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17423 correctly.
17424 (string_byte_to_char): Likesize.
17425
17426 * print.c (printchar): When outputting a multibyte character to
17427 echo area, always set message_enable_multibyte to 1.
17428
17429 * process.c (read_process_output): If NBYTES is zero and
17430 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17431 and try decoding again.
17432 (Fprocess_send_eof): If the coding system of PROCESS
17433 requires flushing, call send_process with null-string at first.
17434
17435 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17436 with MULTIBYTE arg 0.
17437 * w32select.c (Fw32_set_clipboard_data): Likewise.
17438 * xselect.c (lisp_data_to_selection_data): Likewise.
17439
174401998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17441
17442 * search.c (Freplace_match): Set OPOINT clearly for the case
17443 where point is in the middle of the text to be replaced.
17444
17445 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17446 if compute_motion fails to advance at all, don't back it up.
17447
174481998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17449
17450 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17451
427ec082 17452 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17453
174541998-12-09 Richard Stallman <rms@gnu.org>
17455
17456 * insdel.c (insert_from_buffer_1): Properly count the size
17457 of output from conversion to multibyte even when input
17458 is split across the gap.
17459
174601998-12-09 Karl Heuer <kwzh@gnu.org>
17461
17462 * keyboard.c: Doc fixes.
17463
17464 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17465
174661998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17467
17468 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17469 characters, only convert CRLF to LF.
17470
174711998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17472
17473 * makefile.nt: Do string comparision of _NMAKE_VER.
17474
174751998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17476
17477 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17478 coding.h, and disptab.h
17479
17480 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17481 (syms_of_msdos): DEFVAR_LISP it.
17482 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17483 (internal_terminal_init): Set up insert_glyphs_hook and
17484 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17485 (unibyte_display_via_language_environment): New variable.
17486 (syms_of_msdos): Devfar it.
17487 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17488 Encode the character codes of the glyphs according to the
17489 terminal_coding in effect.
17490
174911998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17492
17493 * fns.c (Fstring_as_unibyte): Doc fix.
17494
174951998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17496
17497 * charset.h: Declare char_valid_p.
17498
174991998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17500
17501 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17502
17503 * msdos.c (init_environment): Record the time we started up.
17504 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17505 fast after startup (aka crash).
17506
175071998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17508
17509 * w32.c (check_windows_init_file): Use decode_env_path when
17510 using EMACSLOADPATH.
17511
175121998-12-02 Jason Rumney <jasonr@altavista.net>
17513
17514 * w32term.c (dumpglyphs): Use unsigned char arrays.
17515 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17516 for various languages.
17517 Compensate for fonts that have underhangs (e.g., Thai).
17518
17519 * w32term.h (FONT_MAX_WIDTH): New macro.
17520
175211998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17522
17523 * keyboard.c (Qlanguage_change): New variable.
17524 (syms_of_keyboard): Init it.
17525 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17526 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17527 keys; add name for Escape key; extend to 256 elements.
17528 (parse_modifiers): Make non-static.
17529
17530 * keyboard.h (parse_modifiers): Declare prototype.
17531
17532 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17533
17534 * w32fns.c (w32_last_error): Fix cut+paste error.
17535 (Vw32_phantom_key_code): New variable.
17536 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17537 (syms_of_w32fns): Init and register them.
17538 (reset_modifiers): Use a more precise test for whether Emacs has
17539 keyboard focus. Synchronize state of all keys that can be used as
17540 modifiers, to overcome problems arising from hot-keys.
17541 (w32_key_to_modifier): Be careful not to call intern() to avoid
17542 requiring thread synchronization.
17543 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17544 (w32_wnd_proc): Ensure lock key indicator lights are updated
17545 promptly on Windows 9x, by passing key events on to the system.
17546 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17547 responding to Windows key events when not wanted.
17548 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17549 Ctrl-NumLock into pause by the system.
17550 (w32_wnd_proc): Don't translate key combinations containing any
17551 modifiers other than shift (and capslock).
17552 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17553 can't determine the key states until we have keyboard focus).
17554 (Fw32_toggle_lock_key): New function.
17555 (syms_of_w32fns): Defsubr it.
17556
17557 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17558 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17559 (w32_console_toggle_lock_key): New function.
17560
17561 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17562
175631998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17564
17565 * search.c (Freplace_match): Set OPOINT clearly for the case
17566 where point is in the middle of the text to be replaced.
17567
17568 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17569 if compute_motion fails to advance at all, don't back it up.
17570
175711998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17572
17573 * xfns.c (Qouter_window_id): New variable.
17574 (syms_of_xfns): Initialize it.
17575 (x_report_frame_params): Set up outer-window-id parameter.
17576
17577 * keymap.c (Fsingle_key_description): Fix previous change.
17578
175791998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17580
17581 * lisp.h (Frequire): Update declaration.
17582
175831998-11-26 Kenichi Handa <handa@etl.go.jp>
17584
17585 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17586 if the charset is ascii.
17587 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17588
17589 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17590 make an appropriate one byte string.
17591 (char_bytes): Handle the case that C is a single byte char or has
17592 modifier bits.
17593
17594 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17595
17596 * cmds.c (internal_self_insert): If C has modifier bits, insert
17597 appropriate one byte char.
17598
175991998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17600
17601 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17602 Clear text properties in the new string.
17603
176041998-11-24 Felix Lee <flee@cygnus.com>
17605
17606 * process.c (read_process_output): Call signal_after_change.
17607
176081998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17609
17610 * buffer.c (syms_of_buffer): Doc fix.
17611
17612 * keyboard.c (syms_of_keyboard): Doc fix.
17613
176141998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17615
17616 * frame.c (Fset_mouse_position): Doc fix.
17617
176181998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17619
17620 * keymap.c (Fmake_keymap): Doc fix.
17621
176221998-11-17 Kenichi Handa <handa@etl.go.jp>
17623
17624 * category.c (word_boundary_p): If C1 or C2 are composite
17625 characters, test their first components.
17626
176271998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17628
17629 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17630 don't do save-excursion, just restore selected window.
17631
17632 * window.c (window_loop): For UNSHOW_BUFFER,
17633 always do consider minibuffer windows.
427ec082 17634
26901792
DL
176351998-11-16 Kenichi Handa <handa@etl.go.jp>
17636
17637 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17638
17639 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17640
17641 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17642
17643 * s/bsdos4.h: New file.
17644
176451998-11-16 Kenichi Handa <handa@etl.go.jp>
17646
17647 * Makefile.in (abbrev.o): Depend on charset.h
17648 (bytecode.o): Depend on charset.h.
17649
17650 * bytecode.c: Include charset.h.
17651
17652 * abbrev.c: Include charset.h.
17653
17654 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17655 the first component.
17656
176571998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17658
17659 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17660
176611998-11-11 Richard Stallman <rms@gnu.org>
17662
17663 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17664
17665 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17666
17667 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17668 (INTERRUPT_INPUT): #define commented out.
17669
17670 * m/aviion-intel.h: New file.
17671
176721998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17673
17674 * fns.c (MAX_ALLOCA): New macro.
17675 (Fbase64_encode_region, Fbase64_encode_string,
17676 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17677 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17678
176791998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17680
17681 * insdel.c (byte_combining_error): Error message improved.
17682
17683 * charset.c (char_valid_p): Handle a composite character correctly.
17684
176851998-11-11 Kenichi Handa <handa@etl.go.jp>
17686
17687 * charset.c (str_cmpchar_id): Check the byte sequence for
17688 composition more rigidly.
17689 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17690 contains an invalid multibyte sequence.
17691
17692 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17693
176941998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17695
17696 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17697 (WM_EMACS_SETKEYBOARDLAYOUT):
17698 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17699 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17700 (LEFT_WIN_PRESSED):
17701 (RIGHT_WIN_PRESSED):
26901792
DL
17702 (APPS_PRESSED): New console keyboard modifier flags.
17703
17704 * w32term.c (convert_to_key_event): Removed.
17705 (is_dead_key): Copied to w32fns.c.
17706 (w32_read_socket): Generate language_change_event. Modify to work
17707 with keyboard handling changes in w32_wnd_proc.
17708
17709 * w32proc.c (sys_kill): Set extended key flag when faking
17710 Ctrl-Break keystrokes.
17711 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17712 arbitrary locale property using a numerical index.
17713 (Vw32_valid_codepages): New variable.
427ec082
SS
17714 (enum_codepage_fn):
17715 (Fw32_get_valid_codepages):
17716 (Fw32_get_console_codepage):
17717 (Fw32_set_console_codepage):
17718 (Fw32_get_console_output_codepage):
17719 (Fw32_set_console_output_codepage):
17720 (Fw32_get_codepage_charset):
17721 (Fw32_get_valid_keyboard_layouts):
17722 (Fw32_get_keyboard_layout):
26901792
DL
17723 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17724 handling functions.
17725 (syms_of_ntproc): Register them.
17726
17727 * w32inevt.c: Include w32term.h and w32heap.h.
17728 (map_keypad_keys):
17729 (Vw32_enable_caps_lock):
17730 (Vw32_enable_num_lock):
17731 (Vw32_pass_lwindow_to_system):
17732 (Vw32_pass_rwindow_to_system):
17733 (Vw32_lwindow_modifier):
17734 (Vw32_rwindow_modifier):
17735 (Vw32_apps_modifier):
17736 (Vw32_scroll_lock_modifier):
17737 (w32_key_to_modifier): Add externs.
17738 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17739 Scroll Lock as potential modifiers; exclude numpad keys from
17740 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17741 code.
17742 (is_dead_key): Copy from w32fns.c.
17743 (w32_kbd_patch_key): Comment attempt to improve handling of
17744 dead-keys, and system bug relating to same on Windows NT. Work
17745 around the bug by calling ToUnicode and then converting to the
17746 correct codepage.
17747 (map_virt_key): Removed obsolete variable.
17748 (lispy_function_keys): Add extern.
17749 (key_event): Major rework of keyboard input handling: optionally
17750 recognize Windows keys and Apps key as modifiers; optionally treat
17751 NumLock, CapsLock and ScrollLock as function keys; let system
17752 translate keystrokes to characters to avoid system bugs relating
17753 to dead-key handling; preserve shift distinction for control
17754 characters. Remove some obsolete code.
17755
17756 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17757 and w32heap.h.
17758
17759 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17760 (Vw32_pass_lwindow_to_system):
17761 (Vw32_pass_rwindow_to_system):
17762 (Vw32_lwindow_modifier):
17763 (Vw32_rwindow_modifier):
17764 (Vw32_apps_modifier):
17765 (Vw32_enable_num_lock):
17766 (Vw32_enable_caps_lock):
17767 (Vw32_scroll_lock_modifier): New variables.
17768 (modifier_set): Return toggle state for Scroll Lock.
17769 (w32_key_to_modifier): New function. Returns chosen modifier bit
17770 for given key.
17771 (w32_get_modifiers): Returns modifier flags for
17772 non-keyboard input events.
17773 (construct_console_modifiers): Renamed from construct_modifiers;
17774 recognize Windows and Apps keys as modifiers.
17775 (w32_get_key_modifiers): New function. Returns modifier flags for
17776 keyboard input events.
17777 (map_keypad_keys): Make non-static. Use second arg as extended
17778 flag.
17779 (w32_grabbed_keys): New variable.
17780 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17781 (register_hot_keys):
17782 (unregister_hot_keys):
17783 (lookup_vk_code):
17784 (w32_parse_hot_key):
17785 (Fw32_register_hot_key):
17786 (Fw32_unregister_hot_key):
17787 (Fw32_registered_hot_keys):
17788 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17789 (post_character_message): New function.
17790 (w32_msg_pump): Handle new messages for using hotkeys and changing
17791 keyboard layout/language.
17792 (w32_wnd_proc): Major rework of keyboard input handling:
17793 optionally recognize Windows keys and Apps key as modifiers;
17794 optionally treat NumLock, CapsLock and ScrollLock as function
17795 keys; let system translate keystrokes to characters to avoid
17796 system bugs relating to dead-key handling; preserve shift
17797 distinction for control characters; forward keyboard
17798 layout/language changes to lisp; detect and convert hot-key events
17799 to normal keystrokes.
17800 (syms_of_w32fns): Register new functions and variables.
17801 (w32_last_error): New function for use in debugging.
17802
178031998-11-10 Kenichi Handa <handa@etl.go.jp>
17804
17805 * category.h (CATEGORY_SET): Adjusted for the change of
17806 cmpchar_component.
17807 (CATEGORY_SET): Likewise.
17808
17809 * charset.c (cmpchar_component): New arg NOERROR. Check
17810 composition char ID more strictly.
17811 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17812 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17813 return 255.
17814 (Fcompose_string): Signal error if STR contains a rule-based
17815 composition character.
17816
17817 * charset.h (cmpchar_component): Proto-type adjusted.
17818
178191998-11-09 Kenichi Handa <handa@etl.go.jp>
17820
17821 * charset.c (string_to_non_ascii_char): Return correct length for
17822 a charset of dimension 2 and composition character.
17823
178241998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17825
17826 * keymap.c (Fsingle_key_description): Handle generic characters.
17827
17828 * process.c (Fprocess_status): Doc fix.
17829
178301998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17831
17832 * charset.c (init_charset_once): Fix previous change.
17833
178341998-11-06 Kenichi Handa <handa@etl.go.jp>
17835
17836 * charset.c (string_to_non_ascii_char): Fix previous change.
17837 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17838
17839 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17840 character correctly.
17841 (STRING_CHAR): Handle an invalid charater correctly.
17842
178431998-11-05 Kenichi Handa <handa@etl.go.jp>
17844
17845 * charset.c (string_to_non_ascii_char): Fix previous change.
17846
17847 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17848
17849 * editfns.c (Fstring_to_char): Don't return a multibyte character
17850 if STRING is a unibyte string.
17851
17852 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17853 character.
17854
17855 * xdisp.c (display_text_line): Check validity of a multibyte character.
17856 (display_string): Likewise. Handle an invalid character correctly.
17857
178581998-11-05 Karl Heuer <kwzh@gnu.org>
17859
17860 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17861 If nothing to do, return immediately.
17862 (syms_of_insdel): Initialize combine_after_change_buffer.
17863
178641998-11-05 Richard Stallman <rms@gnu.org>
17865
17866 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17867
178681998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17869
17870 * w32term.c (w32_enable_unicode_output): Rename from
17871 w32_no_unicode_output.
17872 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17873 and new semantics.
17874
178751998-11-04 Jason Rumney <jasonr@altavista.net>
17876
17877 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17878 been created yet.
17879
17880 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17881
178821998-11-04 Kenichi Handa <handa@etl.go.jp>
17883
17884 * charset.c (string_to_non_ascii_char): Change the check for the
17885 varidity of multibyte form.
17886 (update_charset_table): Check validity of BYTES. Don't set
17887 bytes_by_char_head here.
17888 (init_charset_once): Set bytes_by_char_head completely.
17889
17890 * frame.c (do_switch_frame): Cancel previous change.
17891
17892 * print.c (print_string): Check validity of a character.
17893 (print): Likewise.
17894
17895 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17896
17897 * m/ews4800.h, s/ux4800.h: New files.
17898
178991998-11-03 Theodore Jump <tjump@tertius.com>
17900
17901 * makefile.nt: Compile multiple source files when possible.
17902
17903 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17904
26901792
DL
179051998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17906
17907 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17908 so don't rely on it succeeding.
17909
17910 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17911 LOGFONT struct if x font doesn't specify the charset.
17912 (x_to_w32_charset): Change >= to == when testing results of
17913 stricmp.
17914
179151998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17916
17917 * fns.c (Frequire): New arg NOERROR.
17918
179191998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17920
17921 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17922
179231998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17924
17925 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17926 (syms_of_xfaces): Initialization deleted.
17927
17928 * textprop.c (Qmouse_face): Variable definition moved here.
17929 (syms_of_textprop): Initialize it.
17930
17931 * data.c (set_internal): For built-in maybe-local vars,
17932 when BINDFLAG is set, do not mark them as local.
17933
179341998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17935
17936 * insdel.c (replace_range): Fix previous change.
17937
179381998-10-31 Kenichi Handa <handa@etl.go.jp>
17939
17940 * editfns.c (Fsubst_char_in_region): Fix previous change.
17941 (Ftranslate_region): Fix previous change.
17942
17943 * fns.c (Fbase64_decode_region): Fix previous change.
17944
17945 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17946
17947 * insdel.c (byte_combining_error): New function.
17948 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17949 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17950 CHECK_BYTE_COMBINING_FOR_INSERT.
17951 (insert_from_buffer_1): Likewise.
17952 (adjust_after_replace): Check the posibility of inhibitted byte
17953 combining correctly.
17954 (replace_range): Before signaling an error for inhibitted byte
17955 combining, recover the buffer in a safe state.
17956 (del_range_2): Check the posibility of inhibitted byte combining
17957 correctly.
17958
179591998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17960
17961 * xselect.c (Vselection_coding_system): Doc fix.
17962
17963 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17964 when we have both char and byte position. Fix type clashes.
17965
17966 * eval.c (Fsignal): Use a separate format string when passing
17967 error message string to fatal, in case it contains %'s.
17968
17969 * editfns.c (Fchar_after): Fix type clashes.
17970
17971 * charset.c (Fchar_bytes): Doc fix.
17972 (char_bytes): Fix returned value to match returned type.
17973 (syms_of_charset): Fix type clash in initialisation of
17974 Vauto_fill_chars.
17975
179761998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17977
17978 * w32console.c (initialize_w32_display): Use buffer coords
17979 instead of buffer size (which may be larger than the window).
17980
17981 * fileio.c (init_fileio_once): New function.
17982
17983 * emacs.c (main): Invoke init_fileio_once.
17984
179851998-10-28 Paul Eggert <eggert@twinsun.com>
17986
17987 * xterm.c (XTread_socket): Check the returned value of
17988 XmbLookupString more carefully.
17989
179901998-10-28 Kenichi Handa <handa@etl.go.jp>
17991
17992 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17993 (DECODE_CHARACTER_DIMENSION1): Likewise.
17994 (DECODE_CHARACTER_DIMENSION2): Likewise.
17995 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17996
17997 * editfns.c (Fsubst_char_in_region): Fix previous change.
17998 (Ftranslate_region): Fix previous change.
17999
18000 * insdel.c (check_markers): Check if markers are at character boundry.
18001 (adjust_markers_for_insert): Fix previous change.
18002 (count_combining_before): Don't limit the check at BEGV.
18003 (count_combining_after): Don't limit the check at ZV.
18004 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
18005 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
18006 (insert_from_string_1): Likewise.
18007 (insert_from_buffer_1): Likewise.
18008 (adjust_after_replace): Inhibit bytes combined across region
18009 boundary. Update end_unchanged correctly.
18010 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
18011 end_unchanged correctly.
18012 (del_range_2): Inhibit bytes combined across region boundary.
18013 Update end_unchanged correctly.
18014
180151998-10-27 Geoff Voelker <voelker@cs.washington.edu>
18016
18017 * w32.c (check_windows_init_file): Also look in load path specified
18018 in environment.
18019
18020 * w32console.c (Fset_message_beep): Recognize 'silent.
18021 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 18022
26901792
DL
18023 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
18024
18025 * w32select.c (Vnext_selection_coding_system): New variable.
18026 (syms_of_w32select): DEFVAR_LISP it.
18027 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
18028 non-nil. Always convert multibyte strings.
18029 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
18030 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 18031
26901792
DL
180321998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18033
18034 * fns.c (Fbase64_decode_string): Doc fix.
18035 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
18036 Likewise.
18037
180381998-10-27 Dave Love <fx@gnu.org>
18039
18040 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
18041 newline in doc string.
18042
180431998-10-27 Kenichi Handa <handa@etl.go.jp>
18044
18045 * editfns.c (Fsubst_char_in_region): Correctly handle the case
18046 that byte combining before happens.
18047 (Ftranslate_region): Likewise.
18048
18049 * insdel.c (adjust_after_replace): Correctly handle the case that
18050 both byte combining before and byte combining after happen.
18051 (replace_range): Likewise.
18052
180531998-10-26 Kenichi Handa <handa@etl.go.jp>
18054
18055 * category.c (syms_of_category): Doc-string modified.
18056
18057 * coding.c (code_convert_region): Kill the work buffer created by
18058 pre-write-conversion.
18059
180601998-10-25 Jason Rumney <jasonr@altavista.net>
18061
18062 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
18063
180641998-10-23 Kenichi Handa <handa@etl.go.jp>
18065
18066 * coding.c (code_convert_region): While preserving the orignal
18067 point, pay attention to the byte combining problem.
18068
18069 * fns.c (Fbase64_decode_region): Pay attention to the byte
18070 combining problem.
18071
18072 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
18073 combined_before_bytes and combined_after_bytes into account.
18074 (count_combining_after): Handle the case that LENGTH is zero.
18075 (adjust_after_replace): Record deletion at correct buffer
18076 position. Handle the case that LEN is zero.
18077 (replace_range): Record deletion at correct buffer position.
18078 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18079 combined bytes.
18080
180811998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18082
18083 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18084
26901792
DL
180851998-10-21 Kenichi Handa <handa@etl.go.jp>
18086
18087 * coding.c (setup_coding_system): Fix setting up
18088 coding->spec.ccl.valid_codes for CCL based coding system.
18089 (code_convert_region): Set point to FROM before inserting the
18090 result of pre-write-funciton. Preserve original point.
18091 (code_convert_string): If coding->type is coding_type_ccl, do
18092 conversion even if the length of conversion region is zero.
18093
18094 * fontset.c: Include frame.h before fontset.h.
427ec082 18095 (list_fonts_func): Fix prototype.
26901792
DL
18096
18097 * frame.c: Include frame.h before fontset.h.
18098
18099 * xterm.c: Likewise.
18100
181011998-10-21 Jason Rumney <jasonr@altavista.net>
18102
18103 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18104 general macros. Don't call x_list_font directory, instead call a
18105 function set in list_fonts_func.
18106
18107 * fontset.h (list_fonts_func): Fix prototype.
18108
181091998-10-20 Jason Rumney <jasonr@altavista.net>
18110
18111 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18112
18113 * w32faces.c: Update comments referring to obsolete structs.
18114 (allocate_face, copy_face, face_eql, load_font,
18115 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18116 frame_update_line_height, merge_faces, compute_base_face,
18117 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18118
18119 * w32fns.c: (Vx_pixel_size_width): New global variable.
18120 (unibyte_display_via_language_environment): New global variable.
18121 (x_set_font): Add support for setting fontsets.
18122 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18123 font names to match xlfd-tight-regexp.
18124 (w32_load_font): Rewrite based on x_load_font.
18125 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18126 `iso8859-1' rather than `ansi'.
18127 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18128 end. Move charset into `charset registry' field.
18129 (enum_font_cb2): Check charsets match. Include width in font list.
18130 (w32_list_fonts): Rewrite based on x_list_fonts.
18131 Moved from w32term.c to have access to enumfont_t struct.
18132 (Fx_list_fonts): w32 specific version eliminated. Include
18133 `x-list-fonts.c'.
18134 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18135 functions for fontset support - adapted from x_ equivalents.
18136 (syms_of_w32fns): New lisp variables initialised. Function
18137 pointers for fontset.c set up.
18138
427ec082 18139 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18140 Add ENCODE_BIG5 macro from coding.c.
18141 (w32_no_unicode_output): New variable.
18142 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18143 functions.
18144 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18145 (dumpglyphs): Rewrite based on xterm.c equivalent.
18146 (x_new_font): Use functionality provided in fontset.c.
18147 (x_new_fontset): New function based on the one in xterm.c.
18148 (syms_of_w32term): Add w32-no-unicode-output flag.
18149
427ec082 18150 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18151 (Vx_pixel_size_width_font_regexp,
18152 unibyte_display_via_language_environment): Declare variables.
427ec082 18153 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18154 Declare functions.
18155 (w32_output): New fields font_baseline and fontset.
18156 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18157
18158 * w32xfns.c: Include charset.h and fontset.h.
18159
181601998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18161
18162 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18163
181641998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18165
18166 * msdos.c (mouse_init): Reset the button press/release info of the
18167 mouse driver.
18168 (mouse_preempted): New variable.
18169 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18170 (XMenuActivate): Preempt the mouse during menu-handling loop.
18171 Release the current time slice while idling in the menu-handling
18172 loop. Leave the loop only if the user pressed, then released the
18173 same button. Discard all mouse events that are pending in the
18174 event queue before exiting.
18175
181761998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18177
18178 * editfns.c (Fformat): Increase buffer size for floating format.
18179
181801998-10-17 Kenichi Handa <handa@etl.go.jp>
18181
18182 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18183 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18184 Declare auto-fill-chars as a Lisp variable and initialize it.
18185
18186 * charset.h (Vauto_fill_chars): Extern it.
18187
18188 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18189
181901998-10-16 Kenichi Handa <handa@etl.go.jp>
18191
18192 * casefiddle.c (casify_object): Use make_string instead of
18193 make_specified_string to cope with byte-combining situation.
18194
18195 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18196 1 when encountered with a code of the range 0x80..0x9F.
18197
181981998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18199
18200 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18201 trying $TMP and $TEMP, since the former is always set in msdos.c.
18202 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18203 the temporary files, check $TMPDIR as well.
18204
182051998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18206
427ec082 18207 * process.c (exec_sentinel, read_process_output):
26901792
DL
18208 Restore waiting_for_user_input_p after running Lisp code.
18209
18210 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18211 (command_loop): Likewise.
18212
182131998-10-14 Kenichi HANDA <handa@etl.go.jp>
18214
18215 * data.c (Faset): Fix previous change.
18216
18217 * fns.c (Ffillarray): Fix previous change.
18218
18219 * insdel.c (adjust_markers_for_combining): This function deleted.
18220 (adjust_markers_for_replace): Correctly adjust marker positions.
18221 Don't record these adjustment because they were recorded already.
18222 (combine_bytes): Don't adjust markers here.
18223
182241998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18225
18226 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18227
182281998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18229
18230 * keyboard.c (Fclear_this_command_keys): New function.
18231 (syms_of_keyboard): defsubr it.
18232
18233 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18234
182351998-10-12 Kenichi Handa <handa@etl.go.jp>
18236
18237 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18238
18239 * charset.c (Fstring): Call make_string instead of
18240 make_string_from_bytes.
18241 (Ffind_charset_region): Include `composition' in the returned list
18242 if the region contains any composite characters.
18243 (Ffind_charset_string): Include `composition' in the returned list
18244 if the string contains any composite characters.
18245 (find_charset_in_str): Handle CMPCHARP arg correctly.
18246
18247 * coding.c (shrink_decoding_region): If a charset other than ascii
18248 is initially designated to G0, don't shrink the region.
18249 (shrink_encoding_region): Likewise.
18250
18251 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18252 byte-combining situation.
18253
18254 * fns.c (clear_string_char_byte_cache): New function.
18255 (Ffillarray): Handle multibyte string correctly.
18256
18257 * lisp.h (clear_string_char_byte_cache): Extern it.
18258
18259 * xselect.c (lisp_data_to_selection_data): Call
18260 find_charset_in_str with CMPCHARP arg 0.
18261 * w16select.c (Fw16_set_clipboard_data): Likewise.
18262 * w32select.c (Fw32_set_clipboard_data): Likewise.
18263
182641998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18265
18266 * keyboard.c (parse_menu_item): For top level of menu bar,
18267 accept ordinary commands, and treat them just like a keymap.
18268
182691998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18270
18271 * xdisp.c (redisplay_window): Clear w->window_end_valid
18272 before running the window-scroll-functions hook, if appropriate.
18273
182741998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18275
18276 * data.c (Fstring_to_number): Don't recognize floating point
18277 if base is not 10.
18278
18279 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18280 (check_all_windows): New function for debugging tests.
18281 (syms_of_window): Initialize it.
18282
18283 * window.c (Qwindow_configuration_p): New variable.
18284 (Fwindow_configuration_frame): New function.
18285 (syms_of_window): defsubr it.
18286 (Fset_window_configuration): Return t if frame is live.
18287 Use Qwindow_configuration_p.
18288
18289 * xfns.c (check_x_display_info): Don't use selected_frame
18290 if it is dead.
18291
182921998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18293
18294 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18295
182961998-10-08 Kenichi Handa <handa@etl.go.jp>
18297
18298 * buffer.h (inhibit_modification_hooks): Extern it.
18299
18300 * buffer.c (inhibit_modification_hooks): New variable.
18301 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18302
18303 * charset.c (invalid_character): Prepend `0' to octal
18304 representation. Give error sufficient args.
18305
18306 * coding.c (code_convert_region): Set inhibit_modification_hooks
18307 to 1 before calling Fset_text_properties.
18308
18309 * insdel.c (signal_before_change): If inhibit_modification_hooks
18310 is nonzero, do nothing.
18311 (signal_after_change): Likewise.
18312
183131998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18314
18315 * process.c: Doc fixes.
18316
183171998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18318
18319 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18320
183211998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18322
18323 * w32.c (init_ntproc): Check for Windows init file.
18324 (term_ntproc): Do not check for it here.
18325
183261998-09-28 Kenichi Handa <handa@etl.go.jp>
18327
18328 * coding.c (check_composing_code): Fix previous change. Now it
18329 alwasy returns 0 or -1.
18330 (decode_coding_iso2022): Adjusted for the above change.
18331 (encode_coding_iso2022): When encoding the last block, flush out
18332 tailing garbage bytes.
18333 (setup_coding_system): Delete unnecessary code.
18334 (shrink_decoding_region): Check translation table. If ASCII
18335 should be translated, give up shrinking.
18336 (shrink_encoding_region): Likewise.
18337 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18338 (SHRINK_CONVERSION_REGION): New macro.
18339 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18340 properties here.
18341 (code_convert_region): In the case of encoding, always calulate
18342 correct character number.
18343 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18344 (code_convert_region1): Don't delete text properties here.
18345
18346 * insdel.c (adjust_after_replace): Don't delete text properties here.
18347
18348 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18349
183501998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18351
18352 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18353
183541998-09-26 Kenichi Handa <handa@etl.go.jp>
18355
18356 * coding.h (struct coding_system): New member composed_chars.
18357
18358 * coding.c (check_composing_code): If the current composing
18359 sequence doesn't end properly, return -1.
18360 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18361 (DECODE_CHARACTER_DIMENSION1): Likewise.
18362 (decode_coding_iso2022): Check validity of a composing sequence.
18363 (code_convert_string): If the length of text to be converted is
18364 shrunk to zero, don't perform code conversion.
18365 (shrink_decoding_region): Fix previous change.
18366
18367 * editfns.c (Fformat): Check format control characters.
18368
183691998-09-25 Kenichi Handa <handa@etl.go.jp>
18370
18371 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18372 single CR code correctly.
18373 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18374 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18375
183761998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18377
18378 * w32fns.c (w32_color_map_lookup): New function.
18379 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18380
183811998-09-22 Kenichi Handa <handa@etl.go.jp>
18382
18383 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18384
18385 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18386 strings unibyte.
18387 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18388
183891998-09-22 Kenichi Handa <handa@etl.go.jp>
18390
18391 * callint.c (Fcall_interactively): Don't use input method when
18392 reading a character in the case of `c' code letter.
18393
183941998-09-21 Dave Love <fx@gnu.org>
18395
18396 * editfns.c (Fsave_restriction): Doc fix.
18397
183981998-09-21 Richard Stallman <rms@gnu.org>
18399
18400 * lread.c (build_load_history): Do add to Vload_history
18401 even when dumping Emacs.
18402
184031998-09-18 Kenichi Handa <handa@etl.go.jp>
18404
18405 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18406 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18407 cause error if the program is going to output some bytes. When
18408 outputing a string to notify an error, check the case that
18409 DST_BYTES is zero.
18410
427ec082 18411 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18412
18413 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18414 user or the CCL program executed an invalid command, return
18415 CODING_FINISH_INTERRUPT.
18416 (code_convert_region): Pay attention to the converters return
18417 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18418
184191998-09-16 Kenichi Handa <handa@etl.go.jp>
18420
18421 * coding.c (code_convert_region): Update beg_unchanged and
18422 end_unchanged after we delete the source text.
18423
18424 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18425 position if it is FROM.
18426 (adjust_markers_for_combining): New function.
18427 (combine_bytes): Call adjust_markers_for_combining instead of
18428 adjust_markers_for_replace.
18429 (adjust_after_replace): Record deletion of combining after bytes
18430 with the correct position.
18431 (replace_range): Likewise. Record the actual deletion after
18432 recoding deletions of combining bytes.
18433
18434 * xdisp.c (message_log_check_duplicate): Count byte length of the
18435 latest message correctly.
18436
184371998-09-12 Richard Stallman <rms@gnu.org>
18438
18439 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18440 instead of SET_PT_BOTH.
18441 (try_window_id, display_text_line): Likewise.
18442
184431998-09-12 Karl Heuer <kwzh@gnu.org>
18444
18445 * data.c (Fmake_local_variable): Doc fix.
18446
184471998-09-10 Dave Love <fx@gnu.org>
18448
18449 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18450
184511998-09-10 Richard Stallman <rms@gnu.org>
18452
18453 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18454 (bcopy, bcmp, bzero): Add #undef.
18455
18456 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18457 first exit if selected frame is dead (no live frames remain).
18458 (read_key_sequence): Likewise.
18459
184601998-09-10 Karl Heuer <kwzh@gnu.org>
18461
18462 * emacs.c (main): Mention --display and --eval in help.
18463
184641998-09-07 Paul Eggert <eggert@twinsun.com>
18465
18466 * editfns.c (emacs_memftime): New function.
18467 (Fformat_time_string): Use it to handle null bytes in formats
18468 correctly.
18469
184701998-09-08 Kenichi Handa <handa@etl.go.jp>
18471
18472 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18473 (Ffind_charset_string): For unibyte string, return (ascii).
18474
18475 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18476 arg MARKERS 1.
18477
18478 * insdel.c (adjust_after_replace): Don't add combining bytes to
18479 the args given to adjust_point. Handle correctly the case that
18480 there are both before and after combining bytes.
18481 (replace_range): Likewise.
18482
184831998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18484
18485 * fns.c (base64_decode_1, base64_encode_1): New functions.
18486 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18487 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18488
184891998-09-07 Karl Heuer <kwzh@gnu.org>
18490
18491 * eval.c (error): After enlarging buffer, write to it, not to buf.
18492
18493 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18494
184951998-09-07 Kenichi Handa <handa@etl.go.jp>
18496
18497 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18498 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18499 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18500
18501 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18502 chars in produced byte sequence.
18503 (Ffind_operation_coding_system): Doc-string fixed.
18504
18505 * insdel.c (count_combining_after): Check also preceding bytes at
18506 POS if all characters in STRING are not character head.
18507
185081998-09-06 Paul Eggert <eggert@twinsun.com>
18509
18510 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18511 Don't assume that localtime and gmtime return non-NULL.
18512
185131998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18514
18515 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18516 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18517 New functions.
18518
185191998-09-06 Richard Stallman <rms@gnu.org>
18520
18521 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18522
18523 * lread.c (Fload): Handle case where openp finds a magic file
18524 but it has no `load' handler or that handler calls `load'.
18525 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18526
185271998-09-04 Dave Love <fx@gnu.org>
18528
18529 * buffer.c (enable-multibyte-characters): Doc fix.
18530
185311998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18532
18533 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18534
185351998-09-01 Kenichi Handa <handa@etl.go.jp>
18536
18537 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18538 address in buffer from byte-position.
18539
185401998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18541
18542 * w16select.c (Vnext_selection_coding_system): New variable.
18543 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18544 Vselection_coding_system.
18545 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18546 Vnext_selection_coding_system if non-nil.
18547 (Fw16_get_clipboard_data): Always convert a string that includes
18548 non-ASCII characters. Use Vnext_selection_coding_system if
18549 non-nil.
18550
185511998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18552
18553 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18554 mouse capture.
18555
185561998-08-31 Kenichi Handa <handa@etl.go.jp>
18557
18558 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18559 x_list_font returns.
18560
185611998-08-31 Paul Eggert <eggert@twinsun.com>
18562
18563 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18564 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18565
185661998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18567
18568 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18569 cursor, save and restore previous cursor position in the
18570 minibuffer.
18571
185721998-08-31 Kenichi Handa <handa@etl.go.jp>
18573
18574 * charset.c (unibyte_char_to_multibyte):
18575 Vnonacii_translation_table will convert a 7-bit charcater.
18576 (multibyte_char_to_unibyte): Handle the case that
18577 Vnonacii_translation_table converts a multibyte charcater to a
18578 unibyte charcter of less than 128.
18579 (init_charset_once): Initialize nonascii_insert_offset and
18580 Vnonacii_translation_table.
18581
18582 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18583 processing if CODING requires flushing.
18584 (encode_coding): Likewise.
18585 (code_convert_region): Likewise.
18586 (code_convert_string): Likewise.
18587
18588 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18589 to convert a character less than 160 to multibyte.
18590 * insdel.c (copy_text): Likewise.
18591 (count_size_as_multibyte): Likewise.
18592 * xterm.c (dumpglyphs): Likewise.
18593
185941998-08-29 Paul Eggert <eggert@twinsun.com>
18595
18596 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18597 using negation, not subtraction; this makes a difference with
18598 IEEE floating point arithmetic (and also if integer arithmetic
18599 is ones' complement or signed-magnitude!).
18600
186011998-08-29 Karl Heuer <kwzh@gnu.org>
18602
18603 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18604
186051998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18606
18607 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18608
186091998-08-28 Paul Eggert <eggert@twinsun.com>
18610
18611 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18612 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18613 path only if we're not building with Motif.
18614
186151998-08-28 Kenichi Handa <handa@etl.go.jp>
18616
18617 * insdel.c (adjust_after_replace): Fix the code to record undo
18618 information for the case that `before combining' happens. Remove
18619 text properties which are added to the new text by
18620 offset_intervals.
18621
18622 * coding.c (code_convert_region1): Remove all text properties of
18623 the region.
18624
186251998-08-28 Kenichi Handa <handa@etl.go.jp>
18626
18627 * charset.h (CHAR_BYTES): New macro.
18628
18629 * charset.c (Fchar_bytes): Now always return 1.
18630 (char_bytes): New function.
18631
18632 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18633 range, return nil.
18634 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18635 nil.
18636
18637 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18638 * fns.c (concat): Likewise.
18639 * insdel.c (count_size_as_multibyte): Likewise.
18640 * xdisp.c (message_dolog): Likewise.
18641
186421998-08-27 Kenichi Handa <handa@etl.go.jp>
18643
18644 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18645 correctly. They are for SS2 and SS3 respectively.
18646 (ccl_coding_driver): Fix previous change.
18647
186481998-08-26 Paul Eggert <eggert@twinsun.com>
18649
18650 * xterm.c (fixup_locale): New function. For now, it resets
18651 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18652 resets LC_MESSAGES to "C".
18653 (x_term_init): Use it to fix up the locale after setlocale
18654 (LC_ALL, "").
18655
186561998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18657
18658 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18659 case it was prototyped the old way.
18660
186611998-08-25 Kenichi Handa <handa@etl.go.jp>
18662
18663 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18664 returns a null string. This happens when dxpc 3.7 is being used.
18665
186661998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18667
18668 * keyboard.c (input-method-previous-message): Doc fix.
18669
18670 * coding.c (file-coding-system-alist,
18671 select-safe-coding-system-function): Doc fix.
18672
186731998-08-23 Kenichi HANDA <handa@etl.go.jp>
18674
18675 * coding.c (detect_coding_iso2022): Don't check the byte length of
18676 succeeding codes (0xa0..0xFF) if the codes follows single shift
18677 code (SS2 or SS3).
18678
186791998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18680
18681 * coding.c (detect_coding_system): If detect_eol_type returns
18682 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18683 correctly.
18684
18685See ChangeLog.7 for earlier changes.